Przeglądaj źródła

乐团缴费项目改造

zouxuan 2 lat temu
rodzic
commit
10a2fe9c1a

+ 45 - 40
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupCalenderRefundPeriodServiceImpl.java

@@ -139,48 +139,53 @@ public class MusicGroupCalenderRefundPeriodServiceImpl extends BaseServiceImpl<I
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean calcRefundAmount(Long calenderId,String orderNo, BigDecimal amount) {
-        //获取回款周期
-        List<MusicGroupCalenderRefundPeriod> refundPeriods = musicGroupCalenderRefundPeriodDao.findByCalenderId(calenderId);
-        Date date = new Date();
-        BigDecimal subAmount = amount;
-        for (int i = 0; i < refundPeriods.size(); i++) {
-            MusicGroupCalenderRefundPeriod refundPeriod = refundPeriods.get(i);
-            if(i == refundPeriods.size() - 1 && refundPeriod.getRefundFlag()){
-                refundPeriod.setIncome(refundPeriod.getIncome().add(subAmount));
-                if(StringUtils.isEmpty(refundPeriod.getOrderNos())){
-                    refundPeriod.setOrderNos(orderNo);
-                }else {
-                    refundPeriod.setOrderNos(refundPeriod.getOrderNos() + "," + orderNo);
+        if(calenderId != null){
+            //获取回款周期
+            List<MusicGroupCalenderRefundPeriod> refundPeriods = musicGroupCalenderRefundPeriodDao.findByCalenderId(calenderId);
+            if(CollectionUtils.isNotEmpty(refundPeriods)){
+                Date date = new Date();
+                BigDecimal subAmount = amount;
+                for (int i = 0; i < refundPeriods.size(); i++) {
+                    MusicGroupCalenderRefundPeriod refundPeriod = refundPeriods.get(i);
+                    if(i == refundPeriods.size() - 1 && refundPeriod.getRefundFlag()){
+                        refundPeriod.setIncome(refundPeriod.getIncome().add(subAmount));
+                        if(StringUtils.isEmpty(refundPeriod.getOrderNos())){
+                            refundPeriod.setOrderNos(orderNo);
+                        }else {
+                            refundPeriod.setOrderNos(refundPeriod.getOrderNos() + "," + orderNo);
+                        }
+                        refundPeriod.setUpdateTime(date);
+                        break;
+                    }
+                    if(refundPeriod.getRefundFlag()){
+                        continue;
+                    }
+                    if(subAmount.compareTo(refundPeriod.getSubRefundAmount()) >= 0){
+                        if(i == refundPeriods.size() - 1){
+                            refundPeriod.setIncome(refundPeriod.getIncome().add(subAmount));
+                            subAmount = BigDecimal.ZERO;
+                        }else {
+                            refundPeriod.setIncome(refundPeriod.getIncome().add(refundPeriod.getSubRefundAmount()));
+                            subAmount = subAmount.subtract(refundPeriod.getSubRefundAmount());
+                        }
+                        refundPeriod.setSubRefundAmount(BigDecimal.ZERO);
+                        refundPeriod.setRefundFlag(true);
+                    }else {
+                        refundPeriod.setIncome(refundPeriod.getIncome().add(subAmount));
+                        refundPeriod.setSubRefundAmount(refundPeriod.getSubRefundAmount().subtract(subAmount));
+                        subAmount = BigDecimal.ZERO;
+                    }
+                    if(StringUtils.isEmpty(refundPeriod.getOrderNos())){
+                        refundPeriod.setOrderNos(orderNo);
+                    }else {
+                        refundPeriod.setOrderNos(refundPeriod.getOrderNos() + "," + orderNo);
+                    }
+                    refundPeriod.setUpdateTime(date);
                 }
-                refundPeriod.setUpdateTime(date);
-                break;
-            }
-            if(refundPeriod.getRefundFlag()){
-                continue;
-            }
-            if(subAmount.compareTo(refundPeriod.getSubRefundAmount()) >= 0){
-                if(i == refundPeriods.size() - 1){
-                    refundPeriod.setIncome(refundPeriod.getIncome().add(subAmount));
-                    subAmount = BigDecimal.ZERO;
-                }else {
-                    refundPeriod.setIncome(refundPeriod.getIncome().add(refundPeriod.getSubRefundAmount()));
-                    subAmount = subAmount.subtract(refundPeriod.getSubRefundAmount());
-                }
-                refundPeriod.setSubRefundAmount(BigDecimal.ZERO);
-                refundPeriod.setRefundFlag(true);
-            }else {
-                refundPeriod.setIncome(refundPeriod.getIncome().add(subAmount));
-                refundPeriod.setSubRefundAmount(refundPeriod.getSubRefundAmount().subtract(subAmount));
-                subAmount = BigDecimal.ZERO;
-            }
-            if(StringUtils.isEmpty(refundPeriod.getOrderNos())){
-                refundPeriod.setOrderNos(orderNo);
-            }else {
-                refundPeriod.setOrderNos(refundPeriod.getOrderNos() + "," + orderNo);
+                musicGroupCalenderRefundPeriodDao.batchUpdate(refundPeriods);
+                return refundPeriods.get(refundPeriods.size()-1).getRefundFlag();
             }
-            refundPeriod.setUpdateTime(date);
         }
-        musicGroupCalenderRefundPeriodDao.batchUpdate(refundPeriods);
-        return refundPeriods.get(refundPeriods.size()-1).getRefundFlag();
+        return false;
     }
 }