Explorar o código

学生功能分类设置

dzx hai 1 ano
pai
achega
86ca2cd07c

+ 1 - 0
src/main/java/com/xjrsoft/module/system/controller/MenuController.java

@@ -16,6 +16,7 @@ import com.xjrsoft.common.constant.GlobalConstant;
 import com.xjrsoft.common.enums.AuthorizeType;
 import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.enums.MenuType;
+import com.xjrsoft.common.enums.RoleEnum;
 import com.xjrsoft.common.enums.SystemTypeEnum;
 import com.xjrsoft.common.enums.YesOrNoEnum;
 import com.xjrsoft.common.model.result.R;

+ 3 - 0
src/main/java/com/xjrsoft/module/system/service/IXjrMenuGroupSetService.java

@@ -3,6 +3,7 @@ package com.xjrsoft.module.system.service;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.system.dto.AddXjrMenuGroupDto;
 import com.xjrsoft.module.system.dto.XjrMenuGroupMenuListDto;
+import com.xjrsoft.module.system.entity.XjrMenuGroup;
 import com.xjrsoft.module.system.entity.XjrMenuGroupSet;
 import com.xjrsoft.module.system.vo.XjrMenuGroupMenuListVo;
 
@@ -43,4 +44,6 @@ public interface IXjrMenuGroupSetService extends MPJBaseService<XjrMenuGroupSet>
     List<XjrMenuGroupMenuListVo> getMenuList(XjrMenuGroupMenuListDto dto);
 
     Boolean setMenu(AddXjrMenuGroupDto dto);
+
+    List<XjrMenuGroup> getXjrMenuGroupMenu();
 }

+ 51 - 1
src/main/java/com/xjrsoft/module/system/service/impl/MenuServiceImpl.java

@@ -3,6 +3,8 @@ package com.xjrsoft.module.system.service.impl;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -10,7 +12,10 @@ import com.github.yulichang.toolkit.MPJWrappers;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.xjrsoft.common.enums.AuthorizeType;
 import com.xjrsoft.common.enums.EnabledMark;
+import com.xjrsoft.common.enums.RoleEnum;
 import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.WhitelistManagement;
+import com.xjrsoft.module.base.service.IWhitelistManagementService;
 import com.xjrsoft.module.organization.entity.UserRoleRelation;
 import com.xjrsoft.module.organization.mapper.UserRoleRelationMapper;
 import com.xjrsoft.module.system.dto.MenuTreeDto;
@@ -18,18 +23,22 @@ import com.xjrsoft.module.system.dto.RoleMenuServeListDto;
 import com.xjrsoft.module.system.entity.Authorize;
 import com.xjrsoft.module.system.entity.Menu;
 import com.xjrsoft.module.system.entity.Subsystem;
+import com.xjrsoft.module.system.entity.XjrMenuGroup;
+import com.xjrsoft.module.system.entity.XjrMenuGroupSet;
 import com.xjrsoft.module.system.entity.XjrMenuQuick;
 import com.xjrsoft.module.system.mapper.AuthorizeMapper;
 import com.xjrsoft.module.system.mapper.MenuMapper;
 import com.xjrsoft.module.system.mapper.XjrMenuDeptRelationMapper;
 import com.xjrsoft.module.system.mapper.XjrMenuQuickMapper;
 import com.xjrsoft.module.system.service.IMenuService;
+import com.xjrsoft.module.system.service.IXjrMenuGroupSetService;
 import com.xjrsoft.module.system.vo.MenuAllServeVo;
 import com.xjrsoft.module.system.vo.MenuListVo;
 import com.xjrsoft.module.system.vo.MenuServeVo;
 import com.xjrsoft.module.system.vo.MenuTreeVo;
 import com.xjrsoft.module.system.vo.MenuVo;
 import com.xjrsoft.module.system.vo.XjrMentDeptGroupVo;
+import com.xjrsoft.module.system.vo.XjrMenuGroupSetPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -60,6 +69,9 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
 
     private final XjrMenuDeptRelationMapper menuDeptRelationMapper;
 
