yonge пре 4 година
родитељ
комит
4b0ae1b25f

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

@@ -1,9 +1,12 @@
 package com.ym.mec.biz.dal.dao;
 package com.ym.mec.biz.dal.dao;
 
 
+import java.util.List;
+
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 
 
 public interface MusicGroupPaymentStudentCourseDetailDao extends BaseDAO<Long, MusicGroupPaymentStudentCourseDetail> {
 public interface MusicGroupPaymentStudentCourseDetailDao extends BaseDAO<Long, MusicGroupPaymentStudentCourseDetail> {
 
 
+	int batchInsert(List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList);
 	
 	
 }
 }

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

@@ -110,7 +110,7 @@ public class MusicGroupPaymentCalenderCourseSettings {
 		this.isStudentOptional = isStudentOptional;
 		this.isStudentOptional = isStudentOptional;
 	}
 	}
 	
 	
-	public boolean isIsStudentOptional(){
+	public boolean getIsStudentOptional(){
 		return this.isStudentOptional;
 		return this.isStudentOptional;
 	}
 	}
 			
 			

+ 77 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -24,6 +24,7 @@ import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.FeeStudentDto;
 import com.ym.mec.biz.dal.dto.FeeStudentDto;
@@ -33,6 +34,7 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
@@ -56,6 +58,9 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 	private MusicGroupPaymentCalenderCourseSettingsDao musicGroupPaymentCalenderCourseSettingsDao;
 	private MusicGroupPaymentCalenderCourseSettingsDao musicGroupPaymentCalenderCourseSettingsDao;
 	
 	
 	@Autowired
 	@Autowired
+	private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
+	
+	@Autowired
 	private MusicGroupDao musicGroupDao;
 	private MusicGroupDao musicGroupDao;
 	@Autowired
 	@Autowired
 	private SysConfigDao sysConfigDao;
 	private SysConfigDao sysConfigDao;
@@ -215,41 +220,56 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		if(calender == null){
 		if(calender == null){
 			throw new BizException("缴费信息不存在");
 			throw new BizException("缴费信息不存在");
 		}
 		}
-		/*MusicGroupPaymentCalenderDetail userLastCalenderDetail = musicGroupPaymentCalenderDetailDao.getUserLastCalenderDetail(calender.getMusicGroupId(), userId);
-		if(userLastCalenderDetail != 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);
+		for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
+			//剔除可选课程
+			if (courseSettings.getIsStudentOptional() == false) {
+				totalPrice.add(courseSettings.getCourseCurrentPrice());
+			}
+			totalPrice.add(courseSettings.getCourseCurrentPrice());
+		}
 		Date date = new Date();
 		Date date = new Date();
-//		Integer countOpenPayment = musicGroupPaymentCalenderDetailDao.countOpenPayment(calender.getMusicGroupId(), userId);
-		MusicGroupStudentFee studentFee = musicGroupStudentFeeDao.findByUser(userId, calender.getMusicGroupId());
-		/*if(countOpenPayment > 0){
-			throw new BizException("操作失败: 学员有未完成的缴费");
-		}*/
 		calender.setUpdateTime(date);
 		calender.setUpdateTime(date);
+		calender.setExpectNum(calender.getExpectNum() + 1);
 		//生成详情
 		//生成详情
-		MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
+		musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 		musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(calender.getId());
 		musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(calender.getId());
 		musicGroupPaymentCalenderDetail.setCreateTime(date);
 		musicGroupPaymentCalenderDetail.setCreateTime(date);
-		musicGroupPaymentCalenderDetail.setExpectAmount(studentFee.getCourseFee());
-		studentFee.setUpdateTime(date);
-		/*if (studentFee.getCourseFee().doubleValue() == 0) {
-			studentFee.setPaymentStatus(PAID_COMPLETED);
-			musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
-			if(calender.getType() == ONLINE){
-				studentFee.setRemainNetworkClassTimes(studentFee.getRemainNetworkClassTimes() + 1);
-//				musicGroupStudentFeeDao.remainNetworkClassTimesAdd(userLastCalenderDetail.getId().toString());
-			}
-		} else {
-			studentFee.setPaymentStatus(NON_PAYMENT);
-			musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
-		}*/
-		studentFee.setPaymentStatus(NON_PAYMENT);
+		musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
 		musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
 		musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
 		musicGroupPaymentCalenderDetail.setUpdateTime(date);
 		musicGroupPaymentCalenderDetail.setUpdateTime(date);
 		musicGroupPaymentCalenderDetail.setUserId(userId);
 		musicGroupPaymentCalenderDetail.setUserId(userId);
 		musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
 		musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
 		musicGroupPaymentCalenderDao.update(calender);
 		musicGroupPaymentCalenderDao.update(calender);
-		musicGroupStudentFeeDao.update(studentFee);
+		
+		List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = new ArrayList<MusicGroupPaymentStudentCourseDetail>();
+		MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = null;
+		for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
+			if (courseSettings.getIsStudentOptional() == true) {
+				continue;
+			}
+			musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
+			musicGroupPaymentStudentCourseDetail.setCourseType(courseSettings.getCourseType());
+			musicGroupPaymentStudentCourseDetail.setCreateTime(date);
+			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
 	@Override
