From e7eb029ec5bc6d1a2a088f3e9151316757e537d7 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 10 Feb 2025 11:37:39 +0800
Subject: [PATCH] feat(pay): 添加 FIUU充值功能并优化支付流程 - 新增 FIUU 充值接口和相关请求模型 - 更新 FIUU 支付流程,支持订单和充值操作 - 优化 FIUU 回调处理,增加对充值订单的支持 - 调整订单状态更新逻辑,确保支付成功后正确更新

---
 src/main/java/cc/mrbird/febs/pay/controller/FiuuReturnController.java |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/pay/controller/FiuuReturnController.java b/src/main/java/cc/mrbird/febs/pay/controller/FiuuReturnController.java
index 7bce5dd..c14b75b 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/FiuuReturnController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/FiuuReturnController.java
@@ -4,11 +4,14 @@
 import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.ValidateEntityUtils;
+import cc.mrbird.febs.mall.entity.MallMoneyFlow;
 import cc.mrbird.febs.mall.entity.MallOrderInfo;
+import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper;
 import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
@@ -32,6 +35,8 @@
     private static final String SECRET_KEY = "59c709fc18978a6a83b87f05d37cecbf";
     @Resource
     private MallOrderInfoMapper mallOrderInfoMapper;
+    @Resource
+    private MallMoneyFlowMapper mallMoneyFlowMapper;
 
     @PostMapping("/payment/callback")
     public String handlePaymentCallback(
@@ -84,8 +89,17 @@
         model.addAttribute("status", status);
         model.addAttribute("currency", currency);
         model.addAttribute("payDate", payDate);
-        updateOrderStatus(orderId, status, amount, payDate, tranId);
 
+        MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(new LambdaQueryWrapper<MallMoneyFlow>().eq(MallMoneyFlow::getOrderNo, orderId));
+        if (mallMoneyFlow != null) {
+            // 更新订单状态为已支付
+            mallMoneyFlow.setStatus(2);
+            mallMoneyFlowMapper.updateById(mallMoneyFlow);
+        }
+        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(Long.parseLong(orderId));
+        if(mallOrderInfo != null){
+            updateOrderStatus(orderId, status, amount, payDate, tranId);
+        }
         // 跳转到支付成功页面
         return "payment-success";
     }

--
Gitblit v1.9.1