+    private final IXjrMenuGroupSetService xjrMenuGroupSetService;
+    private final IWhitelistManagementService whitelistManagementService;
+
     @Override
     public List<MenuVo> getAuthMenuList(MenuTreeDto dto) {
         List<Long> roleIds = getUserRoleIds();
@@ -225,12 +237,50 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
             deptNameMap.put(deptGroupVo.getMenuId(), deptGroupVo.getDeptNames());
             deptIdMap.put(deptGroupVo.getMenuId(), deptGroupVo.getDeptIds());
         }
+        List<MenuVo> result = new ArrayList<>();
+        Map<Long, Long> menuGroupMap = new HashMap<>();
+        Map<Long, Integer> menuDisabledMap = new HashMap<>();
+        if(roleIds.contains(RoleEnum.STUDENT.getCode())){
+            LambdaQueryWrapper<XjrMenuGroupSet> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper
+                    .orderByDesc(XjrMenuGroupSet::getId)
+                    .select(XjrMenuGroupSet.class,x -> VoToColumnUtil.fieldsToColumns(XjrMenuGroupSetPageVo.class).contains(x.getProperty()));
+            List<XjrMenuGroupSet> list = xjrMenuGroupSetService.list(queryWrapper);
+            Map<Long, Integer> menuUsedMap = new HashMap<>();
+            for (XjrMenuGroupSet menuGroupSet : list) {
+                result.add(new MenuVo(){{
+                    setTitle(menuGroupSet.getName());
+                    setId(menuGroupSet.getId());
+                }});
+                menuUsedMap.put(menuGroupSet.getId(), menuGroupSet.getUseRange());
+            }
+            List<XjrMenuGroup> xjrMenuGroupMenu = xjrMenuGroupSetService.getXjrMenuGroupMenu();
+            menuGroupMap.putAll(xjrMenuGroupMenu.stream().collect(Collectors.toMap(XjrMenuGroup::getXjrMenuId, XjrMenuGroup::getXjrMenuGroupSetId)));
+            List<WhitelistManagement> managementList = whitelistManagementService.list(
+                    new QueryWrapper<WhitelistManagement>().lambda()
+                            .eq(WhitelistManagement::getUserId, StpUtil.getLoginIdAsLong())
+            );
+            for (XjrMenuGroup menuGroupMenu : xjrMenuGroupMenu) {
+                menuDisabledMap.put(menuGroupMenu.getXjrMenuId(), 1);
+                if(menuUsedMap.get(menuGroupMenu.getXjrMenuId()) == 2 && managementList.isEmpty()){
+                    menuDisabledMap.put(menuGroupMenu.getXjrMenuId(), 2);
+                }
+            }
+        }
+
+
         for (MenuVo menuVo : menuVos) {
             menuVo.setDeptId(deptIdMap.get(menuVo.getId()));
             menuVo.setDeptName(deptNameMap.get(menuVo.getId()));
+            if(roleIds.contains(RoleEnum.STUDENT.getCode()) && menuGroupMap.get(menuVo.getId()) != null){
+                menuVo.setParentId(menuGroupMap.get(menuVo.getId()));
+                menuVo.setIsDisable(menuDisabledMap.get(menuVo.getId()));
+            }
+
         }
+        result.addAll(menuVos);
 
-        return menuVos;
+        return result;
     }
 
     /**

+ 5 - 0
src/main/java/com/xjrsoft/module/system/service/impl/XjrMenuGroupSetServiceImpl.java

@@ -113,4 +113,9 @@ public class XjrMenuGroupSetServiceImpl extends MPJBaseServiceImpl<XjrMenuGroupS
         }
         return true;
     }
+
+    @Override
+    public List<XjrMenuGroup> getXjrMenuGroupMenu() {
+        return groupMapper.selectList(new QueryWrapper<XjrMenuGroup>());
+    }
 }

+ 2 - 0
src/main/java/com/xjrsoft/module/system/vo/MenuVo.java

@@ -99,4 +99,6 @@ public class MenuVo implements Serializable {
     @ApiModelProperty("是否显示在服务中心(0:否 1:是)")
     private Integer isShowServce;
 
+    @ApiModelProperty("是否禁用(0:否 1:是)")
+    private Integer isDisable;
 }