Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
7ce8f2b2c6

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -897,4 +897,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     List<CourseSchedule> findSurplusCourseWithGroup(@Param("groupType") GroupType groupType,
                                                     @Param("groupId") String groupId);
+
+    /**
+     * @describe 统计班级上已结束课时数
+     * @author Joburgess
+     * @date 2019/12/25
+     * @param classGroupId: 班级编号
+     * @return int
+     */
+    int countClassGroupOverCourseNum(@Param("classGroupId") Integer classGroupId);
 }

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

@@ -116,7 +116,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				true,
 				currentCourseDetail.getSchoolId().intValue());
 		currentCourseDetail.setOnlyNormal(yesOrNoEnum);
-		currentCourseDetail.setCurrentClassTimes(currentCourseDetail.getCurrentClassTimes()+1);
+		currentCourseDetail.setCurrentClassTimes(courseScheduleDao.countClassGroupOverCourseNum(currentCourseDetail.getClassId()));
 
 		currentCourseDetail.setCurrentTime(new Date());
 		currentCourseDetail.setAdvanceSignInMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES)));
@@ -1318,9 +1318,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						.filter(userId->!foundInCurrentCourseTeachingTeacherIds.contains(userId))
 						.collect(Collectors.toList());
 				//被替换的助教列表
-				beReplaceTeacherIds=currentCourseTeachingTeacherIds.stream()
+				List<Integer> beReplaceTeachingTeacherIds=currentCourseTeachingTeacherIds.stream()
 						.filter(userId->!foundInCurrentCourseTeachingTeacherIds.contains(userId))
 						.collect(Collectors.toList());
+				beReplaceTeacherIds.addAll(beReplaceTeachingTeacherIds);
 
 				newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
 

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

@@ -1755,18 +1755,43 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         Date date = new Date();
         List<Integer> months = subFeeSettingDto.getMonths();
-        //删除乐团相关付费周期
-        musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
-        if(months != null && months.size() > 0){
-            //批量插入
-            musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
-            Integer num = musicGroupStudentFeeDao.countStudentNoPayNum(musicGroupId);
-            if(num > 0){
-                throw new BizException("缴费周期更新失败,当前乐团有未缴费的学员");
-            }
-            //修改学员下次缴费日期
-            musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
-        }
+        
+        //判断缴费日历是否修改
+		boolean isModifiedOfCalender = false;
+
+		List<MusicGroupPaymentCalender> calenderList = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
+		if (months.size() == calenderList.size()) {
+			for (MusicGroupPaymentCalender cal : calenderList) {
+				if (!months.contains(cal.getPaymentMonth())) {
+					isModifiedOfCalender = true;
+					break;
+				}
+			}
+		} else {
+			isModifiedOfCalender = true;
+		}
+
+		if (isModifiedOfCalender) {
+			
+			Integer num = musicGroupStudentFeeDao.countStudentNoPayNum(musicGroupId);
+			if (num > 0) {
+				throw new BizException("缴费周期更新失败,当前乐团有未缴费的学员");
+			}
+			
+			// 删除乐团相关付费周期
+			musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
+			musicGroupStudentFeeDao.deleteByMusicGroupId(musicGroupId);
+			if (months != null && months.size() > 0) {
+				// 批量插入
+				musicGroupPaymentCalenderDao.batchAdd(months, musicGroupId);
+				
+				//生成学员费用表
+		        List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
+		        if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
+		            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+		        }
+			}
+		}
         musicGroupDao.update(musicGroup);
         //修改课程里面的教学点
         if(!musicGroup.getSchoolId().equals(musicGroup.getSchoolId())){

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

@@ -1776,4 +1776,7 @@
             AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > NOW()
             AND cs.music_group_id_ = #{groupId}
     </select>
+    <select id="countClassGroupOverCourseNum" resultType="int">
+        SELECT COUNT(*) FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ',end_class_time_)&lt;NOW()
+    </select>
 </mapper>

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

@@ -408,7 +408,7 @@
         <result property="isActive" column="isActive_"/>
     </resultMap>
     <select id="queryMusicGroupStudent" resultMap="MusicGroupStudentsDto">
-        SELECT sr.user_id_,su.username_ real_name_,su.gender_,su.phone_ parents_phone_,sr.current_grade_,
+        SELECT sr.user_id_,su.username_ real_name_,su.gender_,su.phone_ parents_phone_,sr.current_grade_,sr.payment_status_,
         sr.current_class_,sr.music_group_status_,mgsf.next_payment_date_,mgsf.course_fee_,
         s.name_ subject_name_,sr.music_group_id_,case when su.password_ is null then 0 else 1 end isActive_,
         IF(DATE_FORMAT(sr.create_time_,'%Y-%m-%d') > DATE_FORMAT(mg.payment_expire_date_,'%Y-%m-%d'),1,0) is_new_student_