@@ -270,12 +290,15 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		
 		
 		BigDecimal totalPrice = new BigDecimal(0);
 		BigDecimal totalPrice = new BigDecimal(0);
 		for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
 		for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
-			totalPrice.add(courseSettings.getCourseCurrentPrice());
+			//剔除可选课程
+			if (courseSettings.getIsStudentOptional() == false) {
+				totalPrice.add(courseSettings.getCourseCurrentPrice());
+			}
 		}
 		}
 		
 		
 		Date date = new Date();
 		Date date = new Date();
 		MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = null;
 		MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = null;
-
+		Map<Integer,MusicGroupPaymentCalenderDetail> userMap = new HashMap<Integer, MusicGroupPaymentCalenderDetail>();
 		List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<MusicGroupPaymentCalenderDetail>();
 		List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<MusicGroupPaymentCalenderDetail>();
 		//创建缴费明细
 		//创建缴费明细
 		for(Integer studentId : userIdList){
 		for(Integer studentId : userIdList){
@@ -289,6 +312,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
 			musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
 			musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
 			musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
 			
 			
+			userMap.put(studentId, musicGroupPaymentCalenderDetail);
 			musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
 			musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
 		}
 		}
 
 
@@ -298,7 +322,32 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		//更新预计缴费人数
 		//更新预计缴费人数
 		musicGroupPaymentCalender.setExpectNum(userIdList.size());
 		musicGroupPaymentCalender.setExpectNum(userIdList.size());
 		musicGroupPaymentCalender.setUpdateTime(date);
 		musicGroupPaymentCalender.setUpdateTime(date);
-		musicGroupPaymentCalenderDetailDao.update(musicGroupPaymentCalenderDetail);
+		musicGroupPaymentCalenderDao.update(musicGroupPaymentCalender);
+		
+		List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = new ArrayList<MusicGroupPaymentStudentCourseDetail>();
+		MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = null;
+		//创建学生课排课分钟数
+		for(Integer studentId : userIdList){
+			for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
+				if (courseSettings.getIsStudentOptional() == true) {
+					continue;
+				}
+				musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
+				musicGroupPaymentStudentCourseDetail.setCourseType(courseSettings.getCourseType());
+				musicGroupPaymentStudentCourseDetail.setCreateTime(date);
+				musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(userMap.get(studentId).getId());
+				musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
+				musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
+				musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
+				musicGroupPaymentStudentCourseDetail.setUserId(studentId);
+				
+				musicGroupPaymentStudentCourseDetailList.add(musicGroupPaymentStudentCourseDetail);
+			}
+		}
+		
+		if(musicGroupPaymentStudentCourseDetailList.size() > 0){
+			musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetailList);
+		}
 	}
 	}
 
 
 	@Override
 	@Override

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentStudentCourseDetailMapper.xml

@@ -40,6 +40,16 @@
 		(id_,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_)
 		(id_,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(#{id},#{musicGroupPaymentCalenderId},#{musicGroupPaymentCalenderDetailId},#{userId},#{courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{totalCourseMinutes},#{usedCourseMinutes},#{createTime},#{updateTime})
 		VALUES(#{id},#{musicGroupPaymentCalenderId},#{musicGroupPaymentCalenderDetailId},#{userId},#{courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{totalCourseMinutes},#{usedCourseMinutes},#{createTime},#{updateTime})
 	</insert>
 	</insert>
+	
+	<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
+		INSERT INTO music_group_payment_student_course_detail
+		(id_,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
+		<foreach collection="list" item="item" separator=",">
+		(#{item.id},#{item.musicGroupPaymentCalenderId},#{item.musicGroupPaymentCalenderDetailId},#{item.userId},#{item.courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.totalCourseMinutes},#{item.usedCourseMinutes},#{item.createTime},#{item.updateTime})
+		</foreach>
+	</insert>
 
 
 	<!-- 根据主键查询一条记录 -->
 	<!-- 根据主键查询一条记录 -->
 	<update id="update"
 	<update id="update"

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java

@@ -84,7 +84,7 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     @ApiOperation(value = "修改乐团缴费时间")
     @ApiOperation(value = "修改乐团缴费时间")
     @PostMapping("/update")
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/update')")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/update')")
-    public Object update(MusicGroupPaymentCalender paymentCalender) {
+    public Object update(@RequestBody MusicGroupPaymentCalender paymentCalender) {
     	Long musicGroupPaymentCalenderId = musicGroupPaymentCalenderService.merge(paymentCalender);
     	Long musicGroupPaymentCalenderId = musicGroupPaymentCalenderService.merge(paymentCalender);
         ModelMap map = new ModelMap();
         ModelMap map = new ModelMap();
         map.put("musicGroupPaymentCalenderId", musicGroupPaymentCalenderId);
         map.put("musicGroupPaymentCalenderId", musicGroupPaymentCalenderId);