From 4fabfe4dbd2eb28d07a4350597d314958cc1c281 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期四, 09 十月 2025 11:16:43 +0800 Subject: [PATCH] 优化 --- server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java | 67 ++++++++++++++++++++++++++++----- 1 files changed, 57 insertions(+), 10 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 c0032c1..36c5cdf 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 @@ -9,6 +9,7 @@ import com.doumee.core.utils.Utils; import com.doumee.core.wx.WxMiniConfig; import com.doumee.core.wx.WxPayProperties; +import com.doumee.dao.business.GoodsorderMapper; import com.doumee.dao.business.WxBillDetailMapper; import com.doumee.dao.business.WxBillMapper; import com.doumee.dao.business.model.Goodsorder; @@ -46,6 +47,8 @@ @Autowired private WxBillMapper wxBillMapper; + @Autowired + private GoodsorderMapper goodsorderMapper; @Autowired private WxBillDetailMapper wxBillDetailMapper; @Override @@ -113,6 +116,7 @@ bill1.setSumTotalFee(bill.getSumTotalFee());//浜ゆ槗閲戦 bill1.setSumCmmsAmt(bill.getSumCmmsAmt());//浜ゆ槗鎵嬬画璐� bill1.setSumSuccessFee(bill.getSumSuccessFee());//鎴愬姛浜ゆ槗閲戦 + bill1.setDiscountFee(bill.getDiscountFee());//鎴愬姛浜ゆ槗閲戦 WxBill bill2 = initBillData();//璁板綍閫�娆剧粺璁℃暟鎹� bill2.setSumRefundBill(bill.getSumRefundBill());//閫�娆剧瑪鏁� @@ -128,6 +132,8 @@ bill3.setSumRefundCmmsAmt(Constants.formatDecimalNum(bill.getSumRefundCmmsAmt()).add(Constants.formatDecimalNum(bill.getSumCmmsAmt())));//鎵嬬画璐� bill3.setSumRefundFee(bill.getSumRefundFee());//閫�娆鹃噾棰� bill3.setTotal(bill.getTotal()); + bill3.setBikeFee(bill.getBikeFee()); + bill3.setDiscountFee(bill.getDiscountFee());//鎴愬姛浜ゆ槗閲戦 QueryWrapper<WxBillDetail> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().ge(param.getStartDate() !=null,WxBillDetail::getPid,DateUtil.getShortDateStr(param.getStartDate())); @@ -239,6 +245,7 @@ ,"sum(total) as total" ,"sum(sum_refund_cmms_amt) as sum_refund_cmms_amt" ,"sum(bike_fee) as bike_fee" + ,"sum(discount_fee) as discount_fee" ); WxBill bill = wxBillMapper.selectOne(param.last("limit 1")); if(bill == null){ @@ -261,6 +268,12 @@ bill.setSumRefundCmmsAmt(new BigDecimal(0.00)); bill.setTotal(new BigDecimal(0.00)); bill.setBikeFee(new BigDecimal(0.00)); + bill.setDiscountFee(new BigDecimal(0.00)); + bill.setBikeRefundFee(new BigDecimal(0.00)); + bill.setDiscountRefundFee(new BigDecimal(0.00)); + bill.setDiscountRefundCmmsAmt(new BigDecimal(0.00)); + bill.setBikeRefundCmmsAmt(new BigDecimal(0.00)); + bill.setDiscountFee(new BigDecimal(0.00)); return bill; } @Override @@ -334,7 +347,22 @@ // bill.setBikeFee(bill.getSumSuccessFee().subtract(bill.getSumRefundFee())); wxBillMapper.insert(bill); if(detailList.size()>0){ - wxBillDetailMapper.insertBatch(detailList); + int sublistSize = 500; + int startIndex = 0; + int endIndex = sublistSize; + while (startIndex < detailList.size()) { + if (endIndex > detailList.size()) { + endIndex = detailList.size(); + } + + List<WxBillDetail> sublist = detailList.subList(startIndex, endIndex); + if(sublist.size()>0){ +// wxBillDetailMapper.insertBatch(sublist); + wxBillDetailMapper.insert(sublist); + } + startIndex = endIndex; + endIndex += sublistSize; + } } } @@ -411,15 +439,34 @@ detail.setRefundApplyDate(DateUtil.getDateFromString2(info.getRefundTime())); //鐢宠閫�娆炬椂闂� //璁$畻鑷杞︽敹鍏ワ紝鍖归厤鏉ヨ嚜鑷杞﹀皬绋嬪簭鐨勬墍鏈夋敮浠樻垚鍔熷拰閫�娆炬垚鍔熺殑閲戦锛屼綔涓鸿嚜琛岃溅鏀跺叆锛堢疮璁℃敹娆鹃噾棰�-绱閫�娆炬垚鍔熼噾棰濓級 if(StringUtils.equals(detail.getAppid(), WxMiniConfig.wxPayV2Service.getConfig().getSubAppId())){ - //鑷杞︽敹鍏ョ疮璁℃敹娆鹃噾棰�(鏀粯鎴愬姛鎬婚噾棰�-閫�娆炬�婚噾棰濓級 - 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.getRefundFee()) ); - bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) ); + Goodsorder order = goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>().lambda() + .eq(Goodsorder::getId,info.getOutTradeNo())); + if(Constants.equalsInteger(order.getType(),Constants.ZERO)){ + //鑷杞︽敹鍏ョ疮璁℃敹娆鹃噾棰�(鏀粯鎴愬姛鎬婚噾棰�-閫�娆炬�婚噾棰濓級 + 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.getRefundFee()) ); + bill.setBikeRefundFee(bill.getBikeRefundFee().add(detail.getRefundFee()) ); + bill.setBikeRefundCmmsAmt(bill.getBikeRefundCmmsAmt().add(detail.getCmmsAmt()) ); +// bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) ); + } + }else{ + //鑷杞︽敹鍏ョ疮璁℃敹娆鹃噾棰�(鏀粯鎴愬姛鎬婚噾棰�-閫�娆炬�婚噾棰濓級 + if(StringUtils.equals(info.getTradeState(),"SUCCESS")){ + //濡傛灉鏄氦鏄擄紙鍖呭惈鎵嬬画璐癸級 + bill.setDiscountFee(bill.getDiscountFee().add(detail.getSettlementTotalFee())); +// bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) ); + }else if(StringUtils.equals(info.getTradeState(),"REFUND" ) || StringUtils.equals(info.getTradeState(),"REVOKED" )){ + //濡傛灉閫�娆炬垚鍔燂紝鎵i櫎閫�娆鹃噾棰�(鍖呭惈鎵嬬画璐癸級 + bill.setDiscountFee(bill.getDiscountFee().subtract(detail.getRefundFee()) ); + bill.setDiscountRefundFee(bill.getDiscountRefundFee().add(detail.getRefundFee()) ); + bill.setDiscountRefundCmmsAmt(bill.getDiscountRefundCmmsAmt().add(detail.getCmmsAmt()) ); +// bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) ); + } } } detailList.add(detail); -- Gitblit v1.9.3