Преглед на файлове

Merge branch 'mec_update_2021-11-02' of http://git.dayaedu.com/yonge/mec into im_update

zouxuan преди 3 години
родител
ревизия
0da08fb386

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -548,7 +548,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("乐团信息查询失败");
         }
         Map<Integer, String> receiverList = null;
-        if(musicGroup.getStatus() == MusicGroupStatusEnum.PRE_APPLY){
+        if(musicGroup.getStatus() == MusicGroupStatusEnum.PRE_APPLY || musicGroup.getStatus() == MusicGroupStatusEnum.PRE_BUILD_FEE){
             List<StudentPreRegistration> studentPreRegistrationList = studentPreRegistrationDao.queryByMusicGroupId(musicGroupId);
             receiverList = studentPreRegistrationList.stream().collect(Collectors.toMap(StudentPreRegistration::getUserId, StudentPreRegistration::getPhone));
         }else {

+ 5 - 5
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -866,12 +866,12 @@
 		SELECT s.user_id_,su.username_,o.name_ organ_name_,
 		COUNT(CASE WHEN cssp.group_type_ = 'VIP' AND cs.status_ != 'NOT_START' THEN 1 ELSE NULL END) vip_over_num_,
 		COUNT(CASE WHEN cssp.group_type_ = 'VIP' AND cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) vip_not_start_num_,
-		GROUP_CONCAT(DISTINCT (CASE WHEN cssp.group_type_ = 'VIP' AND cs.status_ != 'NOT_START' THEN sut.id_ ELSE NULL END) ORDER BY cs.class_date_ ASC,start_class_time_ ASC) vip_over_teacher_ids_,
-		GROUP_CONCAT(DISTINCT (CASE WHEN cssp.group_type_ = 'VIP' AND cs.status_ != 'NOT_START' THEN sut.real_name_ ELSE NULL END) ORDER BY cs.class_date_ ASC,start_class_time_ ASC) vip_over_teacher_names_,
+		GROUP_CONCAT(DISTINCT (CASE WHEN cssp.group_type_ = 'VIP' AND cs.status_ != 'NOT_START' THEN sut.id_ ELSE NULL END) ORDER BY cs.class_date_ DESC,start_class_time_ DESC) vip_over_teacher_ids_,
+		GROUP_CONCAT(DISTINCT (CASE WHEN cssp.group_type_ = 'VIP' AND cs.status_ != 'NOT_START' THEN sut.real_name_ ELSE NULL END) ORDER BY cs.class_date_ DESC,start_class_time_ DESC) vip_over_teacher_names_,
 		COUNT(CASE WHEN cssp.group_type_ = 'PRACTICE' AND cs.status_ != 'NOT_START' THEN 1 ELSE NULL END) practice_over_num_,
 		COUNT(CASE WHEN cssp.group_type_ = 'PRACTICE' AND cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) practice_not_start_num_,
-		GROUP_CONCAT(DISTINCT (CASE WHEN cssp.group_type_ = 'PRACTICE' AND cs.status_ != 'NOT_START' THEN sut.id_ ELSE NULL END) ORDER BY cs.class_date_ ASC,start_class_time_ ASC) practice_over_teacher_ids_,
-		GROUP_CONCAT(DISTINCT (CASE WHEN cssp.group_type_ = 'PRACTICE' AND cs.status_ != 'NOT_START' THEN sut.real_name_ ELSE NULL END) ORDER BY cs.class_date_ ASC,start_class_time_ ASC) practice_over_teacher_names_,
+		GROUP_CONCAT(DISTINCT (CASE WHEN cssp.group_type_ = 'PRACTICE' AND cs.status_ != 'NOT_START' THEN sut.id_ ELSE NULL END) ORDER BY cs.class_date_ DESC,start_class_time_ DESC) practice_over_teacher_ids_,
+		GROUP_CONCAT(DISTINCT (CASE WHEN cssp.group_type_ = 'PRACTICE' AND cs.status_ != 'NOT_START' THEN sut.real_name_ ELSE NULL END) ORDER BY cs.class_date_ DESC,start_class_time_ DESC) practice_over_teacher_names_,
 		s.teacher_id_,ste.real_name_
 		FROM student s
 		LEFT JOIN course_schedule_student_payment cssp FORCE INDEX(group_type_) ON cssp.user_id_ = s.user_id_
@@ -882,7 +882,7 @@
 		LEFT JOIN organization o ON o.id_ = su.organ_id_
 		WHERE cssp.group_type_ IN ('VIP','PRACTICE')
 		<if test="organId != null">
-			AND FIND_IN_SET(su.organ_id_,#{organId})
+			AND FIND_IN_SET(su.organ_id_,#{organId}) AND FIND_IN_SET(cs.organ_id_,#{organId})
 		</if>
 		GROUP BY s.user_id_
 	</select>

+ 0 - 9
mec-biz/src/main/resources/config/mybatis/StudentInstrumentMapper.xml

@@ -167,9 +167,6 @@
         SELECT si.*,su.username_ studentName,su.phone_ phone,o.name_ organName FROM student_instrument si
         LEFT JOIN sys_user su ON su.id_ = si.student_id_
         LEFT JOIN organization o ON o.id_ = si.organ_id_
-        <if test="musicGroupId != null and  musicGroupId != ''">
-            LEFT JOIN student_payment_order spo ON spo.id_ = si.order_id_ AND spo.music_group_id_ = #{musicGroupId} AND spo.status_ = 'SUCCESS'
-        </if>
         <include refid="queryPageSql"/>
         <include refid="global.limit"/>
     </select>
@@ -179,17 +176,11 @@
         SELECT COUNT(si.id_)
         FROM student_instrument si
         LEFT JOIN sys_user su ON su.id_ = si.student_id_
-        <if test="musicGroupId != null and  musicGroupId != ''">
-            LEFT JOIN student_payment_order spo ON spo.id_ = si.order_id_ AND spo.music_group_id_ = #{musicGroupId} AND spo.status_ = 'SUCCESS'
-        </if>
         <include refid="queryPageSql"/>
     </select>
 
     <sql id="queryPageSql">
         <where>
-            <if test="musicGroupId != null and  musicGroupId != ''">
-                AND (si.order_id_ IS NULL OR spo.id_ IS NOT NULL)
-            </if>
             <if test="studentId != null">
                 AND si.student_id_ = #{studentId}
             </if>

+ 7 - 9
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -1812,11 +1812,10 @@
         <result property="hasInstrument" column="has_instrument_"/>
     </resultMap>
     <select id="queryMusicStudentInstrument" resultMap="MusicStudentInstrumentDto">
-        SELECT sr.user_id_,su.username_,su.phone_,su.avatar_,CASE WHEN spo.id_ IS NULL THEN 0 ELSE 1 END has_instrument_ FROM student_registration sr
+        SELECT sr.user_id_,su.username_,su.phone_,su.avatar_,CASE WHEN si.id_ IS NULL THEN 0 ELSE 1 END has_instrument_ FROM student_registration sr
         LEFT JOIN student_instrument si ON sr.user_id_ = si.student_id_ AND si.del_flag_ = 0 AND si.end_time_ > NOW()
-        LEFT JOIN student_payment_order spo ON spo.id_ = si.order_id_ AND spo.music_group_id_ = sr.music_group_id_ AND spo.status_ = 'SUCCESS'
         LEFT JOIN sys_user su ON su.id_ = sr.user_id_
-        WHERE sr.music_group_status_ = 'NORMAL' AND sr.music_group_id_ = #{musicGroupId} AND (si.order_id_ IS NULL OR spo.id_ IS NOT NULL)
+        WHERE sr.music_group_status_ = 'NORMAL' AND sr.music_group_id_ = #{musicGroupId}
         <if test="search != null and search != ''">
             AND (sr.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
@@ -1827,8 +1826,7 @@
         SELECT COUNT(DISTINCT sr.user_id_) FROM student_registration sr
         LEFT JOIN sys_user su ON su.id_ = sr.user_id_
         LEFT JOIN student_instrument si ON sr.user_id_ = si.student_id_ AND si.del_flag_ = 0 AND si.end_time_ > NOW()
-        LEFT JOIN student_payment_order spo ON spo.id_ = si.order_id_ AND spo.music_group_id_ = sr.music_group_id_ AND spo.status_ = 'SUCCESS'
-        WHERE sr.music_group_status_ = 'NORMAL' AND sr.music_group_id_ = #{musicGroupId} AND (si.order_id_ IS NULL OR spo.id_ IS NOT NULL)
+        WHERE sr.music_group_status_ = 'NORMAL' AND sr.music_group_id_ = #{musicGroupId}
         <if test="search != null and search != ''">
             AND (sr.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
@@ -1839,10 +1837,10 @@
         <result property="id" column="music_group_id_"/>
     </resultMap>
     <select id="countInstrument" resultMap="MusicGroup">
-        SELECT sr.music_group_id_,COUNT(DISTINCT sr.user_id_) pay_num_,SUM(CASE WHEN spo.id_ IS NULL THEN 0 ELSE 1 END) has_instrument_num_ FROM student_registration sr
-        LEFT JOIN student_instrument si ON sr.user_id_ = si.student_id_ AND si.del_flag_ = 0 AND si.end_time_ > NOW()
-        LEFT JOIN student_payment_order spo ON spo.id_ = si.order_id_ AND spo.music_group_id_ = sr.music_group_id_ AND spo.status_ = 'SUCCESS'
-        WHERE sr.music_group_status_ = 'NORMAL' AND (si.order_id_ IS NULL OR spo.id_ IS NOT NULL) AND sr.music_group_id_ IN
+        SELECT sr.music_group_id_,COUNT(DISTINCT sr.user_id_) pay_num_,SUM(CASE WHEN si.id_ IS NULL THEN 0 ELSE 1 END) has_instrument_num_ FROM student_registration sr
+        LEFT JOIN (SELECT * FROM student_instrument WHERE del_flag_ = 0 AND end_time_ > NOW()
+        GROUP BY student_id_ ) si ON sr.user_id_ = si.student_id_ AND si.del_flag_ = 0 AND si.end_time_ > NOW()
+        WHERE sr.music_group_status_ = 'NORMAL' AND sr.music_group_id_ IN
         <foreach collection="musicGroupIds" separator="," item="id" open="(" close=")">
             #{id}
         </foreach>