Browse Source

fix 进行中加学生bug

周箭河 5 years ago
parent
commit
fb0a06a7f0

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

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.dto.RouteScaleDto;
 import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
 import com.ym.mec.biz.dal.entity.SysAccount;
 import com.ym.mec.biz.dal.entity.SysPaymentConfig;
+import com.ym.mec.biz.dal.enums.FeeTypeEnum;
 import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
 import com.ym.mec.biz.dal.enums.PaymentChannelTypeEnum;
 import com.ym.mec.biz.service.*;
@@ -41,6 +42,8 @@ public class PayServiceImpl implements PayService {
     private SysPaymentConfigService sysPaymentConfigService;
     @Autowired
     private StudentPaymentRouteOrderDao studentPaymentRouteOrderDao;
+    @Autowired
+    private SellOrderService sellOrderService;
 
     @Override
     public Map<String, Object> getPayMap(BigDecimal amount, BigDecimal balanceAmount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer organId, String receiver) throws Exception {
@@ -384,9 +387,15 @@ public class PayServiceImpl implements PayService {
         List<Integer> organIds = routeScaleDtos.stream().map(RouteScaleDto::getOrganId).collect(Collectors.toList());
         List<SysPaymentConfig> paymentConfigByOrganIds = sysPaymentConfigService.findPaymentConfigByOrganIds(organIds);
 
+        BigDecimal sellActualAmount = sellOrderService.getSellActualAmount(orderNo);
+
         for (RouteScaleDto routeScaleDto : routeScaleDtos) {
             routeScaleDto.setPayType(paymentConfig.getPayType());
-            routeScaleDto.setAmount(amount);
+            if(routeScaleDto.getFeeType().equals(FeeTypeEnum.SELL)){
+                routeScaleDto.setAmount(sellActualAmount);
+            }else {
+                routeScaleDto.setAmount(amount.subtract(sellActualAmount));
+            }
             for (SysPaymentConfig paymentConfigByOrganId : paymentConfigByOrganIds) {
                 if (!paymentConfigByOrganId.getOrganId().equals(routeScaleDto.getOrganId())) continue;
                 if (paymentConfig.getPayType().equals(PaymentChannelEnum.YQPAY)) {