Prechádzať zdrojové kódy

系统收费价格拆分
1、修改学员预计缴费金额,
2、缴费项目加学员
3、music_group_payment_student_course_detail 新增课程现价和原价
4、续费金额改动

zouxuan 4 rokov pred
rodič
commit
83ba967be8
15 zmenil súbory, kde vykonal 156 pridanie a 176 odobranie
  1. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderCourseSettingsDao.java
  2. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentStudentCourseDetailDao.java
  3. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalender.java
  4. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderDetail.java
  5. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentStudentCourseDetail.java
  6. 2 9
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderDetailService.java
  7. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderService.java
  8. 29 90
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java
  9. 9 26
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  10. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  11. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  12. 30 18
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml
  13. 28 6
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentStudentCourseDetailMapper.xml
  14. 5 12
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupPaymentCalenderController.java
  15. 2 10
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderDetailController.java

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

@@ -70,7 +70,7 @@ public interface MusicGroupPaymentCalenderCourseSettingsDao extends BaseDAO<Inte
 	 * @date 2020/10/30
 	 * @time 16:04
 	 */
-	List<MusicGroupPaymentCalenderCourseSettings> queryCalenderCourseSettings(Long calenderId);
+	List<MusicGroupPaymentCalenderCourseSettings> queryCalenderCourseSettings(@Param("calenderId") Long calenderId);
 
 	/**
 	 * @param calenderId:

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

@@ -101,4 +101,6 @@ public interface MusicGroupPaymentStudentCourseDetailDao extends BaseDAO<Long, M
      * @return
      */
     List<StudentSubTotalCourseTimesDto> queryStudentSubTotalCourseTimes(@Param("musicGroupId") String musicGroupId);
+
+    List<MusicGroupPaymentStudentCourseDetail> findByCalenderAndUserId(@Param("calenderId") Long calenderId, @Param("userId") Integer userId);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalender.java

