From 43c263df4d8ce0cc830f287780c29db8a2b47f0f Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期一, 27 五月 2024 08:44:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java      |   19 
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                                 |   13 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/DelayTask.java                                       |    4 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java                                 |    8 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java                        |   21 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleDTO.java                  |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillQuery.java                  |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsFlavorTypeServiceImpl.java                      |    6 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSkuController.java                          |   20 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeriesVO.java                       |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java            |    6 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java                   |   77 +++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsFlavorTypeQuery.java               |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/MemberInvoiceRiseController.java                       |    9 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java                          |    8 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java        |   18 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsBrandDTO.java                      |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSkuVO.java                          |    4 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsCategoryVO.java                     |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsBrandQuery.java                    |    2 
 ruoyi-modules/ruoyi-system/pom.xml                                                                                        |    1 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsFlavorTypeDTO.java                 |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java                                        |   17 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeriesDTO.java                     |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/task/GoodsScheduler.java                                          |   54 ++
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionVideoController.java          |   20 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsCategoryQuery.java                 |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsInfoTitleController.java                    |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsCategoryDTO.java                   |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrandService.java                                   |    6 
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsSeckillMapper.xml                                          |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsGroupPurchaseQuery.java            |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsQuery.java              |   33 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsInfoTitleValueController.java               |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java                |    6 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsGroupPurchaseDTO.java              |   12 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java                             |   21 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsCategoryServiceImpl.java                        |    6 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java                           |    7 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeriesController.java                       |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java             |    6 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java                                |   11 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsBrandController.java                        |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java                |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleQuery.java                |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java                      |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleServiceImpl.java                       |    6 
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml                                    |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsFlavorTypeService.java                              |    6 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsFlavorTypeController.java                   |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsInfoTitleVO.java                    |    2 
 ruoyi-api/ruoyi-api-system/pom.xml                                                                                        |    6 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IMemberInvoiceRiseService.java                            |   10 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java          |   38 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java                             |    4 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java                     |   41 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeckillController.java              |    8 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsCategoryService.java                                |    6 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillDTO.java                    |    2 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java                                           |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java               |    6 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java                           |    4 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java                             |  142 ++++++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java                                     |   14 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsCategoryController.java                     |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java                      |   10 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsGroupPurchaseVO.java                |    2 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/config/BaseAsyncConfigurer.java                        |   54 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillUpd.java                    |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsGroupPurchaseMapper.java                              |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomGoodsController.java |   20 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeriesQuery.java                   |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java                                     |   10 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeckillMapper.java                                    |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleValueDTO.java             |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/AuctionGoodsVO.java                  |   61 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSkuController.java                  |   18 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionBidRecordController.java      |   20 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java                             |    6 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuQuery.java                      |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsFlavorTypeVO.java                   |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java                         |  144 +-----
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java                                |   20 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleService.java                               |    6 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceRiseServiceImpl.java                    |   12 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrandServiceImpl.java                           |    6 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java                                   |   14 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java                           |   13 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuInfoDTO.java                    |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java                                           |   17 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java           |    6 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsBrandVO.java                        |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuDTO.java                        |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeriesServiceImpl.java                          |    6 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeriesService.java                                  |    6 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java                                |    6 
 96 files changed, 938 insertions(+), 300 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/pom.xml b/ruoyi-api/ruoyi-api-system/pom.xml
index a9f9845..22ea767 100644
--- a/ruoyi-api/ruoyi-api-system/pom.xml
+++ b/ruoyi-api/ruoyi-api-system/pom.xml
@@ -28,7 +28,11 @@
                 </exclusion>
             </exclusions>
         </dependency>
-        
+        <!-- WebSocket-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/DelayTask.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/DelayTask.java
index 96c8b08..83538f5 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/DelayTask.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/DelayTask.java
@@ -41,8 +41,8 @@
     /**
      * 执行时间
      */
-    @TableField("end_time")
-    private LocalDateTime endTime;
+    @TableField("execute_time")
+    private LocalDateTime executeTime;
 
     @TableField("create_time")
     private LocalDateTime createTime;
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/Order.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
similarity index 98%
rename from ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/Order.java
rename to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
index e7019b4..2809b2c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/Order.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
@@ -1,4 +1,4 @@
-package com.ruoyi.order.domain.pojo;
+package com.ruoyi.system.api.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java
index f2f6fc5..9acde0b 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java
@@ -4,6 +4,7 @@
 import com.ruoyi.system.api.domain.GoodsSeckill;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.feignClient.GoodsSkuClient;
+import java.util.List;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -50,6 +51,11 @@
             public R<?> endGroupPurchase(Long groupPurchaseId) {
                 return R.fail("结束团购失败:" + cause.getMessage());
             }
+
+            @Override
+            public R<List<GoodsSku>> getGoodsByName(String goodsSkuName) {
+                return R.fail("根据商品名称获取商品SKU列表失败:" + cause.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
index de129fb..a6975ef 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
@@ -1,9 +1,11 @@
 package com.ruoyi.system.api.factory;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
 import com.ruoyi.system.api.feignClient.OrderClient;
+import java.util.List;
 import org.springframework.cloud.openfeign.FallbackFactory;
 
 /**
@@ -35,6 +37,11 @@
             public R<Integer> getGroupPurchasesGoodsNum(Long id) {
                 return R.fail("获取团购商品已购数量失败:" + cause.getMessage());
             }
+
+            @Override
+            public R<List<Order>> getOrderByGroupPurchaseId(Long id) {
+                return R.fail("根据团购商品id获取订单列表失败:" + cause.getMessage());
+            }
         };
 
     }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java
index bdcf448..d423970 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java
@@ -5,6 +5,7 @@
 import com.ruoyi.system.api.domain.GoodsSeckill;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.factory.GoodsSkuFactory;
+import java.util.List;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -38,4 +39,7 @@
 
     @GetMapping("/goods-group-purchase/end/{groupPurchaseId}")
     R<?> endGroupPurchase(@PathVariable("groupPurchaseId") Long groupPurchaseId);
+
+    @GetMapping("/goods-sku/name/{goodsSkuName}")
+    R<List<GoodsSku>> getGoodsByName(@PathVariable("goodsSkuName") String goodsSkuName);
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
index 9612ed5..4895905 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
@@ -2,9 +2,11 @@
 
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
 import com.ruoyi.system.api.factory.OrderFallbackFactory;
+import java.util.List;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -38,4 +40,13 @@
      */
     @GetMapping("/order/group-purchase-num/{id}")
     R<Integer> getGroupPurchasesGoodsNum(@PathVariable("id") Long id);
+
+    /**
+     * 根据团购商品id获取订单列表
+     *
+     * @param id 团购商品id
+     * @return List<Order> 订单列表
+     */
+    @GetMapping("/order/group-purchase-id/{id}")
+    R<List<Order>> getOrderByGroupPurchaseId(@PathVariable("id") Long id);
 }
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/config/BaseAsyncConfigurer.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/config/BaseAsyncConfigurer.java
new file mode 100644
index 0000000..3263e0f
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/config/BaseAsyncConfigurer.java
@@ -0,0 +1,54 @@
+package com.ruoyi.common.core.config;
+
+import java.lang.reflect.Method;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.AsyncConfigurer;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+@Configuration
+@EnableAsync
+public class BaseAsyncConfigurer implements AsyncConfigurer {
+
+    @Bean("AsyncExecutor")
+    public ThreadPoolTaskExecutor executor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        int corePoolSize = 10;
+        executor.setCorePoolSize(corePoolSize);
+        int maxPoolSize = 50;
+        executor.setMaxPoolSize(maxPoolSize);
+        int queueCapacity = 10;
+        executor.setQueueCapacity(queueCapacity);
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        String threadNamePrefix = "AsyncExecutor-";
+        executor.setThreadNamePrefix(threadNamePrefix);
+        executor.setWaitForTasksToCompleteOnShutdown(true);
+        // 使用自定义的跨线程的请求级别线程工厂类19
+        int awaitTerminationSeconds = 5;
+        executor.setAwaitTerminationSeconds(awaitTerminationSeconds);
+        executor.initialize();
+        return executor;
+    }
+
+    @Override
+    public Executor getAsyncExecutor() {
+        return executor();
+    }
+
+    /*异步任务中异常处理*/
+    @Override
+    public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
+        return (Throwable ex, Method method, Object... params) -> {
+            //todo 异步方法异常处理
+            System.out.println("class#method: " + method.getDeclaringClass().getName() + "#"
+                    + method.getName());
+            System.out.println("type        : " + ex.getClass().getName());
+            System.out.println("exception   : " + ex.getMessage());
+        };
+    }
+
+}
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java
index eb2c956..75fc971 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java
@@ -12,8 +12,8 @@
 
     /* 支付方式 1=微信 2=支付宝*/
 
