From 63f4f050892fd49a500a4709c164c18d24c47542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Mon, 28 Apr 2025 10:11:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E6=97=B6=E8=AE=A2=E5=8D=95=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/bst/order/domain/OrderQuery.java | 7 +++++ .../ruoyi/bst/order/mapper/OrderMapper.xml | 2 ++ .../order/service/impl/OrderServiceImpl.java | 3 --- .../bst/orderDevice/domain/OrderDeviceVO.java | 4 +++ .../orderDevice/mapper/OrderDeviceMapper.xml | 4 ++- .../java/com/ruoyi/task/order/OrderTask.java | 26 ++++++++++++++++++- 6 files changed, 41 insertions(+), 5 deletions(-) diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderQuery.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderQuery.java index 5ec8a93..85ffe43 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderQuery.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderQuery.java @@ -47,4 +47,11 @@ public class OrderQuery extends OrderVO { @ApiModelProperty("支付渠道ID") private Long payChannelId; + @ApiModelProperty("支付超时时间(结束)") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime payExpireTimeEnd; + + @ApiModelProperty("支付超时时间(开始)") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime payExpireTimeStart; } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml index d338f84..97ad65a 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml @@ -125,6 +125,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bo.cancel_remark like concat('%', #{query.cancelRemark}, '%') and date(bp.pay_time) = #{query.payDate} and bp.channel_id = #{query.payChannelId} + and bp.pay_expire_time <= #{query.payExpireTimeEnd} + and bp.pay_expire_time >= #{query.payExpireTimeStart} and bo.id in ( select distinct bb.bst_id from bst_bonus bb diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java index 44af5d3..104e4b0 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java @@ -285,9 +285,6 @@ public class OrderServiceImpl implements OrderService ServiceUtil.assertion(doPayVO == null, "支付失败"); bo.setDoPayVO(doPayVO); - // 加入延时队列,超时取消 - this.cancelWhenExpired(order); - return doPayVO; }); } finally { diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/domain/OrderDeviceVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/domain/OrderDeviceVO.java index 7263c3d..d7366f9 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/domain/OrderDeviceVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/domain/OrderDeviceVO.java @@ -43,6 +43,10 @@ public class OrderDeviceVO extends OrderDevice{ @ApiModelProperty("设备商户名称") private String deviceMchName; + // 车型 + @ApiModelProperty("车型") + private String deviceModelName; + // 设备剩余续航(公里) public BigDecimal getDeviceRemainEndurance() { BigDecimal remainEndurance = MathUtils.mulDecimal(getDeviceRemainingPower(), getDeviceModelFullEndurance()); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/mapper/OrderDeviceMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/mapper/OrderDeviceMapper.xml index d410175..ce54822 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/mapper/OrderDeviceMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/mapper/OrderDeviceMapper.xml @@ -43,7 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bd.longitude as device_longitude, bd.latitude as device_latitude, su.nick_name as order_user_name, - mch.nick_name as device_mch_name + mch.nick_name as device_mch_name, + bm.name as device_model_name from bst_order_device bod left join bst_order bo on bo.id = bod.order_id left join bst_device bd on bd.id = bod.device_id @@ -73,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bod.start_area_sub_name like concat('%', #{query.startAreaSubName}, '%') and bod.end_area_sub_name like concat('%', #{query.endAreaSubName}, '%') and bod.return_mode = #{query.returnMode} + and bm.name like concat('%', #{query.deviceModelName}, '%') and bod.status in diff --git a/ruoyi-web/src/main/java/com/ruoyi/task/order/OrderTask.java b/ruoyi-web/src/main/java/com/ruoyi/task/order/OrderTask.java index b09ce07..4a158fb 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/task/order/OrderTask.java +++ b/ruoyi-web/src/main/java/com/ruoyi/task/order/OrderTask.java @@ -114,4 +114,28 @@ public class OrderTask implements ApplicationRunner { } -} + /** + * 取消超时未支付的订单 + */ + public void cancelExpireUnPayOrder() { + // 查询超时未支付的订单 + OrderQuery query = new OrderQuery(); + query.setStatusList(OrderStatus.unPayList()); + query.setPayExpireTimeEnd(LocalDateTime.now()); + List orderIds = orderService.selectIdList(query); + + if (CollectionUtils.isEmptyElement(orderIds)) { + log.info("没有超时未支付的订单"); + return; + } + + for (Long id : orderIds) { + try { + orderService.cancelOrder(id, "订单超时取消"); + } catch (Exception e) { + log.error("取消订单失败,订单ID:{}", id, e); + } + } + } + +} \ No newline at end of file