Browse Source

add:添加商城轮询订单定时任务

liujunchi 3 years ago
parent
commit
374fa0904f

+ 8 - 0
cooleshow-mall/mall-portal/pom.xml

@@ -75,6 +75,14 @@
             <version>3.16.4</version>
             <scope>compile</scope>
         </dependency>
+
+        <!-- redisson -->
+        <dependency>
+            <groupId>org.redisson</groupId>
+            <artifactId>redisson-spring-boot-starter</artifactId>
+            <version>3.16.4</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 2 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UserOrderPaymentServiceImpl.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.portal.service.impl;
 import com.yonge.cooleshow.mbg.mapper.UserOrderPaymentMapper;
 import com.yonge.cooleshow.mbg.model.UserOrderPayment;
 import com.yonge.cooleshow.portal.service.UserOrderPaymentService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -14,7 +15,7 @@ import org.springframework.stereotype.Service;
 @Service
 public class UserOrderPaymentServiceImpl implements UserOrderPaymentService {
 
-    @Override
+    @Autowired
     private UserOrderPaymentMapper userOrderPaymentMapper;
 
     @Override

+ 11 - 8
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/component/OrderTimeOutCancelTask.java → cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/task/OrderTimeOutCancelTask.java

@@ -1,29 +1,32 @@
-package com.yonge.cooleshow.portal.component;
+package com.yonge.cooleshow.portal.task;
 
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.portal.service.OmsPortalOrderService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * 取消超时订单并解锁库存的定时器
  * Created by macro on 2018/8/24.
  */
-@Component
+@RestController
+@RequestMapping("/task")
 public class OrderTimeOutCancelTask {
     private Logger LOGGER =LoggerFactory.getLogger(OrderTimeOutCancelTask.class);
     @Autowired
     private OmsPortalOrderService portalOrderService;
 
     /**
-     * cron表达式:Seconds Minutes Hours DayofMonth Month DayofWeek [Year]
-     * 每10分钟扫描一次,扫描超时未支付订单,进行取消操作
+     * 订单轮询
      */
-    @Scheduled(cron = "0 0/10 * ? * ?")
-    private void cancelTimeOutOrder(){
+    @GetMapping("/pollingOrder")
+    public HttpResponseResult cancelTimeOutOrder(){
         Integer count = portalOrderService.cancelTimeOutOrder();
         LOGGER.info("取消订单,并根据sku编号释放锁定库存,取消订单数量:{}",count);
+        return HttpResponseResult.succeed();
     }
 }

+ 17 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/MallPortalFeignService.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.task.feign;
+
+import com.yonge.cooleshow.common.config.FeignConfiguration;
+import com.yonge.cooleshow.task.feign.fallback.MallPortalFeignServiceFallback;
+import com.yonge.cooleshow.task.feign.fallback.StudentFeignServiceFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@FeignClient(name = "mall-portal-server", configuration = FeignConfiguration.class, fallback = MallPortalFeignServiceFallback.class)
+public interface MallPortalFeignService {
+
+    /**
+     * 订单轮询
+     */
+    @GetMapping("/task/pollingOrder")
+    Object cancelTimeOutOrder();
+}

+ 16 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/fallback/MallPortalFeignServiceFallback.java

@@ -0,0 +1,16 @@
+package com.yonge.cooleshow.task.feign.fallback;
+
+import com.yonge.cooleshow.task.feign.MallPortalFeignService;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-04-26
+ */
+public class MallPortalFeignServiceFallback implements MallPortalFeignService {
+    @Override
+    public Object cancelTimeOutOrder() {
+        return null;
+    }
+}

+ 25 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/CancelTimeOutOrderTask.java

@@ -0,0 +1,25 @@
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.task.core.BaseTask;
+import com.yonge.cooleshow.task.core.TaskException;
+import com.yonge.cooleshow.task.feign.MallPortalFeignService;
+import com.yonge.cooleshow.task.feign.StudentFeignService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 订单轮询
+ * @Author: liweifan
+ * @Data: 2022/4/13 17:36
+ */
+@Service
+public class CancelTimeOutOrderTask extends BaseTask {
+
+    @Autowired
+    private MallPortalFeignService mallPortalFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        Object o = mallPortalFeignService.cancelTimeOutOrder();
+    }
+}