Browse Source

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

zouxuan 3 years ago
parent
commit
5f3c2260ac

+ 11 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -364,6 +364,7 @@ public class ExportServiceImpl implements ExportService {
         long i = 1;
         
         Map<String,BigDecimal> serviceChargeMap = new HashMap<String, BigDecimal>();
+        Map<String,Integer> orderCountMap = new HashMap<String, Integer>();
         
         for (StudentPaymentOrderExportDto row : studentPaymentOrderExportDtos) {
             if (row.getActualAmount() == null) {
@@ -382,7 +383,15 @@ public class ExportServiceImpl implements ExportService {
             BigDecimal currentFee = BigDecimal.ZERO;
             BigDecimal totalFee = BigDecimal.ZERO;
             if (row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")) {
-                //FeeFlagNumDto countFeeFlagNum = studentPaymentRouteOrderDao.getCountFeeFlagNum(row.getOrderNo());
+                FeeFlagNumDto countFeeFlagNum = studentPaymentRouteOrderDao.getCountFeeFlagNum(row.getOrderNo());
+                
+                Integer times = orderCountMap.get(row.getOrderNo());
+				if (times == null) {
+					times = 1;
+				} else {
+					++times;
+				}
+            	orderCountMap.put(row.getOrderNo(), times);
                 
                 transferFee = serviceChargeMap.get(row.getOrderNo());
                 if(transferFee == null){
@@ -391,7 +400,7 @@ public class ExportServiceImpl implements ExportService {
                 
                 currentFee = row.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
                 totalFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
-                if(totalFee.subtract(transferFee.add(currentFee)).doubleValue() < 0){
+                if(totalFee.subtract(transferFee.add(currentFee)).doubleValue() < 0 || times == countFeeFlagNum.getTotalNum()){
                 	currentFee = totalFee.subtract(transferFee);
                 	serviceChargeMap.put(row.getOrderNo(), totalFee);
                 }else{