Browse Source

sql优化

wangliang 6 months ago
parent
commit
0e1331e838

+ 4 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -1,7 +1,5 @@
 package com.qmth.distributed.print.business.service.impl;
 
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import com.qmth.boot.api.exception.ApiException;
@@ -23,7 +21,6 @@ import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatch;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
-import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
@@ -450,14 +447,16 @@ public class ActivitiServiceImpl implements ActivitiService {
         boolean myself = false;
         if (!CollectionUtils.isEmpty(taskList)) {
             for (Task t : taskList) {
-                if (Objects.nonNull(t.getAssignee()) && t.getAssignee().equals(sysUser.getId().toString())) {
+                if (Objects.nonNull(t.getAssignee()) && Objects.equals(t.getAssignee(),
+                        sysUser.getId().toString())) {
                     myself = true;
                     break;
                 } else {
                     List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(t.getId());
                     if (!CollectionUtils.isEmpty(identityLinkList)) {
                         for (IdentityLink i : identityLinkList) {
-                            if (i.getUserId().equals(sysUser.getId().toString())) {
+                            if (Objects.nonNull(i.getUserId()) && Objects.equals(i.getUserId(),
+                                    sysUser.getId().toString())) {
                                 myself = true;
                                 break;
                             }

+ 9 - 0
distributed-print/install/mysql/upgrade/3.4.2.sql

@@ -205,3 +205,12 @@ VALUES(1188, '共用接口-OBE专业', '/api/admin/basic/condition/list_professi
 
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('854', '指定用户添加课程', 'AssginCourseUser', 'BUTTON', '576', '6', 'AUTH', '1', '0', '1');
 UPDATE `sys_privilege` SET `related` = '157,1103' WHERE (`id` = '1111');
+
+-- 2024-12-3
+CREATE INDEX t_c_final_score_culture_program_id_IDX USING BTREE ON t_c_final_score (culture_program_id,exam_id,course_id,paper_number);
+
+CREATE INDEX t_c_usual_score_culture_program_id_IDX USING BTREE ON t_c_usual_score (culture_program_id,exam_id,course_id,paper_number);
+
+CREATE INDEX t_r_basic_info_program_id_IDX USING BTREE ON t_r_basic_info (culture_program_id,exam_id,course_id,paper_number);
+
+CREATE INDEX basic_exam_student_semester_id_IDX USING BTREE ON basic_exam_student (semester_id,school_id,course_id);

+ 3 - 2
teachcloud-obe/src/main/resources/mapper/TCUsualScoreMapper.xml

@@ -28,7 +28,6 @@
         LEFT JOIN sys_user su ON oco.user_id = su.id
         LEFT JOIN obe_culture_program ocp ON ocp.id = oco.culture_program_id
         LEFT JOIN t_c_final_score tcfs on tcfs.culture_program_id = oco.culture_program_id and tcfs.course_id = oco.course_id
-        LEFT JOIN basic_exam_student bes on bes.course_id = oco.course_id and bes.school_id = oco.school_id and bes.semester_id = bs.id
         LEFT JOIN basic_exam be on be.id = tcfs.exam_id
         <where>
                 oco.school_id = #{schoolId}
@@ -43,7 +42,9 @@
             </if>
             <if test="dpr != null">
                 <if test="dpr.requestUserId != null">
-                    AND bes.teacher_id = #{dpr.requestUserId}
+                    and exists (select bes.teacher_id from basic_exam_student bes where bes.course_id = oco.course_id
+                    and bes.school_id = oco.school_id
+                    and bes.semester_id = bs.id and bes.teacher_id = #{dpr.requestUserId})
                 </if>
                 <if test="dpr.courseUserId != null">
                     AND EXISTS( SELECT 1 FROM (select course_id from teach_course where user_id = #{dpr.courseUserId})