From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 08 五月 2025 09:21:57 +0800 Subject: [PATCH] bug修改 --- cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java | 29 +++++++++++++++++++++++++---- 1 files changed, 25 insertions(+), 4 deletions(-) diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java index 45d3a29..81b6967 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java @@ -48,6 +48,7 @@ @Resource private StoreClient storeClient; + @Autowired private UserCompetitionService userCompetitionService; @@ -65,7 +66,8 @@ @Resource private StudentClient studentClient; - @Autowired + + @Resource private PaymentCompetitionMapper paymentCompetitionMapper; @@ -247,18 +249,37 @@ String payOrderNo = paymentCompetition.getPayOrderNo(); if (paymentCompetition.getPayType() == 1) {//微信支付 - Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(), "/base/competition/weChatCancelPaymentCompetitionCallback"); + if (StringUtils.hasLength(paymentCompetition.getFenzhangNo())){ + // 是分账订单 如果分账金额不为0 那么回退分账金额 + if (paymentCompetition.getFenzhangAmount()!=null && paymentCompetition.getFenzhangAmount().compareTo(BigDecimal.ZERO)>0){ + String randomCode = UUIDUtil.getRandomCode(16); + String randomCode1 = UUIDUtil.getRandomCode(16); + if (competition.getOperatorId()!=null && competition.getOperatorId()!=0){ + // 微信商户号 + String s2 =storeClient.getmerchantNumberByOperatorId(competition.getOperatorId()); + ResultUtil resultUtil = payMoneyUtil.fenzhangRefund(paymentCompetition.getFenzhangNo(), paymentCompetition.getFenzhangAmount(), s2, randomCode, randomCode1); + if (!resultUtil.getCode().equals(200)){ + System.err.println("分账回退失败 原因是:"+resultUtil.getData().toString()); + }else{ + paymentCompetition.setFenzhangRefundNo(resultUtil.getData().toString()); + paymentCompetitionMapper.updateById(paymentCompetition); + } + + } + } + } + Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(), + "/base/competition/weChatCancelPaymentCompetitionCallback"); String return_code = map.get("return_code"); if (!"SUCCESS".equals(return_code)) { return ResultUtil.error(map.get("return_msg")); } String refund_id = map.get("refund_id"); paymentCompetition.setRefundOrderNo(refund_id); + paymentCompetition.setAppUserId(null); this.updateById(paymentCompetition); storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId()); - - } if (paymentCompetition.getPayType() == 2) {//支付宝支付 Map<String, String> map = payMoneyUtil.aliRefund(payOrderNo, amount.toString()); -- Gitblit v1.7.1