Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/saas' into saas

yanite 3 gadi atpakaļ
vecāks
revīzija
e480fa5459

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

@@ -443,4 +443,6 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
     * @date 2021/10/27 10:27
     */
     String queryStudentDoubleEleven2021Order(Integer userId);
+
+    List<StudentPaymentOrder> findByCalenderId(@Param("calenderId") Long calenderId, @Param("userId") Integer userId);
 }

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

@@ -165,4 +165,6 @@ public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPayme
      * @return
      */
     List<Goods> getGoodsSellPrice(@Param("orderIds") List<Long> orderIds, @Param("type") String type);
+
+    List<StudentPaymentOrderDetail> findByOrderId(Long paymentOrderId);
 }

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

@@ -120,4 +120,6 @@ public interface StudentPaymentOrderDetailService extends BaseService<Long, Stud
     * @date 2021/12/30 17:00
     */
     void addOrderDetailTo(StudentPaymentOrder studentPaymentOrder, MusicGroup musicGroup, StudentRegistration studentRegistration);
+
+    List<StudentPaymentOrderDetail> findByOrderId(Long paymentOrderId);
 }

+ 51 - 85
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -80,7 +80,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 	@Autowired
 	private CloudTeacherOrderDao cloudTeacherOrderDao;
 	@Autowired
