Administrator
9 days ago 369d5cb00b6c87dbb5e6ea6b3482742e034c27ea
feat(mall): 更新订单状态逻辑并调整支付相关功能

- 在 HappyActivityOrder 实体中添加订单状态字段
- 更新订单状态处理逻辑,支持不同支付方式的订单状态更新
- 调整数据库连接池配置,增加连接超时时间
- 新增订单状态枚举值
- 在 WebMvcConfigure 中排除新的 API 路径
5 files modified
26 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/StateUpDownEnum.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/HappyActivityOrder.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java 13 ●●●● patch | view | raw | blame | history
src/main/resources/application-dev.yml 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -34,5 +34,6 @@
        registration.excludePathPatterns("/api/xcxPay/fapiaoCallBack");
        registration.excludePathPatterns("/api/happyCategory/allCategory");
        registration.excludePathPatterns("/api/happyCategory/indexCategory");
        registration.excludePathPatterns("/api/happyActivity/activityList");
    }
}
src/main/java/cc/mrbird/febs/common/enumerates/StateUpDownEnum.java
@@ -27,6 +27,14 @@
    VOTE_OPTION_STATE_AUDIT_REFUSE(2),
    /**
     * 订单状态 1-待支付 2-待使用 3-已使用 4-售后
     */
    ORDER_STATE_WAIT_PAY(1),
    ORDER_STATE_WAIT_USE(2),
    ORDER_STATE_USED(3),
    ORDER_STATE_AFTER_SALE(4),
    /**
     * 支付状态 0-待支付 1-支付成功 2-支付失败
     */
    PAY_STATE_NOT_PAY(0),
src/main/java/cc/mrbird/febs/mall/entity/HappyActivityOrder.java
@@ -25,6 +25,7 @@
     `order_no` varchar(32) DEFAULT NULL COMMENT '订单号',
     `pay_order_no` text COMMENT '支付订单号',
     `wx_order_no` varchar(100) DEFAULT NULL COMMENT '微信订单编号',
     `state` int(11) DEFAULT '1' COMMENT '订单状态 1-待支付 2-待使用 3-已使用 4-售后',
     */
@@ -40,4 +41,5 @@
    private String orderNo;
    private String payOrderNo;
    private String wxOrderNo;
    private Integer state;
}
src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
@@ -446,7 +446,7 @@
                BrandWCPayRequestData brandWCPayRequestData = iXcxPayService.startPaymentActivity(happyActivityOrder);
                wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData);
                payResultStr = brandWCPayRequestData.getPrepay_id();
                updateOrderState(happyActivityOrder, payType, StateUpDownEnum.PAY_STATE_NOT_PAY.getCode());
                updateOrderState(happyActivityOrder, payType, StateUpDownEnum.PAY_STATE_NOT_PAY.getCode(),StateUpDownEnum.ORDER_STATE_WAIT_PAY.getCode());
            } else if (StateUpDownEnum.PAY_METHOD_BALANCE.getCode() == payType ||
                       StateUpDownEnum.PAY_METHOD_INTEGRAL.getCode() == payType) {
                // 处理余额或积分支付逻辑,验证交易密码并完成支付
@@ -492,22 +492,23 @@
        }
    }
    // 处理未支付订单
    // 处理无需支付订单
    private void processNoPayOrder(HappyActivityOrder order, Long orderId) {
        updateOrderState(order, StateUpDownEnum.PAY_METHOD_NO_PAY.getCode(), StateUpDownEnum.PAY_STATE_PAY_SUCCESS.getCode());
        updateOrderState(order, StateUpDownEnum.PAY_METHOD_NO_PAY.getCode(), StateUpDownEnum.PAY_STATE_PAY_SUCCESS.getCode(),StateUpDownEnum.ORDER_STATE_WAIT_USE.getCode());
        generateOrderItemCodes(orderId);
    }
    // 处理已支付订单
    // 处理余额和积分支付的订单
    private void processPaidOrder(HappyActivityOrder order, Long orderId, Integer payType) {
        updateOrderState(order, payType, StateUpDownEnum.PAY_STATE_PAY_SUCCESS.getCode());
        updateOrderState(order, payType, StateUpDownEnum.PAY_STATE_PAY_SUCCESS.getCode(),StateUpDownEnum.ORDER_STATE_WAIT_USE.getCode());
        generateOrderItemCodes(orderId);
    }
    // 更新订单状态
    private void updateOrderState(HappyActivityOrder order, Integer payType, Integer payState) {
    private void updateOrderState(HappyActivityOrder order, Integer payType, Integer payState, Integer state) {
        order.setPayState(payState);
        order.setPayType(payType);
        order.setState(state);
        if (payState == StateUpDownEnum.PAY_STATE_PAY_SUCCESS.getCode()) {
            order.setPayTime(new Date());
        }
src/main/resources/application-dev.yml
@@ -40,7 +40,7 @@
        # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: 10000
    # 连接超时时间(毫秒)
    timeout: 5000
    timeout: 500000
  rabbitmq:
    host: 120.27.238.55
    port: 5672