diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/CeneterOutboundControlelr.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/CeneterOutboundControlelr.java index 64c89bef..e7e75a51 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/CeneterOutboundControlelr.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/CeneterOutboundControlelr.java @@ -58,6 +58,32 @@ public class CeneterOutboundControlelr { @Resource private IWmsModelService wmsModelService; + @Resource + private IRoleButtonMapService roleButtonMapService ; + + @Resource + private IMenuButtonService menuButtonService; + + @GetMapping("idGenery") + public ApiResult idGenery() { + return ApiResult.success(IdUtil.getSnowflakeNextId()); + } + + @GetMapping("initrole") + public ApiResult initRole() { + List roleButtonMaps = new ArrayList<>(); + List menuButtons = menuButtonService.list(); + for (MenuButton menuButton : menuButtons) { + RoleButtonMap roleButtonMap = new RoleButtonMap(); + roleButtonMap.setRoleId(1L); + roleButtonMap.setId(IdUtil.getSnowflakeNextId()); + roleButtonMap.setButtonId(menuButton.getId()); + + roleButtonMaps.add(roleButtonMap); + } + roleButtonMapService.saveBatch(roleButtonMaps); + return ApiResult.success(); + } @GetMapping("syncData") public ApiResult syncData(@RequestParam String orderId) { diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MenuControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MenuControllerService.java index 6f740f03..98f53e84 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MenuControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MenuControllerService.java @@ -37,7 +37,8 @@ public class MenuControllerService { private IMenuButtonApiMapService menuButtonApiMapService; public List getMenuForAuthorize(Long roleId) { - return menuService.getMenuForAuthorize(roleId); + return menuService.getNodeForAuthorize(roleId); + // return menuService.getMenuForAuthorize(roleId); } public IPage searchMenu(@Valid MenuSearchQO request) { diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/UserAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/UserAddQO.java index 2c18917b..34dee8eb 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/UserAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/UserAddQO.java @@ -7,7 +7,7 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) -public class UserAddQO{ +public class UserAddQO { /** * 用户名称 @@ -39,7 +39,7 @@ public class UserAddQO{ /** * 部门id */ - @NotBlank + @NotNull private Long deptId; /** @@ -62,12 +62,10 @@ public class UserAddQO{ /** * 初始化密码后是否强制要求登录后重设密码 */ - @NotNull private Boolean enableMustResetPwd; /** * 默认语言 */ - @NotBlank private String languageCode; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MenuAuthorizeVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MenuAuthorizeVO.java index 4de0d455..80478df2 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MenuAuthorizeVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MenuAuthorizeVO.java @@ -11,6 +11,8 @@ public class MenuAuthorizeVO { private Long id; + private Long parentId; + private String key; //名称 @@ -22,6 +24,8 @@ public class MenuAuthorizeVO { //是否已授权 private Boolean selected; + //排序 + private Short sort; //下级 private List children; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/MenuMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/MenuMapper.java index 21ee2ef2..f1f4e551 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/MenuMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/MenuMapper.java @@ -2,6 +2,7 @@ package com.nflg.wms.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nflg.wms.common.pojo.vo.ButtonVO; +import com.nflg.wms.common.pojo.vo.MenuAuthorizeVO; import com.nflg.wms.repository.entity.Menu; import java.util.List; @@ -19,4 +20,6 @@ public interface MenuMapper extends BaseMapper { List getButtonsByMenuId(Long userId, Long menuId); Boolean menuIsSelected(Long roleId, Long menuId); + + List getAllDataForAuthorize(Long roleId); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IMenuService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IMenuService.java index 1fd762a3..b6bbf215 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IMenuService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IMenuService.java @@ -38,4 +38,6 @@ public interface IMenuService extends IService { void enableMenu(@Valid EnableMenuQO request); List getButtonsByMenuId(Long userId, @Valid @NotNull Long menuId); + + List getNodeForAuthorize(Long roleId); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/MenuServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/MenuServiceImpl.java index 42c557a9..3e8e94ce 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/MenuServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/MenuServiceImpl.java @@ -54,12 +54,46 @@ public class MenuServiceImpl extends ServiceImpl implements IM .eq(Menu::getEnable, true) .list(); List vos = datas.stream() - .map(d -> new MenuAuthorizeVO().setType(1).setId(d.getId()).setKey("menu-"+d.getId()).setName(d.getName()).setSelected(menuIsSelected(roleId, d.getId()))) + .map(d -> new MenuAuthorizeVO().setType(1).setId(d.getId()).setKey("menu-" + d.getId()).setName(d.getName()).setSelected(menuIsSelected(roleId, d.getId()))) .collect(Collectors.toList()); vos.forEach(v -> bindMenuChildren(roleId, v)); return vos; } + @Override + public List getNodeForAuthorize(Long roleId) { + List nodes = baseMapper.getAllDataForAuthorize(roleId); + List rootNodes = nodes.stream().filter(v -> + v.getType() == 1 && v.getParentId() == 0 + ).toList(); + for (MenuAuthorizeVO node : rootNodes) { + List childNodes = getChildNode(node.getId(), nodes); + if (CollectionUtil.isNotEmpty(childNodes)) { + node.setChildren(new ArrayList<>()); + node.getChildren().addAll(childNodes); + } + } + // rootNodes.sort(Comparator.comparing(MenuAuthorizeVO::getSort)); + return rootNodes; + } + + private List getChildNode(Long parentId, List nodes) { + List rootNodes = nodes.stream().filter(v -> v.getParentId().equals(parentId) + ).toList(); + if (CollectionUtil.isNotEmpty(rootNodes)) { + for (MenuAuthorizeVO node : rootNodes) { + List childNodes = getChildNode(node.getId(), nodes); + if (CollectionUtil.isNotEmpty(childNodes)) { + node.setChildren(new ArrayList<>()); + node.getChildren().addAll(childNodes); + } + } + } + // rootNodes.sort(Comparator.comparing(MenuAuthorizeVO::getSort)); + return rootNodes; + } + + @Override public IPage search(MenuSearchQO request) { if (StrUtil.isBlank(request.getName())) { @@ -146,19 +180,19 @@ public class MenuServiceImpl extends ServiceImpl implements IM @Override public void enableMenu(EnableMenuQO request) { - if (request.isEnable()){ + if (request.isEnable()) { enable(request.getIds()); - }else { + } else { disable(request.getIds()); } } @Override public List getButtonsByMenuId(Long userId, Long menuId) { - return baseMapper.getButtonsByMenuId(userId,menuId); + return baseMapper.getButtonsByMenuId(userId, menuId); } - private void disable(List ids){ + private void disable(List ids) { if (CollectionUtil.isNotEmpty(ids)) { lambdaUpdate() .set(Menu::getEnable, false) @@ -176,7 +210,7 @@ public class MenuServiceImpl extends ServiceImpl implements IM } } - private void enable(List ids){ + private void enable(List ids) { lambdaUpdate() .set(Menu::getEnable, true) .set(Menu::getUpdateBy, UserUtil.getUserName()) @@ -250,7 +284,7 @@ public class MenuServiceImpl extends ServiceImpl implements IM } private Boolean menuIsSelected(Long roleId, Long menuId) { - return baseMapper.menuIsSelected(roleId,menuId); + return baseMapper.menuIsSelected(roleId, menuId); } private List getChildren(Long parentId) { @@ -265,7 +299,7 @@ public class MenuServiceImpl extends ServiceImpl implements IM private void bindMenuChildren(Long roleId, MenuAuthorizeVO menu) { List datas = lambdaQuery().eq(Menu::getParentId, menu.getId()).eq(Menu::getEnable, true).list(); if (CollectionUtil.isNotEmpty(datas)) { - List vos = datas.stream().map(d -> new MenuAuthorizeVO().setType(1).setId(d.getId()).setKey("menu-"+d.getId()).setName(d.getName()).setSelected(menuIsSelected(roleId, d.getId()))).collect(Collectors.toList()); + List vos = datas.stream().map(d -> new MenuAuthorizeVO().setType(1).setId(d.getId()).setKey("menu-" + d.getId()).setName(d.getName()).setSelected(menuIsSelected(roleId, d.getId()))).collect(Collectors.toList()); menu.setChildren(vos); vos.forEach(v -> bindMenuChildren(roleId, v)); } else { @@ -276,7 +310,7 @@ public class MenuServiceImpl extends ServiceImpl implements IM .orderByAsc(MenuButton::getId) .list(); menu.setChildren(vos.stream() - .map(d -> new MenuAuthorizeVO().setType(2).setId(d.getId()).setKey("button-"+d.getId()).setName(d.getName()).setSelected(buttonIsSelected(roleId, d.getId()))) + .map(d -> new MenuAuthorizeVO().setType(2).setId(d.getId()).setKey("button-" + d.getId()).setName(d.getName()).setSelected(buttonIsSelected(roleId, d.getId()))) .collect(Collectors.toList())); } } diff --git a/nflg-wms-repository/src/main/resources/mapper/MenuMapper.xml b/nflg-wms-repository/src/main/resources/mapper/MenuMapper.xml index 541699a7..918a3e3f 100644 --- a/nflg-wms-repository/src/main/resources/mapper/MenuMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/MenuMapper.xml @@ -19,4 +19,29 @@ WHERE menu_id = #{menuId} AND role_id = #{roleId}) + +