-	private MusicGroupPaymentCalenderActivityService musicGroupPaymentCalenderActivityService;
+	private StudentPaymentOrderDao studentPaymentOrderDao;
 
 	@Override
 	public BaseDAO<Long, MusicGroupPaymentCalenderDetail> getDAO() {
@@ -721,76 +721,37 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 	@Transactional(rollbackFor = Exception.class)
     public void addCalenderDetail(StudentPaymentOrder studentPaymentOrder, StudentRegistration studentRegistration) {
 		Date nowDate = new Date();
-
-		String currentMusicGroupId = studentRegistration.getMusicGroupId();
-
-		//缴费详情 calender detail
-		MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(currentMusicGroupId);
-		if (musicGroupRegCalender == null) {
-			throw new BizException("报名缴费信息查询失败");
-		}
 		Integer tenantId = studentPaymentOrder.getTenantId();
-
-		String batchNo = musicGroupRegCalender.getBatchNo();
-		Long currentPaymentCalenderId = musicGroupRegCalender.getId();
-
-		List<MusicGroupPaymentCalender> musicGroupPaymentCalenderList = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
-
-		for (MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenderList) {
-			if (currentPaymentCalenderId.longValue() == musicGroupPaymentCalender.getId()) {
-				// 更新实际缴费人数
-				if (musicGroupPaymentCalender.getActualNum() == null) {
-					musicGroupPaymentCalender.setActualNum(1);
+		//缴费详情 calender detail
+		MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderService.get(studentPaymentOrder.getCalenderId());
+		Long currentPaymentCalenderId = studentPaymentOrder.getCalenderId();
+		//查询缴费项目关联的订单
+		List<StudentPaymentOrder> orderList = studentPaymentOrderDao.findByCalenderId(currentPaymentCalenderId,studentPaymentOrder.getUserId());
+		if(orderList.size() == 1){
+			// 更新实际缴费人数
+			if (musicGroupPaymentCalender.getActualNum() == null) {
+				musicGroupPaymentCalender.setActualNum(1);
+			} else {
+				musicGroupPaymentCalender.setActualNum(musicGroupPaymentCalender.getActualNum() + 1);
+			}
+			if(musicGroupPaymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY){
+				if (musicGroupPaymentCalender.getExpectNum() == null) {
+					musicGroupPaymentCalender.setExpectNum(1);
 				} else {
-					musicGroupPaymentCalender.setActualNum(musicGroupPaymentCalender.getActualNum() + 1);
+					musicGroupPaymentCalender.setExpectNum(musicGroupPaymentCalender.getExpectNum() + 1);
 				}
 			}
-			if (musicGroupPaymentCalender.getExpectNum() == null) {
-				musicGroupPaymentCalender.setExpectNum(1);
-			} else {
-				musicGroupPaymentCalender.setExpectNum(musicGroupPaymentCalender.getExpectNum() + 1);
-			}
 			musicGroupPaymentCalender.setUpdateTime(nowDate);
+			musicGroupPaymentCalenderDao.update(musicGroupPaymentCalender);
 		}
-		if (musicGroupPaymentCalenderList.size() > 0) {
-			musicGroupPaymentCalenderDao.batchUpdate(musicGroupPaymentCalenderList);
-		}
-
-		List<String> orderDetailTypes = studentPaymentOrderDetailDao.getOrderDetailType(studentPaymentOrder.getId());
-		List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupRegCalender.getId());
-		BigDecimal courseTotalPrice = courseSettings.stream().filter(e -> orderDetailTypes.contains(e.getCourseType().getCode())).map(MusicGroupPaymentCalenderCourseSettings::getCourseCurrentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-		BigDecimal optionalCourseFee = courseSettings.stream().filter(e -> orderDetailTypes.contains(e.getCourseType().getCode())).map(MusicGroupPaymentCalenderCourseSettings::getCourseCurrentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-
-		List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetails = new ArrayList<>();
 
-		for (MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenderList) {
-			MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
+		MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = musicGroupPaymentCalenderDetailDao.findByCalenderIdAndUserId(currentPaymentCalenderId,studentPaymentOrder.getUserId());
+		if(musicGroupPaymentCalenderDetail == null){
+			musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 			musicGroupPaymentCalenderDetail.setTenantId(tenantId);
 			musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
 			musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
 			musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
-
-/*			if (currentPaymentCalenderId.longValue() == musicGroupPaymentCalender.getId()) {
-				musicGroupPaymentCalenderDetail.setExpectAmount(courseTotalPrice);
-				if (studentPaymentOrder.getCourseRemitFee() != null && (studentPaymentOrder.getCourseRemitFee().compareTo(BigDecimal.ZERO) > 0)) {
-					musicGroupPaymentCalenderDetail.setActualAmount(optionalCourseFee);
-				} else {
-					musicGroupPaymentCalenderDetail.setActualAmount(courseTotalPrice);
-				}
-				musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
-				musicGroupPaymentCalenderDetail.setPayTime(nowDate);
-				musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
-				musicGroupPaymentCalenderDetail.setUseInCourse(0);
-				musicGroupPaymentCalenderDetail.setOpen(1);
-			} else {
-				musicGroupPaymentCalenderDetail.setExpectAmount(musicGroupPaymentCalender.getPaymentAmount());
-				musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
-			}
-			if(orderDetailTypes.contains(OrderDetailTypeEnum.CLOUD_TEACHER.name()) || orderDetailTypes.contains(OrderDetailTypeEnum.CLOUD_TEACHER_PLUS.name())){
-				musicGroupPaymentCalenderDetail.setExpectAmount(musicGroupPaymentCalenderDetail.getExpectAmount().add(musicGroupPaymentCalender.getMemberPaymentAmount()));
-				musicGroupPaymentCalenderDetail.setActualAmount(musicGroupPaymentCalenderDetail.getActualAmount().add(musicGroupPaymentCalender.getMemberPaymentAmount()));
-			}*/
-
 			musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
 			musicGroupPaymentCalenderDetail.setPayTime(nowDate);
 			musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
@@ -801,34 +762,39 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
 			musicGroupPaymentCalenderDetail.setCreateTime(nowDate);
 			musicGroupPaymentCalenderDetail.setUpdateTime(nowDate);
-
 			musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
+		}else {
+			musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
+			musicGroupPaymentCalenderDetail.setPayTime(nowDate);
+			musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+			musicGroupPaymentCalenderDetailDao.update(musicGroupPaymentCalenderDetail);
+		}
 
-			List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao
-					.getWithPaymentCalender(musicGroupPaymentCalender.getId());
-			for (MusicGroupPaymentCalenderCourseSettings courseSetting : courseSettingsList) {
-				if (musicGroupRegCalender.getPayUserType().equals(MusicGroupPaymentCalender.PayUserType.STUDENT)
-						&& !orderDetailTypes.contains(courseSetting.getCourseType().getCode())) {
-					continue;
-				}
-				if (courseSetting.getCourseTotalMinuties() == null || courseSetting.getCourseTotalMinuties() == 0) {
-					continue;
-				}
-				MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
-				musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
-				musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
-				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);
-				musicGroupPaymentStudentCourseDetail.setTenantId(tenantId);
-
-				musicGroupPaymentStudentCourseDetails.add(musicGroupPaymentStudentCourseDetail);
+		List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetails = new ArrayList<>();
+		List<String> orderDetailTypes = studentPaymentOrderDetailDao.getOrderDetailType(studentPaymentOrder.getId());
+		List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao
+				.getWithPaymentCalender(musicGroupPaymentCalender.getId());
+		for (MusicGroupPaymentCalenderCourseSettings courseSetting : courseSettingsList) {
+			if (musicGroupPaymentCalender.getPayUserType().equals(MusicGroupPaymentCalender.PayUserType.STUDENT)
+					&& !orderDetailTypes.contains(courseSetting.getCourseType().getCode())) {
+				continue;
+			}
+			if (courseSetting.getCourseTotalMinuties() == null || courseSetting.getCourseTotalMinuties() == 0) {
+				continue;
 			}
+			MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
+			musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
+			musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
+			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);
+			musicGroupPaymentStudentCourseDetail.setTenantId(tenantId);
+			musicGroupPaymentStudentCourseDetails.add(musicGroupPaymentStudentCourseDetail);
 		}
 
 		if (musicGroupPaymentStudentCourseDetails.size() > 0) {

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

@@ -617,7 +617,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		musicGroupPaymentCalender.setUpdateTime(date);
 		musicGroupPaymentCalender.setPaymentType(musicGroupPaymentBaseCalender.getPaymentType());
 //		musicGroupPaymentCalender.setPaymentAmount(courseActualAmount);
-		musicGroupPaymentCalender.setCurrentTotalAmount(courseActualAmount);
+		musicGroupPaymentCalender.setCurrentTotalAmount(actualTotalAmount);
 		musicGroupPaymentCalender.setOriginalTotalAmount(originalTotalAmount);
 		musicGroupPaymentCalender.setStatus(status);
 		musicGroupPaymentCalender.setOrganId(musicGroup.getOrganId());

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

@@ -3043,21 +3043,19 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         Date date = new Date();
         StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-        MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.findByOrderId(studentPaymentOrder.getId());
-        
+
         if (studentPaymentOrder.getStatus() == SUCCESS) {
-            MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
             //当前乐团报名是否赠送乐团网管课
-            MusicGroupStudentFee musicGroupStudentFee = musicGroupPaymentCalenderService.updateCalender(calenderDetail.getId(), studentRegistration.getUserId());
-            if (musicGroupStudentFee != null) {
-                musicGroupStudentFee.setUpdateTime(date);
-                musicGroupStudentFee.setLatestPaidTime(date);
-                musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
-                musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
-                musicGroupStudentFeeDao.update(musicGroupStudentFee);
-            }
+//            MusicGroupStudentFee musicGroupStudentFee = musicGroupPaymentCalenderService.updateCalender(calenderDetail.getId(), studentRegistration.getUserId());
+//            if (musicGroupStudentFee != null) {
+//                musicGroupStudentFee.setUpdateTime(date);
+//                musicGroupStudentFee.setLatestPaidTime(date);
+//                musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
+//                musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
+//                musicGroupStudentFeeDao.update(musicGroupStudentFee);
+//            }
             //如果是进行中加学员
-            MusicGroupPaymentCalender paymentCalender = musicGroupPaymentCalenderDao.get(calenderDetail.getMusicGroupPaymentCalenderId());
+            MusicGroupPaymentCalender paymentCalender = musicGroupPaymentCalenderDao.get(studentPaymentOrder.getCalenderId());
             if (paymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.ADD_STUDENT) {
                 studentRegistration.setPaymentStatus(YES);
                 studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
@@ -3067,6 +3065,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 groupEventSource.musicGroupStudentChangeEvent(studentRegistration.getMusicGroupId(), StudentMusicGroupStatusEnum.NORMAL, new ArrayList<>(Arrays.asList(userId)));
             }
 
+            MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
             //支付成功后处理课程、云教练、活动等数据
             studentPaymentOrderDetailService.addOrderDetailTo(studentPaymentOrder,musicGroup,studentRegistration);
 
@@ -3121,6 +3120,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             return true;
         } else {
     		//更新学生的缴费记录状态
+            MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.findByOrderId(studentPaymentOrder.getId());
     		calenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
     		calenderDetail.setUpdateTime(date);
     		musicGroupPaymentCalenderDetailDao.update(calenderDetail);

+ 6 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

@@ -526,7 +526,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 
     public void addOrderDetailTo(StudentPaymentOrder studentPaymentOrder,MusicGroup musicGroup,StudentRegistration studentRegistration){
         //SurplusCourseFee
-        List<StudentPaymentOrderDetail> allDetails = getOrderGoodsDetail(studentPaymentOrder.getId());
+        List<StudentPaymentOrderDetail> allDetails = this.findByOrderId(studentPaymentOrder.getId());
         BigDecimal courseFee = allDetails.stream().filter(o -> !(o.getType() == MUSICAL)
                 && !(o.getType() == VIP)
                 && !(o.getType() == PRACTICE)
@@ -559,7 +559,6 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
         }
         studentRegistrationDao.update(studentRegistration);
 
-
         //缴费项目详情
         musicGroupPaymentCalenderDetailService.addCalenderDetail(studentPaymentOrder, studentRegistration);
 
@@ -607,4 +606,9 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
             cloudTeacherOrderService.addOrderDetail2CloudTeacher(studentPaymentOrder,cloudTeacherFee);
         }
     }
+
+    @Override
+    public List<StudentPaymentOrderDetail> findByOrderId(Long paymentOrderId) {
+        return studentPaymentOrderDetailDao.findByOrderId(paymentOrderId);
+    }
 }

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -335,4 +335,7 @@
         AND spod.type_ = #{type}
         GROUP BY spod.id_
     </select>
+    <select id="findByOrderId" resultMap="StudentPaymentOrderDetail">
+        SELECT * FROM student_payment_order_detail WHERE payment_order_id_ = #{paymentOrderId}
+    </select>
 </mapper>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -1002,4 +1002,7 @@
         SELECT GROUP_CONCAT(activity_id_) FROM student_payment_order
         WHERE type_ = 'DOUBLE_ELEVEN2021' AND status_ = 'SUCCESS' AND user_id_ = #{userId}
     </select>
+    <select id="findByCalenderId" resultMap="StudentPaymentOrder">
+        SELECT * FROM student_payment_order WHERE calender_id_ = #{calenderId} AND status_ = 'SUCCESS' AND user_id_ = #{userId}
+    </select>
 </mapper>