From 9bcc40d213a44498c46dae5e678e592b918b40b0 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期四, 30 五月 2024 18:33:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java
index a0a2954..fe612a3 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java
@@ -1,5 +1,6 @@
 package com.ruoyi.goods.service.async;
 
+import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.goods.domain.GoodsGroupPurchase;
@@ -13,13 +14,14 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author mitao
  * @date 2024/5/24
  */
-@Component
+@Service
 @Slf4j
 @RequiredArgsConstructor
 public class AsyncMethodService {
@@ -28,6 +30,7 @@
     private final SysUserClient sysUserClient;
 
     @Async
+    @Transactional(rollbackFor = Exception.class)
     public void seckillScheduleTask(GoodsSeckill goodsSeckill) {
         LocalDateTime startTime = goodsSeckill.getStartTime();
         LocalDateTime endTime = goodsSeckill.getEndTime();
@@ -50,6 +53,7 @@
     }
 
     @Async
+    @Transactional(rollbackFor = Exception.class)
     public void groupPurchaseScheduleTask(GoodsGroupPurchase groupPurchase) {
         LocalDateTime startTime = groupPurchase.getStartTime();
         LocalDateTime endTime = groupPurchase.getEndTime();
@@ -77,14 +81,15 @@
     private void handleEndDelayTask(Long id, DelayTaskEnum delayTaskEnum, LocalDateTime endTime) {
         String endTaskKey = delayTaskEnum.getCode() + "-" + id;
         DelayTask endDelayTask = sysUserClient.getDelayTask(
-                endTaskKey).getData();
+                endTaskKey, SecurityConstants.INNER).getData();
         // 如果延时任务为空,创建延时任务控制活动定时开始和结束
         Duration duration = Duration.between(LocalDateTime.now(), endTime);
         if (StringUtils.isNull(endDelayTask)) {
             createEndDelayTask(endTime, endTaskKey, duration);
         } else {
             if (!endDelayTask.getExecuteTime().isEqual(endTime)) {
-                sysUserClient.deleteDelayTask(endTaskKey);
+                sysUserClient.deleteDelayTask(endTaskKey,
+                        SecurityConstants.INNER);
                 redisService.deleteObject(endTaskKey);
                 createEndDelayTask(endTime, endTaskKey, duration);
             }
@@ -103,18 +108,18 @@
         endDelayTask.setCreateTime(LocalDateTime.now());
         endDelayTask.setExecuteTime(endTime);
         endDelayTask.setRedisKey(seckillEndTaskKey);
-        sysUserClient.addDelayTask(endDelayTask);
+        sysUserClient.addDelayTask(endDelayTask, SecurityConstants.INNER);
     }
 
     private void handleStartDelayTask(Long id, DelayTaskEnum delayTaskEnum, LocalDateTime startTime,
             Long timeout) {
         String startTaskKey = delayTaskEnum.getCode() + "-" + id;
-        //查询延时任务
-        DelayTask startDelayTask = sysUserClient.getDelayTask(
-                startTaskKey).getData();
         redisService.setCacheObject(
                 startTaskKey,
                 startTime, timeout, TimeUnit.SECONDS);
+        //查询延时任务
+        DelayTask startDelayTask = sysUserClient.getDelayTask(
+                startTaskKey, SecurityConstants.INNER).getData();
         if (StringUtils.isNull(startDelayTask)) {
             startDelayTask = new DelayTask();
             startDelayTask.setDelFlag(0);
@@ -122,11 +127,11 @@
             startDelayTask.setExecuteTime(LocalDateTime.now().plusSeconds(timeout));
             startDelayTask.setRedisKey(
                     startTaskKey);
-            sysUserClient.addDelayTask(startDelayTask);
+            sysUserClient.addDelayTask(startDelayTask, SecurityConstants.INNER);
         } else {
             if (!startDelayTask.getExecuteTime().isEqual(startTime)) {
                 sysUserClient.deleteDelayTask(
-                        startTaskKey);
+                        startTaskKey, SecurityConstants.INNER);
                 redisService.deleteObject(
                         startTaskKey);
                 startDelayTask.setDelFlag(0);
@@ -134,7 +139,7 @@
                 startDelayTask.setExecuteTime(LocalDateTime.now().plusSeconds(timeout));
                 startDelayTask.setRedisKey(
                         startTaskKey);
-                sysUserClient.addDelayTask(startDelayTask);
+                sysUserClient.addDelayTask(startDelayTask, SecurityConstants.INNER);
             }
         }
         log.info(">>>>>>>>>>>>>>>>>>>>延时任务{}执行了<<<<<<<<<<<<<<<<<<<<", startTaskKey);

--
Gitblit v1.7.1