wangliang 4 rokov pred
rodič
commit
17d3b29114

+ 11 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -22,10 +22,19 @@ public interface SysOrgService extends IService<SysOrg> {
 
     /**
      * 根据外键查找学院信息
-     * @param schoolId 学校id
+     *
+     * @param schoolId    学校id
      * @param collegeCode 学院编号
      * @param collegeName 学院名称
      * @return 学院数据
      */
-    SysOrg findByForeignKey(Long schoolId,String collegeCode,String collegeName);
+    SysOrg findByForeignKey(Long schoolId, String collegeCode, String collegeName);
+
+    /**
+     * 查询机构ids
+     *
+     * @param orgId
+     * @return
+     */
+    List<Long> findCollegeIds(Long orgId);
 }

+ 20 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -100,12 +101,27 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     @Override
     public SysOrg findByForeignKey(Long schoolId, String collegeCode, String collegeName) {
         List<SysOrg> tbSchoolCollegeList = this.list(new QueryWrapper<SysOrg>().lambda()
-                .eq(SysOrg::getSchoolId,schoolId)
-                .eq(SysOrg::getCode,collegeCode)
-                .eq(SysOrg::getName,collegeName));
-        if (tbSchoolCollegeList.size() != 1){
+                .eq(SysOrg::getSchoolId, schoolId)
+                .eq(SysOrg::getCode, collegeCode)
+                .eq(SysOrg::getName, collegeName));
+        if (tbSchoolCollegeList.size() != 1) {
             throw ExceptionResultEnum.ERROR.exception("学院基础数据信息异常");
         }
         return tbSchoolCollegeList.get(0);
     }
+
+    /**
+     * 查询机构ids
+     *
+     * @param orgId
+     * @return
+     */
+    @Override
+    public List<Long> findCollegeIds(Long orgId) {
+        QueryWrapper<SysOrg> sysOrgQueryWrapper = new QueryWrapper<>();
+        sysOrgQueryWrapper.lambda().eq(SysOrg::getParentId, orgId)
+                .eq(SysOrg::getEnable, true);
+        List<SysOrg> sysOrgList = this.list(sysOrgQueryWrapper);
+        return Objects.nonNull(sysOrgList) ? sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toList()) : null;
+    }
 }

+ 1 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamCourseCollegeTeacherMapper.java

