Browse Source

sql优化

zouxuan 1 year ago
parent
commit
31b8c43562

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -75,6 +75,9 @@ public class CourseSchedule  extends BaseEntity{
 	@ApiModelProperty(value = "合并|被合并课程编号(未合并为空,合并后主记录为自己,被合并课程记录合并课程id)")
 	private Long newCourseId;
 
+	@ApiModelProperty(value = "合并课标识,0未合并,1主课,2被合并课",required = false)
+	private Integer mergeFlag = 0;
+
 	private GroupType groupType;
 
 	/**  */
@@ -240,7 +243,15 @@ public class CourseSchedule  extends BaseEntity{
 	@ApiModelProperty("直播课分享模式,默认:NO_SHARE(未分享),OPEN(公开),PRIVATE(私密)")
 	private ShareModeEnum shareMode;
 
-    public Boolean getContinuousCourse() {
+	public void setMergeFlag(Integer mergeFlag) {
+		this.mergeFlag = mergeFlag;
+	}
+
+	public Integer getMergeFlag() {
+		return mergeFlag;
+	}
+
+	public Boolean getContinuousCourse() {
         return continuousCourse;
     }
 

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -5274,6 +5274,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				courseMergeInfo.setMusicGroupId(courseSchedule.getMusicGroupId());
 			}
 			courseSchedule.setNote("课程合并");
+			courseSchedule.setMergeFlag(2);
 		}
 		List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseScheduleIds(allCourseIds);
 
@@ -5302,6 +5303,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		List<CourseSchedule> courseSchedules=new ArrayList<>();
 		courseMergeInfo.setNewCourseId(courseMergeInfo.getId());
+		courseMergeInfo.setMergeFlag(1);
 		courseSchedules.add(courseMergeInfo);
 		List<CourseScheduleModifyLog> insertCourseScheduleModifyLogList = new ArrayList<>();
 

+ 15 - 7
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -52,6 +52,7 @@
         <result column="live_room_id_" property="liveRoomId" />
         <result column="continuous_course_" property="continuousCourse" />
         <result column="share_mode_" property="shareMode" />
+        <result column="merge_flag_" property="mergeFlag" />
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
@@ -195,7 +196,8 @@
         cs.cancel_mute_flag_,
         cs.live_room_id_,
         cs.continuous_course_,
-        cs.share_mode_
+        cs.share_mode_,
+        cs.merge_flag_
     </sql>
 
     <sql id="courseIgnore">
@@ -353,6 +355,9 @@
             <if test="shareMode != null">
                 share_mode_ = #{shareMode},
             </if>
+            <if test="mergeFlag != null">
+                merge_flag_ = #{mergeFlag},
+            </if>
         </set>
         WHERE id_ = #{id} and tenant_id_ = #{tenantId}
     </update>
@@ -1420,6 +1425,9 @@
                 <if test="item.liveRemind != null">
                     live_remind_ = #{item.liveRemind},
                 </if>
+                <if test="item.mergeFlag != null">
+                    merge_flag_ = #{item.mergeFlag},
+                </if>
                 update_time_ = NOW()
             </set>
             WHERE id_ = #{item.id} and tenant_id_ = #{item.tenantId}
@@ -2678,7 +2686,7 @@
         </if>
         <if test="searchType == 'TEACHER_ERR_ATTENDANCE'">
             AND ta.teacher_id_ = cs.actual_teacher_id_
-            AND cs.status_ = 'OVER' AND cs.group_type_ != 'LIVE'
+            AND cs.status_ = 'OVER' AND cs.group_type_ IN ('COMM','DEMO','MUSIC','PRACTICE','VIP')
             AND ((ta.sign_in_status_ = 0 OR ta.sign_in_status_ IS NULL OR ta.sign_out_status_ = 0 OR ta.sign_out_status_ IS NULL)
             AND ta.complaints_content_ IS NULL AND ta.dispose_content_ IS NULL)
             AND (ta.sign_out_status_ IS NOT NULL OR ta.sign_in_status_ IS NOT NULL)
@@ -2686,14 +2694,14 @@
             AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cssp.id_ IS NOT NULL
         </if>
         <if test="searchType == 'STUDENT_ERR_ATTENDANCE'">
-            AND cs.status_ = 'OVER' AND cs.group_type_ != 'LIVE'
+            AND cs.status_ = 'OVER' AND cs.group_type_ IN ('COMM','DEMO','MUSIC','PRACTICE','VIP')
             AND (sa.id_ IS NULL OR (sa.status_ = 'TRUANT' AND sa.visit_flag_ = 0))
             AND EXISTS (SELECT id_ FROM course_schedule_teacher_salary WHERE cs.id_=course_schedule_id_ AND settlement_time_ IS NULL)
             AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cssp.id_ IS NOT NULL
             AND (ta.sign_out_status_ IS NOT NULL OR ta.sign_in_status_ IS NOT NULL)
         </if>
         <if test="searchType == 'NO_ATTENDANCE'">
-            AND ta.teacher_id_ = cs.actual_teacher_id_ AND cs.group_type_ != 'LIVE'
+            AND ta.teacher_id_ = cs.actual_teacher_id_ AND cs.group_type_ IN ('COMM','DEMO','MUSIC','PRACTICE','VIP')
             AND cs.status_ = 'OVER' AND ta.sign_in_time_ IS NULL AND ta.sign_out_time_ IS NULL
             AND ta.complaints_content_ IS NULL AND ta.dispose_content_ IS NULL
             AND EXISTS (SELECT id_ FROM course_schedule_teacher_salary WHERE cs.id_=course_schedule_id_ AND settlement_time_ IS NULL)
@@ -4095,7 +4103,7 @@
     </resultMap>
     <sql id="queryCourseEvaluateSql">
         <where>
-            cs.status_ = 'OVER' AND ta.sign_in_time_ IS NOT NULL AND cs.group_type_ != 'LIVE'
+            cs.status_ = 'OVER' AND ta.sign_in_time_ IS NOT NULL AND cs.group_type_ IN ('COMM','DEMO','MUSIC','PRACTICE','VIP')
             AND cs.del_flag_ = '0' AND (cs.is_lock_ = 0 OR cs.is_lock_ IS NULL) AND cs.pre_course_flag_ != 1
             AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_) AND sa.id_ IS NOT NULL
             <if test="teacherId != null">
