瀏覽代碼

系统收费

zouxuan 4 年之前
父節點
當前提交
e61cb42226

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSchoolTermStudentCourseDetailDao.java

@@ -20,7 +20,7 @@ public interface MusicGroupSchoolTermStudentCourseDetailDao extends BaseDAO<Long
      * 删除预排课计划
      * @param courseDetailId
      */
-    void deleteByDetailId(Integer courseDetailId);
+    void deleteByDetailId(@Param("courseDetailId") Integer courseDetailId, @Param("studentId") Integer studentId);
 
     /**
      * 获取预排课计划
@@ -91,4 +91,12 @@ public interface MusicGroupSchoolTermStudentCourseDetailDao extends BaseDAO<Long
      * @param musicGroupSchoolTermCourseDetailId
      */
     void cleanMinutes(Integer musicGroupSchoolTermCourseDetailId);
+
+    /**
+     * 获取学员预排课计划
+     * @param courseDetailId
+     * @param userId
+     * @return
+     */
+    MusicGroupSchoolTermStudentCourseDetailDao findByDetailIdAndStudentId(@Param("courseDetailId") Integer courseDetailId, @Param("userId") Integer userId);
 }

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

@@ -3375,6 +3375,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             if (Objects.isNull(newCourseSchedule.getGroupType())) {
                 newCourseSchedule.setGroupType(oldCourseSchedule.getGroupType());
             }
+			newCourseSchedule.setValidEndTime(oldCourseSchedule.getValidEndTime());
             
             //课程是否已结算
             int settlementNum = courseScheduleTeacherSalaryDao.checkCourseIsSettlement(oldCourseSchedule.getId().intValue());
@@ -3491,11 +3492,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             if (newCourseSchedule.getEndClassTime().before(date)) {
                 newCourseSchedule.setStatus(CourseStatusEnum.OVER);
             }
+			//调整后的课程截止日期不能超过学期时间
+			if(newCourseSchedule.getValidEndTime() != null){
+				if(newCourseSchedule.getValidEndTime().compareTo(newCourseSchedule.getClassDate()) < 0){
+					throw new BizException("操作失败:不允许跨学期调整");
+				}
+			}
 
 			if(newCourseSchedule.getStartClassTime().compareTo(date)<0){
 				throw new BizException("调整无效,不能调整至已结束");
 			}
-            
 			if (newCourseSchedule.getType() == CourseScheduleType.PRACTICE) {
 				PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(newCourseSchedule.getMusicGroupId()));
 				if (practiceGroup.getType() != TRIAL) {

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -73,6 +73,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	
 	@Autowired
 	private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
+
+	@Autowired
+	private MusicGroupSchoolTermCourseDetailDao musicGroupSchoolTermCourseDetailDao;
 	
 	@Autowired
 	private IdGeneratorService idGeneratorService;

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java

@@ -59,7 +59,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 			throw new BizException("操作失败:该功能只适用于系统收费团");
 		}
 		//校验当前乐团是否所有学员都在班
