Sfoglia il codice sorgente

1、课程调整时排除自动补签记录

Joburgess 5 anni fa
parent
commit
cee3994066

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -165,4 +165,15 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
      */
     List<Map<Integer, Integer>> countCourseStudentNum(@Param("courseIds") List<Long> courseIds);
+
+    /**
+     * @describe 检测学生是否存在指定课程的缴费记录
+     * @author Joburgess
+     * @date 2020/1/10
+     * @param courseScheduleId:
+     * @param userId:
+     * @return int
+     */
+    int checkStudentHaveCourse(@Param("courseScheduleId") Long courseScheduleId,
+                               @Param("userId") Integer userId);
 }

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

@@ -1367,6 +1367,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
         //需要生成课程课酬的课程计划
         List<CourseSchedule> needCreateCourseScheduleTeacherSalaryCourse = new ArrayList<>();
+        //需要重新学生缴费记录的课
+        List<CourseSchedule> needCreateStudentPaymentCourses = new ArrayList<>();
 
         //课程对应助教集合
         List<CourseScheduleTeacherSalary> teachingTeacherSalarys = courseScheduleDao.findTeachingTeachers(newCourseScheduleIds);
@@ -1389,6 +1391,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 teacherAttendanceDao.cleanCourseTeacherSignInfo(newCourseSchedule.getId());
             }
 
+            if (oldCourseSchedule.getEndClassTime().before(now)&&newCourseSchedule.getStartClassTime().after(now)){
+                needCreateStudentPaymentCourses.add(oldCourseSchedule);
+            }
+
             boolean courseTimeIsChange = false;
             int newCourseTime = DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), newCourseSchedule.getEndClassTime());
             int oldCourseTime = DateUtil.minutesBetween(oldCourseSchedule.getStartClassTime(), oldCourseSchedule.getEndClassTime());
@@ -1528,6 +1534,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if (!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)) {
             classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse, oldCourseSchedules);
         }
+        courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(needCreateStudentPaymentCourses);
 
         try {
             //推送课时调整

+ 18 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -165,16 +165,24 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 				return;
 			}
 			studentsWithClassGroup.forEach(classGroupStudent->{
-				courseSchedulesByClassGroup.forEach(courseSchedule -> {
-					CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment(
-							courseSchedule.getId(),
-							classGroupStudent.getUserId(),
-							zeroPrice,
-							courseSchedule.getClassGroupId());
-					courseScheduleStudentPayment.setGroupType(classGroupStudent.getGroupType());
-					courseScheduleStudentPayment.setMusicGroupId(classGroupStudent.getMusicGroupId());
-					courseScheduleStudentPayments.add(courseScheduleStudentPayment);
-				});
+				for (CourseSchedule courseSchedule : courseSchedulesByClassGroup) {
+					int i = courseScheduleStudentPaymentDao.checkStudentHaveCourse(courseSchedule.getId(), classGroupStudent.getUserId());
+					if(i>0){
+						continue;
+					}
+					if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.VIP)){
+
+					}else{
+						CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment(
+								courseSchedule.getId(),
+								classGroupStudent.getUserId(),
+								zeroPrice,
+								courseSchedule.getClassGroupId());
+						courseScheduleStudentPayment.setGroupType(classGroupStudent.getGroupType());
+						courseScheduleStudentPayment.setMusicGroupId(classGroupStudent.getMusicGroupId());
+						courseScheduleStudentPayments.add(courseScheduleStudentPayment);
+					}
+				}
 			});
 		});
 		courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);

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

@@ -226,6 +226,9 @@
 		GROUP BY
 			course_schedule_id_
 	</select>
+    <select id="checkStudentHaveCourse" resultType="int">
+		SELECT COUNT(id_) FROM course_schedule_student_payment WHERE course_schedule_id_=#{courseScheduleId} AND user_id_=#{userId}
+	</select>
 
     <delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN