Bläddra i källkod

Merge remote-tracking branch 'origin/master'

Joburgess 4 år sedan
förälder
incheckning
6e70a7ae81

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java

@@ -298,4 +298,13 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
      * @return
      */
     List<MusicGroupPaymentCalender> getPaymentCalenderWithCalenderIdsAndPayUserType(@Param("calenderIds") List<Object> calenderIds, @Param("payUserType") PayUserType payUserType);
+
+    /**
+     * 获取学校审核通过的缴费项
+     *
+     * @param calenderId
+     * @return
+     */
+    MusicGroupPaymentCalender getSchoolCalender(@Param("calenderId") Long calenderId);
+
 }

+ 35 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -29,6 +29,7 @@ import com.ym.mec.biz.dal.dto.FeeStudentDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType;
 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;
@@ -206,12 +207,14 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
 		
 		BigDecimal totalPrice = new BigDecimal(0);
-		for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
-			//剔除可选课程
-			if (courseSettings.getIsStudentOptional() == false) {
+		if (calender.getPayUserType() == PayUserType.STUDENT) {
+			for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
+				// 剔除可选课程
+				if (courseSettings.getIsStudentOptional() == false) {
+					totalPrice.add(courseSettings.getCourseCurrentPrice());
+				}
 				totalPrice.add(courseSettings.getCourseCurrentPrice());
 			}
-			totalPrice.add(courseSettings.getCourseCurrentPrice());
 		}
 		Date date = new Date();
 		calender.setUpdateTime(date);
@@ -222,7 +225,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(calender.getId());
 		musicGroupPaymentCalenderDetail.setCreateTime(date);
 		musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
-		musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
+		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());
@@ -273,10 +280,12 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
 		
 		BigDecimal totalPrice = new BigDecimal(0);
-		for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
-			//剔除可选课程
-			if (courseSettings.getIsStudentOptional() == false) {
-				totalPrice = totalPrice.add(courseSettings.getCourseCurrentPrice());
+		if (musicGroupPaymentCalender.getPayUserType() == PayUserType.STUDENT) {
+			for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
+				// 剔除可选课程
+				if (courseSettings.getIsStudentOptional() == false) {
+					totalPrice = totalPrice.add(courseSettings.getCourseCurrentPrice());
+				}
 			}
 		}
 		
@@ -290,7 +299,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
 			musicGroupPaymentCalenderDetail.setCreateTime(date);
 			musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
-			musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+			if (musicGroupPaymentCalenderDetail.getExpectAmount().compareTo(totalPrice) == 0) {
+				musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
+			} else {
+				musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+			}
 			musicGroupPaymentCalenderDetail.setUpdateTime(date);
 			musicGroupPaymentCalenderDetail.setUserId(studentId);
 			musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
@@ -366,10 +379,13 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
 			
 			BigDecimal totalPrice = new BigDecimal(0);
-			for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
-				//剔除可选课程
-				if (courseSettings.getIsStudentOptional() == false) {
-					totalPrice = totalPrice.add(courseSettings.getCourseCurrentPrice());
+			
+			if (musicGroupPaymentCalender.getPayUserType() == PayUserType.STUDENT) {
+				for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
+					// 剔除可选课程
+					if (courseSettings.getIsStudentOptional() == false) {
+						totalPrice = totalPrice.add(courseSettings.getCourseCurrentPrice());
+					}
 				}
 			}
 			
@@ -383,7 +399,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 				musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
 				musicGroupPaymentCalenderDetail.setCreateTime(date);
 				musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
-				musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+				if (musicGroupPaymentCalenderDetail.getExpectAmount().compareTo(new BigDecimal(0)) == 0) {
+					musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
+				} else {
+					musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+				}
 				musicGroupPaymentCalenderDetail.setUpdateTime(date);
 				musicGroupPaymentCalenderDetail.setUserId(studentId);
 				musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());

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

@@ -1124,6 +1124,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 			} else if (mgpc.getStartPaymentDate() != null && date.after(mgpc.getStartPaymentDate()) && mgpc.getStatus() == PaymentCalenderStatusEnum.NO) {
 				MusicGroup musicGroup = musicGroupDao.get(mgpc.getMusicGroupId());
+				if(musicGroup == null){
+					continue;
+				}
 				//如果乐团还在审核中
 				if(musicGroup.getStatus() == MusicGroupStatusEnum.DRAFT || musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT|| musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT_FAILED){
 					continue;

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

@@ -249,9 +249,6 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
         List<Long> paymentOrderNo = musicalListDetailDtos.stream().map(MusicalListDetailDto::getPaymentOrderId).collect(Collectors.toList());
         List<Integer> userIds = musicalListDetailDtos.stream().map(MusicalListDetailDto::getUserId).collect(Collectors.toList());
         //商品名称
-        MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(musicGroupId);
-        List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupRegCalender.getId());
-        String courseTypes = courseSettings.stream().map(e -> e.getCourseType().getCode()).collect(Collectors.joining(","));
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         Organization organization = organizationDao.get(musicGroup.getOrganId());
         Map<Long, String> goodsNameMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsNames(paymentOrderNo));
@@ -259,6 +256,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
         Map<Long, BigDecimal> expectAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDao.queryExpectAmount(paymentOrderNo));
         Map<Long, BigDecimal> musicalAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, "MUSICAL"));
         Map<Long, BigDecimal> accessoriesAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, "ACCESSORIES"));
