Ver Fonte

修改菜单权限表和字段

wangliang há 3 anos atrás
pai
commit
d83588c815
16 ficheiros alterados com 561 adições e 97 exclusões
  1. 62 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TSchoolPrivilege.java
  2. 16 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TSchoolPrivilegeMapper.java
  3. 16 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TSchoolPrivilegeService.java
  4. 20 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSchoolPrivilegeServiceImpl.java
  5. 5 0
      distributed-print-business/src/main/resources/mapper/TSchoolPrivilegeMapper.xml
  6. 95 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/MenuUpdateController.java
  7. 5 4
      distributed-print/src/main/resources/application-dev.properties
  8. 2 2
      distributed-print/src/test/java/com/qmth/distributed/print/CreateSchoolPrivilegeTest.java
  9. 122 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/SysRolePrivilegeDto.java
  10. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  11. 20 23
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysPrivilege.java
  12. 22 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysPrivilegeMapper.java
  13. 22 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysPrivilegeService.java
  14. 52 13
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysPrivilegeServiceImpl.java
  15. 53 54
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java
  16. 48 0
      teachcloud-common/src/main/resources/mapper/SysPrivilegeMapper.xml

+ 62 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TSchoolPrivilege.java

@@ -0,0 +1,62 @@
+package com.qmth.distributed.print.business.entity;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 学校菜单权限表
+ * </p>
+ *
+ * @author wangliang
+ * @since 2021-10-28
+ */
+@ApiModel(value="TSchoolPrivilege对象", description="学校菜单权限表")
+public class TSchoolPrivilege implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long schoolId;
+
+    @ApiModelProperty(value = "菜单权限id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long privilegeId;
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public Long getPrivilegeId() {
+        return privilegeId;
+    }
+
+    public void setPrivilegeId(Long privilegeId) {
+        this.privilegeId = privilegeId;
+    }
+}

+ 16 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TSchoolPrivilegeMapper.java

@@ -0,0 +1,16 @@
+package com.qmth.distributed.print.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.distributed.print.business.entity.TSchoolPrivilege;
+
+/**
+ * <p>
+ * 学校菜单权限表 Mapper 接口
+ * </p>
+ *
+ * @author wangliang
+ * @since 2021-10-28
+ */
+public interface TSchoolPrivilegeMapper extends BaseMapper<TSchoolPrivilege> {
+
+}

+ 16 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TSchoolPrivilegeService.java

@@ -0,0 +1,16 @@
+package com.qmth.distributed.print.business.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.entity.TSchoolPrivilege;
+
+/**
+ * <p>
+ * 学校菜单权限表 服务类
+ * </p>
+ *
+ * @author wangliang
+ * @since 2021-10-28
+ */
+public interface TSchoolPrivilegeService extends IService<TSchoolPrivilege> {
+
+}

+ 20 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSchoolPrivilegeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.qmth.distributed.print.business.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.entity.TSchoolPrivilege;
+import com.qmth.distributed.print.business.mapper.TSchoolPrivilegeMapper;
+import com.qmth.distributed.print.business.service.TSchoolPrivilegeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 学校菜单权限表 服务实现类
+ * </p>
+ *
+ * @author wangliang
+ * @since 2021-10-28
+ */
+@Service
+public class TSchoolPrivilegeServiceImpl extends ServiceImpl<TSchoolPrivilegeMapper, TSchoolPrivilege> implements TSchoolPrivilegeService {
+
+}

+ 5 - 0
distributed-print-business/src/main/resources/mapper/TSchoolPrivilegeMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.qmth.distributed.print.business.mapper.TSchoolPrivilegeMapper">
+
+</mapper>

+ 95 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/MenuUpdateController.java

