|
@@ -6,24 +6,30 @@
|
|
|
package org.eco.vip.nexus.core.service.role;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.lang.tree.Tree;
|
|
|
import com.mybatisflex.core.paginate.Page;
|
|
|
import com.mybatisflex.core.query.QueryMethods;
|
|
|
import com.mybatisflex.core.query.QueryWrapper;
|
|
|
+import com.mybatisflex.core.update.UpdateChain;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.eco.vip.core.pojo.PageResult;
|
|
|
+import org.eco.vip.core.utils.CollUtils;
|
|
|
+import org.eco.vip.core.utils.MapstructUtils;
|
|
|
+import org.eco.vip.nexus.core.domain.menu.pojo.MenuVO;
|
|
|
import org.eco.vip.nexus.core.domain.role.Role;
|
|
|
import org.eco.vip.nexus.core.domain.role.RoleMenu;
|
|
|
import org.eco.vip.nexus.core.domain.role.RolePerm;
|
|
|
import org.eco.vip.nexus.core.domain.role.pojo.RoleBO;
|
|
|
+import org.eco.vip.nexus.core.domain.role.pojo.RoleMenuBO;
|
|
|
+import org.eco.vip.nexus.core.domain.role.pojo.RoleMenuVO;
|
|
|
import org.eco.vip.nexus.core.domain.role.pojo.RoleVO;
|
|
|
import org.eco.vip.nexus.core.mapper.RoleMapper;
|
|
|
import org.eco.vip.nexus.core.mapper.RoleMenuMapper;
|
|
|
import org.eco.vip.nexus.core.mapper.RolePermMapper;
|
|
|
+import org.eco.vip.nexus.core.service.menu.IMenuService;
|
|
|
import org.eco.vip.orm.domain.PageQuery;
|
|
|
-import org.eco.vip.core.pojo.PageResult;
|
|
|
import org.eco.vip.orm.service.BaseService;
|
|
|
-import org.eco.vip.core.utils.CollUtils;
|
|
|
-import org.eco.vip.core.utils.MapstructUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
@@ -54,6 +60,9 @@ public class RoleService extends BaseService<RoleMapper, Role> implements IRoleS
|
|
|
@Resource
|
|
|
private RoleMapper roleMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private IMenuService menuService;
|
|
|
+
|
|
|
private QueryWrapper buildQueryWrapper(RoleBO roleBO) {
|
|
|
return super.buildBaseQueryWrapper()
|
|
|
.and(ROLE.ORG_ID.eq(roleBO.getOrgId()))
|
|
@@ -139,6 +148,26 @@ public class RoleService extends BaseService<RoleMapper, Role> implements IRoleS
|
|
|
return this.listAs(queryWrapper, String.class);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public RoleMenuVO selectMenuByRoleId(String id) {
|
|
|
+ List<String> menuIds = roleMenuMapper.selectListWithRelationsByQueryAs(query().select(ROLE_MENU.MENU_ID).and(ROLE_MENU.ROLE_ID.eq(id)), String.class);
|
|
|
+ List<MenuVO> menuVOList = menuService.listAs(query(), MenuVO.class);
|
|
|
+ List<Tree<String>> tree = menuService.tree();
|
|
|
+ return RoleMenuVO.builder().hasMenus(menuIds).allMenus(menuVOList).treeMenus(tree).build();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean setMenus(RoleMenuBO roleMenuBO) {
|
|
|
+ UpdateChain.of(roleMenuMapper).eq(RoleMenu::getRoleId, roleMenuBO.getRoleId()).remove();
|
|
|
+ List<RoleMenu> list = roleMenuBO.getMenuIds().stream().map(menuId -> {
|
|
|
+ RoleMenu roleMenu = new RoleMenu();
|
|
|
+ roleMenu.setRoleId(roleMenuBO.getRoleId());
|
|
|
+ roleMenu.setMenuId(menuId);
|
|
|
+ return roleMenu;
|
|
|
+ }).toList();
|
|
|
+ return roleMenuMapper.insertBatch(list) > 0;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<String> selectMenuIdsByRoleIds(List<String> ids) {
|
|
|
QueryWrapper queryWrapper = QueryWrapper.create()
|