Administrator
2025-08-25 4efee316c1411c596a4d333740c3921742f08116
src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
@@ -23,6 +23,7 @@
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@@ -41,10 +42,7 @@
import java.io.*;
import java.math.BigDecimal;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Slf4j
@Service
@@ -70,6 +68,8 @@
    @Autowired
    private MallMemberWithdrawMapper mallMemberWithdrawMapper;
    private final IMallMoneyFlowService mallMoneyFlowService;
    private final ClothesTypeMapper clothesTypeMapper;
    private final ClothesOrderMapper clothesOrderMapper;
    @Autowired
    RedisUtils redisUtils;
@@ -212,6 +212,34 @@
    }
    @Override
    public BrandWCPayRequestData startPayment(ClothesOrder orderInfo) throws Exception {
        BigDecimal unit = new BigDecimal("100");
        BigDecimal money = new BigDecimal(orderInfo.getRealAmount().toString());
        BrandWCPayRequestData payData;
        ClothesType clothesType = clothesTypeMapper.selectById(orderInfo.getTypeId());
        String productNames = clothesType.getName();
        MallMember mallMember = mallMemberMapper.selectById(orderInfo.getMemberId());
        Boolean debug = xcxProperties.getDebug();
        if (debug) {
            payData = weixinServiceUtil.createOrder("[测试]" + productNames, orderInfo.getOrderNo(),
                    1, mallMember.getOpenId(), String.valueOf(orderInfo.getId()));
        } else {
            payData = weixinServiceUtil.createOrder(productNames, orderInfo.getOrderNo(),
                    unit.multiply(money).intValue(),mallMember.getOpenId(), String.valueOf(orderInfo.getId()));
        }
        orderInfo.setPayOrderNo(payData.getPrepay_id());
        clothesOrderMapper.update(null,
                Wrappers.lambdaUpdate(ClothesOrder.class)
                .set(ClothesOrder::getPayOrderNo, payData.getPrepay_id())
                .set(ClothesOrder::getUpdatedTime, new Date())
                .eq(ClothesOrder::getId, orderInfo.getId())
                );
        return payData;
    }
    @Override
    public BrandWCPayRequestData startPaymentActivity(HappyActivityOrder dto) throws Exception {
        BigDecimal unit = new BigDecimal("100");
        BigDecimal money = new BigDecimal(dto.getAmount().toString());