Эх сурвалжийг харах

山东师范配置文件修改

wangliang 3 жил өмнө
parent
commit
9160b91145

+ 1 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -309,7 +309,6 @@ public class SysController {
     @ApiOperation(value = "查询用户权限")
     @RequestMapping(value = "/get_menu", method = RequestMethod.POST)
     public Result getMenu() {
-        List<MenuDto> list = sysUserRoleService.listByUserId();
-        return ResultUtil.ok(list);
+        return ResultUtil.ok(sysUserRoleService.listByUserId());
     }
 }

+ 42 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/MenuDto.java

@@ -1,19 +1,58 @@
 package com.qmth.teachcloud.common.bean.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.enums.PrivilegeEnum;
+
 /**
  * @Date: 2021/4/13.
  */
 public class MenuDto {
 
-    private String id;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
     private String name;
+
     private String url;
 
-    public String getId() {
+    private PrivilegeEnum type;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long parentId;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long schoolId;
+
+    public PrivilegeEnum getType() {
+        return type;
+    }
+
+    public void setType(PrivilegeEnum type) {
+        this.type = type;
+    }
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public Long getId() {
         return id;
     }
 
-    public void setId(String id) {
+    public void setId(Long id) {
         this.id = id;
     }
 

+ 3 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysUserRoleMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.teachcloud.common.bean.dto.MenuDto;
 import com.qmth.teachcloud.common.entity.SysRole;
 import com.qmth.teachcloud.common.entity.SysUserRole;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -19,7 +20,7 @@ public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
 
     List<SysRole> listRoleByUserId(Long userId);
 
-    List<MenuDto> listByUserId(Long userId);
+    List<MenuDto> listByUserId(@Param("userId") Long userId, @Param("schoolId") Long schoolId);
 
-    List<MenuDto> listAll();
+    List<MenuDto> listAll(@Param("schoolId") Long schoolId);
 }

+ 30 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserRoleServiceImpl.java

@@ -8,6 +8,7 @@ import com.qmth.teachcloud.common.entity.SysRole;
 import com.qmth.teachcloud.common.entity.SysRolePrivilege;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUserRole;
+import com.qmth.teachcloud.common.enums.PrivilegeEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.mapper.SysUserRoleMapper;
 import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
@@ -16,9 +17,11 @@ import com.qmth.teachcloud.common.service.SysUserRoleService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -62,12 +65,36 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
     public List<MenuDto> listByUserId() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         List<SysRole> sysRole = sysRoleService.listRolesByUserId(sysUser.getId());
+        List<MenuDto> menuDtoList = null;
         for (SysRole role : sysRole) {
-            if (RoleTypeEnum.ADMIN.name().equals(role.getType().name())) {
-                return this.baseMapper.listAll();
+            if (Objects.nonNull(role.getType()) && RoleTypeEnum.ADMIN.name().equals(role.getType().name())) {
+                return this.baseMapper.listAll(Objects.isNull(sysUser.getSchoolId()) ? (Long) ServletUtil.getRequestSchoolByNotVaild() : sysUser.getSchoolId());
             }
         }
-        return this.baseMapper.listByUserId(sysUser.getId());
+        LinkedMultiValueMap<Long, LinkedMultiValueMap<PrivilegeEnum, MenuDto>> linkedMultiValueMap = new LinkedMultiValueMap<>();
+        menuDtoList = this.baseMapper.listByUserId(sysUser.getId(), Objects.isNull(sysUser.getSchoolId()) ? (Long) ServletUtil.getRequestSchoolByNotVaild() : sysUser.getSchoolId());
+//        LinkedMultiValueMap<PrivilegeEnum, MenuDto> menuDtoLinkedMultiValueMap = null;
+//        for (MenuDto m : menuDtoList) {
+//            if (!linkedMultiValueMap.containsKey(m.getParentId())) {
+//                menuDtoLinkedMultiValueMap = new LinkedMultiValueMap<>();
+//                menuDtoLinkedMultiValueMap.add(m.getType(), m);
+//                linkedMultiValueMap.add(m.getParentId(), menuDtoLinkedMultiValueMap);
+//            } else {
+//                List<LinkedMultiValueMap<PrivilegeEnum, MenuDto>> menuDtos = linkedMultiValueMap.get(m.getParentId());
+//                for (int i = 0; i < menuDtos.size(); i++) {
+//                    menuDtoLinkedMultiValueMap = menuDtos.get(i);
+//                    if (menuDtoLinkedMultiValueMap.containsKey(m.getType())) {
+//                        menuDtoLinkedMultiValueMap.add(m.getType(), m);
+//                        break;
+//                    } else {
+//                        menuDtoLinkedMultiValueMap = new LinkedMultiValueMap<>();
+//                        menuDtoLinkedMultiValueMap.add(m.getType(), m);
+//                        linkedMultiValueMap.add(m.getParentId(), menuDtoLinkedMultiValueMap);
+//                    }
+//                }
+//            }
+//        }
+        return menuDtoList;
     }
 
     @Override

+ 7 - 5
teachcloud-common/src/main/resources/mapper/SysUserRoleMapper.xml

@@ -26,18 +26,20 @@
                 WHERE
                     a.id = b.role_id AND b.user_id = #{userId})
     </select>
+
     <select id="listByUserId" resultType="com.qmth.teachcloud.common.bean.dto.MenuDto">
         SELECT
-            b.id,b.name, b.url
+            b.id,b.name,b.url,b.type,b.parent_id as parentId,b.school_id as schoolId
         FROM
             sys_user_role a
-                JOIN
-            sys_privilege b ON a.privilege_id = b.id
+            join sys_role_privilege srp on srp.role_id = a.role_id
+            JOIN sys_privilege b ON srp.privilege_id = b.id
         WHERE
-            a.user_id = #{userId} AND b.type = 'MENU'
+            a.user_id = #{userId} and b.school_id = #{schoolId}
     </select>
+
     <select id="listAll" resultType="com.qmth.teachcloud.common.bean.dto.MenuDto">
-        select id, name, url from sys_privilege where type = 'MENU'
+        select b.id,b.name,b.url,b.type,b.parent_id as parentId,b.school_id as schoolId from sys_privilege b where b.school_id = #{schoolId}
     </select>
 
 </mapper>