Răsfoiți Sursa

查找用户优先展示课程绑定的评卷老师

wangliang 2 ani în urmă
părinte
comite
2b76c190e5

+ 4 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java

@@ -30,7 +30,7 @@ import javax.validation.Valid;
  */
 @Api(tags = "组织架构Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/org")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_SYS + "/org")
 public class SysOrgController {
 
     @Resource
@@ -48,8 +48,9 @@ public class SysOrgController {
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(value = "specialPrivilege", required = false) SpecialPrivilegeEnum specialPrivilege,
-                       @RequestParam(value = "withoutPrintingRoom", required = false) boolean withoutPrintingRoom) {
-        return ResultUtil.ok(sysOrgService.listOrgTree(specialPrivilege, withoutPrintingRoom));
+                       @RequestParam(value = "withoutPrintingRoom", required = false) boolean withoutPrintingRoom,
+                       @ApiParam(value = "科目编码") @RequestParam(required = false) String courseCode) {
+        return ResultUtil.ok(sysOrgService.listOrgTree(specialPrivilege, withoutPrintingRoom, courseCode));
     }
 
     /**

+ 11 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/OrgDto.java

@@ -3,11 +3,8 @@ 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.bean.result.SysUserResult;
-import com.qmth.teachcloud.common.config.DictionaryConfig;
-import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
-import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -44,6 +41,17 @@ public class OrgDto {
     @ApiModelProperty(value = "校区编码")
     private String campusCode;
 
+    @ApiModelProperty(value = "课程下系统用户")
+    private List<SysUserResult> courseUserList;
+
+    public List<SysUserResult> getCourseUserList() {
+        return courseUserList;
+    }
+
+    public void setCourseUserList(List<SysUserResult> courseUserList) {
+        this.courseUserList = courseUserList;
+    }
+
     public String getCampusCode() {
         return campusCode;
     }

+ 9 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysUserMapper.java

@@ -124,4 +124,13 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      * @return
      */
     List<SysUserResult> findSysUserResultListNew(@Param("schoolId") Long schoolId, @Param("roleIds") Set<Long> roleIds);
+
+    /**
+     * 查找科目下命题老师
+     *
+     * @param schoolId
+     * @param courseCode
+     * @return
+     */
+    List<SysUserResult> findCourseSysUserResultList(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode);
 }

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -27,9 +27,10 @@ public interface SysOrgService extends IService<SysOrg> {
      *
      * @param specialPrivilegeEnum 特殊权限
      * @param withoutPrintingRoom  是否去除印刷室机构
+     * @param courseCode
      * @return 查询到的机构
      */
-    List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum, boolean withoutPrintingRoom);
+    List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum, boolean withoutPrintingRoom, String courseCode);
 
     /**
      * 获取所有机构
@@ -163,6 +164,7 @@ public interface SysOrgService extends IService<SysOrg> {
 
     /**
      * 处理导入机构数据
+     *
      * @param file 文件
      * @throws Exception e
      */

+ 9 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java

@@ -274,4 +274,13 @@ public interface SysUserService extends IService<SysUser> {
      * @return
      */
     List<SysUserResult> findSysUserResultListNew(Long schoolId, SpecialPrivilegeEnum specialPrivilegeEnum);
+
+    /**
+     * 查找科目下命题老师
+     *
+     * @param schoolId
+     * @param courseCode
+     * @return
+     */
+    List<SysUserResult> findCourseSysUserResultList(Long schoolId, String courseCode);
 }

+ 7 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -65,7 +65,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     private CommonCacheService commonCacheService;
 
     @Override
-    public List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum, boolean withoutPrintingRoom) {
+    public List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum, boolean withoutPrintingRoom, String courseCode) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
 //        List<SysUserResult> sysUserResultList = sysUserService.findSysUserResultList();
 //        List<SysUserResult> finalSysUserResultList = sysUserResultList.stream()
@@ -124,7 +124,12 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         for (Long key : deleteKeys) {
             map.remove(key);
         }
-        return new ArrayList<>(map.values());
+        List<OrgDto> list = new ArrayList<>(map.values());
+        if ((specialPrivilegeEnum == SpecialPrivilegeEnum.MARKER || specialPrivilegeEnum == SpecialPrivilegeEnum.COMPOSITE) && Objects.nonNull(courseCode)) {
+            List<SysUserResult> resultList = sysUserService.findCourseSysUserResultList(schoolId, courseCode);
+            list.get(0).setCourseUserList(resultList);
+        }
+        return list;
     }
 
     /**

+ 12 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -1103,6 +1103,18 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return sysUserMapper.findSysUserResultListNew(schoolId, roleIds);
     }
 
+    /**
+     * 查找科目下命题老师
+     *
+     * @param schoolId
+     * @param courseCode
+     * @return
+     */
+    @Override
+    public List<SysUserResult> findCourseSysUserResultList(Long schoolId, String courseCode) {
+        return sysUserMapper.findCourseSysUserResultList(schoolId, courseCode);
+    }
+
     /**
      * 批量处理用户信息帮助类
      *

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

@@ -706,7 +706,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         if (orgId == null) {
             return null;
         }
-        List<OrgDto> orgDtos = sysOrgService.listOrgTree(null, false);
+        List<OrgDto> orgDtos = sysOrgService.listOrgTree(null, false, null);
         Set<Long> stringSet = new HashSet<>();
         stringSet.add(orgId);
         stringSet = getOrgIds(stringSet, orgDtos, orgId);

+ 36 - 0
teachcloud-common/src/main/resources/mapper/SysUserMapper.xml

@@ -449,4 +449,40 @@
         order by
         su.login_name
     </select>
+
+    <select id="findCourseSysUserResultList" resultType="com.qmth.teachcloud.common.bean.result.SysUserResult">
+        select
+            su.id as id,
+            su.login_name as loginName,
+            su.real_name as realName,
+            su.mobile_number as mobileNumber,
+            so.id as orgId
+        from
+            sys_user su
+                join sys_org so on
+                so.id = su.org_id
+                join sys_user_role sur on
+                sur.user_id = su.id
+                join sys_role sr on
+                sr.id = sur.role_id
+                join teach_course tc on
+                tc.user_id = su.id
+                join basic_course bc on bc.id = tc.basic_course_id
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                and tc.school_id = #{schoolId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and bc.code = #{courseCode}
+            </if>
+        </where>
+        group by
+            su.id,
+            su.login_name,
+            su.real_name,
+            su.mobile_number,
+            so.id
+        order by
+            su.login_name
+    </select>
 </mapper>

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysOrgController.java

@@ -42,7 +42,7 @@ public class SysOrgController {
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     public Result list() {
-        List<OrgDto> orgDtoList = sysOrgService.listOrgTree(null, false);
+        List<OrgDto> orgDtoList = sysOrgService.listOrgTree(null, false, null);
         return ResultUtil.ok(orgDtoList);
     }