guomengjiao 1 месяц назад
Родитель
Сommit
56852e9e97

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/shop/marketing/seckill/SeckillActivityProductController.java

@@ -72,7 +72,7 @@ public class SeckillActivityProductController extends BaseController {
     /**
      * 新增秒杀活动商品
      */
-    @ApiOperation("新增秒杀活动商品")
+    @ApiOperation("新增或修改秒杀活动商品")
     @SaCheckPermission("seckill:seckillActivityProduct:add")
     @Log(title = "秒杀活动商品", businessType = BusinessType.INSERT)
     @RepeatSubmit()

+ 27 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiSeckillActivityProductController.java

@@ -0,0 +1,27 @@
+package com.ruoyi.api.controller.shop;
+
+import com.ruoyi.api.controller.common.AbstractApiController;
+import com.ruoyi.shop.marketing.seckill.service.ISeckillActivityProductService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 秒杀活动商品Controller
+ *
+ * @author ruoyi
+ * @date 2026-02-27
+ */
+@Validated
+@Api(value = "秒杀活动商品控制器", tags = {"秒杀活动商品管理"})
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/seckill/seckillActivityProduct")
+public class ApiSeckillActivityProductController extends AbstractApiController {
+
+    private final ISeckillActivityProductService iSeckillActivityProductService;
+
+
+}

+ 1 - 4
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/domain/bo/SeckillActivityProductBo.java

@@ -74,7 +74,6 @@ public class SeckillActivityProductBo extends BaseEntity {
      * 固定减多少钱
      */
     @ApiModelProperty(value = "固定减多少钱", required = true)
-    @NotNull(message = "固定减多少钱不能为空", groups = { AddGroup.class, EditGroup.class })
     private BigDecimal fixPrice;
 
     /**
@@ -94,14 +93,12 @@ public class SeckillActivityProductBo extends BaseEntity {
      *
      */
     @ApiModelProperty(value = "", required = true)
-    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
     private BigDecimal minPrice;
 
     /**
      *
      */
     @ApiModelProperty(value = "", required = true)
-    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
     private BigDecimal maxPrice;
 
     /**
@@ -126,7 +123,7 @@ public class SeckillActivityProductBo extends BaseEntity {
 
     @FilePathValue
     @ApiModelProperty(value = "商品规格sku集列表")
-    @NotBlank(message = "sku的所选项不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "sku的所选项不能为空", groups = { AddGroup.class, EditGroup.class })
     private List<ProductSkuSetBo> productSkuSetList;
 
     /**

+ 0 - 4
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/service/impl/SeckillActivityProductServiceImpl.java

@@ -148,10 +148,6 @@ public class SeckillActivityProductServiceImpl implements ISeckillActivityProduc
         }
         SeckillActivityProduct add = BeanCopyUtils.copy(bo, seckillActivityProduct);
         add.setSkuTableValue(product.getSkuTable());
-        //可售数量+初始化销量>=已售数量
-        if ((add.getRealStockTotal() + add.getInitSaleNum()) < add.getResultSaleNum()) {
-            throw new ServiceException(SeckillActivityProductExceptionEnum.SALE_EXCEPTION);
-        }
         //保存
         baseMapper.insertOrUpdate(add);
         //保存秒杀活动sku

+ 3 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/product/service/impl/ProductServiceImpl.java

@@ -596,6 +596,9 @@ public class ProductServiceImpl implements IProductService {
     @Override
     public TableDataInfo<ProductVo> forActivityList(ProductBo bo, PageQuery pageQuery) {
         Page<ProductVo> result = baseMapper.forActivityList(pageQuery.buildSafe(ALLOWED_ORDER_COLUMNS), bo);
+        result.getRecords().forEach(vo -> {
+            vo.loadProductSkuSetList();
+        });
         return TableDataInfo.build(result);
     }
 

+ 4 - 4
ruoyi-shop/src/main/resources/mapper/product/ProductMapper.xml

@@ -240,11 +240,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="forActivityList" resultType="com.ruoyi.shop.product.domain.vo.ProductVo">
         select p.*
         <if test="bo.seckillId!=null">
-            ,exists(select sap.id from tb_seckill_activity_product as sap where sap.product_id=p.id and
+            ,exists(select sap.id from tb_seckill_activity_product as sap where sap.product_id=p.product_id and
             sap.seckill_id = #{bo.seckillId} ) as isJoin
         </if>
         <if test="bo.groupBuyId!=null">
-            ,exists(select gbag.id from tb_group_buy_activity_goods as gbag where gbag.product_id=p.id and
+            ,exists(select gbag.id from tb_group_buy_activity_goods as gbag where gbag.product_id=p.product_id and
             gbag.group_buy_id = #{bo.groupBuyId} ) as isJoin
         </if>
         from `tb_product` as p
@@ -254,10 +254,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 AND p.`title` LIKE CONCAT('%',#{bo.title},'%')
             </if>
             <if test="bo.shelvedStatus != null">
-                and tp.shelved_status = #{bo.shelvedStatus}
+                and p.shelved_status = #{bo.shelvedStatus}
             </if>
             <if test="bo.auditStatus != null">
-                and tp.audit_status = #{bo.auditStatus.code}
+                and p.audit_status = #{bo.auditStatus.code}
             </if>
         </where>
         order by p.order_index desc,p.create_time desc