Pārlūkot izejas kodu

add 退团加退云教练

周箭河 4 gadi atpakaļ
vecāks
revīzija
c011ea473b

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -167,10 +167,11 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param isRefundInstrumentFee 是否退还乐器费用
 	 * @param isRefundTeachingAssistantsFee 是否退还教辅费用
 	 * @param maintenanceFee
+	 * @param cloudTeacherAmount
 	 * @return
 	 */
 	boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
-								  boolean isRefundTeachingAssistantsFee, BigDecimal maintenanceFee);
+								  boolean isRefundTeachingAssistantsFee, BigDecimal maintenanceFee, BigDecimal cloudTeacherAmount);
 
 	/**
 	 * 一键退团

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

@@ -1662,7 +1662,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
-                                         boolean isRefundTeachingAssistantsFee, BigDecimal maintenanceFee) {
+                                         boolean isRefundTeachingAssistantsFee, BigDecimal maintenanceFee, BigDecimal cloudTeacherAmount) {
 
         MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(id);
         if (musicGroupQuit == null) {
@@ -1845,6 +1845,24 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 }
             }
 
+            //退云教练费用
+            if (cloudTeacherAmount != null) {
+                Date nowDate = new Date();
+                CloudTeacherOrder studentCloudTeacherOrder = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
+                if (cloudTeacherAmount.compareTo(BigDecimal.ZERO) > 0) {
+                    if (studentCloudTeacherOrder == null || (studentCloudTeacherOrder.getEndTime() != null && studentCloudTeacherOrder.getEndTime().compareTo(nowDate) <= 0)) {
+                        throw new BizException("学生云教练已过有效期,不能退费");
+                    }
+                    if (cloudTeacherAmount.compareTo(studentCloudTeacherOrder.getAmount()) > 0) {
+                        throw new BizException("云教练退费金额不能大于原始订单金额");
+                    }
+                }
+                amount = amount.add(cloudTeacherAmount);
+                if (studentCloudTeacherOrder != null) {
+                    cloudTeacherOrderService.quitCloudTeacherOrder(studentCloudTeacherOrder, cloudTeacherAmount);
+                }
+            }
+
             if (amount.doubleValue() > 0) {
                 // 增加交易流水
                 sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",

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

@@ -128,8 +128,8 @@ public class MusicGroupQuitController extends BaseController {
             @ApiImplicitParam(name = "maintenanceFee", value = "退乐保费用", required = true, dataType = "num")
     })
     public HttpResponseResult quitMusicGroup(Long id, ApprovalStatus status, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
-                                             boolean isRefundTeachingAssistantsFee, BigDecimal maintenanceFee) throws Exception {
-        return succeed(musicGroupService.approveQuitMusicGroup(id, status, reason, isRefundCourseFee, isRefundInstrumentFee, isRefundTeachingAssistantsFee, maintenanceFee));
+                                             boolean isRefundTeachingAssistantsFee, BigDecimal maintenanceFee,BigDecimal cloudTeacherAmount) throws Exception {
+        return succeed(musicGroupService.approveQuitMusicGroup(id, status, reason, isRefundCourseFee, isRefundInstrumentFee, isRefundTeachingAssistantsFee, maintenanceFee, cloudTeacherAmount));
     }
 
     @ApiOperation(value = "一键退团")