Joburgess пре 4 година
родитељ
комит
4c5231000e

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

@@ -578,6 +578,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     int batchUpdate(List<CourseSchedule> courseScheduleList);
 
+    int cleanCoursMergeId(@Param("courseIds") List<Long> courseIds);
+
     /**
      * 查询提前指定分钟数还未签到的用户
      *

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

@@ -5369,11 +5369,21 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void mergeCourseSplit(Long mainCourseId) {
 		List<CourseSchedule> courseSchedules = courseScheduleDao.findByMainMergeCourse(mainCourseId);
 		if(CollectionUtils.isEmpty(courseSchedules)){
 			throw new BizException("未找到相关合并课程信息");
 		}
+		Date now = new Date();
+		List<Long> courseIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+		CourseSchedule mainCourse = courseSchedules.stream().filter(c -> mainCourseId.equals(c.getId())).findFirst().get();
+		if(now.compareTo(mainCourse.getStartClassTime())>=0){
+			throw new BizException("已结束的主课暂不支持此操作");
+		}
+
+		courseScheduleDao.cleanCoursMergeId(courseIds);
+
 		List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByMainMergedCourse(mainCourseId);
 		Map<Integer, CourseScheduleStudentPayment> studentMainCoursePaymentMap = courseScheduleStudentPayments.stream().filter(c -> c.getCourseScheduleId().equals(mainCourseId)).collect(Collectors.toMap(CourseScheduleStudentPayment::getUserId, c -> c, (c1, c2) -> c1));
 
@@ -5388,7 +5398,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				deletePaymentIds.add(mainCoursePayment.getId());
 				continue;
 			}
-//			mainCoursePayment.setExpectPrice();
+			mainCoursePayment.setExpectPrice(mainCoursePayment.getExpectPrice().subtract(otherCoursePayment.getExpectPrice()));
+			updatePayments.add(mainCoursePayment);
 		}
+
+//		courseScheduleStudentPaymentDao.batchDeleteWithID()
     }
 }

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

@@ -238,7 +238,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         }
 
 		List<Integer> canBuyStudentIds = Arrays.stream(vipGroupApplyBaseInfoDto.getStudentIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
-		List<VipGroupStudentCoursePrice> vscps = new ArrayList<>();
+		List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
 
 		//获取活动信息
 		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId());
@@ -248,9 +248,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					||firstCourseSchedule.getStartClassTime().before(vipGroupActivity.getCoursesStartTime())){
 				throw new BizException("课时安排时间超出范围!");
 			}
-			for (Integer canBuyStudentId : canBuyStudentIds) {
-				vscps.add(new VipGroupStudentCoursePrice(canBuyStudentId, vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice(), vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice()));
-			}
 		}else{
 			VipGroupDefaultClassesCycle vipGroupDefaultClassesCycle = vipGroupDefaultClassesCycleDao.findByOrganAndClassTimes(totalClassTimes);
 
@@ -260,15 +257,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					throw new BizException("课时安排时间超出范围!");
 				}
 			}
-			vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
-			vipGroupApplyBaseInfoDto.setTotalPrice(new BigDecimal(0));
-			for (VipGroupStudentCoursePrice vscp : vscps) {
-				if(Objects.isNull(vscp.getOnlineClassesUnitPrice())||Objects.isNull(vscp.getOfflineClassesUnitPrice())){
-					throw new BizException("请设置课程单价");
-				}
-				vscp.setPaymentPrice(vscp.getOfflineClassesUnitPrice().multiply(new BigDecimal(vipGroupApplyBaseInfoDto.getOfflineClassesNum())).add(vscp.getOnlineClassesUnitPrice().multiply(new BigDecimal(vipGroupApplyBaseInfoDto.getOnlineClassesNum()))));
-				vipGroupApplyBaseInfoDto.setTotalPrice(vipGroupApplyBaseInfoDto.getTotalPrice().add(vscp.getPaymentPrice()));
-			}
 		}
 
 		int repeatVipGroups = vipGroupDao.countUserRepeatVipGroupInCourseStartEndTime(vipGroupApplyBaseInfoDto.getUserId(), firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
@@ -313,6 +301,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}else{
 			vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.APPLYING);
 		}
+		if(CollectionUtils.isEmpty(vscps)){
+			for (Integer canBuyStudentId : canBuyStudentIds) {
+				vscps.add(new VipGroupStudentCoursePrice(canBuyStudentId, vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice(), vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice(), vipGroupApplyBaseInfoDto.getTotalPrice()));
+			}
+		}
         Teacher teacher = teacherService.get(vipGroupApplyBaseInfoDto.getUserId());
 		if(Objects.isNull(teacher)){
 		    throw new BizException("教师不存在");

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

@@ -3072,6 +3072,13 @@
         </foreach>
     </update>
 
+    <update id="cleanCoursMergeId">
+        UPDATE course_schedule SET new_course_id_=NULL WHERE id_ IN
+        <foreach collection="courseIds" item="courseId" separator="," open="(" close=")">
+            #{courseId}
+        </foreach>
+    </update>
+
     <select id="getStudentCourseScheduleNum" resultMap="com.ym.mec.biz.dal.dao.PracticeGroupDao.courseGroupExport">
         SELECT COUNT(*) total_class_times_,cssp.user_id_ student_id_
         FROM course_schedule_student_payment cssp
@@ -3381,7 +3388,9 @@
     </select>
 
     <select id="findByMainMergeCourse" resultType="int">
-        SELECT * FROM course_schedule WHERE new_course_id_=#{mainMergeCourseId}
+        SELECT
+        <include refid="resultSql" />
+        FROM course_schedule WHERE new_course_id_=#{mainMergeCourseId}
     </select>
 
     <select id="querySubCourseNumMap" resultType="java.util.Map">