KKSU
2025-02-17 fcc1ced7adbaf3338c1e68b0c90275dfae14b4f8
src/main/java/cc/mrbird/febs/pay/controller/FiuuReturnController.java
@@ -4,11 +4,15 @@
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 cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
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 +36,10 @@
    private static final String SECRET_KEY = "59c709fc18978a6a83b87f05d37cecbf";
    @Resource
    private MallOrderInfoMapper mallOrderInfoMapper;
    @Resource
    private MallMoneyFlowMapper mallMoneyFlowMapper;
    @Resource
    private IApiMallMemberWalletService memberWalletService;
    @PostMapping("/payment/callback")
    public String handlePaymentCallback(
@@ -84,9 +92,24 @@
        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) {
            if(1 == mallMoneyFlow.getStatus()){
                memberWalletService.addBalance(mallMoneyFlow.getAmount(),mallMoneyFlow.getMemberId());
                // 更新订单状态为已支付
                mallMoneyFlow.setStatus(2);
                mallMoneyFlowMapper.updateById(mallMoneyFlow);
            }
        }else{
            MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(Long.parseLong(orderId));
            if(mallOrderInfo != null){
                if("1" == mallOrderInfo.getPayResult()){
                    return "payment-success";
                }
                updateOrderStatus(orderId, status, amount, payDate, tranId);
            }
        }
        return "payment-success";
    }