-    WECHAT(1, "男"),
-    ALIPAY(2, "未知");
+    WECHAT(1, "微信"),
+    ALIPAY(2, "支付宝");
     @EnumValue
     private final int code;
     @JsonValue
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionBidRecordController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionBidRecordController.java
new file mode 100644
index 0000000..5a37fc0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionBidRecordController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.auction.controller.management;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 出价记录表 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-16
+ */
+@RestController
+@RequestMapping("/mgt/auction-bid-record")
+public class MgtAuctionBidRecordController {
+
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
new file mode 100644
index 0000000..3043837
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
@@ -0,0 +1,38 @@
+package com.ruoyi.auction.controller.management;
+
+
+import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery;
+import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO;
+import com.ruoyi.auction.service.IAuctionGoodsService;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.page.PageDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 拍卖商品表 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-16
+ */
+@Api(value = "管理后台拍卖商品相关接口", tags = {"管理后台接口"})
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/mgt/auction-goods")
+public class MgtAuctionGoodsController {
+
+    private final IAuctionGoodsService auctionGoodsService;
+
+    @ApiOperation(value = "获取拍卖商品列表的分页数据", notes = "获取拍卖商品列表的分页数据")
+    @PostMapping("/page")
+    public R<PageDTO<AuctionGoodsVO>> getAuctionGoodsPage(
+            AuctionGoodsQuery query) {
+        return R.ok(auctionGoodsService.getAuctionGoodsPage(query));
+    }
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java
new file mode 100644
index 0000000..1e4f465
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java
@@ -0,0 +1,19 @@
+package com.ruoyi.auction.controller.management;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 拍卖场表 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-16
+ */
+@RestController
+@RequestMapping("/mgt/auction-salesroom")
+public class MgtAuctionSalesroomController {
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomGoodsController.java
new file mode 100644
index 0000000..cd656e4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomGoodsController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.auction.controller.management;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 拍卖场商品关系表 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-16
+ */
+@RestController
+@RequestMapping("/mgt/auction-salesroom-goods")
+public class MgtAuctionSalesroomGoodsController {
+
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionVideoController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionVideoController.java
new file mode 100644
index 0000000..54b933c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionVideoController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.auction.controller.management;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 拍卖会视频表 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-17
+ */
+@RestController
+@RequestMapping("/mgt/auction-video")
+public class MgtAuctionVideoController {
+
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsQuery.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsQuery.java
new file mode 100644
index 0000000..d923425
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsQuery.java
@@ -0,0 +1,33 @@
+package com.ruoyi.auction.controller.management.dto;
+
+import com.ruoyi.common.core.enums.AuctionStartStatusEnum;
+import com.ruoyi.common.core.enums.AuthenticationEnum;
+import com.ruoyi.common.core.enums.ListingStatusEnum;
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author mitao
+ * @date 2024/5/25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "拍卖商品查询对象", description = "拍卖商品查询对象")
+public class AuctionGoodsQuery extends BasePage {
+
+    private static final long serialVersionUID = 326466175768096072L;
+    @ApiModelProperty(value = "商品名称")
+    private String goodsSkuName;
+
+    @ApiModelProperty(value = "实名认证 0=不需实名 1=需要实名", notes = "传文字")
+    private AuthenticationEnum authentication;
+
+    @ApiModelProperty(value = "上架状态 0=上架中 1=已下架", notes = "传文字")
+    private ListingStatusEnum listingStatus;
+
+    @ApiModelProperty(value = "开始状态 0=预展中 1=拍卖中 2=已结束", notes = "传文字")
+    private AuctionStartStatusEnum startStatus;
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/AuctionGoodsVO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/AuctionGoodsVO.java
new file mode 100644
index 0000000..469806e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/AuctionGoodsVO.java
@@ -0,0 +1,61 @@
+package com.ruoyi.auction.controller.management.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.enums.AuctionStartStatusEnum;
+import com.ruoyi.common.core.enums.AuthenticationEnum;
+import com.ruoyi.common.core.enums.ListingStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * @author mitao
+ * @date 2024/5/25
+ */
+@Data
+@ApiModel(value = "拍卖商品视图对象", description = "拍卖商品视图对象")
+public class AuctionGoodsVO {
+
+    @ApiModelProperty(value = "拍卖商品id")
+    private Long id;
+
+    @ApiModelProperty(value = "商品id")
+    private Long goodsSkuId;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsSkuName;
+
+    @ApiModelProperty(value = "起拍价格")
+    private BigDecimal startingPrice;
+
+    @ApiModelProperty(value = "最低加价金额")
+    private BigDecimal minimumMarkupAmount;
+
+    @ApiModelProperty(value = "开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "拍品数量")
+    private Integer auctionStock;
+
+    @ApiModelProperty(value = "保证金")
+    private BigDecimal bond;
+
+    @ApiModelProperty(value = "实名认证 0=不需实名 1=需要实名")
+    private AuthenticationEnum authentication;
+
+    @ApiModelProperty(value = "拍品说明")
+    private String description;
+
+    @ApiModelProperty(value = "上架状态 0=上架中 1=已下架")
+    private ListingStatusEnum listingStatus;
+
+    @ApiModelProperty(value = "开始状态 0=预展中 1=拍卖中 2=已结束")
+    private AuctionStartStatusEnum startStatus;
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java
index 79909ac..78d5e68 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java
@@ -1,7 +1,10 @@
 package com.ruoyi.auction.service;
 
-import com.ruoyi.auction.domain.pojo.AuctionGoods;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery;
+import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO;
+import com.ruoyi.auction.domain.pojo.AuctionGoods;
+import com.ruoyi.common.core.utils.page.PageDTO;
 
 /**
  * <p>
@@ -13,4 +16,5 @@
  */
 public interface IAuctionGoodsService extends IService<AuctionGoods> {
 
+    PageDTO<AuctionGoodsVO> getAuctionGoodsPage(AuctionGoodsQuery query);
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
index a12c60c..3b27cf9 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -1,9 +1,21 @@
 package com.ruoyi.auction.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery;
+import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO;
 import com.ruoyi.auction.domain.pojo.AuctionGoods;
 import com.ruoyi.auction.mapper.AuctionGoodsMapper;
 import com.ruoyi.auction.service.IAuctionGoodsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.system.api.domain.GoodsSku;
+import com.ruoyi.system.api.feignClient.GoodsSkuClient;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 /**
@@ -14,7 +26,34 @@
  * @author mitao
  * @since 2024-05-16
  */
+@Slf4j
 @Service
+@RequiredArgsConstructor
 public class AuctionGoodsServiceImpl extends ServiceImpl<AuctionGoodsMapper, AuctionGoods> implements IAuctionGoodsService {
 
+    private final GoodsSkuClient goodsSkuClient;
+
+    @Override
+    public PageDTO<AuctionGoodsVO> getAuctionGoodsPage(AuctionGoodsQuery query) {
+        Set<Long> goodsSkuIdList = null;
+        if (StringUtils.isNotEmpty(query.getGoodsSkuName())) {
+            List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(query.getGoodsSkuName())
+                    .getData();
+            goodsSkuIdList = goodsSku.stream().map(GoodsSku::getId)
+                    .collect(Collectors.toSet());
+        }
+        this.lambdaQuery().select(AuctionGoods::getId, AuctionGoods::getGoodsSkuId,
+                        AuctionGoods::getListingStatus, AuctionGoods::getStartStatus,
+                        AuctionGoods::getStartTime, AuctionGoods::getEndTime,
+                        AuctionGoods::getAuctionStock, AuctionGoods::getMinimumMarkupAmount).in(
+                        StringUtils.isNotEmpty(goodsSkuIdList), AuctionGoods::getGoodsSkuId,
+                        goodsSkuIdList).eq(StringUtils.isNotNull(query.getAuthentication()),
+                        AuctionGoods::getAuthentication, query.getAuthentication())
+                .eq(StringUtils.isNotNull(query.getListingStatus()), AuctionGoods::getListingStatus,
+                        query.getListingStatus())
+                .eq(StringUtils.isNotNull(query.getStartStatus()), AuctionGoods::getStartStatus,
+                        query.getStartStatus())
+                .page(new Page<>(query.getPageCurr(), query.getPageSize()));
+        return null;
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsBrandController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsBrandController.java
similarity index 89%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsBrandController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsBrandController.java
index 7b911bb..5824c56 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsBrandController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsBrandController.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import lombok.RequiredArgsConstructor;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsCategoryController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsCategoryController.java
similarity index 88%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsCategoryController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsCategoryController.java
index ef7d30e..bd79dc7 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsCategoryController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsCategoryController.java
@@ -1,8 +1,7 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
 /**
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsFlavorTypeController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsFlavorTypeController.java
similarity index 88%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsFlavorTypeController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsFlavorTypeController.java
index 38a6c76..19df1e0 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsFlavorTypeController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsFlavorTypeController.java
@@ -1,8 +1,7 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
 /**
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsGroupPurchaseController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java
similarity index 96%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsGroupPurchaseController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java
index f619db5..ebad70f 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsGroupPurchaseController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import com.ruoyi.common.core.domain.R;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsInfoTitleController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsInfoTitleController.java
similarity index 88%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsInfoTitleController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsInfoTitleController.java
index 20ced83..153f562 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsInfoTitleController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsInfoTitleController.java
@@ -1,8 +1,7 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
 /**
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsInfoTitleValueController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsInfoTitleValueController.java
similarity index 88%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsInfoTitleValueController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsInfoTitleValueController.java
index 7015098..77b2e4f 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsInfoTitleValueController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsInfoTitleValueController.java
@@ -1,8 +1,7 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
 /**
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSeckillController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java
similarity index 74%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSeckillController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java
index c72f7f3..2b97060 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSeckillController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import com.ruoyi.common.core.domain.R;
@@ -7,7 +7,13 @@
 import com.ruoyi.system.api.domain.GoodsSeckill;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSeriesController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeriesController.java
similarity index 87%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSeriesController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeriesController.java
index 5aec52f..c7bc4fb 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSeriesController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeriesController.java
@@ -1,8 +1,7 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
 /**
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSkuController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSkuController.java
similarity index 65%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSkuController.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSkuController.java
index 0a8761d..2dc4e9b 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSkuController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSkuController.java
@@ -1,11 +1,14 @@
-package com.ruoyi.goods.controller;
+package com.ruoyi.goods.controller.inner;
 
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.annotation.InnerAuth;
 import com.ruoyi.goods.service.IGoodsSkuService;
-import javax.annotation.Resource;
-
 import com.ruoyi.system.api.domain.GoodsSku;
+import java.util.List;
+import javax.annotation.Resource;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -47,4 +50,15 @@
 
     }
 
+    /**
+     * 根据商品名称查询商品SKU列表。
+     *
+     * @param goodsSkuName 商品名称
+     * @return List<GoodsSku>商品SKU列表
+     */
+    @InnerAuth
+    @GetMapping("/goods-sku/name/{goodsSkuName}")
+    R<List<GoodsSku>> getGoodsByName(@PathVariable("goodsSkuName") String goodsSkuName) {
+        return R.ok(iGoodsSkuService.getGoodsByName(goodsSkuName));
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java
index 2a5b9a0..2e12dad 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java
@@ -3,9 +3,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsBrandDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsBrandQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsBrandVO;
+import com.ruoyi.goods.controller.management.dto.GoodsBrandDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsBrandQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsBrandVO;
 import com.ruoyi.goods.service.IGoodsBrandService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java
index bec2b71..df111a8 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java
@@ -3,9 +3,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsCategoryDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsCategoryQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsCategoryVO;
+import com.ruoyi.goods.controller.management.dto.GoodsCategoryDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsCategoryQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsCategoryVO;
 import com.ruoyi.goods.service.IGoodsCategoryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java
index a11c8c8..dd51aed 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java
@@ -3,9 +3,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsFlavorTypeVO;
+import com.ruoyi.goods.controller.management.dto.GoodsFlavorTypeDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsFlavorTypeQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsFlavorTypeVO;
 import com.ruoyi.goods.service.IGoodsFlavorTypeService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java
index dea8bed..3f9be24 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java
@@ -3,9 +3,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsGroupPurchaseDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsGroupPurchaseQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsGroupPurchaseVO;
+import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
 import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 import io.swagger.annotations.Api;
@@ -86,4 +86,16 @@
         goodsGroupPurchaseService.updStatus(dto);
         return R.ok();
     }
+
+    /**
+     * 立即结束
+     *
+     * @param id 团购商品id
+     */
+    @ApiOperation(value = "立即结束", notes = "立即结束")
+    @PutMapping("/stop-immediately/{id}")
+    public R<Void> stopImmediately(@PathVariable("id") Long id) {
+        goodsGroupPurchaseService.stopImmediately(id);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java
index 32785e3..b0121d3 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java
@@ -3,9 +3,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsInfoTitleVO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsInfoTitleVO;
 import com.ruoyi.goods.service.IGoodsInfoTitleService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeckillController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeckillController.java
index 976e2ed..1b619ed 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeckillController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeckillController.java
@@ -3,10 +3,10 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillQuery;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillUpd;
-import com.ruoyi.goods.controller.management.VO.GoodsSeckillVO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillQuery;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillUpd;
+import com.ruoyi.goods.controller.management.vo.GoodsSeckillVO;
 import com.ruoyi.goods.service.IGoodsSeckillService;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 import io.swagger.annotations.Api;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java
index 48fc579..03c3813 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java
@@ -3,9 +3,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeriesDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeriesQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsSeriesVO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeriesDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeriesQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsSeriesVO;
 import com.ruoyi.goods.service.IGoodsSeriesService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSkuController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSkuController.java
index 2e7bddb..3088b3d 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSkuController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSkuController.java
@@ -4,15 +4,15 @@
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleQuery;
-import com.ruoyi.goods.controller.management.DTO.GoodsSkuDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSkuQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsBrandVO;
-import com.ruoyi.goods.controller.management.VO.GoodsCategoryVO;
-import com.ruoyi.goods.controller.management.VO.GoodsFlavorTypeVO;
-import com.ruoyi.goods.controller.management.VO.GoodsInfoTitleVO;
-import com.ruoyi.goods.controller.management.VO.GoodsSeriesVO;
-import com.ruoyi.goods.controller.management.VO.GoodsSkuVO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleQuery;
+import com.ruoyi.goods.controller.management.dto.GoodsSkuDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSkuQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsBrandVO;
+import com.ruoyi.goods.controller.management.vo.GoodsCategoryVO;
+import com.ruoyi.goods.controller.management.vo.GoodsFlavorTypeVO;
+import com.ruoyi.goods.controller.management.vo.GoodsInfoTitleVO;
+import com.ruoyi.goods.controller.management.vo.GoodsSeriesVO;
+import com.ruoyi.goods.controller.management.vo.GoodsSkuVO;
 import com.ruoyi.goods.service.IGoodsBrandService;
 import com.ruoyi.goods.service.IGoodsCategoryService;
 import com.ruoyi.goods.service.IGoodsFlavorTypeService;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsBrandDTO.java
similarity index 93%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsBrandDTO.java
index 9e00cdc..ad0511c 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsBrandDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsBrandQuery.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandQuery.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsBrandQuery.java
index 42dd37b..69aca2e 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandQuery.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsBrandQuery.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.ruoyi.common.core.web.page.BasePage;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsCategoryDTO.java
similarity index 93%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsCategoryDTO.java
index f398206..85bdaae 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsCategoryDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsCategoryQuery.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryQuery.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsCategoryQuery.java
index d425580..d196e1a 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryQuery.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsCategoryQuery.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.ruoyi.common.core.web.page.BasePage;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsFlavorTypeDTO.java
similarity index 93%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsFlavorTypeDTO.java
index 81dbe5c..13c134b 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsFlavorTypeDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsFlavorTypeQuery.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeQuery.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsFlavorTypeQuery.java
index cd0345a..17c5bfb 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeQuery.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsFlavorTypeQuery.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.ruoyi.common.core.web.page.BasePage;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsGroupPurchaseDTO.java
similarity index 71%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsGroupPurchaseDTO.java
index a6b6421..6ef6d1b 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsGroupPurchaseDTO.java
@@ -1,10 +1,12 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import lombok.Data;
 
 /**
@@ -22,29 +24,37 @@
     private Long goodsSkuId;
 
     @ApiModelProperty(value = "分享标题")
+    @NotBlank(message = "分享标题不能为空")
     private String shareTitle;
 
     @ApiModelProperty(value = "分享图片")
+    @NotBlank(message = "分享图片不能为空")
     private String sharePic;
 
     @ApiModelProperty(value = "团购价格")
+    @NotNull(message = "团购价格不能为空")
     private BigDecimal groupPurchasePrice;
 
     @ApiModelProperty(value = "成团人数")
+    @NotNull(message = "成团人数不能为空")
     private Integer groupSize;
 
     @ApiModelProperty(value = "限购数量")
+    @NotNull(message = "限购数量不能为空")
     private Integer limitNumber;
 
     @ApiModelProperty(value = "团购开始时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "团购开始时间不能为空")
     private LocalDateTime startTime;
 
     @ApiModelProperty(value = "团购结束时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "团购结束时间不能为空")
     private LocalDateTime endTime;
 
     @ApiModelProperty(value = "参团说明")
+    @NotBlank(message = "参团说明不能为空")
     private String description;
 
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsGroupPurchaseQuery.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseQuery.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsGroupPurchaseQuery.java
index c2dcda3..2a89f4e 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseQuery.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsGroupPurchaseQuery.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 
 import com.ruoyi.common.core.web.page.BasePage;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleDTO.java
similarity index 93%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleDTO.java
index eabbe1a..9e83ec1 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleQuery.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleQuery.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleQuery.java
index fb1506a..c538ce3 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleQuery.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleQuery.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.ruoyi.common.core.web.page.BasePage;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleValueDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleValueDTO.java
similarity index 93%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleValueDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleValueDTO.java
index 6c2cc52..91ea92a 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleValueDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsInfoTitleValueDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillDTO.java
similarity index 95%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillDTO.java
index 1a67655..ba81611 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillQuery.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillQuery.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillQuery.java
index fda8715..f64ed17 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillQuery.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillQuery.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.ruoyi.common.core.web.page.BasePage;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillUpd.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillUpd.java
similarity index 97%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillUpd.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillUpd.java
index 8defeaa..cb33d47 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillUpd.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeckillUpd.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeriesDTO.java
similarity index 93%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeriesDTO.java
index bb80aea..b6167f8 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeriesDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeriesQuery.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesQuery.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeriesQuery.java
index 0cd2702..5502271 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesQuery.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSeriesQuery.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.ruoyi.common.core.web.page.BasePage;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuDTO.java
similarity index 98%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuDTO.java
index 5a78ea6..99f1560 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuInfoDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuInfoDTO.java
similarity index 95%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuInfoDTO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuInfoDTO.java
index cc30781..7bbcd53 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuInfoDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuInfoDTO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuQuery.java
similarity index 95%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuQuery.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuQuery.java
index 0788b95..ccb5f82 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuQuery.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuQuery.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.DTO;
+package com.ruoyi.goods.controller.management.dto;
 
 import com.ruoyi.common.core.enums.ListingStatusEnum;
 import com.ruoyi.common.core.web.page.BasePage;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsBrandVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsBrandVO.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsBrandVO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsBrandVO.java
index 37afdc1..85f120c 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsBrandVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsBrandVO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.VO;
+package com.ruoyi.goods.controller.management.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsCategoryVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsCategoryVO.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsCategoryVO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsCategoryVO.java
index 4d44542..ffc4d62 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsCategoryVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsCategoryVO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.VO;
+package com.ruoyi.goods.controller.management.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsFlavorTypeVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsFlavorTypeVO.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsFlavorTypeVO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsFlavorTypeVO.java
index e38e7ec..1114e97 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsFlavorTypeVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsFlavorTypeVO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.VO;
+package com.ruoyi.goods.controller.management.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsGroupPurchaseVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsGroupPurchaseVO.java
similarity index 97%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsGroupPurchaseVO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsGroupPurchaseVO.java
index ff5d7d1..674e34a 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsGroupPurchaseVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsGroupPurchaseVO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.VO;
+package com.ruoyi.goods.controller.management.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsInfoTitleVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsInfoTitleVO.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsInfoTitleVO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsInfoTitleVO.java
index 190102b..438689f 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsInfoTitleVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsInfoTitleVO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.VO;
+package com.ruoyi.goods.controller.management.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeckillVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java
similarity index 97%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeckillVO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java
index 531d17c..172bf4c 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeckillVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.VO;
+package com.ruoyi.goods.controller.management.vo;
 
 import com.ruoyi.common.core.enums.StartStatusEnum;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeriesVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeriesVO.java
similarity index 91%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeriesVO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeriesVO.java
index fcdba58..847a22f 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeriesVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeriesVO.java
@@ -1,4 +1,4 @@
-package com.ruoyi.goods.controller.management.VO;
+package com.ruoyi.goods.controller.management.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSkuVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSkuVO.java
similarity index 95%
rename from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSkuVO.java
rename to ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSkuVO.java
index 37af62d..890a6df 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSkuVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSkuVO.java
@@ -1,7 +1,7 @@
-package com.ruoyi.goods.controller.management.VO;
+package com.ruoyi.goods.controller.management.vo;
 
 import com.ruoyi.common.core.enums.ListingStatusEnum;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleValueDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleValueDTO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsGroupPurchaseMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsGroupPurchaseMapper.java
index 4189e3a..6f164ee 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsGroupPurchaseMapper.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsGroupPurchaseMapper.java
@@ -2,7 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.goods.controller.management.VO.GoodsGroupPurchaseVO;
+import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
 import com.ruoyi.goods.domain.GoodsGroupPurchase;
 import org.apache.ibatis.annotations.Param;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeckillMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeckillMapper.java
index 6a7fab4..4f64e79 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeckillMapper.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeckillMapper.java
@@ -2,7 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.goods.controller.management.VO.GoodsSeckillVO;
+import com.ruoyi.goods.controller.management.vo.GoodsSeckillVO;
 import com.ruoyi.system.api.domain.GoodsSeckill;
 import org.apache.ibatis.annotations.Param;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrandService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrandService.java
index 33ac4cb..251c7f1 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrandService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrandService.java
@@ -2,9 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsBrandDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsBrandQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsBrandVO;
+import com.ruoyi.goods.controller.management.dto.GoodsBrandDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsBrandQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsBrandVO;
 import com.ruoyi.goods.domain.GoodsBrand;
 import java.util.List;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsCategoryService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsCategoryService.java
index 11c8b2f..5409969 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsCategoryService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsCategoryService.java
@@ -2,9 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsCategoryDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsCategoryQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsCategoryVO;
+import com.ruoyi.goods.controller.management.dto.GoodsCategoryDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsCategoryQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsCategoryVO;
 import com.ruoyi.goods.domain.GoodsCategory;
 import java.util.List;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsFlavorTypeService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsFlavorTypeService.java
index 38dbfc2..297d729 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsFlavorTypeService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsFlavorTypeService.java
@@ -2,9 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsFlavorTypeVO;
+import com.ruoyi.goods.controller.management.dto.GoodsFlavorTypeDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsFlavorTypeQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsFlavorTypeVO;
 import com.ruoyi.goods.domain.GoodsFlavorType;
 import java.util.List;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java
index 8eb6d9c..04a1f71 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java
@@ -2,9 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsGroupPurchaseDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsGroupPurchaseQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsGroupPurchaseVO;
+import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
 import com.ruoyi.goods.domain.GoodsGroupPurchase;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 
@@ -61,4 +61,11 @@
      * @param groupPurchaseId 团购商品id
      */
     void endGroupPurchase(Long groupPurchaseId);
+
+    /**
+     * 立即结束团购
+     *
+     * @param id 团购商品id
+     */
+    void stopImmediately(Long id);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleService.java
index b6e3950..493f2f3 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleService.java
@@ -2,9 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsInfoTitleVO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsInfoTitleVO;
 import com.ruoyi.goods.domain.GoodsInfoTitle;
 
 /**
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java
index b9c4f5f..fa85f00 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java
@@ -2,10 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillQuery;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillUpd;
-import com.ruoyi.goods.controller.management.VO.GoodsSeckillVO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillQuery;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillUpd;
+import com.ruoyi.goods.controller.management.vo.GoodsSeckillVO;
 import com.ruoyi.system.api.domain.GoodsSeckill;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeriesService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeriesService.java
index 6fd3259..978ee7c 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeriesService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeriesService.java
@@ -2,9 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeriesDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeriesQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsSeriesVO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeriesDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeriesQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsSeriesVO;
 import com.ruoyi.goods.domain.GoodsSeries;
 import java.util.List;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java
index 7758639..e27f75d 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java
@@ -3,11 +3,12 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSkuDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSkuQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsSkuVO;
+import com.ruoyi.goods.controller.management.dto.GoodsSkuDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSkuQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsSkuVO;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
+import java.util.List;
 
 /**
  * <p>
@@ -43,4 +44,11 @@
      */
     void updStatus(ListStatusDTO dto);
 
+    /**
+     * 根据商品名称查询商品SKU列表。
+     *
+     * @param goodsSkuName 商品名称
+     * @return List<GoodsSku>商品SKU列表
+     */
+    List<GoodsSku> getGoodsByName(String goodsSkuName);
 }
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
new file mode 100644
index 0000000..a0a2954
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java
@@ -0,0 +1,142 @@
+package com.ruoyi.goods.service.async;
+
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.goods.domain.GoodsGroupPurchase;
+import com.ruoyi.system.api.constants.DelayTaskEnum;
+import com.ruoyi.system.api.domain.DelayTask;
+import com.ruoyi.system.api.domain.GoodsSeckill;
+import com.ruoyi.system.api.feignClient.SysUserClient;
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.util.concurrent.TimeUnit;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author mitao
+ * @date 2024/5/24
+ */
+@Component
+@Slf4j
+@RequiredArgsConstructor
+public class AsyncMethodService {
+
+    private final RedisService redisService;
+    private final SysUserClient sysUserClient;
+
+    @Async
+    public void seckillScheduleTask(GoodsSeckill goodsSeckill) {
+        LocalDateTime startTime = goodsSeckill.getStartTime();
+        LocalDateTime endTime = goodsSeckill.getEndTime();
+        //秒杀在一小时内开始
+        if (isWithinOneHour(startTime)) {
+            Long id = goodsSeckill.getId();
+            //秒杀已经开始
+            if (LocalDateTime.now().isAfter(startTime)) {
+                handleStartDelayTask(id, DelayTaskEnum.SECKILL_START_TASK, startTime, 3L);
+            } else {
+                Duration duration = Duration.between(LocalDateTime.now(), startTime);
+                handleStartDelayTask(id, DelayTaskEnum.SECKILL_START_TASK, startTime,
+                        duration.getSeconds());
+            }
+            log.info(">>>>>>>>>>>>>>>>>>>>秒杀商品:{} 开始秒杀<<<<<<<<<<<<<<<<<<<<", id);
+            //秒杀结束延时任务
+            handleEndDelayTask(id, DelayTaskEnum.SECKILL_END_TASK, endTime);
+
+        }
+    }
+
+    @Async
+    public void groupPurchaseScheduleTask(GoodsGroupPurchase groupPurchase) {
+        LocalDateTime startTime = groupPurchase.getStartTime();
+        LocalDateTime endTime = groupPurchase.getEndTime();
+        //秒杀在一小时内开始
+        if (isWithinOneHour(startTime)) {
+            Long id = groupPurchase.getId();
+            //秒杀已经开始,三秒后执行
+            if (LocalDateTime.now().isAfter(startTime)) {
+                handleStartDelayTask(id, DelayTaskEnum.GROUP_PURCHASES_START_TASK, startTime, 3L);
+            } else {
+                Duration duration = Duration.between(LocalDateTime.now(), startTime);
+                handleStartDelayTask(id, DelayTaskEnum.GROUP_PURCHASES_START_TASK, startTime,
+                        duration.getSeconds());
+            }
+            //秒杀结束延时任务
+            handleEndDelayTask(id, DelayTaskEnum.GROUP_PURCHASES_END_TASK, endTime);
+        }
+    }
+
+    private boolean isWithinOneHour(LocalDateTime startTime) {
+        LocalDateTime checkTime = LocalDateTime.now().plusHours(1);
+        return checkTime.isAfter(startTime);
+    }
+
+    private void handleEndDelayTask(Long id, DelayTaskEnum delayTaskEnum, LocalDateTime endTime) {
+        String endTaskKey = delayTaskEnum.getCode() + "-" + id;
+        DelayTask endDelayTask = sysUserClient.getDelayTask(
+                endTaskKey).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);
+                redisService.deleteObject(endTaskKey);
+                createEndDelayTask(endTime, endTaskKey, duration);
+            }
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>延时任务{}执行了<<<<<<<<<<<<<<<<<<<<", endTaskKey);
+    }
+
+    private void createEndDelayTask(LocalDateTime endTime, String seckillEndTaskKey,
+            Duration duration) {
+        DelayTask endDelayTask;
+        redisService.setCacheObject(
+                seckillEndTaskKey,
+                endTime, duration.getSeconds(), TimeUnit.SECONDS);
+        endDelayTask = new DelayTask();
+        endDelayTask.setDelFlag(0);
+        endDelayTask.setCreateTime(LocalDateTime.now());
+        endDelayTask.setExecuteTime(endTime);
+        endDelayTask.setRedisKey(seckillEndTaskKey);
+        sysUserClient.addDelayTask(endDelayTask);
+    }
+
+    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);
+        if (StringUtils.isNull(startDelayTask)) {
+            startDelayTask = new DelayTask();
+            startDelayTask.setDelFlag(0);
+            startDelayTask.setCreateTime(LocalDateTime.now());
+            startDelayTask.setExecuteTime(LocalDateTime.now().plusSeconds(timeout));
+            startDelayTask.setRedisKey(
+                    startTaskKey);
+            sysUserClient.addDelayTask(startDelayTask);
+        } else {
+            if (!startDelayTask.getExecuteTime().isEqual(startTime)) {
+                sysUserClient.deleteDelayTask(
+                        startTaskKey);
+                redisService.deleteObject(
+                        startTaskKey);
+                startDelayTask.setDelFlag(0);
+                startDelayTask.setCreateTime(LocalDateTime.now());
+                startDelayTask.setExecuteTime(LocalDateTime.now().plusSeconds(timeout));
+                startDelayTask.setRedisKey(
+                        startTaskKey);
+                sysUserClient.addDelayTask(startDelayTask);
+            }
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>延时任务{}执行了<<<<<<<<<<<<<<<<<<<<", startTaskKey);
+    }
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrandServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrandServiceImpl.java
index 722fcbc..55ead9e 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrandServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrandServiceImpl.java
@@ -5,9 +5,9 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsBrandDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsBrandQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsBrandVO;
+import com.ruoyi.goods.controller.management.dto.GoodsBrandDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsBrandQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsBrandVO;
 import com.ruoyi.goods.domain.GoodsBrand;
 import com.ruoyi.goods.mapper.GoodsBrandMapper;
 import com.ruoyi.goods.service.IGoodsBrandService;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsCategoryServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsCategoryServiceImpl.java
index 1bafe3e..94125bc 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsCategoryServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsCategoryServiceImpl.java
@@ -5,9 +5,9 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsCategoryDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsCategoryQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsCategoryVO;
+import com.ruoyi.goods.controller.management.dto.GoodsCategoryDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsCategoryQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsCategoryVO;
 import com.ruoyi.goods.domain.GoodsCategory;
 import com.ruoyi.goods.mapper.GoodsCategoryMapper;
 import com.ruoyi.goods.service.IGoodsCategoryService;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsFlavorTypeServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsFlavorTypeServiceImpl.java
index 62b7436..bd30d56 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsFlavorTypeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsFlavorTypeServiceImpl.java
@@ -5,9 +5,9 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsFlavorTypeVO;
+import com.ruoyi.goods.controller.management.dto.GoodsFlavorTypeDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsFlavorTypeQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsFlavorTypeVO;
 import com.ruoyi.goods.domain.GoodsFlavorType;
 import com.ruoyi.goods.mapper.GoodsFlavorTypeMapper;
 import com.ruoyi.goods.service.IGoodsFlavorTypeService;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
index 237b1b1..dbb37c1 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -2,20 +2,28 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.enums.GroupStatusEnum;
 import com.ruoyi.common.core.enums.ListingStatusEnum;
+import com.ruoyi.common.core.enums.PaymentMethodEnum;
 import com.ruoyi.common.core.enums.StartStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsGroupPurchaseDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsGroupPurchaseQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsGroupPurchaseVO;
+import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
 import com.ruoyi.goods.domain.GoodsGroupPurchase;
 import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper;
 import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
+import com.ruoyi.goods.service.IGoodsSkuService;
+import com.ruoyi.goods.service.async.AsyncMethodService;
+import com.ruoyi.system.api.WebSocketUsers;
+import com.ruoyi.system.api.domain.GoodsSku;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 import com.ruoyi.system.api.feignClient.OrderClient;
+import java.util.List;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -34,7 +42,8 @@
 public class GoodsGroupPurchaseServiceImpl extends ServiceImpl<GoodsGroupPurchaseMapper, GoodsGroupPurchase> implements IGoodsGroupPurchaseService {
 
     private final OrderClient orderClient;
-
+    private final IGoodsSkuService goodsSkuService;
+    private final AsyncMethodService asyncMethodService;
     /**
      * 获取团购商品列表的分页数据
      *
@@ -57,15 +66,39 @@
     public void saveGoodsGroupPurchase(GoodsGroupPurchaseDTO dto) {
         GoodsGroupPurchase goodsGroupPurchase = BeanUtils.copyBean(dto, GoodsGroupPurchase.class);
         if (StringUtils.isNull(dto.getId())) {
+            if (StringUtils.isNull(dto.getGoodsSkuId())) {
+                throw new ServiceException("商品id不能为空");
+            }
             this.save(goodsGroupPurchase);
+            GoodsSku goodsSku = goodsSkuService.getById(dto.getGoodsSkuId());
+            if (StringUtils.isNull(goodsSku)) {
+                throw new ServiceException("商品不存在");
+            }
+            int groupPurchaseStock = dto.getLimitNumber() * dto.getGroupSize();
+            goodsSkuService.lambdaUpdate()
+                    .set(GoodsSku::getStock, goodsSku.getStock() - groupPurchaseStock)
+                    .ge(GoodsSku::getStock, groupPurchaseStock)
+                    .eq(GoodsSku::getId, goodsSku.getId());
         } else {
             GoodsGroupPurchase groupPurchase = this.getById(dto.getId());
             if (StringUtils.isNull(groupPurchase)) {
                 throw new ServiceException("团购商品不存在");
             }
+            int originGroupStock = groupPurchase.getLimitNumber() * groupPurchase.getGroupSize();
+            GoodsSku goodsSku = goodsSkuService.getById(dto.getGoodsSkuId());
+            if (StringUtils.isNull(goodsSku)) {
+                throw new ServiceException("商品不存在");
+            }
+            int groupPurchaseStock = dto.getLimitNumber() * dto.getGroupSize();
+            int latestStock = originGroupStock - groupPurchaseStock;
+            goodsSkuService.lambdaUpdate()
+                    .set(GoodsSku::getStock,
+                            goodsSku.getStock() + latestStock)
+                    .ge(GoodsSku::getStock, latestStock)
+                    .eq(GoodsSku::getId, goodsSku.getId());
             this.updateById(goodsGroupPurchase);
+            asyncMethodService.groupPurchaseScheduleTask(goodsGroupPurchase);
         }
-        //TODO 添加调度任务 处理团购商品开始结束
     }
 
     /**
@@ -122,6 +155,8 @@
             this.lambdaUpdate().set(GoodsGroupPurchase::getStartStatus, StartStatusEnum.STARTED)
                     .eq(GoodsGroupPurchase::getId, groupPurchaseId).update();
             //TODO 通知小程序
+            WebSocketUsers.sendMessageToUsersByText(
+                    "团购商品" + groupPurchase.getGoodsSkuName() + "开始团购");
         }
     }
 
@@ -138,6 +173,38 @@
             this.lambdaUpdate().set(GoodsGroupPurchase::getStartStatus, StartStatusEnum.ENDED)
                     .eq(GoodsGroupPurchase::getId, groupPurchaseId).update();
             //TODO 通知小程序
+            WebSocketUsers.sendMessageToUsersByText(
+                    "团购商品" + groupPurchase.getGoodsSkuName() + "结束团购");
+        }
+    }
+
+    /**
+     * 立即结束
+     *
+     * @param id 团购商品id
+     */
+    @Override
+    public void stopImmediately(Long id) {
+        GoodsGroupPurchase groupPurchase = this.getById(id);
+        if (StringUtils.isNull(groupPurchase)) {
+            throw new ServiceException("团购商品不存在");
+        }
+        //判断商品状态,未成团则查询关联订单,进行退款;成团就直接修改状态
+        if (groupPurchase.getGroupStatus().equals(GroupStatusEnum.TO_FORM_A_GROUP)) {
+            //查询关联订单
+            List<Order> orderList = orderClient.getOrderByGroupPurchaseId(id).getData();
+            for (Order order : orderList) {
+                if (PaymentMethodEnum.ALIPAY.equals(order.getPaymentMethod())) {
+                    //TODO 退款
+                }
+                if (PaymentMethodEnum.WECHAT.equals(order.getPaymentMethod())) {
+                    //TODO 退款
+                }
+            }
+        } else {
+            this.lambdaUpdate()
+                    .set(GoodsGroupPurchase::getStartStatus, StartStatusEnum.ENDED)
+                    .eq(GoodsGroupPurchase::getId, id).update();
         }
     }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleServiceImpl.java
index 0c45044..b94249f 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleServiceImpl.java
@@ -5,9 +5,9 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsInfoTitleVO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsInfoTitleVO;
 import com.ruoyi.goods.domain.GoodsInfoTitle;
 import com.ruoyi.goods.mapper.GoodsInfoTitleMapper;
 import com.ruoyi.goods.service.IGoodsInfoTitleService;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
index b41c374..8cf04e0 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -4,32 +4,29 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.enums.StartStatusEnum;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.common.redis.service.RedisService;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillQuery;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeckillUpd;
-import com.ruoyi.goods.controller.management.VO.GoodsSeckillVO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillQuery;
+import com.ruoyi.goods.controller.management.dto.GoodsSeckillUpd;
+import com.ruoyi.goods.controller.management.vo.GoodsSeckillVO;
 import com.ruoyi.goods.mapper.GoodsSeckillMapper;
 import com.ruoyi.goods.service.IGoodsSeckillService;
 import com.ruoyi.goods.service.IGoodsSkuService;
-import com.ruoyi.system.api.constants.DelayTaskEnum;
-import com.ruoyi.system.api.domain.DelayTask;
+import com.ruoyi.goods.service.async.AsyncMethodService;
+import com.ruoyi.system.api.WebSocketUsers;
 import com.ruoyi.system.api.domain.GoodsSeckill;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import com.ruoyi.system.api.feignClient.SysUserClient;
-import java.time.Duration;
-import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Optional;
-import java.util.concurrent.TimeUnit;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -50,8 +47,7 @@
     private final OrderClient orderClient;
     private final RedisService redisService;
     private final SysUserClient sysUserClient;
-    private final RedissonClient redissonClient;
-
+    private final AsyncMethodService asyncMethodService;
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void addGoodsSeckill(GoodsSeckillDTO dto) {
@@ -67,117 +63,19 @@
         this.saveBatch(goodsSeckills);
 
         for (GoodsSeckill goodsSeckill : goodsSeckills) {
-            LocalDateTime startTime = goodsSeckill.getStartTime();
-            LocalDateTime endTime = goodsSeckill.getEndTime();
-            LocalDateTime checkTime = LocalDateTime.now().plusHours(1);
-            //秒杀在一小时内开始
-            if (checkTime.isAfter(startTime)) {
-                Long id = goodsSeckill.getId();
-                LocalDateTime now = LocalDateTime.now();
-                String seckillStartTaskKey = DelayTaskEnum.SECKILL_START_TASK.getCode() + "-" + id;
-                //秒杀已经开始
-                if (now.isAfter(startTime)) {
-                    //查询延时任务
-                    DelayTask startDelayTask = sysUserClient.getDelayTask(
-                            seckillStartTaskKey).getData();
-                    if (StringUtils.isNull(startDelayTask)) {
-                        redisService.setCacheObject(
-                                seckillStartTaskKey,
-                                startTime, 3L, TimeUnit.SECONDS);
-                        startDelayTask = new DelayTask();
-                        startDelayTask.setDelFlag(0);
-                        startDelayTask.setCreateTime(LocalDateTime.now());
-                        startDelayTask.setEndTime(LocalDateTime.now().plusSeconds(3));
-                        startDelayTask.setRedisKey(
-                                seckillStartTaskKey);
-                        sysUserClient.addDelayTask(startDelayTask);
-                    } else {
-                        if (!startDelayTask.getEndTime().isEqual(startTime)) {
-                            sysUserClient.deleteDelayTask(
-                                    seckillStartTaskKey);
-                            redisService.deleteObject(
-                                    seckillStartTaskKey);
-                            redisService.setCacheObject(
-                                    seckillStartTaskKey,
-                                    startTime, 3L, TimeUnit.SECONDS);
-                            startDelayTask = new DelayTask();
-                            startDelayTask.setDelFlag(0);
-                            startDelayTask.setCreateTime(LocalDateTime.now());
-                            startDelayTask.setEndTime(LocalDateTime.now().plusSeconds(3));
-                            startDelayTask.setRedisKey(
-                                    seckillStartTaskKey);
-                            sysUserClient.addDelayTask(startDelayTask);
-                        }
-                    }
-                } else {
-                    DelayTask startDelayTask = sysUserClient.getDelayTask(
-                            seckillStartTaskKey).getData();
-                    Duration duration = Duration.between(LocalDateTime.now(), startTime);
-
-                    if (StringUtils.isNull(startDelayTask)) {
-                        redisService.setCacheObject(
-                                seckillStartTaskKey,
-                                startTime, duration.toMillis(), TimeUnit.MILLISECONDS);
-                        startDelayTask = new DelayTask();
-                        startDelayTask.setDelFlag(0);
-                        startDelayTask.setCreateTime(LocalDateTime.now());
-                        startDelayTask.setEndTime(startTime);
-                        startDelayTask.setRedisKey(
-                                seckillStartTaskKey);
-                        sysUserClient.addDelayTask(startDelayTask);
-                    } else {
-                        if (!startDelayTask.getEndTime().isEqual(startTime)) {
-                            sysUserClient.deleteDelayTask(
-                                    seckillStartTaskKey);
-                            redisService.deleteObject(
-                                    seckillStartTaskKey);
-                            redisService.setCacheObject(
-                                    seckillStartTaskKey,
-                                    startTime, duration.toMillis(), TimeUnit.MILLISECONDS);
-                            startDelayTask = new DelayTask();
-                            startDelayTask.setDelFlag(0);
-                            startDelayTask.setCreateTime(LocalDateTime.now());
-                            startDelayTask.setEndTime(startTime);
-                            startDelayTask.setRedisKey(
-                                    seckillStartTaskKey);
-                            sysUserClient.addDelayTask(startDelayTask);
-                        }
-                    }
-                }
-                String seckillEndTaskKey = DelayTaskEnum.SECKILL_END_TASK.getCode() + "-" + id;
-                DelayTask endDelayTask = sysUserClient.getDelayTask(
-                        seckillEndTaskKey).getData();
-                // 如果延时任务为空,创建延时任务控制活动定时开始和结束
-                if (StringUtils.isNull(endDelayTask)) {
-                    Duration duration = Duration.between(LocalDateTime.now(), endTime);
-                    redisService.setCacheObject(
-                            seckillEndTaskKey,
-                            endTime, duration.toMillis(), TimeUnit.MILLISECONDS);
-                    endDelayTask = new DelayTask();
-                    endDelayTask.setDelFlag(0);
-                    endDelayTask.setCreateTime(LocalDateTime.now());
-                    endDelayTask.setEndTime(endTime);
-                    endDelayTask.setRedisKey(seckillEndTaskKey);
-                    sysUserClient.addDelayTask(endDelayTask);
-                } else {
-                    Duration duration = Duration.between(LocalDateTime.now(), endTime);
-                    if (!endDelayTask.getEndTime().isEqual(endTime)) {
-                        sysUserClient.deleteDelayTask(seckillEndTaskKey);
-                        redisService.deleteObject(seckillEndTaskKey);
-                        redisService.setCacheObject(
-                                seckillEndTaskKey,
-                                endTime, duration.toMillis(), TimeUnit.MILLISECONDS);
-                        endDelayTask = new DelayTask();
-                        endDelayTask.setDelFlag(0);
-                        endDelayTask.setCreateTime(LocalDateTime.now());
-                        endDelayTask.setEndTime(endTime);
-                        endDelayTask.setRedisKey(seckillEndTaskKey);
-                        sysUserClient.addDelayTask(endDelayTask);
-                    }
-                }
+            GoodsSku goodsSku = goodsSkuService.getById(goodsSeckill.getGoodsSkuId());
+            if (StringUtils.isNull(goodsSku)) {
+                throw new ServiceException("商品不存在");
             }
+            Integer seckillStock = goodsSeckill.getSeckillStock();
+            goodsSkuService.lambdaUpdate()
+                    .set(GoodsSku::getStock, goodsSku.getStock() - seckillStock)
+                    .ge(GoodsSku::getStock, seckillStock)
+                    .eq(GoodsSku::getId, goodsSku.getId());
+            asyncMethodService.seckillScheduleTask(goodsSeckill);
         }
     }
+
 
     /**
      * 获取秒杀商品列表的分页数据
@@ -198,6 +96,7 @@
      * @param upd 商品秒杀数据传输对象
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updGoodsSeckill(GoodsSeckillUpd upd) {
         //查询秒杀商品
         GoodsSeckill goodsSeckill = this.getById(upd.getId());
@@ -206,6 +105,7 @@
         }
         GoodsSeckill goodsSeckillUpd = BeanUtils.copyBean(upd, GoodsSeckill.class);
         this.updateById(goodsSeckillUpd);
+        asyncMethodService.seckillScheduleTask(goodsSeckill);
     }
 
     /**
@@ -261,7 +161,8 @@
                     CacheConstants.SECKILL_GOODS + goodsSeckill.getId(),
                     goodsSeckill.getSeckillStock());
         }
-        //TODO websocket 推送秒杀开始消息
+        //推送秒杀开始消息
+        WebSocketUsers.sendMessageToUsersByText("秒杀活动已开始");
     }
 
     /**
@@ -282,5 +183,6 @@
             redisService.deleteObject(CacheConstants.SECKILL_GOODS + goodsSeckill.getId());
         }
         //TODO websocket 推送秒杀结束消息
+        WebSocketUsers.sendMessageToUsersByText("秒杀活动已结束");
     }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeriesServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeriesServiceImpl.java
index e83c01d..4aadd83 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeriesServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeriesServiceImpl.java
@@ -5,9 +5,9 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeriesDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSeriesQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsSeriesVO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeriesDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSeriesQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsSeriesVO;
 import com.ruoyi.goods.domain.GoodsSeries;
 import com.ruoyi.goods.mapper.GoodsSeriesMapper;
 import com.ruoyi.goods.service.IGoodsSeriesService;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
index d544f11..37798e5 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -11,10 +11,10 @@
 import com.ruoyi.common.core.utils.page.Checker;
 import com.ruoyi.common.core.utils.page.CollUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleValueDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSkuDTO;
-import com.ruoyi.goods.controller.management.DTO.GoodsSkuQuery;
-import com.ruoyi.goods.controller.management.VO.GoodsSkuVO;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleValueDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSkuDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSkuQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsSkuVO;
 import com.ruoyi.goods.domain.GoodsGroupPurchase;
 import com.ruoyi.goods.domain.GoodsInfoTitleValue;
 import com.ruoyi.goods.mapper.GoodsSkuMapper;
@@ -185,4 +185,17 @@
                         ListingStatusEnum.ON_SHELVES)
                 .eq(GoodsGroupPurchase::getGoodsSkuId, dto.getId()).update();
     }
+
+    /**
+     * 根据商品名称查询商品SKU列表。
+     *
+     * @param goodsSkuName 商品名称
+     * @return List<GoodsSku>商品SKU列表
+     */
+    @Override
+    public List<GoodsSku> getGoodsByName(String goodsSkuName) {
+        return this.lambdaQuery()
+                .like(StringUtils.isNotEmpty(goodsSkuName), GoodsSku::getSkuName, goodsSkuName)
+                .list();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/task/GoodsScheduler.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/task/GoodsScheduler.java
new file mode 100644
index 0000000..85603d1
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/task/GoodsScheduler.java
@@ -0,0 +1,54 @@
+package com.ruoyi.goods.task;
+
+import com.ruoyi.common.core.enums.ListingStatusEnum;
+import com.ruoyi.common.core.enums.StartStatusEnum;
+import com.ruoyi.goods.domain.GoodsGroupPurchase;
+import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
+import com.ruoyi.goods.service.IGoodsSeckillService;
+import com.ruoyi.goods.service.async.AsyncMethodService;
+import com.ruoyi.system.api.domain.GoodsSeckill;
+import java.time.LocalDateTime;
+import java.util.List;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author mitao
+ * @date 2024/5/24
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class GoodsScheduler {
+
+    private final AsyncMethodService asyncMethodService;
+    private final IGoodsSeckillService goodsSeckillService;
+    private final IGoodsGroupPurchaseService goodsGroupPurchaseService;
+
+    @Scheduled(cron = "0 0 */1 * * ?")
+    private void timingTask() {
+        handleTaskStart();
+    }
+
+    private void handleTaskStart() {
+        log.info(">>>>>>>>>>>>>>>>>>>>定时任务秒杀/团购开始执行<<<<<<<<<<<<<<<<<<<<");
+        LocalDateTime checkTime = LocalDateTime.now().plusHours(1);
+        List<GoodsSeckill> list = goodsSeckillService.lambdaQuery()
+                .eq(GoodsSeckill::getListingStatus, ListingStatusEnum.ON_SHELVES)
+                .eq(GoodsSeckill::getStartStatus, StartStatusEnum.NOT_STARTED)
+                .le(GoodsSeckill::getStartTime, checkTime)
+                .list();
+        for (GoodsSeckill goodsSeckill : list) {
+            asyncMethodService.seckillScheduleTask(goodsSeckill);
+        }
+        List<GoodsGroupPurchase> groupPurchaseList = goodsGroupPurchaseService.lambdaQuery()
+                .eq(GoodsGroupPurchase::getListingStatus, ListingStatusEnum.ON_SHELVES)
+                .eq(GoodsGroupPurchase::getStartStatus, StartStatusEnum.NOT_STARTED)
+                .le(GoodsGroupPurchase::getStartTime, checkTime).list();
+        for (GoodsGroupPurchase goodsGroupPurchase : groupPurchaseList) {
+            asyncMethodService.groupPurchaseScheduleTask(goodsGroupPurchase);
+        }
+    }
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml
index bdb2669..80258cc 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml
@@ -3,7 +3,7 @@
 <mapper namespace="com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper">
 
   <select id="getGoodsGroupPurchasePage"
-    resultType="com.ruoyi.goods.controller.management.VO.GoodsGroupPurchaseVO">
+    resultType="com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO">
     SELECT
     tgp.*,
     tgs.goods_sku_name
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsSeckillMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsSeckillMapper.xml
index 992ef00..bd6c161 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsSeckillMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsSeckillMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.goods.mapper.GoodsSeckillMapper">
   <select id="getGoodsSeckillPage"
-    resultType="com.ruoyi.goods.controller.management.VO.GoodsSeckillVO">
+    resultType="com.ruoyi.goods.controller.management.vo.GoodsSeckillVO">
     SELECT
     gs.id,
     gsku.goods_sku_name,
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/MemberInvoiceRiseController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/MemberInvoiceRiseController.java
index 7f49d5d..bd15109 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/MemberInvoiceRiseController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/MemberInvoiceRiseController.java
@@ -3,21 +3,18 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.order.dto.MemberInvoiceRiseDTO;
 import com.ruoyi.order.domain.pojo.MemberInvoiceRise;
-import com.ruoyi.order.domain.pojo.Order;
+import com.ruoyi.order.dto.MemberInvoiceRiseDTO;
 import com.ruoyi.order.service.IMemberInvoiceRiseService;
 import com.ruoyi.order.service.IOrderService;
+import com.ruoyi.system.api.domain.Order;
 import io.swagger.annotations.ApiOperation;
+import javax.annotation.Resource;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index 0f36576..4219436 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -4,7 +4,9 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.annotation.InnerAuth;
 import com.ruoyi.order.service.IOrderService;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
+import java.util.List;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.formula.functions.T;
@@ -64,4 +66,16 @@
     R<Integer> getGroupPurchasesGoodsNum(@PathVariable("id") Long id) {
         return R.ok(orderService.getGroupPurchasesGoodsNum(id));
     }
+
+    /**
+     * 获取团购商品已购订单列表
+     *
+     * @param id 团购商品id
+     * @return List<Order> 订单列表
+     */
+    @InnerAuth
+    @GetMapping("/group-purchase-id/{id}")
+    R<List<Order>> getOrderByGroupPurchaseId(@PathVariable("id") Long id) {
+        return R.ok(orderService.getOrderByGroupPurchaseId(id));
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
index d6a61c7..0711b57 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
@@ -1,7 +1,8 @@
 package com.ruoyi.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.order.domain.pojo.Order;
+import com.ruoyi.system.api.domain.Order;
+import java.util.List;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -14,5 +15,19 @@
  */
 public interface OrderMapper extends BaseMapper<Order> {
 
+    /**
+     * 获取某个商品的已购会员数
+     *
+     * @param id 秒杀商品id
+     * @return 已购会员数
+     */
     Integer getSeckillMembers(@Param("id") Long id);
+
+    /**
+     * 根据团购商品id获取团购商品订单
+     *
+     * @param id 团购商品id
+     * @return 订单列表
+     */
+    List<Order> getOrderByGroupPurchaseId(@Param("id") Long id);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IMemberInvoiceRiseService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IMemberInvoiceRiseService.java
index 88d4097..3968773 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IMemberInvoiceRiseService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IMemberInvoiceRiseService.java
@@ -1,12 +1,10 @@
 package com.ruoyi.order.service;
 
-import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.order.dto.MemberInvoiceRiseDTO;
-import com.ruoyi.order.domain.pojo.MemberInvoiceRise;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.order.domain.pojo.Order;
-
-import java.util.List;
+import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.order.domain.pojo.MemberInvoiceRise;
+import com.ruoyi.order.dto.MemberInvoiceRiseDTO;
+import com.ruoyi.system.api.domain.Order;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
index 37a1954..9fed17b 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
@@ -1,8 +1,9 @@
 package com.ruoyi.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.order.domain.pojo.Order;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
+import java.util.List;
 
 /**
  * <p>
@@ -16,6 +17,12 @@
 
     void saveOrderOne(OrderDTO OrderDTO);
 
+    /**
+     * 获取某个商品的已购会员数
+     *
+     * @param id 秒杀商品id
+     * @return 已购会员数
+     */
     Integer getSeckillMembers(Long id);
 
     /**
@@ -25,4 +32,12 @@
      * @return 团购商品已购数量
      */
     Integer getGroupPurchasesGoodsNum(Long id);
+
+    /**
+     * 根据团购商品id获取团购商品订单
+     *
+     * @param id 团购商品id
+     * @return 订单列表
+     */
+    List<Order> getOrderByGroupPurchaseId(Long id);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceRiseServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceRiseServiceImpl.java
index 7e330b0..735395d 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceRiseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceRiseServiceImpl.java
@@ -3,20 +3,18 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.order.domain.pojo.MemberInvoiceOrder;
-import com.ruoyi.order.dto.MemberInvoiceRiseDTO;
 import com.ruoyi.order.domain.pojo.MemberInvoiceRise;
-import com.ruoyi.order.domain.pojo.Order;
+import com.ruoyi.order.dto.MemberInvoiceRiseDTO;
 import com.ruoyi.order.mapper.MemberInvoiceRiseMapper;
 import com.ruoyi.order.service.IMemberInvoiceRiseService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.order.service.IOrderService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
+import com.ruoyi.system.api.domain.Order;
 import java.util.ArrayList;
 import java.util.List;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Service;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java
index 83dec48..ac3f033 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java
@@ -3,21 +3,28 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.core.utils.page.PageDTO;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.OrderFromEnum;
+import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.order.domain.pojo.MemberInvoice;
+import com.ruoyi.order.domain.pojo.MemberInvoiceOrder;
+import com.ruoyi.order.domain.pojo.OrderAuction;
+import com.ruoyi.order.domain.pojo.OrderMall;
 import com.ruoyi.order.dto.MemberInvoiceDTO;
-import com.ruoyi.order.domain.pojo.*;
 import com.ruoyi.order.mapper.MemberInvoiceMapper;
-import com.ruoyi.order.service.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.service.IMemberInvoiceOrderService;
+import com.ruoyi.order.service.IMemberInvoiceService;
+import com.ruoyi.order.service.IOrderAuctionService;
+import com.ruoyi.order.service.IOrderMallService;
+import com.ruoyi.order.service.IOrderService;
 import com.ruoyi.system.api.domain.GoodsSeckill;
 import com.ruoyi.system.api.domain.GoodsSku;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.feignClient.GoodsSkuClient;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
 import java.util.List;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Service;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 520643c..55b91da 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -2,12 +2,12 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.enums.OrderStatusEnum;
-import com.ruoyi.order.domain.pojo.Order;
 import com.ruoyi.order.domain.pojo.OrderMall;
 import com.ruoyi.order.mapper.OrderMapper;
 import com.ruoyi.order.service.IOrderMallService;
 import com.ruoyi.order.service.IOrderService;
 import com.ruoyi.order.util.OrderUtil;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
 import java.util.List;
 import java.util.Set;
@@ -50,6 +50,13 @@
         order.setBound(OrderDTO.getBound());
         orderService.save(order);
     }
+
+    /**
+     * 获取某个商品的已购会员数
+     *
+     * @param id 秒杀商品id
+     * @return 已购会员数
+     */
     @Override
     public Integer getSeckillMembers(Long id) {
         return baseMapper.getSeckillMembers(id);
@@ -72,4 +79,15 @@
                         OrderStatusEnum.GOODS_TO_BE_RECEIVED, OrderStatusEnum.FINISHED).list();
         return list.stream().map(Order::getGoodsQuantity).reduce(0, Integer::sum);
     }
+
+    /**
+     * 根据团购商品id获取团购商品订单
+     *
+     * @param id 团购商品id
+     * @return 订单列表
+     */
+    @Override
+    public List<Order> getOrderByGroupPurchaseId(Long id) {
+        return baseMapper.getOrderByGroupPurchaseId(id);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index e86ecaf..74e9b67 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -14,4 +14,17 @@
     GROUP BY
       o.member_id
   </select>
+  <select id="getOrderByGroupPurchaseId" resultType="com.ruoyi.system.api.domain.Order"
+    parameterType="java.lang.Long">
+    SELECT
+    o.*
+    FROM
+    t_order_mall tom
+    LEFT JOIN t_order o ON tom.order_id = o.id
+    <where>
+      o.order_status = 2
+      AND o.order_from = 3
+      AND tom.activity_id = #{id}
+    </where>
+  </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index 7530fe2..64f20d8 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -107,7 +107,6 @@
                 </exclusion>
             </exclusions>
         </dependency>
-
     </dependencies>
 
     <build>
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java
index 0421920..f484dae 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java
@@ -86,31 +86,31 @@
     //延时任务表
     @Async
     public void autoStartSeckill(Long seckillId) {
-        log.info("autoStartSeckill scheduler task is running :" + seckillId);
+        log.info("autoStartSeckill scheduler task is running :{}", seckillId);
         goodsSkuClient.startSeckill(seckillId);
 
     }
 
     @Async
     public void autoEndSeckill(Long seckillId) {
-        log.info("autoEndSeckill scheduler task is running :" + seckillId);
+        log.info("autoEndSeckill scheduler task is running :{}", seckillId);
         goodsSkuClient.endSeckill(seckillId);
     }
 
     @Async
     public void autoStartGroupPurchase(Long GroupPurchaseId) {
-        log.info("autoStartGroupPurchase scheduler task is running :" + GroupPurchaseId);
+        log.info("autoStartGroupPurchase scheduler task is running :{}", GroupPurchaseId);
         goodsSkuClient.startGroupPurchase(GroupPurchaseId);
     }
 
     @Async
     public void autoEndGroupPurchase(Long GroupPurchaseId) {
-        log.info("autoEndGroupPurchase scheduler task is running :" + GroupPurchaseId);
+        log.info("autoEndGroupPurchase scheduler task is running :{}", GroupPurchaseId);
         goodsSkuClient.endGroupPurchase(GroupPurchaseId);
     }
 
     @Async
     public void autoCancelOrder(Long orderId) {
-        log.info("autoCancelOrder scheduler task is running :" + orderId);
+        log.info("autoCancelOrder scheduler task is running :{}", orderId);
     }
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java
index eaf75c8..8afd215 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java
@@ -1,6 +1,5 @@
 package com.ruoyi.system.service.impl;
 
-import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -8,8 +7,6 @@
 import com.ruoyi.system.mapper.AgreementMapper;
 import com.ruoyi.system.service.IAgreementService;
 import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
 
 /**
  * <p>
@@ -22,14 +19,11 @@
 @Service
 public class AgreementServiceImpl extends ServiceImpl<AgreementMapper, Agreement> implements IAgreementService {
 
-    @Resource
-    private  IAgreementService iAgreementService;
-
     @Override
     public Agreement getAgreement(Integer agreementType) {
         LambdaQueryWrapper<Agreement> wrapper= Wrappers.lambdaQuery();
         wrapper.eq(Agreement::getAgreementType,agreementType);
         wrapper.eq(Agreement::getDelFlag,0);
-        return iAgreementService.getOne(wrapper);
+        return this.getOne(wrapper);
     }
 }

--
Gitblit v1.7.1