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

+ 3 - 2
ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiSeckillActivityProductController.java

@@ -1,6 +1,7 @@
 package com.ruoyi.api.controller.shop;
 
 import com.ruoyi.api.controller.common.AbstractApiController;
+import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.enums.FilePathSplicingType;
 import com.ruoyi.common.filepathsplicing.FilePathSplicing;
@@ -94,7 +95,7 @@ public class ApiSeckillActivityProductController extends AbstractApiController {
     @GetMapping("/start-flash-sale")
     @ApiOperation("APP -- 根据开始时间查询限时秒杀")
     @FilePathSplicing(type = FilePathSplicingType.RESPONSE)
-    public R<SeckillActivityAppVO> startFlashSale(SeckillActivityProductBo bo) {
-        return R.ok(iSeckillActivityProductService.startFlashSale(bo));
+    public R<SeckillActivityAppVO> startFlashSale(SeckillActivityProductBo bo, PageQuery pageQuery) {
+        return R.ok(iSeckillActivityProductService.startFlashSale(bo, pageQuery));
     }
 }

+ 3 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/domain/vo/SeckillActivityAppVO.java

@@ -1,5 +1,6 @@
 package com.ruoyi.shop.marketing.seckill.domain.vo;
 
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.filepathsplicing.FilePathValue;
 import com.ruoyi.shop.enums.ActiveState;
 import lombok.Data;
@@ -33,4 +34,6 @@ public class SeckillActivityAppVO implements Serializable {
     @FilePathValue
     private List<SeckillActivityProductVo> list;
 
+    @FilePathValue
+    private TableDataInfo<SeckillActivityProductVo> pageList;
 }

+ 4 - 1
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/domain/vo/SeckillActivityProductVo.java

@@ -228,5 +228,8 @@ public class SeckillActivityProductVo {
         this.residueStockTotal = this.productSkuSetList.stream().mapToInt(ProductSkuSetVo::getStock).sum();
     }
 
-
+    /**
+     * 已抢百分比
+     */
+    private Integer rate;
 }

+ 2 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/mapper/SeckillActivityProductMapper.java

@@ -27,4 +27,6 @@ public interface SeckillActivityProductMapper extends BaseMapperPlus<SeckillActi
     List<SeckillActivityProductVo> willSeckillList(@Param("businessId") Long businessId, @Param("startTime") Date startTime);
 
     List<SeckillActivityProductVo> getNowAllSeckillProduct(@Param("bo") SeckillActivityProductBo bo);
+
+    Page<SeckillActivityProductVo> startFlashSalePage(@Param("page") Page<Object> build, @Param("startTime") String startTime, @Param("businessId") Long businessId);
 }

+ 1 - 1
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/service/ISeckillActivityProductService.java

@@ -91,7 +91,7 @@ public interface ISeckillActivityProductService {
 
     SeckillActivityAppVO flashSale(SeckillActivityProductBo bo);
 
-    SeckillActivityAppVO startFlashSale(SeckillActivityProductBo bo);
+    SeckillActivityAppVO startFlashSale(SeckillActivityProductBo bo, PageQuery pageQuery);
 
     void returnProductStock(Long seckillId);
 }

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

@@ -387,7 +387,7 @@ public class SeckillActivityProductServiceImpl implements ISeckillActivityProduc
     }
 
     @Override
-    public SeckillActivityAppVO startFlashSale(SeckillActivityProductBo bo) {
+    public SeckillActivityAppVO startFlashSale(SeckillActivityProductBo bo, PageQuery pageQuery) {
         SeckillActivityAppVO vo = new SeckillActivityAppVO();
         String startHour = bo.getStartHour();
         String endHour = bo.getEndHour();
@@ -424,8 +424,8 @@ public class SeckillActivityProductServiceImpl implements ISeckillActivityProduc
             //查询秒杀活动
             seckillActivityService.loadById(timeItem.getSeckillId(), true);
             //当前场次所有的活动商品
-//            IPage<SeckillActivityGoodsVO> page = baseMapper.startFlashSalePage(new Query<SeckillActivityGoodsVO>().getPage(params), startTime, shopId);
-//            vo.setPage(new PageUtils(page));
+            Page<SeckillActivityProductVo> page = baseMapper.startFlashSalePage(pageQuery.build(), startTime, businessId);
+            vo.setPageList(TableDataInfo.build(page));
         }
         return vo;
     }

+ 18 - 0
ruoyi-shop/src/main/resources/mapper/marketing/seckill/SeckillActivityProductMapper.xml

@@ -107,4 +107,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
     </select>
 
+    <select id="startFlashSalePage"
+            resultType="com.ruoyi.shop.marketing.seckill.domain.vo.SeckillActivityProductVo">
+        SELECT
+            sap.*,sa.start_time,sa.end_time,sa.start_hour,sa.end_hour,tp.title,tp.cover,
+            Round((sap.result_sale_num/sap.real_stock_total)*100,0) AS rate
+        FROM tb_seckill_activity_product sap
+        LEFT OUTER JOIN tb_seckill_activity sa ON sap.seckill_id=sa.id
+        LEFT OUTER JOIN tb_product tp ON sap.product_id=tp.product_id
+        WHERE sap.del_flag = 0 and sa.discard = 0 AND sap.seckill_id in (
+            SELECT DISTINCT(seckill_id) FROM `tb_seckill_activity_time_item`
+                WHERE start_time = #{startTime}
+                <if test="businessId != null">
+                    AND business_id = #{businessId}
+                </if>
+            )
+        ORDER BY sap.create_time DESC
+    </select>
+
 </mapper>