@@ -129,7 +129,7 @@ public class MusicGroupPaymentCalender {
 
 	private Integer expectNum = 0;
 
-	private Integer actualNum;
+	private Integer actualNum = 0;
 
 	@ApiModelProperty(value = "创建人", required = false)
 	private Integer operator;

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderDetail.java

@@ -7,6 +7,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -25,6 +26,9 @@ public class MusicGroupPaymentCalenderDetail {
 	
 	/**  */
 	private java.math.BigDecimal expectAmount;
+
+	/**  */
+	private java.math.BigDecimal expectMemberAmount = BigDecimal.ZERO;
 	
 	/**  */
 	private java.math.BigDecimal actualAmount;
@@ -80,6 +84,14 @@ public class MusicGroupPaymentCalenderDetail {
 	
 	private SysUser responsible = new SysUser();
 
+	public BigDecimal getExpectMemberAmount() {
+		return expectMemberAmount;
+	}
+
+	public void setExpectMemberAmount(BigDecimal expectMemberAmount) {
+		this.expectMemberAmount = expectMemberAmount;
+	}
+
 	public MusicGroupPaymentCalender.PaymentType getPaymentType() {
 		return paymentType;
 	}

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentStudentCourseDetail.java

@@ -3,6 +3,8 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.math.BigDecimal;
+
 /**
  * 对应数据库表(music_group_payment_student_course_detail):
  */
@@ -26,6 +28,12 @@ public class MusicGroupPaymentStudentCourseDetail {
 	/**  */
 	private Integer totalCourseMinutes;
 
+	/**  */
+	private BigDecimal courseOriginalPrice;
+
+	/**  */
+	private BigDecimal courseCurrentPrice;
+
 	/**  已消耗时长*/
 	private Integer usedCourseMinutes;
 	
@@ -35,6 +43,22 @@ public class MusicGroupPaymentStudentCourseDetail {
 	/**  */
 	private java.util.Date updateTime;
 
+	public BigDecimal getCourseOriginalPrice() {
+		return courseOriginalPrice;
+	}
+
+	public void setCourseOriginalPrice(BigDecimal courseOriginalPrice) {
+		this.courseOriginalPrice = courseOriginalPrice;
+	}
+
+	public BigDecimal getCourseCurrentPrice() {
+		return courseCurrentPrice;
+	}
+
+	public void setCourseCurrentPrice(BigDecimal courseCurrentPrice) {
+		this.courseCurrentPrice = courseCurrentPrice;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 2 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderDetailService.java

@@ -25,7 +25,7 @@ public interface MusicGroupPaymentCalenderDetailService extends BaseService<Long
      * @param ids
      * @return
      */
-    void updateExpectAmount(BigDecimal expectAmount,String ids);
+    void updateExpectAmount(BigDecimal expectAmount,BigDecimal expectMemberAmount,String ids);
 
     /**
      * 开启缴费
@@ -49,19 +49,12 @@ public interface MusicGroupPaymentCalenderDetailService extends BaseService<Long
     /**
      * 乐团缴费记录新增学员
      * @param musicGroupPaymentCalenderId
-     * @param userId
-     */
-    void add(Long musicGroupPaymentCalenderId, Integer userId);
-
-    /**
-     * 乐团缴费记录新增学员
-     * @param musicGroupPaymentCalenderId
      * @param userIdList
      */
     void batchAdd(Long musicGroupPaymentCalenderId, Set<Integer> userIdList,MusicGroup musicGroup);
 
     /**
-     * 乐团缴费记录新增学员
+     * 跨团合班新增学员
      * @param musicGroupPaymentCalender
      * @param musicGroupPaymentCalenderStudentDetails
      */

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

@@ -40,6 +40,12 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 */
 	boolean makesureSchoolePaid(Long id, String memo);
 
+	/**
+	 * 进行中加学员
+	 * @param musicGroupPaymentCalender
+	 * @param musicGroupPaymentCalenderCourseSettingsList
+	 * @param musicGroup
+	 */
 	void addStudent(MusicGroupPaymentCalender musicGroupPaymentCalender,
 					List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList,
 					MusicGroup musicGroup);

+ 29 - 90
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -81,7 +81,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void updateExpectAmount(BigDecimal expectAmount,String ids) {
+	public void updateExpectAmount(BigDecimal expectAmount,BigDecimal expectMemberAmount,String ids) {
 		if(expectAmount == null || StringUtils.isEmpty(ids)){
 			throw new BizException("参数校验失败");
 		}
@@ -108,7 +108,8 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			}
 			e.setUpdateTime(date);
 			e.setExpectAmount(expectAmount);
-			if(expectAmount.doubleValue() > 0){
+			e.setExpectMemberAmount(expectMemberAmount);
+			if(expectAmount.doubleValue() > 0 || expectMemberAmount.doubleValue() > 0){
 				if((e.getOpen() != null && e.getOpen() == 1) || calender.getStatus() == PaymentCalenderStatusEnum.OPEN){
 					studentIds.add(e.getUserId());
 				}
@@ -119,7 +120,8 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 					cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
 					cloudTeacherOrder.setType(2);
 					cloudTeacherOrder.setTime(calender.getMemberValidDate());
-					cloudTeacherOrder.setAmount(expectAmount);
+					//只用会员价格
+					cloudTeacherOrder.setAmount(expectMemberAmount);
 					cloudTeacherOrder.setStatus(2);
 					cloudTeacherOrder.setStartTime(date);
 					cloudTeacherOrder.setEndTime(DateUtil.addMonths(date,calender.getMemberValidDate()));
@@ -233,79 +235,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void add(Long musicGroupPaymentCalenderId, Integer userId) {
-		if(musicGroupPaymentCalenderId == null || userId == null){
-			throw new BizException("参数校验异常");
-		}
-		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(musicGroupPaymentCalenderId);
-		if(calender == null){
-			throw new BizException("缴费信息不存在");
-		}
-		MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = musicGroupPaymentCalenderDetailDao.findByCalenderIdAndUserId(musicGroupPaymentCalenderId, userId);
-		if(musicGroupPaymentCalenderDetail != null){
-			throw new BizException("新增失败,已经存在缴费记录");
-		}
-		
-		List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
-		
-		BigDecimal totalPrice = new BigDecimal(0);
-		if (calender.getPayUserType() == STUDENT) {
-			totalPrice = calender.getMemberPaymentAmount();
-			for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
-				// 剔除可选课程
-				if (courseSettings.getIsStudentOptional() == false) {
-					totalPrice.add(courseSettings.getCourseCurrentPrice());
-				}
-				totalPrice.add(courseSettings.getCourseCurrentPrice());
-			}
-		}
-		Date date = new Date();
-		calender.setUpdateTime(date);
-		calender.setExpectNum(calender.getExpectNum() + 1);
-		musicGroupPaymentCalenderService.update(calender);
-		//生成详情
-		musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
-		musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(calender.getId());
-		musicGroupPaymentCalenderDetail.setCreateTime(date);
-		musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
-		if (musicGroupPaymentCalenderDetail.getExpectAmount().compareTo(totalPrice) == 0) {
-			musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
-		} else {
-			musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
-		}
-		musicGroupPaymentCalenderDetail.setUpdateTime(date);
-		musicGroupPaymentCalenderDetail.setUserId(userId);
-		musicGroupPaymentCalenderDetail.setStartPaymentDate(calender.getStartPaymentDate());
-		musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(calender.getDeadlinePaymentDate());
-		musicGroupPaymentCalenderDetail.setResponsibleUserId(calender.getOperator());
-		musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
-
-		List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = new ArrayList<MusicGroupPaymentStudentCourseDetail>();
-		MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = null;
-		for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
-			if (courseSettings.getIsStudentOptional() == true || courseSettings.getCourseTotalMinuties() == null || courseSettings.getCourseTotalMinuties() == 0) {
-				continue;
-			}
-			musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
-			musicGroupPaymentStudentCourseDetail.setCourseType(courseSettings.getCourseType());
-			musicGroupPaymentStudentCourseDetail.setCreateTime(date);
-			musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
-			musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
-			musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
-			musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
-			musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
-			musicGroupPaymentStudentCourseDetail.setUserId(userId);
-
-			musicGroupPaymentStudentCourseDetailList.add(musicGroupPaymentStudentCourseDetail);
-		}
-
-		if (musicGroupPaymentStudentCourseDetailList.size() > 0) {
-			musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetailList);
-		}
-	}
-
-	@Override
-	@Transactional(rollbackFor = Exception.class)
 	public void batchAdd(Long musicGroupPaymentCalenderId, Set<Integer> userIdList,MusicGroup musicGroup) {
 		
 		MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderService.get(musicGroupPaymentCalenderId);
@@ -330,14 +259,14 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
 
 		//总金额 = 会员费用 + 课程费用
-		BigDecimal totalPrice = new BigDecimal(0);
+		BigDecimal expectAmount = BigDecimal.ZERO;
+		BigDecimal expectMemberAmount = musicGroupPaymentCalender.getMemberPaymentAmount();
 		if (musicGroupPaymentCalender.getPayUserType() == STUDENT) {
-			totalPrice = musicGroupPaymentCalender.getMemberPaymentAmount();
 			if (musicGroupPaymentCalender.getPayUserType() == STUDENT) {
 				for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
 					// 剔除可选课程
 					if (courseSettings.getIsStudentOptional() == false) {
-						totalPrice = totalPrice.add(courseSettings.getCourseCurrentPrice());
+						expectAmount = expectAmount.add(courseSettings.getCourseCurrentPrice());
 					}
 				}
 			}
@@ -352,8 +281,10 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 			musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
 			musicGroupPaymentCalenderDetail.setCreateTime(date);
-			musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
-			if (musicGroupPaymentCalenderDetail.getExpectAmount().compareTo(totalPrice) == 0) {
+			musicGroupPaymentCalenderDetail.setExpectAmount(expectAmount);
+			musicGroupPaymentCalenderDetail.setExpectMemberAmount(expectMemberAmount);
+			if (expectAmount.doubleValue() == 0d && expectMemberAmount.doubleValue() == 0d) {
+				musicGroupPaymentCalenderDetail.setActualAmount(BigDecimal.ZERO);
 				musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
 			} else {
 				musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
@@ -375,6 +306,9 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		}
 		//更新预计缴费人数
 		musicGroupPaymentCalender.setExpectNum(musicGroupPaymentCalender.getExpectNum() + userIdList.size());
+		if (expectAmount.doubleValue() == 0d && expectMemberAmount.doubleValue() == 0d) {
+			musicGroupPaymentCalender.setActualNum(musicGroupPaymentCalender.getActualNum() + userIdList.size());
+		}
 		musicGroupPaymentCalender.setUpdateTime(date);
 		musicGroupPaymentCalenderService.update(musicGroupPaymentCalender);
 
@@ -393,6 +327,8 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 					musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
 					musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(userMap.get(studentId).getId());
 					musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
+					musicGroupPaymentStudentCourseDetail.setCourseOriginalPrice(courseSettings.getCourseOriginalPrice());
+					musicGroupPaymentStudentCourseDetail.setCourseCurrentPrice(courseSettings.getCourseCurrentPrice());
 					musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
 					musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
 					musicGroupPaymentStudentCourseDetail.setUserId(studentId);
@@ -478,8 +414,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		
 		Long musicGroupPaymentCalenderId = null;
 		for(MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenderList){
-			int paymentNum = 0;
-
 			musicGroupPaymentCalenderId = musicGroupPaymentCalender.getId();
 			
 			if(musicGroupPaymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY){
@@ -499,13 +433,14 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			
 			List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
 			
-			BigDecimal totalPrice = new BigDecimal(0);
-			
+			BigDecimal expectAmount = BigDecimal.ZERO;
+			BigDecimal expectMemberAmount = musicGroupPaymentCalender.getMemberPaymentAmount();
+
 			if (musicGroupPaymentCalender.getPayUserType() == STUDENT) {
 				for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
 					// 剔除可选课程
 					if (courseSettings.getIsStudentOptional() == false) {
-						totalPrice = totalPrice.add(courseSettings.getCourseCurrentPrice());
+						expectAmount = expectAmount.add(courseSettings.getCourseCurrentPrice());
 					}
 				}
 			}
@@ -519,10 +454,10 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 				musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 				musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
 				musicGroupPaymentCalenderDetail.setCreateTime(date);
-				musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
-				if (musicGroupPaymentCalenderDetail.getExpectAmount().compareTo(new BigDecimal(0)) == 0) {
+				musicGroupPaymentCalenderDetail.setExpectAmount(expectAmount);
+				musicGroupPaymentCalenderDetail.setExpectMemberAmount(expectMemberAmount);
+				if (expectAmount.doubleValue() == 0d && expectMemberAmount.doubleValue() == 0d) {
 					musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
-					paymentNum++;
 				} else {
 					musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
 				}
@@ -544,7 +479,9 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			//更新预计缴费人数
 			musicGroupPaymentCalender.setExpectNum(musicGroupPaymentCalender.getExpectNum() + userIdList.size());
 			musicGroupPaymentCalender.setUpdateTime(date);
-			musicGroupPaymentCalender.setActualNum((musicGroupPaymentCalender.getActualNum()==null?0:musicGroupPaymentCalender.getActualNum()) + paymentNum);
+			if (expectAmount.doubleValue() == 0d && expectMemberAmount.doubleValue() == 0d) {
+				musicGroupPaymentCalender.setActualNum(musicGroupPaymentCalender.getActualNum() + userIdList.size());
+			}
 			musicGroupPaymentCalenderService.update(musicGroupPaymentCalender);
 			
 			MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = null;
@@ -560,6 +497,8 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 					musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
 					musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(userMap.get(studentId).getId());
 					musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
+					musicGroupPaymentStudentCourseDetail.setCourseOriginalPrice(courseSettings.getCourseOriginalPrice());
+					musicGroupPaymentStudentCourseDetail.setCourseCurrentPrice(courseSettings.getCourseCurrentPrice());
 					musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
 					musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
 					musicGroupPaymentStudentCourseDetail.setUserId(studentId);

+ 9 - 26
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -974,10 +974,11 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		String studentIdStr = musicGroupPaymentCalender.getStudentIds();
 		if (StringUtils.isNoneBlank(studentIdStr)) {
 			//计算总费用
-			BigDecimal totalPrice = musicGroupPaymentCalender.getMemberPaymentAmount();
+			BigDecimal expectAmount = BigDecimal.ZERO;
+			BigDecimal expectMemberAmount = musicGroupPaymentCalender.getMemberPaymentAmount();
 			if(musicGroupPaymentCalenderCourseSettingsList != null && musicGroupPaymentCalenderCourseSettingsList.size() > 0){
 				for(MusicGroupPaymentCalenderCourseSettings musicGroupPaymentCalenderCourseSettings : musicGroupPaymentCalenderCourseSettingsList){
-					totalPrice = totalPrice.add(musicGroupPaymentCalenderCourseSettings.getCourseCurrentPrice());
+					expectAmount = expectAmount.add(musicGroupPaymentCalenderCourseSettings.getCourseCurrentPrice());
 				}
 			}
 			//当前乐团是否有预排课计划
@@ -1004,7 +1005,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 				musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
 				musicGroupPaymentCalenderDetail.setCreateTime(date);
-				musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
+				musicGroupPaymentCalenderDetail.setExpectAmount(expectAmount);
+				musicGroupPaymentCalenderDetail.setExpectMemberAmount(expectMemberAmount);
 				musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
 				musicGroupPaymentCalenderDetail.setUpdateTime(date);
 				musicGroupPaymentCalenderDetail.setUserId(Integer.parseInt(studentId));
@@ -1013,14 +1015,14 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 				musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
 				//如果是0元那么更新fee表和studentRegistration表
-				if(totalPrice.doubleValue() == 0d){
+				if(expectAmount.doubleValue() == 0d && expectMemberAmount.doubleValue() == 0d){
 					// 添加会员有效时长
 					if(musicGroupPaymentCalender.getMemberRankSettingId() != null){
 						CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
 						cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
 						cloudTeacherOrder.setType(2);
 						cloudTeacherOrder.setTime(musicGroupPaymentCalender.getMemberValidDate());
-						cloudTeacherOrder.setAmount(totalPrice);
+						cloudTeacherOrder.setAmount(expectMemberAmount);
 						cloudTeacherOrder.setStatus(2);
 						cloudTeacherOrder.setStartTime(date);
 						cloudTeacherOrder.setEndTime(DateUtil.addMonths(date,musicGroupPaymentCalender.getMemberValidDate()));
@@ -1057,6 +1059,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 						musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
 						musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
 						musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
+						musicGroupPaymentStudentCourseDetail.setCourseOriginalPrice(courseSettings.getCourseOriginalPrice());
+						musicGroupPaymentStudentCourseDetail.setCourseCurrentPrice(courseSettings.getCourseCurrentPrice());
 						musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
 						musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(courseSettings.getCourseTotalMinuties());
 						musicGroupPaymentStudentCourseDetail.setUserId(Integer.parseInt(studentId));
@@ -1064,27 +1068,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 					}
 
 				}
-				//如果是系统收费乐团
-				/*if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
-					//获取会员收费排课的课程
-					List<RemainCourseTypeDurationDto> durationDtos = courseScheduleDao.queryRemainCourseTypeDuration(musicGroupPaymentCalender.getAttribute1(), 1);
-					if(durationDtos != null && durationDtos.size() > 0){
-						Integer totalMinutes = durationDtos.stream().map(e -> e.getRemainMinutes()).reduce(0, Integer::sum);
-						musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
-						musicGroupPaymentStudentCourseDetail.setCreateTime(date);
-						musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
-						musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
-						//默认的会员总时长
-						musicGroupPaymentStudentCourseDetail.setMemberCourseMinutes(6*4*4*45);
-						//排课情况
-						musicGroupPaymentStudentCourseDetail.setCourseDetail(JSONObject.toJSONString(durationDtos));
-						musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
-						//消耗的时长
-						musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(totalMinutes);
-						musicGroupPaymentStudentCourseDetail.setUserId(Integer.parseInt(studentId));
-						musicGroupPaymentStudentCourseDetailList.add(musicGroupPaymentStudentCourseDetail);
-					}
-				}*/
 				if(musicGroupPaymentStudentCourseDetailList.size() > 0){
 					musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetailList);
 				}

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

@@ -2461,9 +2461,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             sysUserCashAccountDetailService.insert(rechargeDetail);
 
             List<StudentPaymentOrderDetail> paymentOrderDetails = new ArrayList<>();
-            List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettings(calenderDetail.getMusicGroupPaymentCalenderId());
             //跨团合班没有settings
-            if (courseSettings.size() == 0) {
+            if(paymentCalender.getPaymentType() == PaymentType.SPAN_GROUP_CLASS_ADJUST){
                 List<MusicGroupPaymentCalenderStudentDetail> studentDetails = musicGroupPaymentCalenderStudentDetailDao.findByBatchNoAndUserId(paymentCalender.getBatchNo(), userId);
                 for (MusicGroupPaymentCalenderStudentDetail studentDetail : studentDetails) {
                     StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
@@ -2475,7 +2474,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     paymentOrderDetails.add(studentPaymentOrderDetail);
                 }
             } else {
-                courseSettings.forEach(e -> {
+                List<MusicGroupPaymentStudentCourseDetail> studentCourseDetails = musicGroupPaymentStudentCourseDetailDao.findByCalenderAndUserId(calenderDetail.getMusicGroupPaymentCalenderId(), userId);
+                studentCourseDetails.forEach(e -> {
                     StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
                     studentPaymentOrderDetail.setType(OrderDetailTypeEnum.valueOf(e.getCourseType().getCode()));
                     studentPaymentOrderDetail.setPrice(e.getCourseCurrentPrice());

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1380,6 +1380,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 musicGroupPaymentStudentCourseDetail.setUserId(studentPaymentOrder.getUserId());
                 musicGroupPaymentStudentCourseDetail.setCourseType(courseSetting.getCourseType());
                 musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSetting.getCourseTotalMinuties());
+                musicGroupPaymentStudentCourseDetail.setCourseOriginalPrice(courseSetting.getCourseOriginalPrice());
+                musicGroupPaymentStudentCourseDetail.setCourseCurrentPrice(courseSetting.getCourseCurrentPrice());
                 musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
                 musicGroupPaymentStudentCourseDetail.setCreateTime(nowDate);
                 musicGroupPaymentStudentCourseDetail.setUpdateTime(nowDate);

+ 30 - 18
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml

@@ -9,6 +9,7 @@
 		<result column="music_group_payment_calender_id_" property="musicGroupPaymentCalenderId" />
 		<result column="user_id_" property="userId" />
 		<result column="expect_amount_" property="expectAmount" />
+		<result column="expect_member_amount_" property="expectMemberAmount" />
 		<result column="actual_amount_" property="actualAmount" />
 		<result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="payment_type_" property="paymentType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -53,22 +54,27 @@
 		parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail"
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO music_group_payment_calender_detail
-		(id_,music_group_payment_calender_id_,user_id_,expect_amount_,actual_amount_,payment_status_,
-		user_status_,pay_time_,update_time_,create_time_,start_payment_date_,deadline_payment_date_,payment_order_id_,use_in_course_,responsible_user_id_,responsible_record_)
-		VALUES(#{id},#{musicGroupPaymentCalenderId},#{userId},#{expectAmount},#{actualAmount},#{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-		#{userStatus},#{payTime},NOW(),NOW(),#{startPaymentDate},#{deadlinePaymentDate},#{paymentOrderId},#{useInCourse},#{responsibleUserId},#{responsibleRecord})
+		(music_group_payment_calender_id_,user_id_,expect_amount_,actual_amount_,payment_status_,
+		user_status_,pay_time_,update_time_,create_time_,start_payment_date_,deadline_payment_date_,
+		payment_order_id_,use_in_course_,responsible_user_id_,responsible_record_,expect_member_amount_)
+		VALUES(#{musicGroupPaymentCalenderId},#{userId},#{expectAmount},#{actualAmount},
+		       #{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+		#{userStatus},#{payTime},NOW(),NOW(),#{startPaymentDate},#{deadlinePaymentDate},
+		       #{paymentOrderId},#{useInCourse},#{responsibleUserId},#{responsibleRecord},#{expectMemberAmount})
 	</insert>
 
     <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         INSERT INTO music_group_payment_calender_detail
-		(id_,music_group_payment_calender_id_,user_id_,expect_amount_,actual_amount_,
-		payment_status_,user_status_,pay_time_,update_time_,create_time_,start_payment_date_,deadline_payment_date_,payment_order_id_,use_in_course_,responsible_user_id_,responsible_record_)
+		(music_group_payment_calender_id_,user_id_,expect_amount_,actual_amount_,
+		payment_status_,user_status_,pay_time_,update_time_,create_time_,start_payment_date_,
+		 deadline_payment_date_,payment_order_id_,use_in_course_,responsible_user_id_,responsible_record_,expect_member_amount_)
 		VALUES
 		<foreach collection="list" item="item" separator=",">
-            (#{item.id},#{item.musicGroupPaymentCalenderId},#{item.userId},#{item.expectAmount},
+            (#{item.musicGroupPaymentCalenderId},#{item.userId},#{item.expectAmount},
             #{item.actualAmount},#{item.paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.userStatus},#{item.payTime},
-            #{item.updateTime},#{item.createTime},#{item.startPaymentDate},#{item.deadlinePaymentDate},#{item.paymentOrderId},#{item.useInCourse},#{item.responsibleUserId},#{item.responsibleRecord})
+            #{item.updateTime},#{item.createTime},#{item.startPaymentDate},#{item.deadlinePaymentDate},
+             #{item.paymentOrderId},#{item.useInCourse},#{item.responsibleUserId},#{item.responsibleRecord},#{item.expectMemberAmount})
         </foreach>
     </insert>
 
@@ -95,6 +101,9 @@
 			<if test="paymentStatus != null">
 				payment_status_ = #{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
+			<if test="expectMemberAmount != null">
+				expect_member_amount_ = #{expectMemberAmount},
+			</if>
 			<if test="expectAmount != null">
 				expect_amount_ = #{expectAmount},
 			</if>
@@ -147,6 +156,9 @@
 				<if test="item.paymentStatus != null">
 					payment_status_ = #{item.paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 				</if>
+				<if test="item.expectMemberAmount != null">
+					expect_member_amount_ = #{item.expectMemberAmount},
+				</if>
 				<if test="item.expectAmount != null">
 					expect_amount_ = #{item.expectAmount},
 				</if>
@@ -377,7 +389,7 @@
 	<select id="queryNoPaymentAndNotZeroStudent" resultType="java.util.Map">
 		SELECT mgpcd.user_id_ 'key',su.phone_ 'value' FROM music_group_payment_calender_detail mgpcd
 		LEFT JOIN sys_user su ON su.id_ = mgpcd.user_id_
-		WHERE music_group_payment_calender_id_ = #{calenderId} AND expect_amount_ != 0 AND payment_status_ = 'NON_PAYMENT'
+		WHERE music_group_payment_calender_id_ = #{calenderId} AND (expect_amount_ + expect_member_amount_) != 0 AND payment_status_ = 'NON_PAYMENT'
 		<if test="studentIds != null">
 			AND mgpcd.user_id_ IN
 			<foreach collection="studentIds" separator="," close=")" open="(" item="item">
@@ -386,9 +398,9 @@
 		</if>
     </select>
 	<select id="queryNoPaymentTotalAmount" resultType="java.util.Map">
-		SELECT mgpcd.user_id_ 'key',SUM(mgpcd.expect_amount_) 'value' FROM music_group_payment_calender_detail mgpcd
+		SELECT mgpcd.user_id_ 'key',SUM(mgpcd.expect_amount_ + mgpcd.expect_member_amount_) 'value' FROM music_group_payment_calender_detail mgpcd
 		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
-		WHERE mgpc.batch_no_ IS NOT NULL AND mgpcd.payment_status_ = 'NON_PAYMENT' AND mgpcd.expect_amount_ > 0
+		WHERE mgpc.batch_no_ IS NOT NULL AND mgpcd.payment_status_ = 'NON_PAYMENT' AND (mgpcd.expect_amount_ + mgpcd.expect_member_amount_) > 0
 		AND mgpc.music_group_id_ = #{musicGroupId} AND mgpc.status_ IN ('OPEN','OVER','PAID') AND mgpc.pay_user_type_ = 'STUDENT'
 		GROUP BY mgpcd.user_id_
 	</select>
@@ -396,7 +408,7 @@
 	<select id="queryNoPaymentUserIds" resultType="java.lang.Integer">
 		SELECT mgpcd.user_id_ FROM music_group_payment_calender_detail mgpcd
 		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
-		WHERE mgpc.batch_no_ IS NOT NULL AND mgpcd.payment_status_ = 'NON_PAYMENT' AND mgpcd.expect_amount_ > 0
+		WHERE mgpc.batch_no_ IS NOT NULL AND mgpcd.payment_status_ = 'NON_PAYMENT' AND (mgpcd.expect_amount_ + mgpcd.expect_member_amount_) > 0
 		  AND mgpc.music_group_id_ = #{musicGroupId} AND mgpc.status_ IN ('OPEN','OVER','PAID') AND mgpc.pay_user_type_ = 'STUDENT'
 		<if test="userIds != null">
 			AND mgpcd.user_id_ IN
@@ -404,7 +416,7 @@
 				#{item}
 			</foreach>
 		</if>
-		GROUP BY mgpcd.user_id_  HAVING SUM(mgpcd.expect_amount_) > 0
+		GROUP BY mgpcd.user_id_  HAVING SUM(mgpcd.expect_amount_ + mgpcd.expect_member_amount_) > 0
 	</select>
 
 	<resultMap id="MusicArrearageStudentDto" type="com.ym.mec.biz.dal.dto.MusicArrearageStudentDto">
@@ -432,7 +444,7 @@
 				AND DATE_FORMAT(NOW(),'%Y-%m-%d') BETWEEN mgpc.start_payment_date_ AND mgpc.deadline_payment_date_
 			</if>
 			AND mgpcd.payment_status_ = 'NON_PAYMENT' AND mgpc.batch_no_ IS NOT NULL AND mgpc.pay_user_type_ = 'STUDENT'
-			AND mgpcd.expect_amount_ > 0
+			AND (mgpcd.expect_amount_ + mgpcd.expect_member_amount_) > 0
 			<if test="organIds!=null and organIds.size()>0">
 				AND mg.organ_id_ IN
 				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -457,7 +469,7 @@
     <select id="queryArrearageStudents" resultMap="MusicArrearageStudentDto">
 		SELECT
 			mgpcd.user_id_,
-			SUM( mgpcd.expect_amount_ ) no_payment_amount_,
+			SUM(mgpcd.expect_amount_ + mgpcd.expect_member_amount_) no_payment_amount_,
 			su.username_ student_name_,
 			organ.name_ organ_name_,
 			co.name_ cooperation_name_,
@@ -509,7 +521,7 @@
 		WHERE mg.status_ = 'PROGRESS'
 			AND DATE_FORMAT( NOW(), '%Y-%m-%d' ) >= DATE_FORMAT( mgpc.payment_valid_start_date_, '%Y-%m-%d' )
 			AND mgpcd.payment_status_ = 'NON_PAYMENT'
-			AND mgpcd.expect_amount_ > 0 AND mgpc.pay_user_type_ = 'STUDENT'
+			AND (mgpcd.expect_amount_ + mgpcd.expect_member_amount_) > 0 AND mgpc.pay_user_type_ = 'STUDENT'
 			<if test="organIds!=null and organIds.size()>0">
 				AND mg.organ_id_ IN
 				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -521,14 +533,14 @@
 			resultMap="MusicGroupPaymentCalenderDetail">
 		SELECT mgpcd.* FROM music_group_payment_calender_detail mgpcd
 		LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpcd.music_group_payment_calender_id_
-		WHERE (mgpc.status_ = 'OPEN' OR mgpcd.open_ = 1) AND mgpcd.payment_status_ = 'NON_PAYMENT' AND mgpcd.expect_amount_ != 0
+		WHERE (mgpc.status_ = 'OPEN' OR mgpcd.open_ = 1) AND mgpcd.payment_status_ = 'NON_PAYMENT' AND (mgpcd.expect_amount_ + mgpcd.expect_member_amount_) != 0
 		AND mgpcd.music_group_payment_calender_id_ = #{calenderId} AND FIND_IN_SET(mgpcd.user_id_,#{studentIds})
 	</select>
 
     <update id="updateNoPaymentAndZeroPaymentStatus">
 		UPDATE music_group_payment_calender_detail mgpcd
 		SET mgpcd.payment_status_ = 'PAID_COMPLETED',mgpcd.actual_amount_ = 0,mgpcd.update_time_ = NOW()
-		WHERE mgpcd.music_group_payment_calender_id_ = #{calenderId} AND mgpcd.expect_amount_ = 0
+		WHERE mgpcd.music_group_payment_calender_id_ = #{calenderId} AND (mgpcd.expect_amount_ + mgpcd.expect_member_amount_) = 0
 		AND mgpcd.payment_status_ = 'NON_PAYMENT'
 	</update>
 </mapper>

+ 28 - 6
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentStudentCourseDetailMapper.xml

@@ -12,6 +12,8 @@
                 property="musicGroupPaymentCalenderDetailId"/>
         <result column="user_id_" property="userId"/>
         <result column="course_type_" property="courseType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="course_original_price_" property="courseOriginalPrice"/>
+        <result column="course_current_price_" property="courseCurrentPrice"/>
         <result column="total_course_minutes_" property="totalCourseMinutes"/>
         <result column="used_course_minutes_" property="usedCourseMinutes"/>
         <result column="create_time_" property="createTime"/>
@@ -22,8 +24,7 @@
     <select id="get" resultMap="MusicGroupPaymentStudentCourseDetail">
         SELECT *
         FROM music_group_payment_student_course_detail
-        WHERE id_ =
-              #{id}
+        WHERE id_ = #{id}
     </select>
 
     <!-- 全查询 -->
@@ -38,17 +39,23 @@
             parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail"
             useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO music_group_payment_student_course_detail
-        (music_group_payment_calender_id_,music_group_payment_calender_detail_id_,user_id_,course_type_,total_course_minutes_,used_course_minutes_,create_time_,update_time_)
-        VALUES(#{musicGroupPaymentCalenderId},#{musicGroupPaymentCalenderDetailId},#{userId},#{courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{totalCourseMinutes},#{usedCourseMinutes},NOW(),NOW())
+        (music_group_payment_calender_id_,music_group_payment_calender_detail_id_,user_id_,course_type_,
+         total_course_minutes_,used_course_minutes_,create_time_,update_time_,course_original_price_,course_current_price_)
+        VALUES(#{musicGroupPaymentCalenderId},#{musicGroupPaymentCalenderDetailId},#{userId},
+               #{courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{totalCourseMinutes},#{usedCourseMinutes},
+               NOW(),NOW(),#{courseOriginalPrice},#{courseCurrentPrice})
     </insert>
 
     <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         INSERT INTO music_group_payment_student_course_detail
-        (music_group_payment_calender_id_,music_group_payment_calender_detail_id_,user_id_,course_type_,total_course_minutes_,used_course_minutes_,create_time_,update_time_)
+        (music_group_payment_calender_id_,music_group_payment_calender_detail_id_,user_id_,
+         course_type_,total_course_minutes_,used_course_minutes_,create_time_,update_time_,course_original_price_,course_current_price_)
         VALUES
         <foreach collection="list" item="item" separator=",">
-            (#{item.musicGroupPaymentCalenderId},#{item.musicGroupPaymentCalenderDetailId},#{item.userId},#{item.courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.totalCourseMinutes},#{item.usedCourseMinutes},NOW(),NOW())
+            (#{item.musicGroupPaymentCalenderId},#{item.musicGroupPaymentCalenderDetailId},
+             #{item.userId},#{item.courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+             #{item.totalCourseMinutes},#{item.usedCourseMinutes},NOW(),NOW(),#{item.courseOriginalPrice},#{item.courseCurrentPrice})
         </foreach>
     </insert>
 
@@ -57,6 +64,12 @@
             parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail">
         UPDATE music_group_payment_student_course_detail
         <set>
+            <if test="courseOriginalPrice != null">
+                course_original_price_ = #{courseOriginalPrice},
+            </if>
+            <if test="courseCurrentPrice != null">
+                course_current_price_ = #{courseCurrentPrice},
+            </if>
             <if test="usedCourseMinutes != null">
                 used_course_minutes_ = #{usedCourseMinutes},
             </if>
@@ -85,6 +98,12 @@
         <foreach collection="paymentCourseDetails" item="paymentCourseDetail" separator=";">
             UPDATE music_group_payment_student_course_detail
             <set>
+                <if test="paymentCourseDetail.courseOriginalPrice != null">
+                    course_original_price_ = #{paymentCourseDetail.courseOriginalPrice},
+                </if>
+                <if test="paymentCourseDetail.courseCurrentPrice != null">
+                    course_current_price_ = #{paymentCourseDetail.courseCurrentPrice},
+                </if>
                 <if test="paymentCourseDetail.usedCourseMinutes != null">
                     used_course_minutes_ = #{paymentCourseDetail.usedCourseMinutes},
                 </if>
@@ -239,4 +258,7 @@
         WHERE mgpc.music_group_id_ = #{musicGroupId}
         GROUP BY mgpscd.user_id_,mgpscd.course_type_
     </select>
+    <select id="findByCalenderAndUserId" resultMap="MusicGroupPaymentStudentCourseDetail">
+        SELECT * FROM music_group_payment_student_course_detail WHERE music_group_payment_calender_id_ = #{calenderId} AND user_id_ = #{userId}
+    </select>
 </mapper>

+ 5 - 12
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupPaymentCalenderController.java

@@ -3,12 +3,11 @@ package com.ym.mec.student.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderStudentDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
@@ -18,12 +17,10 @@ import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -32,8 +29,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 
-import java.util.List;
-
 @RequestMapping("musicGroupPaymentCalender")
 @Api(tags = "乐团缴费项目服务")
 @RestController
@@ -52,8 +47,7 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     @Autowired
     private MusicGroupPaymentCalenderStudentDetailDao musicGroupPaymentCalenderStudentDetailDao;
     @Autowired
-    private MusicGroupPaymentCalenderCourseSettingsDao musicGroupPaymentCalenderCourseSettingsDao;
-
+    private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
 	@Autowired
 	private MemberRankPrivilegesService memberRankPrivilegesService;
 
@@ -83,15 +77,14 @@ public class MusicGroupPaymentCalenderController extends BaseController {
             if (studentRegistration == null) {
                 return failed("乐团报名信息不存在");
             }
-            List<MusicGroupPaymentCalenderCourseSettings> calenderCourseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettings(calenderId);
             ModelMap model = new ModelMap();
-            musicGroupPaymentCalenderStudentDetailDao.findByBatchNoAndUserId(calender.getBatchNo(),userId);
-            if(calenderCourseSettings.size() == 0){
+            if(calender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.SPAN_GROUP_CLASS_ADJUST){
                 model.put("musicGroupPaymentCalenderStudentDetails",musicGroupPaymentCalenderStudentDetailDao.findByBatchNoAndUserId(calender.getBatchNo(),userId));
+            }else {
+                model.put("calenderCourseSettings", musicGroupPaymentStudentCourseDetailDao.findByCalenderAndUserId(calenderId,userId));
             }
             model.put("musicGroup",musicGroupDao.get(musicGroupId));
             model.put("amount", calenderDetail.getExpectAmount());
-            model.put("calenderCourseSettings", calenderCourseSettings);
             model.put("balance",studentRegistration.getBalance());
             model.put("calender",calender);
             model.put("memberPrivilegesItemList", memberRankPrivilegesService.queryByMemberRankId(calender.getMemberRankSettingId()));

+ 2 - 10
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderDetailController.java

@@ -51,8 +51,8 @@ public class MusicGroupPaymentCalenderDetailController extends BaseController {
     @ApiOperation(value = "修改学员预计缴费金额")
     @PostMapping("/updateExpectAmount")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalenderDetail/updateExpectAmount')")
-    public Object updateExpectAmount(BigDecimal expectAmount,String ids) {
-        musicGroupPaymentCalenderDetailService.updateExpectAmount(expectAmount,ids);
+    public Object updateExpectAmount(BigDecimal expectAmount,BigDecimal expectMemberAmount,String ids) {
+        musicGroupPaymentCalenderDetailService.updateExpectAmount(expectAmount,expectMemberAmount,ids);
         return succeed();
     }
 
@@ -64,14 +64,6 @@ public class MusicGroupPaymentCalenderDetailController extends BaseController {
     }
 
     @ApiOperation(value = "乐团缴费记录新增学员")
-    @PostMapping("/add")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalenderDetail/add')")
-    public Object add(Long musicGroupPaymentCalenderId,Integer userId) {
-        musicGroupPaymentCalenderDetailService.add(musicGroupPaymentCalenderId,userId);
-        return succeed();
-    }
-
-    @ApiOperation(value = "乐团缴费记录新增学员")
     @PostMapping("/batchAdd")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalenderDetail/batchAdd')")
 	public Object batchAdd(@RequestBody MusicGroupPaymentCalenderAddStudentDto musicGroupPaymentCalenderAddStudentDto) {