Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 năm trước cách đây
mục cha
commit
861da76e35

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

@@ -564,45 +564,45 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason) {
+    public boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason){
         MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(id);
-        if (musicGroupQuit != null) {
-
-            Date date = new Date();
+        if(musicGroupQuit == null){
+            throw new BizException("数据不存在");
+        }
+        Date date = new Date();
 
-            String musicGroupId = musicGroupQuit.getMusicGroupId();
-            Integer userId = musicGroupQuit.getUserId();
+        String musicGroupId = musicGroupQuit.getMusicGroupId();
+        Integer userId = musicGroupQuit.getUserId();
 
-            musicGroupQuit.setStatus(status);
-            musicGroupQuit.setReason(reason);
-            musicGroupQuit.setQuitDate(date);
-            musicGroupQuitDao.update(musicGroupQuit);
+        musicGroupQuit.setStatus(status);
+        musicGroupQuit.setReason(reason);
+        musicGroupQuit.setQuitDate(date);
+        musicGroupQuitDao.update(musicGroupQuit);
 
-            if (status == ApprovalStatus.APPROVED) {
-                classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
+        if (status == ApprovalStatus.APPROVED) {
+            classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
 
-                // 判断乐器是否是租赁
-                StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-                if (studentRegistration == null) {
-                    throw new BizException("用户注册信息不存在");
-                }
-                // 退团
-                studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
-                studentRegistration.setUpdateTime(date);
+            // 判断乐器是否是租赁
+            StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+            if (studentRegistration == null) {
+                throw new BizException("用户注册信息不存在");
+            }
+            // 退团
+            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
+            studentRegistration.setUpdateTime(date);
 
-                studentRegistrationDao.update(studentRegistration);
+            studentRegistrationDao.update(studentRegistration);
 
-                Integer subjectId = studentRegistration.getActualSubjectId();
-                MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
-                if (musicGroupSubjectPlan == null) {
-                    throw new BizException("乐团声部费用设置不存在");
-                }
-                if (musicGroupSubjectPlan.getDepositFee().doubleValue() > 0) {
-                    // 增加交易流水
-                    sysUserCashAccountDetailService.addCashAccountDetail(userId, musicGroupSubjectPlan.getDepositFee(),
-                            SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null,
-                            DealStatusEnum.SUCCESS, "退出乐团");
-                }
+            Integer subjectId = studentRegistration.getActualSubjectId();
+            MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+            if (musicGroupSubjectPlan == null) {
+                throw new BizException("乐团声部费用设置不存在");
+            }
+            if (musicGroupSubjectPlan.getDepositFee().doubleValue() > 0) {
+                // 增加交易流水
+                sysUserCashAccountDetailService.addCashAccountDetail(userId, musicGroupSubjectPlan.getDepositFee(),
+                        SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null,
+                        DealStatusEnum.SUCCESS, "退出乐团");
             }
         }
         return true;

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -81,6 +81,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(Objects.isNull(teacherAttendance)){
 			teacherAttendance=teacherSignOutDto.getTeacherAttendanceInfo();
 			teacherAttendance.setTeacherId(user.getId());
+		}else if(teacherAttendance.getSignInTime() != null && teacherAttendance.getSignOutTime() != null){
+			throw new BizException("当前课程已签到");
 		}else{
 			isAttendance=true;
 		}
@@ -93,7 +95,19 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		teacherAttendance.setMusicGroupId(currentCourseDetail.getMusicGroupId());
 		teacherAttendance.setClassGroupId(currentCourseDetail.getClassId());
 		teacherAttendance.setRemark(teacherSignOutDto.getTeacherAttendanceInfo().getRemark());
+		int advanceSignMinutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES));
 		Date date = new Date();
+		CourseSchedule courseSchedule = courseScheduleDao.get(teacherAttendance.getCourseScheduleId());
+		if(courseSchedule == null){
+
+		}
+		String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
+		String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+		String endClassTime = DateUtil.format(courseSchedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+		//上课时间
+		Date classStartDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+		Date classEndDateTime = DateUtil.stringToDate(classDate + " " + endClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+		Date addMinutes = DateUtil.addMinutes(classStartDateTime, advanceSignMinutes * -1);
 		if(teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_IN.getCode())){
 
 			if (currentCourseDetail.getEndClassTime().before(date)){
@@ -109,6 +123,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
 				result.put("signInStatus",0);
 			}else{
+				//是否在签到时间段内
+
 				Long timeGap=(date.getTime()-currentCourseDetail.getStartClassTime().getTime())/1000/60;
 				if(timeGap<= advanceSignInMinutes){
 					teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
@@ -173,7 +189,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		return result;
 	}
 
+
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void addTeacherAttendanceRecord(Integer courseScheduleId, Integer userId, SignStatusEnum signStatus, boolean updateCourseScheduleStatus) {
 		TeacherAttendance teacherAttendance=teacherAttendanceDao.findByTeacherAttendanceInfo(userId.longValue(),courseScheduleId.longValue());
 		ClassGroup classGroup = classGroupDao.findByCourseSchedule(courseScheduleId);
@@ -260,6 +278,10 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		}
 	}
 
+	private void studentAutoTruant(){
+
+	}
+
 	@Override
 	public PageInfo getTeacherPersonalAttendances(TeacherCloseQueryInfo queryInfo) {
 		PageInfo<TeacherPersonalAttendanceDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1068,6 +1068,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
 		studentApplyRefunds.setUserId(studentId.intValue());
 		studentApplyRefundsDao.insert(studentApplyRefunds);
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Set<Integer> roleIds = new HashSet<>(1);
+		roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
+		Map<String,Object> memo = new HashMap<>(2);
+		memo.put("Id",vipGroupId);
+		memo.put("type","VIPGROUP");
+		sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_COURSE,JSONObject.toJSONString(memo),sysUser.getUsername());
 	}
 
 	@Override

+ 8 - 7
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -257,7 +257,7 @@
         SELECT cg.id_,cg.name_,cg.student_num_,cg.img_ FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         <where>
-            cg.del_flag_ = 0
+            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
             <if test="userId != null">
                 AND cgsm.user_id_ = #{userId}
             </if>
@@ -271,13 +271,13 @@
         FROM class_group cg
         LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
-        WHERE FIND_IN_SET(cg.music_group_id_,#{vipIds}) AND cg.type_ = 'VIP' AND cg.del_flag_ = 0
+        WHERE FIND_IN_SET(cg.music_group_id_,#{vipIds}) AND cg.type_ = 'VIP' AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
         GROUP BY cg.music_group_id_
     </select>
     <select id="findGroupUsers" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.ImUserModel">
         SELECT su.id_,su.avatar_,su.username_ FROM class_group_student_mapper cgsm
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
-        WHERE cgsm.class_group_id_ = #{classGroupId} GROUP BY su.id_
+        WHERE cgsm.class_group_id_ = #{classGroupId} AND cgsm.status_ != 'QUIT' GROUP BY su.id_
     </select>
     <select id="findGroupTeacher" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.ImUserModel">
         SELECT su.id_,su.avatar_,su.username_ FROM class_group_teacher_mapper cgtm
@@ -333,7 +333,8 @@
     </select>
 
     <select id="countClassStudent" resultType="int">
-        select count(*) from class_group_student_mapper where class_group_id_=#{classGroupId}
+        select count(*) from class_group_student_mapper
+        where class_group_id_=#{classGroupId} AND cgsm.status_ != 'QUIT'
     </select>
 
     <select id="findAllClassGroupByMusicGroup" resultMap="ClassGroup">
@@ -483,7 +484,7 @@
         FROM
         class_group_student_mapper cgsm
         LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
-        WHERE cgsm.class_group_id_=#{classGroupId}
+        WHERE cgsm.class_group_id_=#{classGroupId} AND cgsm.status_ != 'QUIT'
     </select>
 
     <select id="queryNamesByClassId" resultType="java.util.Map">
@@ -524,7 +525,7 @@
     <select id="countStudyNum" resultType="java.util.Map">
         SELECT cgsm.class_group_id_ 'key',COUNT(cgsm.user_id_) 'value' FROM class_group_student_mapper cgsm
         LEFT JOIN student_registration sr ON (sr.user_id_ = cgsm.user_id_ AND sr.music_group_id_ = cgsm.music_group_id_)
-        WHERE FIND_IN_SET(cgsm.class_group_id_,#{classGroupIds}) AND cgsm.status_ != 'QUIT' AND
+        WHERE FIND_IN_SET(cgsm.class_group_id_,#{classGroupIds}) AND cgsm.status_ != 'QUIT' AND sr.music_group_status_ != 'QUIT' AND
         FIND_IN_SET(sr.music_group_status_,'NORMAL,LEAVE') GROUP BY cgsm.class_group_id_
     </select>
 
@@ -606,7 +607,7 @@
     <select id="queryStudentClassGroup" resultMap="ConditionDto">
         SELECT cg.id_,cg.name_,cg.student_num_ FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{teacherId} AND cg.del_flag_ = 0
+        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{teacherId} AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
     </select>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseListDto" id="CourseListDto">

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

@@ -82,7 +82,8 @@
     </insert>
     
     <select id="query" resultMap="ClassGroupStudentMapper" parameterType="map">
-		SELECT * FROM class_group_student_mapper where class_group_id_ = #{classGroupId} and user_id_ = #{userId} AND status_ IN ('NORMAL','LEAVE')
+		SELECT * FROM class_group_student_mapper
+		where class_group_id_ = #{classGroupId} and user_id_ = #{userId}  AND status_ != 'QUIT'
 	</select>
     <select id="findStudentNumByClassGroupId" resultType="string">
         SELECT
@@ -112,7 +113,7 @@
             LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
             LEFT JOIN music_group_student_fee_ mgsf ON cg.music_group_id_=mgsf.music_group_id_ AND su.id_ = mgsf.user_id_
         WHERE
-            cgsm.class_group_id_ = #{classGroupId}
+            cgsm.class_group_id_ = #{classGroupId} AND cgsm.status_ != 'QUIT'
         ORDER BY su.id_
         <include refid="global.limit"/>
     </select>
@@ -122,7 +123,7 @@
         FROM
             class_group_student_mapper cgsm
         WHERE
-            cgsm.class_group_id_ = #{classGroupId}
+            cgsm.class_group_id_ = #{classGroupId} AND cgsm.status_ != 'QUIT'
     </select>
     <select id="findStudentByCourse" resultMap="com.ym.mec.biz.dal.dao.StudentAttendanceDao.studentAttendanceViewUtilEntity">
         SELECT
@@ -148,7 +149,8 @@
     </update>
 
     <select id="findClassStudentMapperByUserIdAndClassGroupId" resultMap="ClassGroupStudentMapper">
-        SELECT * FROM class_group_student_mapper WHERE user_id_=#{userId} AND class_group_id_=#{classGroupId} AND status_ = 'NORMAL'
+        SELECT * FROM class_group_student_mapper
+        WHERE user_id_=#{userId} AND class_group_id_=#{classGroupId} AND status_ = 'NORMAL'
     </select>
     <select id="findByClassGroups" resultMap="ClassGroupStudentMapper">
         SELECT * FROM class_group_student_mapper WHERE class_group_id_ IN
@@ -166,7 +168,8 @@
     <select id="findClassStudentList" resultMap="com.ym.mec.biz.dal.dao.StudentRegistrationDao.StudentRegistration">
         SELECT sr.* FROM class_group_student_mapper cgsm
         LEFT JOIN student_registration sr ON (sr.user_id_ = cgsm.user_id_ AND sr.music_group_id_ = cgsm.music_group_id_)
-        WHERE cgsm.class_group_id_ = #{classGroupId} AND cgsm.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        WHERE cgsm.class_group_id_ = #{classGroupId} AND sr.music_group_status_ != 'QUIT'
+        AND cgsm.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
     </select>
 
     <select id="findHighClassGroupHasUser" resultMap="ClassGroupStudentMapper">

+ 10 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -321,7 +321,7 @@
         LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
         LEFT JOIN `subject` s ON cg.subject_id_=s.id_
-        WHERE cgsm.class_group_id_=#{classID} AND cgsm.status_!="DROP_OUT"
+        WHERE cgsm.class_group_id_=#{classID} AND cgsm.status_ != 'QUIT'
     </select>
 
     <select id="countStudentInClass" resultType="java.lang.Integer">
@@ -333,6 +333,7 @@
         <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
             #{item}
         </foreach>
+        AND cgsm.status_ != 'QUIT'
         GROUP BY user_id_
     </select>
 
@@ -729,7 +730,8 @@
         LEFT JOIN course_schedule cs ON cs.class_group_id_=cgsm.class_group_id_
         LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
         LEFT JOIN class_group cg ON cgsm.class_group_id_=cg.id_
-        WHERE cs.status_='NOT_START' AND cgsm.user_id_=#{userId} AND cs.class_date_=DATE_FORMAT(#{date},'%Y%m%d')
+        WHERE cs.status_='NOT_START' AND cgsm.user_id_=#{userId}
+        AND cs.class_date_=DATE_FORMAT(#{date},'%Y%m%d') AND cgsm.status_ != 'QUIT'
         ORDER BY cs.class_date_,cs.start_class_time_
     </select>
     <select id="findCourseScheduleByMusicGroup" resultMap="CourseSchedule">
@@ -1366,6 +1368,11 @@
     </delete>
     
     <select id="queryUnsignedStudentList" resultMap="StudentAttendance">
-        SELECT a.*,cg.current_class_times_ FROM (SELECT cgsm.user_id_,cs.actual_teacher_id_ teacher_id_,cs.id_ course_schedule_id_,cs.class_group_id_,cs.music_group_id_,cs.group_type_ FROM class_group_student_mapper cgsm right JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_ WHERE cgsm.status_ = 'NORMAL' AND CONCAT(cs.class_date_,' ',cs.end_class_time_) &lt;= now()) a LEFT JOIN student_attendance sa ON a.course_schedule_id_ = sa.course_schedule_id_ LEFT JOIN class_group cg ON a.class_group_id_ = cg.id_ WHERE sa.user_id_ IS null
+        SELECT a.*,cg.current_class_times_ FROM (SELECT cgsm.user_id_,cs.actual_teacher_id_ teacher_id_,cs.id_ course_schedule_id_,cs.class_group_id_,cs.music_group_id_,cs.group_type_
+        FROM class_group_student_mapper cgsm
+        right JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
+        WHERE cgsm.status_ = 'NORMAL' AND CONCAT(cs.class_date_,' ',cs.end_class_time_) &lt;= now()) a
+        LEFT JOIN student_attendance sa ON a.course_schedule_id_ = sa.course_schedule_id_
+        LEFT JOIN class_group cg ON a.class_group_id_ = cg.id_ WHERE sa.user_id_ IS null
     </select>
 </mapper>

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml

@@ -123,7 +123,7 @@
 		FROM
 			class_group_student_mapper cgsm
 			LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
-		WHERE cgsm.music_group_id_=#{demoGroupId} AND cgsm.group_type_='DEMO'
+		WHERE cgsm.music_group_id_=#{demoGroupId} AND cgsm.group_type_='DEMO' AND cgsm.status_ != 'QUIT'
 	</select>
     <select id="getOrganIdByUserId" resultType="java.lang.Integer">
 		select organ_id_ from sys_user where id_=#{userId}
@@ -164,7 +164,7 @@
 			count(cgsm.user_id_)
 		FROM
 			class_group_student_mapper cgsm
-		WHERE cgsm.music_group_id_=#{demoGroupId} AND cgsm.group_type_='DEMO'
+		WHERE cgsm.music_group_id_=#{demoGroupId} AND cgsm.group_type_='DEMO' AND cgsm.status_ != 'QUIT'
 	</select>
 
     <sql id="demoGroupQueryCondition">

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

@@ -199,7 +199,7 @@
 		FROM student_registration sr
 		LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
 		LEFT JOIN `subject` s ON sr.actual_subject_id_ = s.id_
-		WHERE sr.user_id_ = #{userId}
+		WHERE sr.user_id_ = #{userId} AND sr.music_group_status_ != 'QUIT'
 	</select>
 
 	<select id="queryPersonalMusicGroups" resultMap="queryUserMusicGroupsMap">
@@ -207,7 +207,7 @@
 		FROM student_registration sr
 		LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
 		LEFT JOIN `subject` s ON sr.actual_subject_id_ = s.id_
-		WHERE sr.user_id_ = #{userId}
+		WHERE sr.user_id_ = #{userId} AND sr.music_group_status_ != 'QUIT'
 		ORDER BY mg.update_time_ DESC LIMIT 1
 	</select>
 
@@ -215,12 +215,13 @@
 		SELECT COUNT(mg.id_)
 		FROM student_registration sr
 		LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
-		WHERE sr.user_id_ = #{userId}
+		WHERE sr.user_id_ = #{userId} AND sr.music_group_status_ != 'QUIT'
 	</select>
     <select id="countCourseByType" resultType="java.lang.Integer">
 		SELECT SUM(cg.total_class_times_) - SUM(cg.current_class_times_) FROM class_group_student_mapper cgsm
 		LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-		WHERE cgsm.user_id_ = #{userId} AND cg.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND cg.del_flag_ = 0
+		WHERE cgsm.user_id_ = #{userId} AND cg.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+		AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
 	</select>
 
 	<resultMap type="com.ym.mec.biz.dal.dto.BasicUserDto" id="BasicUserDto">
@@ -246,7 +247,7 @@
 			LEFT JOIN teacher t ON su.id_ = t.id_
 			LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
 		  WHERE
-			cgsp.user_id_ = #{studentId}
+			cgsp.user_id_ = #{studentId} AND cgsp.status_ != 'QUIT'
 		  GROUP BY su.id_
 	</select>
 
@@ -255,8 +256,9 @@
 		FROM student_registration sr
 		LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
 		<where>
+				sr.music_group_status_ != 'QUIT'
 			<if test="userId != null">
-				sr.user_id_ = #{userId}
+				AND sr.user_id_ = #{userId}
 			</if>
 			<if test="search != null">
 				AND mg.name_ LIKE CONCAT('%',#{search},'%')
@@ -279,7 +281,7 @@
 		SELECT su.id_,su.avatar_,su.username_ FROM class_group cg
 		LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
 		LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
-		WHERE cg.music_group_id_ = #{musicGroupId} GROUP BY su.id_
+		WHERE cg.music_group_id_ = #{musicGroupId}  AND cgsm.status_ != 'QUIT' GROUP BY su.id_
 	</select>
 	<select id="queryTeacherGroups" resultMap="com.ym.mec.biz.dal.dao.ClassGroupDao.imGroupModel">
 		SELECT mg.id_,mg.name_,mg.img_,GROUP_CONCAT(DISTINCT cgtm.user_id_) teacher_ids_

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -135,7 +135,7 @@
 
     <sql id="queryPageCondition">
         <where>
-            cgsm.class_group_id_=#{classGroupId}
+            cgsm.class_group_id_=#{classGroupId} AND cgsm.status_ != 'QUIT'
             <if test="filterStatus!=null">
                 AND cgsm.status_!=#{filterStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
@@ -180,7 +180,7 @@
             COUNT(user_id_) numberOfStudent
         FROM
             class_group_student_mapper
-        WHERE class_group_id_=#{classId}
+        WHERE class_group_id_=#{classId} AND status_ != 'QUIT'
         GROUP BY status_
     </select>
 

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

@@ -128,7 +128,7 @@
     </select>
     <sql id="findStudentsByOrganIdSql">
         <where>
-                su.user_type_ = "STUDENT"
+                su.user_type_ = "STUDENT" AND sr.music_group_status_ != 'QUIT'
             <if test="organId != null">
                 AND FIND_IN_SET(su.organ_id_,#{organId})
             </if>
@@ -152,7 +152,7 @@
         sr.parents_phone_,sr.current_class_,sr.current_grade_
         FROM sys_user su
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
-        WHERE su.id_ =#{userId} AND su.user_type_ LIKE CONCAT('%',"STUDENT",'%') LIMIT 1
+        WHERE su.id_ =#{userId} AND su.user_type_ LIKE CONCAT('%',"STUDENT",'%') AND sr.music_group_status_ != 'QUIT' LIMIT 1
     </select>
 
     <select id="findGoodsNamesByIds" resultType="string">
@@ -181,11 +181,12 @@
         LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
         LEFT JOIN music_group_subject_plan mgsp ON mg.id_ = mgsp.music_group_id_ AND s.id_ = mgsp.subject_id_
-        WHERE sr.user_id_=#{userId}
+        WHERE sr.user_id_=#{userId} AND sr.music_group_status_ != 'QUIT'
     </select>
 
     <sql id="studentManageCourseQueryCondition">
         <where>
+                cgsm.status_ != 'QUIT'
             <if test="studentId!=null">
                 and cgsm.user_id_=#{studentId}
             </if>
@@ -350,6 +351,7 @@
 
     <sql id="queryMusicGroupStudentSql">
         <where>
+                sr.music_group_status_ != 'QUIT'
             <if test="search != null and search != ''">
                 AND (su.real_name_ like CONCAT("%",#{search},"%") OR sr.parents_phone_ like CONCAT("%",#{search},"%"))
             </if>

+ 32 - 17
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -224,6 +224,7 @@
 
     <sql id="queryStudentDetailPageSql">
         <where>
+                sr.music_group_status_ != 'QUIT'
             <if test="musicGroupId != null">
                 AND sr.music_group_id_ = #{musicGroupId}
             </if>
@@ -275,7 +276,7 @@
 
     <select id="countPayNum" resultType="map">
         SELECT COUNT(DISTINCT user_id_) `value`,subject_id_ `key` FROM student_registration
-        WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = 2 GROUP BY subject_id_
+        WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = 2 AND music_group_status_ != 'QUIT' GROUP BY subject_id_
     </select>
 
     <resultMap id="queryFeeDetailMap" type="com.ym.mec.biz.dal.dto.StudentFeeDetailDto">
@@ -295,6 +296,7 @@
         LEFT JOIN student_payment_order_detail spod ON spod.payment_order_id_ = spo.id_
         LEFT JOIN goods g ON FIND_IN_SET(g.id_,spod.goods_id_list_)
         WHERE spo.type_ = 'APPLY' AND sr.user_id_ = #{studentId} AND sr.music_group_id_ = #{musicGroupId}
+        AND sr.music_group_status_ != 'QUIT'
         GROUP BY spo.id_,spod.id_
     </select>
 
@@ -302,6 +304,7 @@
     <select id="getNoClassStuBySubjectId" resultMap="StudentRegistration">
         SELECT * FROM student_registration
         WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = 2 AND class_group_id_=0
+        AND music_group_status_ != 'QUIT'
         <if test="actualSubjectId != null">
             AND FIND_IN_SET(actual_subject_id_,#{actualSubjectId})
         </if>
@@ -314,7 +317,9 @@
     <!-- 根据乐团和声部获取未分班人数 -->
     <select id="getNoClassStuCountByMusicGroupId" resultMap="getNoClassStuCountByMusicGroupId">
         SELECT actual_subject_id_ ,COUNT(*) nums FROM student_registration
-        WHERE music_group_id_ = #{musicGroupId} AND payment_status_=2 AND class_group_id_=0 GROUP BY actual_subject_id_;
+        WHERE music_group_id_ = #{musicGroupId} AND payment_status_=2 AND class_group_id_=0
+        AND music_group_status_ != 'QUIT'
+        GROUP BY actual_subject_id_;
     </select>
 
     <update id="updateByUserIdAndMusicGroupId" parameterType="com.ym.mec.biz.dal.entity.StudentRegistration">
@@ -328,12 +333,17 @@
     </update>
 
     <select id="queryStudentInfo" resultMap="StudentInfo">
-        SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_,sr.parents_name_,s.name_ subject_name_ FROM sys_user u left join
-        student_registration sr on u.id_ = sr.user_id_ left join subject s on sr.actual_subject_id_ = s.id_ where u.id_ = #{userId} order by sr.create_time_ desc limit 0,1
+        SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_,sr.parents_name_,s.name_ subject_name_
+        FROM sys_user u left join
+        student_registration sr on u.id_ = sr.user_id_ left join subject s on sr.actual_subject_id_ = s.id_
+        where u.id_ = #{userId} AND sr.music_group_status_ != 'QUIT'
+        order by sr.create_time_ desc limit 1
     </select>
 
     <select id="queryByUserIdAndMusicGroupId" resultMap="StudentRegistration">
-        select sr.*,su.id_card_no_ from student_registration sr left join sys_user su on su.id_ =sr.user_id_ where sr.music_group_id_ = #{musicGroupId} and sr.user_id_ = #{userId}
+        select sr.*,su.id_card_no_ from student_registration sr
+        left join sys_user su on su.id_ =sr.user_id_
+        where sr.music_group_id_ = #{musicGroupId} and sr.user_id_ = #{userId} AND sr.music_group_status_ != 'QUIT'
     </select>
 
     <!-- 根据乐团编号和手机号查询注册乐团注册信息-->
@@ -371,7 +381,7 @@
     <!-- 获取班级下的学生 -->
     <select id="findClassGroupStu" resultMap="StudentRegistration">
         SELECT * FROM student_registration
-        WHERE music_group_id_= #{musicGroupId}
+        WHERE music_group_id_= #{musicGroupId} AND music_group_status_ != 'QUIT'
         <if test="classGroupId != null">
             AND class_group_id_=#{classGroupId}
         </if>
@@ -379,7 +389,8 @@
 
     <!-- 根据班级和userId查询学生信息-->
     <select id="findStudentByClassGroupIdAndUserId" resultMap="StudentRegistration">
-        SELECT * FROM student_registration WHERE user_id_= #{userId} AND class_group_id_=#{classGroupId}
+        SELECT * FROM student_registration
+        WHERE user_id_= #{userId} AND class_group_id_=#{classGroupId} AND music_group_status_ != 'QUIT'
     </select>
 
     <!-- 获取乐团未分班的学生 -->
@@ -388,7 +399,7 @@
         <if test="actualSubjectId != null">
             AND actual_subject_id_ = #{actualSubjectId}
         </if>
-        AND payment_status_ = 2 AND class_group_id_ =0
+        AND payment_status_ = 2 AND class_group_id_ =0 AND music_group_status_ != 'QUIT'
     </select>
 
 
@@ -400,7 +411,7 @@
         <if test="actualSubjectId != null">
             AND sr.actual_subject_id_ = #{actualSubjectId}
         </if>
-        AND payment_status_ = 2;
+        AND payment_status_ = 2 AND sr.music_group_status_ != 'QUIT'
     </select>
 
     <!-- 根据注册id list查询报名学生的信息 -->
@@ -409,6 +420,7 @@
         <foreach collection="idList" item="id" index="index" open="(" close=")" separator=",">
             #{id}
         </foreach>
+        AND music_group_status_ != 'QUIT'
     </select>
 
     <insert id="batchInsert">
@@ -432,25 +444,26 @@
 
     <!-- 查询乐团userIdList的学生 -->
     <select id="findStudentListByUserIdList" resultMap="StudentRegistration">
-        SELECT * FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND user_id_ IN
+        SELECT * FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND music_group_status_ != 'QUIT'
+        AND user_id_ IN
         <foreach collection="userIdList" item="userId" index="index" open="(" close=")" separator=",">
             #{userId}
         </foreach>
     </select>
     <select id="countApplyNum" resultType="java.util.Map">
         SELECT sr.actual_subject_id_ 'key',COUNT(DISTINCT sr.user_id_) 'value' FROM student_registration sr
-        WHERE sr.music_group_id_ = #{musicGroupId}
+        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_ != 'QUIT'
         GROUP BY actual_subject_id_
     </select>
     <select id="findParentId" resultType="map">
         SELECT MAX(sr.user_id_) `key`,sr.parents_phone_ `value`
         FROM student_registration sr
-        WHERE FIND_IN_SET(sr.parents_phone_,#{parentPhones})
+        WHERE FIND_IN_SET(sr.parents_phone_,#{parentPhones}) AND sr.music_group_status_ != 'QUIT'
         GROUP BY sr.parents_phone_
     </select>
     <select id="queryStudentByMusicGroupId" resultMap="StudentRegistration">
         SELECT * FROM student_registration sr
-        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.payment_status_ = 2
+        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.payment_status_ = 2 AND sr.music_group_status_ != 'QUIT'
     </select>
 
     <!-- 批量开启缴费 -->
@@ -470,8 +483,10 @@
     </update>
     
     <select id="queryStudentNum" resultType="map">
-        SELECT count(sr.id_) total_num_,sum(case when sr.create_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_,sum(case when sr.music_group_status_ = 'QUIT' and sr.update_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) quit_num_ FROM student_registration sr left join music_group mg on sr.music_group_id_ = mg.id_
+        SELECT count(sr.id_) total_num_,sum(case when sr.create_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_,sum(case when sr.music_group_status_ = 'QUIT' and sr.update_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) quit_num_
+        FROM student_registration sr left join music_group mg on sr.music_group_id_ = mg.id_
         <where>
+            sr.music_group_status_ != 'QUIT'
     		<if test="organId != null">
     			mg.organ_id_ = #{organId}
     		</if>
@@ -479,7 +494,7 @@
     </select>
     <select id="findMapByMusicGroupId" resultType="java.util.Map">
         SELECT sr.user_id_ 'key',MIN(sr.parents_phone_) 'value' FROM student_registration sr
-        WHERE sr.music_group_id_ = #{musicGroupId}
+        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_ != 'QUIT'
         <if test="paymentStatus != null">
             AND sr.payment_status_ = #{paymentStatus}
         </if>
@@ -487,7 +502,7 @@
     </select>
     <select id="findIdMapByMusicGroupId" resultType="java.util.Map">
         SELECT sr.user_id_ 'key',MIN(sr.user_id_) 'value' FROM student_registration sr
-        WHERE sr.music_group_id_ = #{musicGroupId}
+        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_ != 'QUIT'
         <if test="paymentStatus != null">
             AND sr.payment_status_ = #{paymentStatus}
         </if>
@@ -504,7 +519,7 @@
 
     <!-- 获取乐团学生人数 -->
     <select id="findMusicGroupStudentNum" resultType="integer">
-        SELECT Count(*) FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = '2'
+        SELECT Count(*) FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = '2' AND music_group_status_ != 'QUIT'
     </select>
 
     <update id="updateUser">

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

@@ -160,7 +160,7 @@
         FROM
             student_registration sr
             LEFT JOIN `subject` s ON sr.actual_subject_id_=s.id_
-            WHERE sr.music_group_id_=#{musicGroupId} AND s.del_flag_ = 0
+            WHERE sr.music_group_id_=#{musicGroupId} AND s.del_flag_ = 0 AND sr.music_group_status_ != 'QUIT'
             AND sr.user_id_ IN
             <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
                 #{userId}

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -248,7 +248,7 @@
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
         LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
-        WHERE cgtm.user_id_ = #{teacherId} AND su.id_ IS NOT NULL
+        WHERE cgtm.user_id_ = #{teacherId} AND su.id_ IS NOT NULL AND sr.music_group_status_ != 'QUIT'
         <if test="search != null">
             AND su.username_ LIKE CONCAT('%',#{search},'%')
         </if>
@@ -442,7 +442,7 @@
     </select>
     <sql id="queryMusicGroupStudentApplySql">
         <where>
-            sr.music_group_id_ = #{musicGroupId} AND (spo.type_ = 'APPLY' OR spo.type_ IS NULL)
+            sr.music_group_id_ = #{musicGroupId} AND (spo.type_ = 'APPLY' OR spo.type_ IS NULL) AND sr.music_group_status_ != 'QUIT'
             <if test="subjectId != null">
                 AND sr.actual_subject_id_ = #{subjectId}
             </if>

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -118,7 +118,7 @@
         LEFT JOIN sys_user su ON su.id_ = cs.actual_teacher_id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = vg.id_
         <where>
-            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL
+            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL AND cgsm.status_ != 'QUIT'
             <if test="studentId != null">
                 AND cgsm.user_id_ = #{studentId}
             </if>
@@ -137,7 +137,7 @@
         LEFT JOIN course_schedule cs ON cs.music_group_id_ = vg.id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = vg.id_
         <where>
-            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL
+            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL AND cgsm.status_ != 'QUIT'
             <if test="studentId != null">
                 AND cgsm.user_id_ = #{studentId}
             </if>