@@ -0,0 +1,95 @@
+package com.qmth.distributed.print.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.bean.dto.OrgDto;
+import com.qmth.teachcloud.common.bean.dto.SysRolePrivilegeDto;
+import com.qmth.teachcloud.common.entity.SysPrivilege;
+import com.qmth.teachcloud.common.entity.SysRolePrivilege;
+import com.qmth.teachcloud.common.service.SysPrivilegeService;
+import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 菜单权限修改
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/10/29
+ */
+@Api(tags = "菜单权限修改Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.menu}")
+@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
+@Validated
+public class MenuUpdateController {
+
+    @Resource
+    SysPrivilegeService sysPrivilegeService;
+
+    @Resource
+    SysRolePrivilegeService sysRolePrivilegeService;
+
+//    @ApiOperation(value = "同步所有角色菜单权限")
+//    @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
+//    @RequestMapping(value = "/rolePrivilegeSync", method = RequestMethod.POST)
+//    @Transactional
+//    public Result rolePrivilegeSync() {
+//        List<SysRolePrivilegeDto> sysRolePrivilegeDtoList = sysPrivilegeService.getRolePrivilegeList();
+//        if (Objects.nonNull(sysRolePrivilegeDtoList) && sysRolePrivilegeDtoList.size() > 0) {
+//            Map<Long, List<SysRolePrivilegeDto>> map = new HashMap<>();
+//            for (SysRolePrivilegeDto s : sysRolePrivilegeDtoList) {
+//                if (!map.containsKey(s.getRoleId())) {
+//                    List<SysRolePrivilegeDto> tempList = new ArrayList<>();
+//                    tempList.add(s);
+//                    map.put(s.getRoleId(), tempList);
+//                } else {
+//                    List<SysRolePrivilegeDto> mapList = map.get(s.getRoleId());
+//                    mapList.add(s);
+//                    map.put(s.getRoleId(), mapList);
+//                }
+//            }
+//            List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.findByDefault();
+//            Map<String, SysPrivilege> sysPrivilegeMap = sysPrivilegeList.stream().collect(Collectors.toMap(SysPrivilege::getName, Function.identity(), (dto1, dto2) -> dto1));
+//            map.forEach((k, v) -> {
+//                List<SysRolePrivilege> sysRolePrivilegeList = new ArrayList<>();
+//                for (int i = 0; i < v.size(); i++) {
+//                    SysRolePrivilegeDto s = v.get(i);
+//                    SysRolePrivilege sysRolePrivilege = sysRolePrivilegeService.getById(s.getRolePrivilegeId());
+//                    SysPrivilege sysPrivilege = sysPrivilegeMap.get(s.getPrivilegeName());
+//                    if (Objects.nonNull(sysPrivilege)) {
+//                        sysRolePrivilege.setPrivilegeId(sysPrivilege.getId());
+//                        sysRolePrivilegeList.add(sysRolePrivilege);
+//                    }
+//                }
+//                sysRolePrivilegeService.saveOrUpdateBatch(sysRolePrivilegeList);
+//            });
+//        }
+//        return ResultUtil.ok(true);
+//    }
+//
+//    @ApiOperation(value = "同步所有角色菜单权限数量")
+//    @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
+//    @RequestMapping(value = "/rolePrivilegeCountSync", method = RequestMethod.POST)
+//    @Transactional
+//    public Result rolePrivilegeCountSync() {
+//        Integer count = sysPrivilegeService.getRolePrivilegeCount();
+//        return ResultUtil.ok(Objects.nonNull(count) ? count : 0);
+//    }
+}

+ 5 - 4
distributed-print/src/main/resources/application-dev.properties

@@ -13,7 +13,7 @@ spring.application.name=distributed-print
 db.host=localhost
 db.port=3306
 #db.name=distributed-v2.2.0
-db.name=distributed-v2.2.1-test
+db.name=distributed-v2.2.0-release
 db.username=root
 db.password=123456789
 
@@ -110,6 +110,7 @@ prefix.url.client=admin/client
 prefix.url.flow=admin/flow
 prefix.url.statistics=admin/statistics
 prefix.url.sync=admin/sync
