111
k94314517
2025-02-28 04dba6a17f836b5fbdf0eedff8a129c6785fd8a2
server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java
@@ -128,6 +128,7 @@
        bill3.setSumRefundCmmsAmt(Constants.formatDecimalNum(bill.getSumRefundCmmsAmt()).add(Constants.formatDecimalNum(bill.getSumCmmsAmt())));//手续费
        bill3.setSumRefundFee(bill.getSumRefundFee());//退款金额
        bill3.setTotal(bill.getTotal());
        bill3.setBikeFee(bill.getBikeFee());
        QueryWrapper<WxBillDetail> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().ge(param.getStartDate() !=null,WxBillDetail::getPid,DateUtil.getShortDateStr(param.getStartDate()));
@@ -334,7 +335,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;
            }
        }
    }
@@ -410,19 +426,18 @@
                detail.setRefundSuccessDate(DateUtil.getDateFromString2(info.getRefundSuccessTime()));//成功退款时间
                detail.setRefundApplyDate(DateUtil.getDateFromString2(info.getRefundTime())); //申请退款时间
                //计算自行车收入,匹配来自自行车小程序的所有支付成功和退款成功的金额,作为自行车收入(累计收款金额-累计退款成功金额)
                if(StringUtils.equals(detail.getAppid(), WxMiniConfig.wxPayV2Service.getConfig().getAppId())){
                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()) );
//                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
                    }else  if(StringUtils.equals(info.getTradeState(),"REFUND" ) || StringUtils.equals(info.getTradeState(),"REVOKED" )){
                        //如果退款成功,扣除退款金额
                        //如果退款成功,扣除退款金额(包含手续费)
                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getRefundFee()) );
                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
//                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
                    }
                }
                detailList.add(detail);
            }
        }