+        String courseTypes = Arrays.stream(CourseSchedule.CourseScheduleType.values()).map(CourseSchedule.CourseScheduleType::getCode).collect(Collectors.joining(","))+",COURSE";
         Map<Long, BigDecimal> courseAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, courseTypes));
         Map<Long, String> purchaseTypeMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryPurchaseTypeMap(paymentOrderNo));
         Map<Integer, String> userSubjectMap = subjectDao.getRegisterSubject(musicGroupId, userIds).stream().collect(Collectors.toMap(StudentRegistration::getUserId, StudentRegistration::getSubjectName));

+ 8 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentRouteOrderServiceImpl.java

@@ -136,9 +136,9 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
             throw new BizException("流水号不能重复");
         }
         if (studentPaymentRouteOrder.getCalenderId() != null) {
-            MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderDao.get(studentPaymentRouteOrder.getCalenderId());
-            if (musicGroupPaymentCalender == null || !musicGroupPaymentCalender.getPayUserType().equals(MusicGroupPaymentCalender.PayUserType.SCHOOL)) {
-                throw new BizException("学校缴费单号不存在,请核查");
+            MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderDao.getSchoolCalender(studentPaymentRouteOrder.getCalenderId());
+            if (musicGroupPaymentCalender == null) {
+                throw new BizException("学校缴费单号(审核通过)不存在,请核查");
             }
         }
         Date nowDate = new Date();
@@ -303,11 +303,9 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
             //根据学校缴费项id,确定缴费状态
             BigDecimal amount = studentPaymentRouteOrderDao.sumAmountByCalenderId(studentPaymentRouteOrder.getCalenderId());
             List<MusicGroupPaymentCalenderDetail> calenderDetails = musicGroupPaymentCalenderDetailDao.getCalenderDetailWithCalender(studentPaymentRouteOrder.getCalenderId());
-            BigDecimal schoolNeedPayAmount = calenderDetails.stream().map(MusicGroupPaymentCalenderDetail::getExpectAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
             MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderDao.get(studentPaymentRouteOrder.getCalenderId());
 
-            if (amount.compareTo(schoolNeedPayAmount) >= 0 &&
-                    !musicGroupPaymentCalender.getStatus().equals(MusicGroupPaymentCalender.PaymentCalenderStatusEnum.PAID)) {
+            if (amount.compareTo(musicGroupPaymentCalender.getPaymentAmount()) >= 0) {
                 musicGroupPaymentCalender.setActualNum(musicGroupPaymentCalender.getExpectNum());
                 musicGroupPaymentCalender.setStatus(MusicGroupPaymentCalender.PaymentCalenderStatusEnum.PAID);
                 musicGroupPaymentCalenderDao.update(musicGroupPaymentCalender);
@@ -318,7 +316,9 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
                     calenderDetail.setPayTime(nowDate);
                     calenderDetail.setUpdateTime(nowDate);
                 }
-                musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
+                if (calenderDetails.size() > 0) {
+                    musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
+                }
             }
 
         }
@@ -477,7 +477,7 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
                     }
                     if (columnValue.equals("calenderId")) {
                         if (StringUtils.isNotBlank(row.get(s).toString()) && !schoolCalender.containsKey(row.get(s).toString())) {
-                            sb.append("第" + rowNum).append("行数据导入失败:学校缴费单号不存在;");
+                            sb.append("第" + rowNum).append("行数据导入失败:学校缴费单号(审核通过)不存在;");
                             continue valueIsNull;
                         } else {
                             objectMap.put("calenderId", row.get(s));

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

@@ -943,8 +943,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             studentCourseFeeDetail.setOperator(studentPaymentOrder.getUserId());
             studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
 
-            //当前乐团报名是否赠送乐团网管课
-
             MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(), studentRegistration.getMusicGroupId());
             //进行中乐团加入学生缴费
             if (studentRegistration.getTemporaryCourseFee() != null) {
@@ -1076,6 +1074,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         //缴费详情 calender detail
         MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(currentMusicGroupId);
+        if (musicGroupRegCalender == null) {
+            musicGroupStudentFeeDao.insert(musicGroupStudentFee);
+            return true;
+        }
 
         String batchNo = musicGroupRegCalender.getBatchNo();
         Long currentPaymentCalenderId = musicGroupRegCalender.getId();

+ 5 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -545,11 +545,15 @@
     </select>
 
     <select id="getPaymentCalenderWithCalenderIdsAndPayUserType" resultMap="MusicGroupPaymentCalender">
-        SELECT * FROM music_group_payment_calender mgpc
+        SELECT * FROM music_group_payment_calender
         WHERE id_ IN
         <foreach collection="calenderIds" item="calenderId" open="(" close=")" separator=",">
             #{calenderId}
         </foreach>
         AND pay_user_type_ = #{payUserType}
+        AND status_ IN ('NO', 'OPEN', 'OVER', 'PAID');
+    </select>
+    <select id="getSchoolCalender" resultMap="MusicGroupPaymentCalender">
+        SELECT * FROM music_group_payment_calender WHERE id_ = #{calenderId} AND status_ IN ('NO', 'OPEN', 'OVER', 'PAID');
     </select>
 </mapper>