+prefix.url.menu=admin/menu
 
 #\u65E5\u671F\u683C\u5F0F\u5316
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
@@ -130,11 +131,11 @@ sync.config.examSaveUrl=/api/exam/save
 sync.config.studentSaveUrl=/api/exam/student/save
 #\u036C\uFFFD\uFFFD\uFFFD\u2FE8
 sync.config.cardUploadUrl=/api/file/card/upload
-#第三方登录
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00BC
 sync.config.markLoginUrl=/open/mark/login
-#成绩回传考生数量
+#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
 sync.config.studentCountUrl=/api/exam/student/count
-#成绩回传
+#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD
 sync.config.studentScoreUrl=/api/exam/student/score
 
 

+ 2 - 2
distributed-print/src/test/java/com/qmth/distributed/print/CreateSchoolPrivilegeTest.java

@@ -28,7 +28,7 @@ public class CreateSchoolPrivilegeTest {
     @Test
     public void test(){
         QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(SysPrivilege::getSchoolId, SCHOOL_ID);
+//        queryWrapper.lambda().eq(SysPrivilege::getSchoolId, SCHOOL_ID);
         List<SysPrivilege> sysPrivileges = sysPrivilegeService.list(queryWrapper);
         Map<Long, Long> map = new HashMap<>();
         List<SysPrivilege> newList = new ArrayList<>();
@@ -36,7 +36,7 @@ public class CreateSchoolPrivilegeTest {
             Long id = SystemConstant.getDbUuid();
             map.put(sysPrivilege.getId(), id);
             sysPrivilege.setId(id);
-            sysPrivilege.setSchoolId(137l);
+//            sysPrivilege.setSchoolId(137l);
             newList.add(sysPrivilege);
         }
         for (SysPrivilege sysPrivilege : newList) {

+ 122 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/SysRolePrivilegeDto.java

@@ -0,0 +1,122 @@
+package com.qmth.teachcloud.common.bean.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.enums.PrivilegeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 修改角色privilege
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/10/29
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysRolePrivilegeDto implements Serializable {
+
+    @ApiModelProperty(value = "角色权限id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long rolePrivilegeId;
+
+    @ApiModelProperty(value = "学校名称")
+    String schoolName;
+
+    @ApiModelProperty(value = "学校编码")
+    String schoolCode;
+
+    @ApiModelProperty(value = "角色id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long roleId;
+
+    @ApiModelProperty(value = "角色名称")
+    String roleName;
+
+    @ApiModelProperty(value = "权限id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long privilegeId;
+
+    @ApiModelProperty(value = "权限名称")
+    String privilegeName;
+
+    @ApiModelProperty(value = "权限url")
+    String privilegeUrl;
+
+    @ApiModelProperty(value = "权限类别")
+    PrivilegeEnum privilegeType;
+
+    public Long getRolePrivilegeId() {
+        return rolePrivilegeId;
+    }
+
+    public void setRolePrivilegeId(Long rolePrivilegeId) {
+        this.rolePrivilegeId = rolePrivilegeId;
+    }
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+
+    public String getSchoolCode() {
+        return schoolCode;
+    }
+
+    public void setSchoolCode(String schoolCode) {
+        this.schoolCode = schoolCode;
+    }
+
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
+    public Long getPrivilegeId() {
+        return privilegeId;
+    }
+
+    public void setPrivilegeId(Long privilegeId) {
+        this.privilegeId = privilegeId;
+    }
+
+    public String getPrivilegeName() {
+        return privilegeName;
+    }
+
+    public void setPrivilegeName(String privilegeName) {
+        this.privilegeName = privilegeName;
+    }
+
+    public String getPrivilegeUrl() {
+        return privilegeUrl;
+    }
+
+    public void setPrivilegeUrl(String privilegeUrl) {
+        this.privilegeUrl = privilegeUrl;
+    }
+
+    public PrivilegeEnum getPrivilegeType() {
+        return privilegeType;
+    }
+
+    public void setPrivilegeType(PrivilegeEnum privilegeType) {
+        this.privilegeType = privilegeType;
+    }
+}

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -81,7 +81,7 @@ public class SystemConstant {
     public static final String REGULAR_EXPRESSION_OF_CODE = "[a-zA-Z0-9](\\w+)?-?(\\w+)?—?(\\w+)?(\\((\\w+)?-?(\\w+)?—?(\\w+)?\\))?(\\((\\w+)?-?(\\w+)?—?(\\w+)?\\))?(\\w+)?";
     public static final String REGULAR_EXPRESSION_OF_PHONE = "((\\d{3,4})|(\\(\\d{3,4}\\)-))?\\d{7,8}";
     public static final String SYS_USER = "sysUser";
-    public static final Long DEFAULT_PRIVILEGE_SCHOOL = 137L;
+//    public static final Long DEFAULT_PRIVILEGE_SCHOOL = 137L;
 
     /**
      * oss url过期时间

+ 20 - 23
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysPrivilege.java

@@ -1,12 +1,10 @@
 package com.qmth.teachcloud.common.entity;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.enums.PrivilegeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -21,19 +19,14 @@ import java.io.Serializable;
  * @since 2021-03-23
  */
 @TableName("sys_privilege")
-public class SysPrivilege extends BaseEntity implements Serializable {
+public class SysPrivilege implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "学校id")
     @JsonSerialize(using = ToStringSerializer.class)
-    @TableField("school_id")
-    private Long schoolId;
-
-    @ApiModelProperty(value = "机构id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    @TableField("org_id")
-    private Long orgId;
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id")
+    private Long id;
 
     @ApiModelProperty(value = "名称")
     @TableField(value = "name")
@@ -73,28 +66,32 @@ public class SysPrivilege extends BaseEntity implements Serializable {
     @TableField(value = "display")
     private Boolean display;
 
-    public Boolean getDisplay() {
-        return display;
+    @ApiModelProperty(value = "默认权限,0:否,1:是")
+    @TableField(value = "default_auth")
+    private Boolean defaultAuth;
+
+    public Long getId() {
+        return id;
     }
 
-    public void setDisplay(Boolean display) {
-        this.display = display;
+    public void setId(Long id) {
+        this.id = id;
     }
 
-    public Long getSchoolId() {
-        return schoolId;
+    public Boolean getDefaultAuth() {
+        return defaultAuth;
     }
 
-    public void setSchoolId(Long schoolId) {
-        this.schoolId = schoolId;
+    public void setDefaultAuth(Boolean defaultAuth) {
+        this.defaultAuth = defaultAuth;
     }
 
-    public Long getOrgId() {
-        return orgId;
+    public Boolean getDisplay() {
+        return display;
     }
 
-    public void setOrgId(Long orgId) {
-        this.orgId = orgId;
+    public void setDisplay(Boolean display) {
+        this.display = display;
     }
 
     public static long getSerialVersionUID() {

+ 22 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysPrivilegeMapper.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.common.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.common.bean.dto.SysRolePrivilegeDto;
 import com.qmth.teachcloud.common.entity.SysPrivilege;
 
 import java.util.List;
@@ -16,4 +17,25 @@ import java.util.List;
 public interface SysPrivilegeMapper extends BaseMapper<SysPrivilege> {
 
     List<SysPrivilege> getClientUrlByUserId(Long userId);
+
+    /**
+     * 获取所有角色权限
+     *
+     * @return
+     */
+    List<SysRolePrivilegeDto> getRolePrivilegeList();
+
+    /**
+     * 获取所有角色权限数量
+     *
+     * @return
+     */
+    Integer getRolePrivilegeCount();
+
+    /**
+     * 查找默认菜单权限
+     *
+     * @return
+     */
+    List<SysPrivilege> findByDefault();
 }

+ 22 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysPrivilegeService.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.dto.PrivilegeDto;
+import com.qmth.teachcloud.common.bean.dto.SysRolePrivilegeDto;
 import com.qmth.teachcloud.common.bean.result.MenuResult;
 import com.qmth.teachcloud.common.entity.SysPrivilege;
 
@@ -44,4 +45,25 @@ public interface SysPrivilegeService extends IService<SysPrivilege> {
     boolean existsPrivilege(String... urls);
 
     List<SysPrivilege> getClientUrlByUserId(Long userId);
+
+    /**
+     * 获取所有角色权限
+     *
+     * @return
+     */
+    List<SysRolePrivilegeDto> getRolePrivilegeList();
+
+    /**
+     * 获取所有角色权限数量
+     *
+     * @return
+     */
+    Integer getRolePrivilegeCount();
+
+    /**
+     * 查找默认菜单权限
+     *
+     * @return
+     */
+    List<SysPrivilege> findByDefault();
 }

+ 52 - 13
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysPrivilegeServiceImpl.java

@@ -7,11 +7,10 @@ import com.google.gson.Gson;
 import com.qmth.teachcloud.common.bean.dto.MenuDto;
 import com.qmth.teachcloud.common.bean.dto.MenuPrivilegeDto;
 import com.qmth.teachcloud.common.bean.dto.PrivilegeDto;
-import com.qmth.teachcloud.common.bean.result.MenuResult;
+import com.qmth.teachcloud.common.bean.dto.SysRolePrivilegeDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysPrivilege;
 import com.qmth.teachcloud.common.entity.SysRolePrivilege;
-import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.PrivilegeEnum;
 import com.qmth.teachcloud.common.enums.PrivilegePropertyEnum;
@@ -19,11 +18,13 @@ import com.qmth.teachcloud.common.mapper.SysPrivilegeMapper;
 import com.qmth.teachcloud.common.service.SysPrivilegeService;
 import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
 import com.qmth.teachcloud.common.util.JacksonUtil;
-import com.qmth.teachcloud.common.util.ServletUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.LinkedMultiValueMap;
 
+import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -37,10 +38,14 @@ import java.util.stream.Collectors;
  */
 @Service
 public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, SysPrivilege> implements SysPrivilegeService {
+    private final static Logger log = LoggerFactory.getLogger(SysPrivilegeServiceImpl.class);
 
     @Autowired
     private SysRolePrivilegeService sysRolePrivilegeService;
 
+    @Resource
+    SysPrivilegeMapper sysPrivilegeMapper;
+
     @Override
     @Deprecated
     public List<PrivilegeDto> listPrivilegeTree() {
@@ -82,17 +87,18 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
      */
     @Override
     public List<PrivilegeDto> listPrivilegeTreeNew() {
-        Long schoolId = SystemConstant.getHeadOrUserSchoolId();
+//        Long schoolId = SystemConstant.getHeadOrUserSchoolId();
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
         sysPrivilegeQueryWrapper.lambda()
                 .ne(SysPrivilege::getType, PrivilegeEnum.URL)
                 .eq(SysPrivilege::getDisplay, true)
-                .eq(SysPrivilege::getEnable, true);
-        if (Objects.isNull(schoolId)) {
-            sysPrivilegeQueryWrapper.lambda().isNull(SysPrivilege::getSchoolId);
-        } else {
-            sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId);
-        }
+                .eq(SysPrivilege::getEnable, true)
+                .eq(SysPrivilege::getDefaultAuth, true);
+//        if (Objects.isNull(schoolId)) {
+//            sysPrivilegeQueryWrapper.lambda().isNull(SysPrivilege::getSchoolId);
+//        } else {
+//            sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId);
+//        }
         List<SysPrivilege> sysPrivilegeList = this.list(sysPrivilegeQueryWrapper);
 
         LinkedMultiValueMap<Long, MenuDto> linkedMultiValueMap = new LinkedMultiValueMap<>();
@@ -169,7 +175,7 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
                 throw ExceptionResultEnum.ERROR.exception("名称已存在");
             }
             privilege.setId(SystemConstant.getDbUuid());
-            privilege.setCreateTime(System.currentTimeMillis());
+//            privilege.setCreateTime(System.currentTimeMillis());
             this.save(privilege);
         }
         // 修改
@@ -248,11 +254,13 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
      */
     @Override
     public boolean existsPrivilege(String... urls) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+//        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
         sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getUrl, urls)
                 .eq(SysPrivilege::getType, PrivilegeEnum.URL)
-                .eq(SysPrivilege::getSchoolId, sysUser.getSchoolId());
+                .eq(SysPrivilege::getDefaultAuth, true)
+                .eq(SysPrivilege::getEnable, true);
+//                .eq(SysPrivilege::getSchoolId, sysUser.getSchoolId());
         return this.count(sysPrivilegeQueryWrapper) > 0 ? true : false;
     }
 
@@ -260,4 +268,35 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
     public List<SysPrivilege> getClientUrlByUserId(Long userId) {
         return this.baseMapper.getClientUrlByUserId(userId);
     }
+
+    /**
+     * 获取所有角色权限
+     *
+     * @return
+     */
+    @Override
+    public List<SysRolePrivilegeDto> getRolePrivilegeList() {
+        return sysPrivilegeMapper.getRolePrivilegeList();
+    }
+
+
+    /**
+     * 获取所有角色权限数量
+     *
+     * @return
+     */
+    @Override
+    public Integer getRolePrivilegeCount() {
+        return sysPrivilegeMapper.getRolePrivilegeCount();
+    }
+
+    /**
+     * 查找默认菜单权限
+     *
+     * @return
+     */
+    @Override
+    public List<SysPrivilege> findByDefault() {
+        return sysPrivilegeMapper.findByDefault();
+    }
 }

+ 53 - 54
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -2,16 +2,12 @@ package com.qmth.teachcloud.common.service.impl;
 
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ZipUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
 import com.qmth.boot.core.enums.Platform;
-import com.qmth.boot.tools.signature.SignatureType;
-import com.qmth.teachcloud.common.SignatureEntityTest;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.auth.ExpireTimeBean;
 import com.qmth.teachcloud.common.bean.dto.MenuDto;
@@ -30,7 +26,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.tomcat.util.http.fileupload.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -279,12 +274,13 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
                     SysOrg org = Objects.nonNull(user.getOrgId()) ? commonCacheService.orgCache(user.getOrgId()) : null;
                     sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, privilegeIds)
                             .eq(SysPrivilege::getType, PrivilegeEnum.URL)
-                            .eq(SysPrivilege::getProperty, PrivilegePropertyEnum.AUTH);
-                    if (Objects.isNull(tbSchool)) {
-                        sysPrivilegeQueryWrapper.lambda().isNull(SysPrivilege::getSchoolId);
-                    } else {
-                        sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, user.getSchoolId());
-                    }
+                            .eq(SysPrivilege::getProperty, PrivilegePropertyEnum.AUTH)
+                            .eq(SysPrivilege::getDefaultAuth, true);
+//                    if (Objects.isNull(tbSchool)) {
+//                        sysPrivilegeQueryWrapper.lambda().isNull(SysPrivilege::getSchoolId);
+//                    } else {
+//                        sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, user.getSchoolId());
+//                    }
                     List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
                     authBean = new AuthBean(sysRoleList, sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toSet()), tbSchool, org);
                 }
@@ -325,7 +321,8 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getType, PrivilegeEnum.URL)
                 .eq(SysPrivilege::getProperty, privilegePropertyEnum)
                 .eq(SysPrivilege::getEnable, true)
-                .eq(SysPrivilege::getSchoolId, schoolId);
+                .eq(SysPrivilege::getDefaultAuth, true);
+//                .eq(SysPrivilege::getSchoolId, schoolId);
         List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
         return Objects.nonNull(sysPrivilegeList) && sysPrivilegeList.size() > 0 ? sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toSet()) : null;
     }
@@ -333,51 +330,53 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
     @Transactional
     @Override
     public void addSchoolPrivilege(Set<Long> schoolIdSet) {
-        Set<Long> pidSet = sysPrivilegeService.list().stream().map(SysPrivilege::getSchoolId).collect(Collectors.toSet());
-        // 权限表里没有该学校主键的
-        Set<Long> targetSchoolIdSet = schoolIdSet.stream().filter(e -> !pidSet.contains(e)).collect(Collectors.toSet());
+//        Set<Long> pidSet = sysPrivilegeService.list().stream().map(SysPrivilege::getSchoolId).collect(Collectors.toSet());
+//        // 权限表里没有该学校主键的
+//        Set<Long> targetSchoolIdSet = schoolIdSet.stream().filter(e -> !pidSet.contains(e)).collect(Collectors.toSet());
         QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(SysPrivilege::getSchoolId, SystemConstant.DEFAULT_PRIVILEGE_SCHOOL);
+//        queryWrapper.lambda().eq(SysPrivilege::getSchoolId, SystemConstant.DEFAULT_PRIVILEGE_SCHOOL);
+        queryWrapper.lambda().eq(SysPrivilege::getDefaultAuth, true)
+                .eq(SysPrivilege::getEnable, true);
         List<SysPrivilege> sysPrivileges = sysPrivilegeService.list(queryWrapper);
         if (sysPrivileges.size() == 0) {
             throw ExceptionResultEnum.ERROR.exception("默认学校权限不存在");
         }
-        for (Long newSchoolId : targetSchoolIdSet) {
-            // 一个学校一个学校的权限加 如果放在外面的话必须在map的key中关联进学校主键
-            Map<Long, Long> map = new HashMap<>();
-            List<SysPrivilege> newList = new ArrayList<>();
-            BasicSchool basicSchool = basicSchoolService.getById(newSchoolId);
-            if (Objects.isNull(basicSchool)) {
-                throw ExceptionResultEnum.ERROR.exception("未找到学校信息");
-            }
-            for (SysPrivilege sysPrivilege : sysPrivileges) {
-                SysPrivilege cell = new SysPrivilege();
-                BeanUtils.copyProperties(sysPrivilege,cell);
-                Long id = SystemConstant.getDbUuid();
-                map.put(cell.getId(), id);
-                cell.setId(id);
-                cell.setSchoolId(newSchoolId);
-                cell.setEnable(basicSchool.getEnable());
-                newList.add(cell);
-            }
-            for (SysPrivilege sysPrivilege : newList) {
-                if (Objects.nonNull(sysPrivilege.getParentId())) {
-                    sysPrivilege.setParentId(map.get(sysPrivilege.getParentId()));
-                }
-                String relateId = sysPrivilege.getRelated();
-                if (StringUtils.isNotBlank(relateId)) {
-                    String[] relateIds = relateId.split(",");
-                    List<String> newRelateIds = new ArrayList<>();
-                    for (String id : relateIds) {
-                        Long lid = Long.valueOf(id.trim());
-                        newRelateIds.add(String.valueOf(map.get(lid)));
-                    }
-                    String newRelateId = String.join(",", newRelateIds);
-                    sysPrivilege.setRelated(newRelateId);
-                }
-            }
-            sysPrivilegeService.saveBatch(newList);
-        }
+//        for (Long newSchoolId : targetSchoolIdSet) {
+//            // 一个学校一个学校的权限加 如果放在外面的话必须在map的key中关联进学校主键
+//            Map<Long, Long> map = new HashMap<>();
+//            List<SysPrivilege> newList = new ArrayList<>();
+//            BasicSchool basicSchool = basicSchoolService.getById(newSchoolId);
+//            if (Objects.isNull(basicSchool)) {
+//                throw ExceptionResultEnum.ERROR.exception("未找到学校信息");
+//            }
+//            for (SysPrivilege sysPrivilege : sysPrivileges) {
+//                SysPrivilege cell = new SysPrivilege();
+//                BeanUtils.copyProperties(sysPrivilege, cell);
+//                Long id = SystemConstant.getDbUuid();
+//                map.put(cell.getId(), id);
+//                cell.setId(id);
+//                cell.setSchoolId(newSchoolId);
+//                cell.setEnable(basicSchool.getEnable());
+//                newList.add(cell);
+//            }
+//            for (SysPrivilege sysPrivilege : newList) {
+//                if (Objects.nonNull(sysPrivilege.getParentId())) {
+//                    sysPrivilege.setParentId(map.get(sysPrivilege.getParentId()));
+//                }
+//                String relateId = sysPrivilege.getRelated();
+//                if (StringUtils.isNotBlank(relateId)) {
+//                    String[] relateIds = relateId.split(",");
+//                    List<String> newRelateIds = new ArrayList<>();
+//                    for (String id : relateIds) {
+//                        Long lid = Long.valueOf(id.trim());
+//                        newRelateIds.add(String.valueOf(map.get(lid)));
+//                    }
+//                    String newRelateId = String.join(",", newRelateIds);
+//                    sysPrivilege.setRelated(newRelateId);
+//                }
+//            }
+//            sysPrivilegeService.saveBatch(newList);
+//        }
     }
 
     /**
@@ -878,11 +877,11 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         loginResult.setTime(System.currentTimeMillis());
         String mobileNumber = sysUser.getMobileNumber();
         int pwdCount = sysUser.getPwdCount();
-        if (roleTypes.contains(RoleTypeEnum.ADMIN.name())){
+        if (roleTypes.contains(RoleTypeEnum.ADMIN.name())) {
             mobileNumber = sysUser.getLoginName() + "(特殊权限)";
             pwdCount = 1;
         }
-        loginResult.setUserLoginCheckResult(new UserLoginCheckResult(sysUser.getId(),mobileNumber,pwdCount));
+        loginResult.setUserLoginCheckResult(new UserLoginCheckResult(sysUser.getId(), mobileNumber, pwdCount));
         return loginResult;
     }
 

+ 48 - 0
teachcloud-common/src/main/resources/mapper/SysPrivilegeMapper.xml

@@ -21,6 +21,7 @@
         id,
         school_id, name, url, type, parent_id, sequence, property, related, create_id, create_time, update_id, update_time
     </sql>
+
     <select id="getClientUrlByUserId" resultMap="BaseResultMap">
         SELECT
             *
@@ -34,4 +35,51 @@
             sur.user_id = #{userId}
     </select>
 
+    <select id="getRolePrivilegeList" resultType="com.qmth.teachcloud.common.bean.dto.SysRolePrivilegeDto">
+        select
+        bs.name as schoolName,
+        bs.code as schoolCode,
+        sr.id as roleId,
+        sr.name as roleName,
+        sp.id as privilegeId,
+        sp.name as privilegeName,
+        sp.url as privilegeUrl,
+        sp.`type` as privilegeType,
+        srp.id as rolePrivilegeId
+        from
+        sys_role_privilege srp
+        join sys_privilege sp on
+        sp.id = srp.privilege_id
+        join sys_role sr on
+        sr.id = srp.role_id
+        join basic_school bs on
+        bs.id = sr.school_id
+        where
+        srp.enable = true
+        and sp.enable = true
+        and sr.enable = true
+        and srp.role_id <![CDATA[ <> ]]> 1
+        and srp.privilege_id <![CDATA[ > ]]> 100000
+    </select>
+
+    <select id="getRolePrivilegeCount" resultType="java.lang.Integer">
+        select count(1) from
+        sys_role_privilege srp
+        join sys_privilege sp on
+        sp.id = srp.privilege_id
+        join sys_role sr on
+        sr.id = srp.role_id
+        join basic_school bs on
+        bs.id = sr.school_id
+        where
+        srp.enable = true
+        and sp.enable = true
+        and sr.enable = true
+        and srp.role_id <![CDATA[ <> ]]> 1
+        and srp.privilege_id <![CDATA[ > ]]> 100000
+    </select>
+
+    <select id="findByDefault" resultType="com.qmth.teachcloud.common.entity.SysPrivilege">
+        select * from sys_privilege sp where sp.id <![CDATA[ < ]]> 100000
+    </select>
 </mapper>