From ed8a1e2330c6b129b71cdc9709e66d18da79cd71 Mon Sep 17 00:00:00 2001 From: zccbbg Date: Tue, 5 Mar 2024 17:51:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AE=A2=E5=8D=95=E6=94=B6?= =?UTF-8?q?=E8=B4=A7=E7=9A=84=E6=89=B9=E9=87=8F=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fjp/lc/test/service/ServiceTest.java | 8 +++++ .../com/cyl/h5/service/H5OrderService.java | 33 ++++++++++++++----- .../src/main/java/com/cyl/job/OrderJob.java | 15 +++++++++ 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java index e5c5cf6..6e3e024 100644 --- a/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java +++ b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java @@ -7,6 +7,7 @@ import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.symmetric.AES; import com.cyl.h5.pojo.dto.PayNotifyMessageDTO; import com.cyl.h5.service.H5OrderService; +import com.cyl.job.OrderJob; import com.cyl.manager.act.service.IntegralHistoryService; import com.cyl.manager.ums.service.MemberCartService; import com.ruoyi.RuoYiApplication; @@ -47,6 +48,13 @@ public class ServiceTest { @Autowired private IntegralHistoryService integralHistoryService; + @Autowired + private OrderJob orderJob; + + @Test + public void testOrderJob(){ + orderJob.batchCompleteOrder(); + } @Test public void test12(){ diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java index 4975495..893a57b 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java @@ -365,6 +365,29 @@ public class H5OrderService { return order; } + @Transactional + public void orderCompleteByJob(List idList) { + idList.forEach(order-> { + LocalDateTime optDate = LocalDateTime.now(); + OrderItem queryOrderItem = new OrderItem(); + queryOrderItem.setOrderId(order.getId()); + //更新订单 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", order.getId()); + updateWrapper.set("status", Constants.H5OrderStatus.COMPLETED); + updateWrapper.set("confirm_status", 1); + orderMapper.update(null, updateWrapper); + //创建订单操作记录 + OrderOperateHistory optHistory = new OrderOperateHistory(); + optHistory.setOrderId(order.getId()); + optHistory.setOrderSn(order.getOrderSn()); + optHistory.setOperateMan("后台管理员" ); + optHistory.setOrderStatus(Constants.H5OrderStatus.COMPLETED); + optHistory.setCreateTime(optDate); + optHistory.setUpdateTime(optDate); + orderOperateHistoryMapper.insert(optHistory); + }); + } @Transactional public String orderComplete(Long orderId) { LocalDateTime optDate = LocalDateTime.now(); @@ -385,10 +408,7 @@ public class H5OrderService { updateWrapper.set("status", Constants.H5OrderStatus.COMPLETED); updateWrapper.set("confirm_status", 1); updateWrapper.set("receive_time", optDate); - int rows = orderMapper.update(null, updateWrapper); - if (rows < 1){ - throw new RuntimeException("更新订单状态失败"); - } + orderMapper.update(null, updateWrapper); //创建订单操作记录 OrderOperateHistory optHistory = new OrderOperateHistory(); optHistory.setOrderId(order.getId()); @@ -399,10 +419,7 @@ public class H5OrderService { optHistory.setCreateBy(order.getMemberId()); optHistory.setUpdateBy(order.getMemberId()); optHistory.setUpdateTime(optDate); - rows = orderOperateHistoryMapper.insert(optHistory); - if (rows < 1){ - throw new RuntimeException("创建订单操作记录失败"); - } + orderOperateHistoryMapper.insert(optHistory); return order.getOrderSn(); } diff --git a/ruoyi-mall/src/main/java/com/cyl/job/OrderJob.java b/ruoyi-mall/src/main/java/com/cyl/job/OrderJob.java index 89b4a6e..45a08bc 100644 --- a/ruoyi-mall/src/main/java/com/cyl/job/OrderJob.java +++ b/ruoyi-mall/src/main/java/com/cyl/job/OrderJob.java @@ -46,4 +46,19 @@ public class OrderJob { log.info("【取消订单任务结束】"); } + /** + * 每天的2点20分20秒执行任务 + */ + @Scheduled(cron = "20 20 2 * * ?") + public void batchCompleteOrder(){ + log.info("【订单完成任务开始】"); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("status", Constants.OrderStatus.GET); + qw.eq("aftersale_status", 1); + qw.le("delivery_time", LocalDateTime.now().minusDays(15)); + List orderList = orderMapper.selectList(qw); + h5OrderService.orderCompleteByJob(orderList); + log.info("【订单完成任务结束】,处理了:{}个订单",orderList.size()); + } + }