Browse Source

新增系统内置角色

wangliang 3 years ago
parent
commit
5c8d1b5d6f

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

@@ -64,7 +64,7 @@ public class MenuCustomController {
     @RequestMapping(value = "/custom/list", method = RequestMethod.POST)
     public Result rolePrivilegeCountSync() {
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
-        sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getEnable, true)
+        sysPrivilegeQueryWrapper.lambda()
                 .eq(SysPrivilege::getEnable, true)
                 .eq(SysPrivilege::getDefaultAuth, false)
                 .ne(SysPrivilege::getType, PrivilegeEnum.URL)

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

@@ -12,7 +12,7 @@ spring.application.name=distributed-print
 #\u6570\u636E\u6E90\u914D\u7F6E
 db.host=localhost
 db.port=3306
-db.name=distributed-v3.0.1-test
+db.name=distributed-v3.1.0
 db.username=root
 db.password=123456789
 

+ 10 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/PrefixUrlDomain.java

@@ -41,6 +41,16 @@ public class PrefixUrlDomain implements Serializable {
 
     String notify;
 
+    String sso;
+
+    public String getSso() {
+        return sso;
+    }
+
+    public void setSso(String sso) {
+        this.sso = sso;
+    }
+
     public String getNotify() {
         return notify;
     }

+ 11 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysRole.java

@@ -5,7 +5,6 @@ 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.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -57,6 +56,17 @@ public class SysRole extends BaseEntity implements Serializable {
     @NotEmpty(message = "权限集合不能为空")
     private Long[] privilegeIds;
 
+    @ApiModelProperty(value = "是否系统内置角色,1:是,0:不是")
+    private Boolean defaultRole;
+
+    public Boolean getDefaultRole() {
+        return defaultRole;
+    }
+
+    public void setDefaultRole(Boolean defaultRole) {
+        this.defaultRole = defaultRole;
+    }
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/RoleTypeEnum.java

@@ -18,7 +18,9 @@ public enum RoleTypeEnum {
     CUSTOM("自定义"),
     OFFICE_TEACHER("教务处老师"),
     PRESIDENT("学院院长"),
-    TEACHER("任课老师");
+    TEACHER("任课老师"),
+    MARKER("评卷员"),
+    MARKER_LEADER("课组长");
 
     RoleTypeEnum(String desc) {
         this.desc = desc;

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysRoleMapper.java

@@ -22,4 +22,5 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
 
     IPage<SysRole> listPage(Page<SysRole> page, @Param("schoolId") Long schoolId, @Param("name") String name, @Param("enable") Boolean enable);
 
+    List<SysRole> listRolesBySchoolId(@Param("schoolId") Long schoolId);
 }

+ 17 - 18
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -271,17 +271,16 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
 
     @Override
     public List<SysRole> listToUser() {
-        Object object = ServletUtil.getRequestHeaderSchoolIdByNotVaild();
-
-        QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(SysRole::getEnable, true);
-        if (Objects.isNull(object)) {
-            queryWrapper.lambda().isNull(SysRole::getSchoolId);
-        } else {
-            Long schoolId = Long.valueOf(object.toString());
-            queryWrapper.lambda().eq(SysRole::getSchoolId, schoolId);
-        }
-        return this.list(queryWrapper);
+        String schoolId = (String) ServletUtil.getRequestHeaderSchoolIdByNotVaild();
+//        QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
+//        queryWrapper.lambda().eq(SysRole::getEnable, true);
+//        if (Objects.isNull(object)) {
+//            queryWrapper.lambda().isNull(SysRole::getSchoolId);
+//        } else {
+//            Long schoolId = Long.valueOf(object.toString());
+//            queryWrapper.lambda().eq(SysRole::getSchoolId, schoolId);
+//        }
+        return this.baseMapper.listRolesBySchoolId(Objects.nonNull(schoolId) ? Long.valueOf(schoolId) : null);
     }
 
     /**
@@ -322,23 +321,23 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                     PushUserTrack markerTrack = new PushUserTrack();
                     PushUserTrack headerTrack = new PushUserTrack();
                     List<PushUserTrack> specialUserTrack = pushUserTrackService.list(new QueryWrapper<PushUserTrack>().lambda().eq(PushUserTrack::getUserId, sysUser.getId()));
-                    if (specialUserTrack.size() > 0){
+                    if (specialUserTrack.size() > 0) {
                         List<PushUserTrack> markerTrackList = specialUserTrack.stream().filter(e -> SpecialPrivilegeEnum.MARKER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
                         List<PushUserTrack> headerTrackList = specialUserTrack.stream().filter(e -> SpecialPrivilegeEnum.SUBJECT_HEADER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
-                        if (markerTrackList.size() == 1){
+                        if (markerTrackList.size() == 1) {
                             markerTrack = markerTrackList.get(0);
                         }
-                        if (headerTrackList.size() == 1){
+                        if (headerTrackList.size() == 1) {
                             headerTrack = headerTrackList.get(0);
                         }
                     }
 
                     // 更新轨迹数据
                     // 评卷员身份轨迹记录
-                    if (SystemConstant.longNotNull(markerTrack.getId())){
+                    if (SystemConstant.longNotNull(markerTrack.getId())) {
                         // 更新
                         markerTrack.updateInfo(requestUser.getId());
-                    }else {
+                    } else {
                         // 新增
                         markerTrack.insertInfo(requestUser.getId());
                     }
@@ -347,10 +346,10 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                     markerTrack.setIdentify(SpecialPrivilegeEnum.MARKER);
 
                     // 科组长身份轨迹记录
-                    if (SystemConstant.longNotNull(markerTrack.getId())){
+                    if (SystemConstant.longNotNull(markerTrack.getId())) {
                         // 更新
                         headerTrack.updateInfo(requestUser.getId());
-                    }else {
+                    } else {
                         // 新增
                         headerTrack.insertInfo(requestUser.getId());
                     }

+ 24 - 4
teachcloud-common/src/main/resources/mapper/SysRoleMapper.xml

@@ -13,17 +13,20 @@
         <result column="create_time" property="createTime" />
         <result column="update_id" property="updateId" />
         <result column="update_time" property="updateTime" />
+        <result column="default_role" property="defaultRole" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time from sys_role
+        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role from sys_role
     </sql>
+
     <select id="listRolesByUserId" resultMap="BaseResultMap">
         SELECT distinct
             a.id,
             a.name,
-            a.type
+            a.type,
+            a.default_role
         FROM
             sys_role a
                 JOIN
@@ -31,8 +34,9 @@
         WHERE
             b.user_id = #{id}
     </select>
+
     <select id="listPage" resultMap="BaseResultMap">
-        <include refid="Base_Column_List"></include>
+        select * from(<include refid="Base_Column_List"></include>
         <where>
             <if test="schoolId != null and schoolId != ''">
                 and school_id = #{schoolId}
@@ -44,7 +48,23 @@
                 and enable = #{enable}
             </if>
         </where>
-        ORDER BY create_time DESC
+        union
+        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role from sys_role
+        where default_role = 1 and type <![CDATA[ <> ]]> 'ADMIN'
+            ) t
+        ORDER BY t.create_time DESC
     </select>
 
+    <select id="listRolesBySchoolId" resultMap="BaseResultMap">
+        <include refid="Base_Column_List" />
+        <where>
+            enable = 1
+            <if test="schoolId != null and schoolId != ''">
+                and school_id = #{schoolId}
+            </if>
+        </where>
+        union
+        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role from sys_role
+        where default_role = 1 and type <![CDATA[ <> ]]> 'ADMIN'
+    </select>
 </mapper>

+ 54 - 0
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SsoApiController.java

@@ -0,0 +1,54 @@
+package com.qmth.teachcloud.report.api;
+
+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.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+import java.net.URLDecoder;
+import java.util.Optional;
+
+/**
+ * <p>
+ * 教研分析单点登录前端控制器
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-04-26
+ */
+@Api(tags = "教研分析单点登录接口Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sso}")
+@Validated
+public class SsoApiController {
+    private final static Logger log = LoggerFactory.getLogger(SsoApiController.class);
+
+    @ApiOperation(value = "单点登录接口")
+    @ApiResponses({@ApiResponse(code = 200, message = "单点登录接口", response = Object.class)})
+    @RequestMapping(value = "/login", method = RequestMethod.POST)
+    @Aac(auth = BOOL.FALSE)
+    public Result login(@ApiParam(value = "接收登录数据信息", required = true) @RequestBody String result) throws IOException {
+        Optional.ofNullable(result).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("数据为空"));
+        String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
+        log.info("login进来了,result:{}", decodeJson);
+//        BasicSemesterParams basicSemesterParams = JacksonUtil.readJson(decodeJson, BasicSemesterParams.class);
+//        Optional.ofNullable(basicSemesterParams).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("转换后的数据为空"));
+//        basicSemesterParams.validParams();
+//        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+//        return ResultUtil.ok(basicSemesterService.saveBasicSemesterCommon(basicSemesterParams, basicSchool.getId(), null));
+
+        return ResultUtil.ok(true);
+    }
+}

+ 1 - 0
teachcloud-report/src/main/resources/application-dev.properties

@@ -98,6 +98,7 @@ prefix.url.reportExamStudent=report/exam_student
 prefix.url.datasource=report/datasource
 prefix.url.analyze=report/analyze
 prefix.url.open=report/open
+prefix.url.sso=report/sso
 
 #\u65E5\u5FD7\u914D\u7F6E
 com.qmth.logging.root-level=info