-		if(!studentRegistrationDao.checkHasNotClass(musicGroupId)){
+		if(studentRegistrationDao.checkHasNotClass(musicGroupId)){
 			throw new BizException("操作失败:请确保所有在读学员都在班级");
 		}
 		MusicGroupSchoolTermCourseDetail courseDetail = musicGroupSchoolTermCourseDetailDao.
@@ -78,7 +78,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 		if(courseDetail != null){
 			if(startCourseDate != null){
 				//如果是重新选择的预排课时间
-				if(DateUtil.daysBetween(startCourseDate, courseDetail.getStartCourseDate()) != 0){
+//				if(DateUtil.daysBetween(startCourseDate, courseDetail.getStartCourseDate()) != 0){
 					//清空预排课
 					if(musicGroupSchoolTermCourseDetail.getCleanPreCourseFlag()){
 						//删除乐团预排的课程
@@ -89,7 +89,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 						getCourseDetail(courseDetail);
 						musicGroupSchoolTermCourseDetailDao.update(courseDetail);
 						//删除学员排课时长
-						musicGroupSchoolTermStudentCourseDetailDao.deleteByDetailId(courseDetail.getId());
+						musicGroupSchoolTermStudentCourseDetailDao.deleteByDetailId(courseDetail.getId(),null);
 						//生成学员可排课时长
 						MusicGroupSchoolTermStudentCourseDetail studentCourseDetail = new MusicGroupSchoolTermStudentCourseDetail();
 						studentCourseDetail.setMusicGroupSchoolTermCourseDetailId(courseDetail.getId());
@@ -103,7 +103,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 					}else {
 						return BaseController.failed(HttpStatus.MULTI_STATUS, "修改开课日期会清空预排课,请再次确认");
 					}
-				}
+//				}
 			}else {
 				//如果所选时间小于当前时间
 				if(DateUtil.daysBetween(date, courseDetail.getStartCourseDate()) < 0){

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

@@ -209,6 +209,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Autowired
     private CloudTeacherOrderService cloudTeacherOrderService;
 
+    @Autowired
+    private MusicGroupSchoolTermCourseDetailDao musicGroupSchoolTermCourseDetailDao;
+
+    @Autowired
+    private MusicGroupSchoolTermStudentCourseDetailDao musicGroupSchoolTermStudentCourseDetailDao;
+
     private SimpleDateFormat sdf_ymd = new SimpleDateFormat("yyyy-MM-dd");
 
     private SimpleDateFormat sdf_hms = new SimpleDateFormat("HH:mm:ss");
@@ -1968,6 +1974,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (courseScheduleList != null && courseScheduleList.size() > 0) {
             throw new BizException("退团失败,存在[进行中]的课程");
         }
+        //如果是会员团,并且有预排课计划
+        MusicGroupSchoolTermCourseDetail termCourseDetail = musicGroupSchoolTermCourseDetailDao.findByCourseDateAndMusicGroupId(musicGroupId, null, 0);
+        if(termCourseDetail != null){
+            MusicGroupSchoolTermStudentCourseDetailDao studentCourseDetailDao = musicGroupSchoolTermStudentCourseDetailDao.findByDetailIdAndStudentId(termCourseDetail.getId(),userId);
+            if(studentCourseDetailDao != null){
+                throw new BizException("退团失败:该学员存在预排课安排,请先取消预排课");
+            }
+        }
 
         courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(musicGroupId), Arrays.asList(userId), GroupType.MUSIC);
 

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

@@ -112,8 +112,13 @@
 	<delete id="delete" >
 		DELETE FROM music_group_school_term_student_course_detail WHERE id_ = #{id} 
 	</delete>
+
 	<delete id="deleteByDetailId">
-		DELETE FROM music_group_school_term_student_course_detail WHERE music_group_school_term_course_detail_id_ = #{courseDetailId}
+		DELETE FROM music_group_school_term_student_course_detail
+		WHERE music_group_school_term_course_detail_id_ = #{courseDetailId}
+		<if test="studentId != null">
+			AND user_id_ = #{studentId}
+		</if>
 	</delete>
 
 	<!-- 分页查询 -->
@@ -160,4 +165,7 @@
 	<select id="findByDetailId" resultMap="MusicGroupSchoolTermStudentCourseDetail">
 		SELECT * FROM music_group_school_term_student_course_detail WHERE music_group_school_term_course_detail_id_ = #{courseDetailId}
 	</select>
+	<select id="findByDetailIdAndStudentId" resultMap="MusicGroupSchoolTermStudentCourseDetail">
+		SELECT * FROM music_group_school_term_student_course_detail WHERE music_group_school_term_course_detail_id_ = #{courseDetailId} AND user_id_ = #{userId}
+	</select>
 </mapper>