@@ -4484,7 +4492,7 @@
     </select>
 
     <select id="getNotStartOnlineNoLive" resultMap="CourseSchedule">
-        select * from course_schedule where status_ = 'NOT_START' and teach_mode_ = 'ONLINE' and type_ != 'LIVE'
+        select * from course_schedule where status_ = 'NOT_START' and teach_mode_ = 'ONLINE' and group_type_ IN ('COMM','DEMO','MUSIC','PRACTICE','VIP')
         and CONCAT(class_date_,' ',start_class_time_) &lt;= date_format(date_add(now(),interval #{beforeTime} minute),'%Y-%m-%d %H:%i:%s')
 
         and live_remind_ = 0
@@ -4492,7 +4500,7 @@
     </select>
 
     <select id="getEndTimeBetweenYesterdayAndNow" resultMap="CourseSchedule">
-        select * from course_schedule where status_ = 'OVER' and teach_mode_ = 'ONLINE' and type_ != 'LIVE'
+        select * from course_schedule where status_ = 'OVER' and teach_mode_ = 'ONLINE' and group_type_ IN ('COMM','DEMO','MUSIC','PRACTICE','VIP')
         and CONCAT(class_date_,' ',end_class_time_) &gt;= date_format(date_add(now(),interval -1 day),'%Y-%m-%d')
         and CONCAT(class_date_,' ',end_class_time_) &lt;= date_format(now(),'%Y-%m-%d %H:%i:%s')
     </select>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -242,7 +242,7 @@
 				course_schedule_student_payment cssp
 				LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
 			 WHERE
-				 cs.del_flag_ = '0' AND cs.pre_course_flag_ = 0 and cssp.tenant_id_ = #{tenantId} AND cs.is_lock_ = 0
+				 cs.del_flag_ = '0' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId} AND cs.is_lock_ = 0
 			   AND ( cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_ )
 			   AND cssp.group_type_ IN ('VIP', 'PRACTICE')
 			   AND DATE_FORMAT(cssp.create_time_, '%Y-%m-%d')&lt;=#{dayStr}