Explorar o código

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

zouxuan %!s(int64=4) %!d(string=hai) anos
pai
achega
4e6c3a54fb

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

@@ -1019,6 +1019,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 					// 添加会员有效时长
 					if(musicGroupPaymentCalender.getMemberRankSettingId() != null){
 						CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+						cloudTeacherOrder.setLevel(musicGroupPaymentCalender.getMemberRankSettingId());
 						cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
 						cloudTeacherOrder.setType(2);
 						cloudTeacherOrder.setTime(musicGroupPaymentCalender.getMemberValidDate());

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

@@ -215,6 +215,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Autowired
     private MusicGroupSchoolTermStudentCourseDetailDao musicGroupSchoolTermStudentCourseDetailDao;
+    
+    @Autowired
+    private StudentService studentService;
 
     private SimpleDateFormat sdf_ymd = new SimpleDateFormat("yyyy-MM-dd");
 
@@ -2319,6 +2322,28 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrderService.insert(studentPaymentOrder);
         calenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
         musicGroupPaymentCalenderDetailDao.update(calenderDetail);
+        
+        
+        CloudTeacherOrder cloudTeacherOrder = null;
+
+        //云教练/云教练+
+        if (calender.getMemberRankSettingId() != null) {
+
+            //创建订单
+            cloudTeacherOrder = new CloudTeacherOrder();
+
+    		cloudTeacherOrder.setType(2);//月
+			cloudTeacherOrder.setTime(calender.getMemberValidDate());
+    		cloudTeacherOrder.setOrganId(organId);
+    		cloudTeacherOrder.setStudentId(studentRegistration.getUserId());
+    		cloudTeacherOrder.setLevel(calender.getMemberRankSettingId());
+    		cloudTeacherOrder.setAmount(calender.getMemberPaymentAmount());
+    		cloudTeacherOrder.setStatus(0);
+    		cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
+    		cloudTeacherOrder.setCreateTime(date);
+    		cloudTeacherOrder.setUpdateTime(date);
+    		cloudTeacherOrderService.insert(cloudTeacherOrder);
+        }
 
         /*ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
         StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
@@ -2430,16 +2455,77 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 studentRegistration.setPaymentStatus(YES);
                 studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
                 studentRegistrationDao.update(studentRegistration);
-
+                
                 //统计变更学员数
                 groupEventSource.musicGroupStudentChangeEvent(studentRegistration.getMusicGroupId(), StudentMusicGroupStatusEnum.NORMAL, new ArrayList<>(Arrays.asList(userId)));
             }
-            /*if (musicGroupPaymentCalender.getType().equals(MusicGroupPaymentCalender.FeeType.ONLINE)) {
-                Integer getRemainNetworkClassTimes = musicGroupStudentFee.getRemainNetworkClassTimes() == null ? 0 : musicGroupStudentFee.getRemainNetworkClassTimes();
-                musicGroupStudentFee.setRemainNetworkClassTimes(getRemainNetworkClassTimes + 1);
-            }*/
-//            musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, musicGroupStudentFee.getNextPaymentDate(), musicGroupStudentFee));
 
+            List<StudentPaymentOrderDetail> paymentOrderDetails = new ArrayList<>();
+
+			// 查询会员订单信息
+			CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderService.queryByOrderId(studentPaymentOrder.getId());
+			if (cloudTeacherOrder != null) {
+				Student student = studentService.getLocked(userId);
+				if (student == null) {
+					throw new BizException("学员信息不存在");
+				}
+				cloudTeacherOrder.setStatus(2);
+				cloudTeacherOrder.setUpdateTime(date);
+
+				PeriodEnum periodEnum = PeriodEnum.MONTH;
+				switch (cloudTeacherOrder.getType()) {
+				case 1:
+					periodEnum = PeriodEnum.DAY;
+					break;
+				case 2:
+					periodEnum = PeriodEnum.MONTH;
+					break;
+				case 3:
+					periodEnum = PeriodEnum.YEAR;
+					break;
+
+				default:
+					break;
+				}
+
+				if (student.getMemberRankSettingId() == null || date.after(student.getMembershipEndTime())) {
+					cloudTeacherOrder.setStartTime(date);
+					if (cloudTeacherOrder.getType() == 1) {
+						cloudTeacherOrder.setEndTime(DateUtil.addDays(date, cloudTeacherOrder.getTime()));
+					} else if (cloudTeacherOrder.getType() == 2) {
+						cloudTeacherOrder.setEndTime(DateUtil.addMonths(date, cloudTeacherOrder.getTime()));
+					} else if (cloudTeacherOrder.getType() == 3) {
+						cloudTeacherOrder.setEndTime(DateUtil.addYears(date, cloudTeacherOrder.getTime()));
+					} else {
+						throw new BizException("不支持的周期类型");
+					}
+				} else {
+					cloudTeacherOrder.setStartTime(DateUtil.addDays(student.getMembershipEndTime(), 1));
+					if (cloudTeacherOrder.getType() == 1) {
+						cloudTeacherOrder.setEndTime(DateUtil.addDays(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
+					} else if (cloudTeacherOrder.getType() == 2) {
+						cloudTeacherOrder.setEndTime(DateUtil.addMonths(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
+					} else if (cloudTeacherOrder.getType() == 3) {
+						cloudTeacherOrder.setEndTime(DateUtil.addYears(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
+					} else {
+						throw new BizException("不支持的周期类型");
+					}
+				}
+
+				cloudTeacherOrderService.update(cloudTeacherOrder);
+				// 添加会员有效时长
+				studentService.updateMemberRank(userId, Integer.parseInt(studentPaymentOrder.getMusicGroupId()), periodEnum, cloudTeacherOrder.getTime());
+				
+				//添加订单明细
+				StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
+                studentPaymentOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
+                studentPaymentOrderDetail.setPrice(cloudTeacherOrder.getAmount());
+                studentPaymentOrderDetail.setCreateTime(date);
+                studentPaymentOrderDetail.setUpdateTime(date);
+                studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+                
+                paymentOrderDetails.add(studentPaymentOrderDetail);
+			}
 
             //插入交易明细
             SysUserCashAccount cashAccount = sysUserCashAccountService.get(userId);
@@ -2460,7 +2546,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount());
             sysUserCashAccountDetailService.insert(rechargeDetail);
 
-            List<StudentPaymentOrderDetail> paymentOrderDetails = new ArrayList<>();
             //跨团合班没有settings
             if(paymentCalender.getPaymentType() == PaymentType.SPAN_GROUP_CLASS_ADJUST){
                 List<MusicGroupPaymentCalenderStudentDetail> studentDetails = musicGroupPaymentCalenderStudentDetailDao.findByBatchNoAndUserId(paymentCalender.getBatchNo(), userId);