From 1b0cf0db5c82ea8308d2f338973a91555787c34d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 18 三月 2025 11:17:23 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java |   38 ++++++++++++++++++++++----------------
 1 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java
index 1181f86..0ffaba6 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java
@@ -33,6 +33,7 @@
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 
 /**
@@ -95,7 +96,7 @@
     @Override
     public WxBill findOne(WxBill wxBill) {
         QueryWrapper<WxBill> wrapper = new QueryWrapper<>(wxBill);
-        return wxBillMapper.selectOne(wrapper);
+        return wxBillMapper.selectOne(wrapper.last(" limit 1"));
     }
 
     @Override
@@ -143,13 +144,14 @@
             for(WxBillDetail detail : detailList){
                 if(StringUtils.equals(detail.getBillStatus(), "SUCCESS")){
                     //瀹炴敹鏁版嵁
-                    bill4.setSumBill(detail.getSumBill());//浜ゆ槗绗旀暟
+                    bill4.setSumBill( detail.getSumBill());//浜ゆ槗绗旀暟
                     bill4.setSumSuccessFee(Constants.formatDecimalNum(detail.getSettlementTotalFee()));//浜ゆ槗閲戦
                     bill4.setSumCmmsAmt(Constants.formatDecimalNum(detail.getCmmsAmt()));//浜ゆ槗鎵嬬画璐�
-                } else if(StringUtils.equals(detail.getBillStatus(), "REFUND")){
+                } else if(StringUtils.equals(detail.getBillStatus(), "REFUND") || StringUtils.equals(detail.getBillStatus(), "REVOKED")){
                     //閫�娆炬暟鎹�
-                    bill4.setSumRefundBill(detail.getSumBill());//閫�娆剧瑪鏁�
-                    bill4.setSumRefundCmmsAmt(Constants.formatDecimalNum(detail.getCmmsAmt()));//閫�娆炬墜缁垂
+                    bill4.setSumRefundBill(Constants.formatIntegerNum(bill4.getSumRefundBill())+detail.getSumBill());//閫�娆剧瑪鏁�
+                    bill4.setSumRefundFee(Constants.formatDecimalNum(bill4.getSumRefundFee()).add(Constants.formatDecimalNum(detail.getRefundFee())));
+                    bill4.setSumRefundCmmsAmt(Constants.formatDecimalNum(bill4.getSumRefundCmmsAmt()).add(Constants.formatDecimalNum(Constants.formatDecimalNum(detail.getCmmsAmt()))));//閫�娆炬墜缁垂
                 }
             }
             //缁撶畻閲戦
@@ -304,10 +306,6 @@
             bill.setSumTotalFee(formatStringToDecimal(response.getTotalAmount()));
             //搴旂粨璁㈠崟鎬婚噾棰�
             bill.setSumSuccessFee(formatStringToDecimal(response.getTotalFee()));
-            //閫�娆炬�婚噾棰�
-            bill.setSumRefundFee(formatStringToDecimal(response.getTotalFee()));
-            //閫�娆炬�婚噾棰�
-            bill.setSumApplyRefundFee(formatStringToDecimal(response.getTotalAppliedRefundFee()));
             //浜ゆ槗鎬绘墜缁垂閲戦
             bill.setSumCmmsAmt(formatStringToDecimal(response.getTotalPoundageFee()));
             detailList.addAll(getDetialModelByInfo(bill,response.getBillInfoList()));
@@ -316,8 +314,12 @@
             //閫�娆惧崟鎬绘暟绱杩涘叆
 //                bill.setSumBill(bill.getSumBill()+(Integer.parseInt(response.getTotalRecord()));
             bill.setSumRefundBill(Integer.parseInt(responseRefund.getTotalRecord()));//閫�娆剧殑璁㈠崟鏁�
+            //閫�娆炬�婚噾棰�
+            bill.setSumRefundFee(formatStringToDecimal(responseRefund.getTotalRefundFee()));
+            //閫�娆炬�婚噾棰�
+            bill.setSumApplyRefundFee(formatStringToDecimal(responseRefund.getTotalAppliedRefundFee()));
             bill.setSumRefundCmmsAmt(formatStringToDecimal(responseRefund.getTotalPoundageFee()));//閫�娆炬�绘墜缁垂
-            bill.setSumCouponRefundFee(formatStringToDecimal(responseRefund.getTotalCouponFee()));//閫�娆炬�绘墜缁垂
+            bill.setSumCouponRefundFee(formatStringToDecimal(responseRefund.getTotalCouponFee()));//閫�娆炬�婚噾棰�
             detailList.addAll(getDetialModelByInfo(bill,responseRefund.getBillInfoList()));
         }
         wxBillMapper.delete(new UpdateWrapper<WxBill>().lambda().eq( WxBill::getId, bill.getId()));
@@ -348,7 +350,7 @@
             //鍙兘鍚屾鏄ㄥぉ10涔嬪墠鐨勬暟鎹�
             Calendar caln = Calendar.getInstance();
             caln.setTime(ydate);
-            if(caln.get(Calendar.HOUR_OF_DAY) <= 9){
+            if(caln.get(Calendar.HOUR_OF_DAY)  > 10){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鏈�杩戝悓姝ユ椂闂村彧鑳芥埅姝㈠埌鏄ㄥぉ10鐐瑰墠锛�");
             }
         }
@@ -368,7 +370,7 @@
         if(billInfoList!=null){
             for (int i = 0; i <billInfoList.size(); i++) {
                 WxPayBillInfo info =billInfoList.get(i);
-                if(StringUtils.equals(info.getTradeType(),"REFUND" ) && !StringUtils.equals(info.getRefundState(),"SUCCESS" )){
+                if((StringUtils.equals(info.getTradeType(),"REFUND" )||StringUtils.equals(info.getTradeType(),"REVOKED" )) && !StringUtils.equals(info.getRefundState(),"SUCCESS" )){
                     //濡傛灉鏄潪鎴愬姛鐨勯��娆炬暟鎹紝涓嶈繘琛屽悓姝�
                     continue;
                 }
@@ -407,11 +409,15 @@
                 detail.setRefundApplyDate(DateUtil.getDateFromString2(info.getRefundTime())); //鐢宠閫�娆炬椂闂�
                 //璁$畻鑷杞︽敹鍏ワ紝鍖归厤鏉ヨ嚜鑷杞﹀皬绋嬪簭鐨勬墍鏈夋敮浠樻垚鍔熷拰閫�娆炬垚鍔熺殑閲戦锛屼綔涓鸿嚜琛岃溅鏀跺叆锛堢疮璁℃敹娆鹃噾棰�-绱閫�娆炬垚鍔熼噾棰濓級
                 if(StringUtils.equals(detail.getAppid(), WxMiniConfig.wxPayService.getConfig().getAppId())){
-                    //鑷杞︽敹鍏ョ疮璁℃敹娆鹃噾棰�
-                    bill.setBikeFee(bill.getBikeFee().add(detail.getSettlementTotalFee()));
-                    if(StringUtils.equals(detail.getRefundSuccessStatus(),"SUCCESS")){
+                    //鑷杞︽敹鍏ョ疮璁℃敹娆鹃噾棰�(鏀粯鎴愬姛鎬婚噾棰�-閫�娆炬�婚噾棰濓級
+                    if(StringUtils.equals(info.getTradeState(),"SUCCESS")){
+                        //濡傛灉鏄氦鏄�
+                        bill.setBikeFee(bill.getBikeFee().add(detail.getSettlementTotalFee()));
+                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
+                    }else  if(StringUtils.equals(info.getTradeState(),"REFUND" ) || StringUtils.equals(info.getTradeState(),"REVOKED" )){
                         //濡傛灉閫�娆炬垚鍔燂紝鎵i櫎閫�娆鹃噾棰�
-                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getApplyRefundFee()));
+                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getRefundFee()) );
+                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
                     }
                 }
 

--
Gitblit v1.9.3