fix(菜单服务): 修复菜单meta信息转换失败的问题

在菜单服务中,增加了对meta信息的转换处理,并添加了异常捕获和日志记录,以避免转换失败导致的问题。
This commit is contained in:
dzq 2025-05-16 10:21:35 +08:00
parent b11f1640a7
commit 188e49976c
1 changed files with 10 additions and 2 deletions

View File

@ -4,10 +4,12 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.json.JSONUtil;
import com.agileboot.domain.system.menu.command.AddMenuCommand; import com.agileboot.domain.system.menu.command.AddMenuCommand;
import com.agileboot.domain.system.menu.command.UpdateMenuCommand; import com.agileboot.domain.system.menu.command.UpdateMenuCommand;
import com.agileboot.domain.system.menu.dto.MenuDTO; import com.agileboot.domain.system.menu.dto.MenuDTO;
import com.agileboot.domain.system.menu.dto.MenuDetailDTO; import com.agileboot.domain.system.menu.dto.MenuDetailDTO;
import com.agileboot.domain.system.menu.dto.MetaDTO;
import com.agileboot.domain.system.menu.dto.RouterDTO; import com.agileboot.domain.system.menu.dto.RouterDTO;
import com.agileboot.domain.system.menu.model.MenuModel; import com.agileboot.domain.system.menu.model.MenuModel;
import com.agileboot.domain.system.menu.model.MenuModelFactory; import com.agileboot.domain.system.menu.model.MenuModelFactory;
@ -21,12 +23,14 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 菜单应用服务 * 菜单应用服务
* @author valarchie * @author valarchie
*/ */
@Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class MenuApplicationService { public class MenuApplicationService {
@ -135,8 +139,12 @@ public class MenuApplicationService {
// 也可以使用 tree.setId(dept.getId());等一些默认值 // 也可以使用 tree.setId(dept.getId());等一些默认值
tree.setId(menu.getMenuId()); tree.setId(menu.getMenuId());
tree.setParentId(menu.getParentId()); tree.setParentId(menu.getParentId());
// TODO 可以取meta中的rank来排序 try {
// tree.setWeight(menu.getRank()); MetaDTO meta = JSONUtil.toBean(menu.getMetaInfo(), MetaDTO.class);
tree.setWeight(meta.getRank());
} catch (Exception e) {
log.error("菜单metaInfo转换失败", e);
}
tree.putExtra("entity", menu); tree.putExtra("entity", menu);
}); });