yonge 2 سال پیش
والد
کامیت
6c4a57598c

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

@@ -1098,8 +1098,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult pay(RegisterPayDto registerPayDto) throws Exception {
+    	
+    	Integer userId = registerPayDto.getUserId();
+    	String musicGroupId = registerPayDto.getMusicGroupId();
+    	
         //判断用户是否已存在订单
-        List<StudentPaymentOrder> applyOrderList = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(registerPayDto.getUserId(), registerPayDto.getMusicGroupId(), DealStatusEnum.ING);
+        List<StudentPaymentOrder> applyOrderList = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.ING);
         if (CollectionUtils.isNotEmpty(applyOrderList)) {
             HttpResponseResult result = studentPaymentOrderService.checkRepeatPay(applyOrderList.get(0), registerPayDto.getRepeatPay());
             if (result.getCode() != 200) {
@@ -1119,9 +1123,17 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (musicGroup == null) {
             throw new BizException("查询乐团信息失败");
         }
+        
+        SubjectChange subjectChange = subjectChangeDao.getStudentLastChange(userId, musicGroupId);
+        if(subjectChange != null){
+        	throw new BizException("您已做过声部更换操作,不能继续缴费");
+        }
+    	subjectChange = subjectChangeDao.getStudentWaitPay(userId, musicGroupId);
+    	if(subjectChange != null){
+    		throw new BizException("您有处理中的声部更换订单,不能继续缴费");
+    	}
 
         Long calenderId = musicGroupRegCalender.getId();
-        Integer userId = studentRegistration.getUserId();
 
         //获取缴费项目金额
         MusicGroupApplyGoodsDto goodsDto = getCalenderTotalAmount(registerPayDto, musicGroupRegCalender);

+ 11 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java

@@ -11,6 +11,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
@@ -49,7 +50,6 @@ import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.SubjectChange;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
-import com.ym.mec.biz.dal.entity.SysUserCashAccountLog;
 import com.ym.mec.biz.dal.enums.AccountType;
 import com.ym.mec.biz.dal.enums.CouponDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
@@ -61,7 +61,6 @@ import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.enums.PayStatus;
 import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.ReturnFeeEnum;
 import com.ym.mec.biz.dal.enums.SellTypeEnum;
 import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.SubjectChangeStatusEnum;
@@ -449,10 +448,10 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
             throw new BizException("已有未支付的声部更改,请勿重复创建");
         }
 
-        studentWaitPay = subjectChangeDao.getStudentLastChange(subjectChange.getStudentId(), musicGroupId);
+        /*studentWaitPay = subjectChangeDao.getStudentLastChange(subjectChange.getStudentId(), musicGroupId);
         if (studentWaitPay != null) {
             throw new BizException("声部更换只能操作一次,请勿重复操作");
-        }
+        }*/
 
         Set<String> musicGroupIds = new HashSet<String>();
         musicGroupIds.add(musicGroupId);
@@ -498,6 +497,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
         }
         if (subjectChange.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.OWNED)) {
             subjectChange.setChangeMusical(null);
+            subjectChange.setChangeCourseFee(BigDecimal.ZERO);
         }
         subjectChange.setStatus(SubjectChangeStatusEnum.WAIT_PAY);
         subjectChange.setCourseMargin(subjectChange.getChangeCourseFee().subtract(subjectChange.getOriginalCourseFee()));
@@ -797,6 +797,12 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
         if (paymentOrderIdList != null && paymentOrderIdList.size() > 0) {
             details = studentPaymentOrderDetailDao.getWithIds(paymentOrderIdList);
         }
+        KitGroupPurchaseTypeEnum kitGroupPurchaseType = null;
+        
+        Optional<StudentPaymentOrderDetail> optional = details.stream().filter(t -> (t.getKitGroupPurchaseType() != null && t.getType() == OrderDetailTypeEnum.MUSICAL)).findFirst();
+        if(optional.isPresent()){
+        	kitGroupPurchaseType = optional.get().getKitGroupPurchaseType();
+        }
 
         //查询乐器订单
         Long paymentOrderId = null;
@@ -808,7 +814,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
                     paymentOrderId = detail.getPaymentOrderId();
                 }
             }
-            if(detail.getType() == OrderDetailTypeEnum.ORGAN_SHARE_PROFIT && detail.getKitGroupPurchaseType() == KitGroupPurchaseTypeEnum.GROUP) {
+            if(detail.getType() == OrderDetailTypeEnum.ORGAN_SHARE_PROFIT && kitGroupPurchaseType == KitGroupPurchaseTypeEnum.GROUP) {
             	organShareProfit = organShareProfit.add(detail.getPrice());
             }
         }