فهرست منبع

1、课程调整时排除自动补签记录
2、删除请假时班级学生状态更新代码
3、小课过期课程调整生成后加入学生缴费信息
4、vip课点名添加开课前时间限制
5、学生端可购买小课获取条件调整

Joburgess 5 سال پیش
والد
کامیت
32d7a3d182

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupGiveCourseSortDto.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
 
 import java.util.Date;
 
@@ -14,6 +15,16 @@ public class VipGroupGiveCourseSortDto extends CourseScheduleStudentPayment {
 
     private Date courseEndTime;
 
+    private TeachModeEnum teachMode;
+
+    public TeachModeEnum getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(TeachModeEnum teachMode) {
+        this.teachMode = teachMode;
+    }
+
     public Date getCourseStartTime() {
         return courseStartTime;
     }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleStudentPayment.java

@@ -55,6 +55,11 @@ public class CourseScheduleStudentPayment {
 		this.classGroupId = classGroupId;
 	}
 
+	public CourseScheduleStudentPayment(Long id, Long courseScheduleId) {
+		this.id = id;
+		this.courseScheduleId = courseScheduleId;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

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

@@ -1102,6 +1102,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         checkNewCourseSchedules(courseSchedules, false);
         courseScheduleDao.batchUpdate(courseSchedules);
         classGroupService.updateClassGroupInfo(classGroup.getId());
+        courseScheduleStudentPaymentService.updateVipGiveCourse(vipGroup.getId());
     }
 
     @Override
@@ -1543,6 +1544,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(needCreateStudentPaymentCourses);
         }
 
+        if(oldCourseScheduleList.get(0).getGroupType().equals(GroupType.VIP)){
+            courseScheduleStudentPaymentService.updateVipGiveCourse(Long.valueOf(oldCourseScheduleList.get(0).getMusicGroupId()));
+        }
+
         try {
             //推送课时调整
             Set<Integer> teacherIds = newCourseSchedules.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet());
@@ -1563,6 +1568,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         } catch (Exception e) {
             e.printStackTrace();
         }
+
 //		Set<Integer> roleIds = new HashSet<>(1);
 //		roleIds.add(SysUserRole.SECTION_MANAGER);
 //		classGroupDao.get();

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

@@ -221,6 +221,7 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void updateVipGiveCourse(Long vipGroupId) {
 		List<VipGroupGiveCourseSortDto> vipGroupSortCourseByGroup = courseScheduleStudentPaymentDao.findVipGroupSortCourseByGroup(vipGroupId.toString());
 		Map<BigDecimal, Long> expectPriceCountMap = vipGroupSortCourseByGroup.stream()
@@ -230,6 +231,24 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 		if(zeroPriceNum<=0){
 			return;
 		}
-		
+
+		List<CourseScheduleStudentPayment> needUpdatePayments=new ArrayList<>();
+
+		List<VipGroupGiveCourseSortDto> zeroExpectPricePayments = vipGroupSortCourseByGroup.stream()
+				.filter(vipGroupGiveCourseSortDto -> vipGroupGiveCourseSortDto.getExpectPrice().compareTo(zero)==0)
+				.collect(Collectors.toList());
+		vipGroupSortCourseByGroup.sort(Comparator.comparing(VipGroupGiveCourseSortDto::getCourseStartTime).reversed());
+		for (int i=0;i<vipGroupSortCourseByGroup.size();i++) {
+			VipGroupGiveCourseSortDto vipGroupGiveCourseSortDto=vipGroupSortCourseByGroup.get(i);
+			VipGroupGiveCourseSortDto zeroVipGroupGiveCoursePayment = zeroExpectPricePayments.get(i);
+			if(!vipGroupGiveCourseSortDto.getId().equals(zeroVipGroupGiveCoursePayment)
+					&&!vipGroupGiveCourseSortDto.getTeachMode().equals(zeroVipGroupGiveCoursePayment.getTeachMode())){
+				throw new BizException("不支持将不同教学形式的课程调整的赠送课时后");
+			}
+			if(!vipGroupGiveCourseSortDto.getId().equals(zeroVipGroupGiveCoursePayment)){
+				needUpdatePayments.add(new CourseScheduleStudentPayment(vipGroupGiveCourseSortDto.getId(),zeroVipGroupGiveCoursePayment.getCourseScheduleId()));
+				needUpdatePayments.add(new CourseScheduleStudentPayment(zeroVipGroupGiveCoursePayment.getId(),vipGroupGiveCourseSortDto.getCourseScheduleId()));
+			}
+		}
 	}
 }

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

@@ -929,7 +929,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(studentPaymentNum.equals(classGroup.getExpectStudentNum())&&updateVipStatus){
 			classGroup.setStudentNum(studentPaymentNum);
 			classGroup.setDelFlag(0);
-			vipGroup.setStatus(VipGroupStatusEnum.APPLYING_END);
+			vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
 			createVipGroupCourseScheInfo(vipGroupId,classGroup);
 			vipGroupDao.update(vipGroup);
 		}

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

@@ -236,11 +236,13 @@
 	<resultMap id="VipGroupGiveCourseSortDto" type="com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto" extends="CourseScheduleStudentPayment">
 		<result property="courseStartTime" column="course_start_time_"/>
 		<result property="courseEndTime" column="course_end_time_"/>
+		<result property="teachMode" column="teach_mode_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 	</resultMap>
 	<select id="findVipGroupSortCourseByGroup" resultMap="VipGroupGiveCourseSortDto">
 		SELECT
 			 cssp.*,
-			 CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_
+			 cs.teach_mode_,
+			 CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_,
 			 CONCAT(cs.class_date_,' ',cs.end_class_time_) course_end_time_
 		FROM course_schedule_student_payment cssp
 			LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_

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

@@ -315,8 +315,7 @@
             AND vg.courses_expire_date_ &gt;= DATE_FORMAT(NOW(),'%Y%m%d')
             AND vg.courses_start_date &gt; NOW()
             AND (select count(1) as num from student_payment_order where vg.id_ = music_group_id_ AND user_id_=#{userId} AND status_='SUCCESS') = 0
-            AND vg.organ_id_ = #{organId}
-            AND (vg.student_id_list_ IS NULL or FIND_IN_SET(#{userId}, vg.student_id_list_))
+            AND (vg.organ_id_ = #{organId} OR FIND_IN_SET(#{userId}, vg.student_id_list_))
             <if test="subjectId!=null">
                AND FIND_IN_SET(#{subjectId},cg.subject_id_list_)
             </if>