@@ -21,7 +21,7 @@ import java.util.List;
  */
 public interface TAExamCourseCollegeTeacherMapper extends BaseMapper<TAExamCourseCollegeTeacher> {
 
-    IPage<TeacherClassRankResult> listClassRank(@Param("page") Page<TeacherClassRankResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("inspectCollegeId") Long inspectCollegeId);
+    IPage<TeacherClassRankResult> listClassRank(@Param("page") Page<TeacherClassRankResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("inspectCollegeId") Long inspectCollegeId,@Param("collegeIds") List<Long> collegeIds);
 
     IPage<TeacherMyClassRankResult> listMyClassRank(@Param("page") Page<TeacherMyClassRankResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("teacherId") Long teacherId, @Param("courseCode") String courseCode, @Param("inspectCollegeId") Long inspectCollegeId);
 

+ 12 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseCollegeTeacherServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.report.business.bean.result.TAExamCourseTeacherResult;
 import com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult;
@@ -15,6 +16,7 @@ import com.qmth.teachcloud.report.business.service.TAExamCourseCollegeTeacherSer
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -32,12 +34,20 @@ public class TAExamCourseCollegeTeacherServiceImpl extends ServiceImpl<TAExamCou
     @Resource
     private TAExamCourseCollegeTeacherMapper taExamCourseCollegeTeacherMapper;
 
+    @Resource
+    SysOrgService sysOrgService;
+
     @Override
     public IPage<TeacherClassRankResult> listClassRank(SemesterEnum semester, Long examId, String courseCode, Long inspectCollegeId, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Page<TeacherClassRankResult> page = new Page<>(pageNumber, pageSize);
-        IPage<TeacherClassRankResult> listPage = taExamCourseCollegeTeacherMapper.listClassRank(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, courseCode, inspectCollegeId);
-        return listPage;
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        List<Long> collegeIds = sysOrgService.findCollegeIds(sysUser.getOrgId());
+        if (Objects.nonNull(collegeIds) && collegeIds.size() > 0) {
+            return taExamCourseCollegeTeacherMapper.listClassRank(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, courseCode, inspectCollegeId, collegeIds);
+        } else {
+            return taExamCourseCollegeTeacherMapper.listClassRank(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, courseCode, inspectCollegeId, Arrays.asList(sysUser.getOrgId()));
+        }
     }
 
     @Override

+ 2 - 6
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseServiceImpl.java

@@ -96,12 +96,8 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
     @Override
     public IPage<TAExamCourseResult> surveyAspointsList(IPage<Map> iPage, Long schoolId, Long examId, String courseCode, PublishStatusEnum publishStatus, SemesterEnum semester) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        QueryWrapper<SysOrg> sysOrgQueryWrapper = new QueryWrapper<>();
-        sysOrgQueryWrapper.lambda().eq(SysOrg::getParentId, sysUser.getOrgId())
-                .eq(SysOrg::getEnable, true);
-        List<SysOrg> sysOrgList = sysOrgService.list(sysOrgQueryWrapper);
-        if (Objects.nonNull(sysOrgList) && sysOrgList.size() > 0) {
-            List<Long> collegeIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toList());
+        List<Long> collegeIds = sysOrgService.findCollegeIds(sysUser.getOrgId());
+        if (Objects.nonNull(collegeIds) && collegeIds.size() > 0) {
             return taExamCourseMapper.surveyAspointsList(iPage, schoolId, examId, courseCode, Objects.nonNull(publishStatus) ? publishStatus.name() : null, Objects.nonNull(semester) ? semester.name() : null, collegeIds);
         } else {
             return taExamCourseMapper.surveyAspointsList(iPage, schoolId, examId, courseCode, Objects.nonNull(publishStatus) ? publishStatus.name() : null, Objects.nonNull(semester) ? semester.name() : null, Arrays.asList(sysUser.getOrgId()));

+ 2 - 6
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamCourseServiceImpl.java

@@ -108,12 +108,8 @@ public class TBExamCourseServiceImpl extends ServiceImpl<TBExamCourseMapper, TBE
     @Override
     public List<TBExamCourseResult> findCourseList(Long schoolId, Long examId, boolean inspect) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        QueryWrapper<SysOrg> sysOrgQueryWrapper = new QueryWrapper<>();
-        sysOrgQueryWrapper.lambda().eq(SysOrg::getParentId, sysUser.getOrgId())
-                .eq(SysOrg::getEnable, true);
-        List<SysOrg> sysOrgList = sysOrgService.list(sysOrgQueryWrapper);
-        if (Objects.nonNull(sysOrgList) && sysOrgList.size() > 0) {
-            List<Long> collegeIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toList());
+        List<Long> collegeIds = sysOrgService.findCollegeIds(sysUser.getOrgId());
+        if (Objects.nonNull(collegeIds) && collegeIds.size() > 0) {
             return tbExamCourseMapper.findCourseList(schoolId, examId, inspect, collegeIds);
         } else {
             return tbExamCourseMapper.findCourseList(schoolId, examId, inspect, Arrays.asList(sysUser.getOrgId()));

+ 7 - 0
teachcloud-report-business/src/main/resources/mapper/TAExamCourseCollegeTeacherMapper.xml

@@ -31,6 +31,12 @@
             <if test="inspectCollegeId != null">
                 and a.inspect_college_id = #{inspectCollegeId}
             </if>
+            <if test="collegeIds != null and collegeIds != ''">
+                and a.teach_college_id in
+                <foreach collection="collegeIds" item="collegeId" index="index" open="(" separator="," close=")">
+                    #{collegeId}
+                </foreach>
+            </if>
         </where>
     </select>
 
@@ -146,6 +152,7 @@
             </if>
         </where>
     </select>
+
     <select id="listTeacherClassRank"
             resultType="com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult">
         SELECT