Browse Source

Merge branch 'system_fee' of http://git.dayaedu.com/yonge/mec into system_fee

yonge 4 years ago
parent
commit
e2a1af311a

+ 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);
 }

+ 0 - 44
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSchoolTermStudentCourseDetail.java

@@ -22,9 +22,6 @@ public class MusicGroupSchoolTermStudentCourseDetail {
 	/** 预排课消耗时长 */
 	private Integer preMemberCourseMinutes = 0;
 	
-	/** 预排课课程类型消耗的时长明细 */
-	private String preCourseDetail;
-	
 	/**  合奏课消耗的时长*/
 	private Integer mixCourseMinutes = 0;
 	
@@ -32,15 +29,6 @@ public class MusicGroupSchoolTermStudentCourseDetail {
 	private Integer singleCourseMinutes = 0;
 
 	/**  */
-	private Integer totalCourseMinutes = 0;
-
-	/**  */
-	private Integer usedCourseMinutes = 0;
-	
-	/** 用来标注当前缴费项目排了哪些课程类型,以及次数 */
-	private String courseDetail;
-	
-	/**  */
 	private java.util.Date createTime;
 	
 	/**  */
@@ -102,38 +90,6 @@ public class MusicGroupSchoolTermStudentCourseDetail {
 		return this.preMemberCourseMinutes;
 	}
 			
-	public void setPreCourseDetail(String preCourseDetail){
-		this.preCourseDetail = preCourseDetail;
-	}
-	
-	public String getPreCourseDetail(){
-		return this.preCourseDetail;
-	}
-			
-	public void setTotalCourseMinutes(Integer totalCourseMinutes){
-		this.totalCourseMinutes = totalCourseMinutes;
-	}
-	
-	public Integer getTotalCourseMinutes(){
-		return this.totalCourseMinutes;
-	}
-			
-	public void setUsedCourseMinutes(Integer usedCourseMinutes){
-		this.usedCourseMinutes = usedCourseMinutes;
-	}
-	
-	public Integer getUsedCourseMinutes(){
-		return this.usedCourseMinutes;
-	}
-			
-	public void setCourseDetail(String courseDetail){
-		this.courseDetail = courseDetail;
-	}
-	
-	public String getCourseDetail(){
-		return this.courseDetail;
-	}
-			
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 	}

+ 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);
 

+ 11 - 21
mec-biz/src/main/resources/config/mybatis/MusicGroupSchoolTermStudentCourseDetailMapper.xml

@@ -12,12 +12,8 @@
 		<result column="user_id_" property="userId" />
 		<result column="member_course_minutes_" property="memberCourseMinutes" />
 		<result column="pre_member_course_minutes_" property="preMemberCourseMinutes" />
-		<result column="pre_course_detail_" property="preCourseDetail" />
 		<result column="mix_course_minutes_" property="mixCourseMinutes" />
 		<result column="single_course_minutes_" property="singleCourseMinutes" />
-		<result column="total_course_minutes_" property="totalCourseMinutes" />
-		<result column="used_course_minutes_" property="usedCourseMinutes" />
-		<result column="course_detail_" property="courseDetail" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
@@ -36,10 +32,8 @@
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupSchoolTermStudentCourseDetail" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO music_group_school_term_student_course_detail
 		    (music_group_school_term_course_detail_id_,user_id_,member_course_minutes_,
-		   pre_member_course_minutes_,pre_course_detail_,total_course_minutes_,used_course_minutes_,
-		   course_detail_,mix_course_minutes_,single_course_minutes_,create_time_,update_time_)
-		   VALUES(#{musicGroupSchoolTermCourseDetailId},#{userId},#{memberCourseMinutes},#{preMemberCourseMinutes},
-		          #{preCourseDetail},#{totalCourseMinutes},#{usedCourseMinutes},#{courseDetail},#{mixCourseMinutes},#{singleCourseMinutes},NOW(),NOW())
+		   pre_member_course_minutes_,mix_course_minutes_,single_course_minutes_,create_time_,update_time_)
+		   VALUES(#{musicGroupSchoolTermCourseDetailId},#{userId},#{memberCourseMinutes},#{preMemberCourseMinutes},#{mixCourseMinutes},#{singleCourseMinutes},NOW(),NOW())
 	</insert>
 	<insert id="init">
 		INSERT INTO music_group_school_term_student_course_detail
@@ -59,18 +53,9 @@
 		<if test="singleCourseMinutes != null">
 			single_course_minutes_ = #{singleCourseMinutes},
 		</if>
-		<if test="usedCourseMinutes != null">
-			used_course_minutes_ = #{usedCourseMinutes},
-		</if>
-		<if test="totalCourseMinutes != null">
-			total_course_minutes_ = #{totalCourseMinutes},
-		</if>
 		<if test="userId != null">
 			user_id_ = #{userId},
 		</if>
-		<if test="preCourseDetail != null">
-			pre_course_detail_ = #{preCourseDetail},
-		</if>
 		<if test="musicGroupSchoolTermCourseDetailId != null">
 			music_group_school_term_course_detail_id_ = #{musicGroupSchoolTermCourseDetailId},
 		</if>
@@ -80,9 +65,6 @@
 		<if test="preMemberCourseMinutes != null">
 			pre_member_course_minutes_ = #{preMemberCourseMinutes},
 		</if>
-		<if test="courseDetail != null">
-			course_detail_ = #{courseDetail},
-		</if>
 			update_time_ = NOW()
 		</set> WHERE id_ = #{id}
 	</update>
@@ -112,8 +94,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 +147,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>