|
@@ -6,28 +6,18 @@
|
|
|
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.orm.service.BaseService;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -36,9 +26,8 @@ import java.util.List;
|
|
|
|
|
|
import static org.eco.vip.nexus.core.domain.org.table.OrgTableDef.ORG;
|
|
|
import static org.eco.vip.nexus.core.domain.permission.table.PermissionTableDef.PERMISSION;
|
|
|
-import static org.eco.vip.nexus.core.domain.role.table.RoleMenuTableDef.ROLE_MENU;
|
|
|
-import static org.eco.vip.nexus.core.domain.role.table.RolePermTableDef.ROLE_PERM;
|
|
|
import static org.eco.vip.nexus.core.domain.role.table.RoleTableDef.ROLE;
|
|
|
+import static org.eco.vip.nexus.core.domain.rolePerm.table.RolePermTableDef.ROLE_PERM;
|
|
|
import static org.eco.vip.nexus.core.domain.user.table.UserRoleTableDef.USER_ROLE;
|
|
|
import static org.eco.vip.nexus.core.domain.user.table.UserTableDef.USER;
|
|
|
|
|
@@ -51,18 +40,10 @@ import static org.eco.vip.nexus.core.domain.user.table.UserTableDef.USER;
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
public class RoleService extends BaseService<RoleMapper, Role> implements IRoleService {
|
|
|
- @Resource
|
|
|
- private RolePermMapper rolePermMapper;
|
|
|
-
|
|
|
- @Resource
|
|
|
- private RoleMenuMapper roleMenuMapper;
|
|
|
|
|
|
@Resource
|
|
|
private RoleMapper roleMapper;
|
|
|
|
|
|
- @Resource
|
|
|
- private IMenuService menuService;
|
|
|
-
|
|
|
private QueryWrapper buildQueryWrapper(RoleBO roleBO) {
|
|
|
return super.buildBaseQueryWrapper()
|
|
|
.and(ROLE.ORG_ID.eq(roleBO.getOrgId()))
|
|
@@ -90,16 +71,6 @@ public class RoleService extends BaseService<RoleMapper, Role> implements IRoleS
|
|
|
return this.save(role);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public boolean insertPerm(RolePerm rolePerm) {
|
|
|
- return rolePermMapper.insert(rolePerm) > 0;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean insertMenu(RoleMenu roleMenu) {
|
|
|
- return roleMenuMapper.insert(roleMenu) > 0;
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public boolean update(RoleBO roleBO) {
|
|
|
Role role = MapstructUtils.convert(roleBO, Role.class);
|
|
@@ -147,34 +118,4 @@ public class RoleService extends BaseService<RoleMapper, Role> implements IRoleS
|
|
|
.where(USER.USER_ID.eq(userId));
|
|
|
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()
|
|
|
- .select(QueryMethods.distinct(ROLE_MENU.MENU_ID))
|
|
|
- .from(ROLE_MENU.as("rmt"))
|
|
|
- .leftJoin(ROLE.as("rt")).on(ROLE.ROLE_ID.eq(ROLE_MENU.ROLE_ID))
|
|
|
- .where(ROLE.ROLE_ID.in(ids));
|
|
|
- return roleMenuMapper.selectListWithRelationsByQueryAs(queryWrapper, String.class);
|
|
|
- }
|
|
|
}
|