Administrator
2 days ago bdcd332feebe13ea46186ed093ca55eb2f3b3fdf
refactor(mall): 优化活动订单支付逻辑

- 在创建订单时,根据金额判断支付类型:零金额订单使用免支付类型- 修复了在处理支付逻辑时的判断条件,确保正确处理免支付订单
1 files modified
10 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java 10 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
@@ -552,7 +552,11 @@
        happyActivityOrder.setNumCnt(dto.getNumCnt());
        happyActivityOrder.setAmount(amount);
        happyActivityOrder.setPayState(StateUpDownEnum.PAY_STATE_NOT_PAY.getCode());
        happyActivityOrder.setPayType(StateUpDownEnum.PAY_METHOD_WECHAT.getCode());
        if(BigDecimal.ZERO.compareTo(amount) == 0){
            happyActivityOrder.setPayType(StateUpDownEnum.PAY_METHOD_NO_PAY.getCode());
        }else{
            happyActivityOrder.setPayType(StateUpDownEnum.PAY_METHOD_WECHAT.getCode());
        }
        happyActivityOrder.setFailTime(failTime);
        log.info("创建订单,订单号="+JSONUtil.parse(happyActivityOrder));
        happyActivityOrderMapper.insert(happyActivityOrder);
@@ -618,8 +622,8 @@
        try {
            // 根据支付类型处理不同的支付逻辑
//            if (StateUpDownEnum.PAY_METHOD_NO_PAY.getCode() == payType) {
            if (BigDecimal.ZERO.compareTo(happyActivityOrder.getAmount()) == 0) {
            if (StateUpDownEnum.PAY_METHOD_NO_PAY.getCode() == payType) {
//            if (BigDecimal.ZERO.compareTo(happyActivityOrder.getAmount()) == 0) {
                // 处理无需支付的订单逻辑
                processNoPayOrder(happyActivityOrder, orderId);
            } else if (StateUpDownEnum.PAY_METHOD_WECHAT.getCode() == payType) {