Explorar o código

秒杀代码生成

guomengjiao hai 1 mes
pai
achega
0e5408d368

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

@@ -49,6 +49,7 @@ public class SeckillActivityController extends BaseController {
     @SaCheckPermission("seckill:seckillActivity:list")
     @GetMapping("/page")
     public TableDataInfo<SeckillActivityVo> page(@Validated(QueryGroup.class) SeckillActivityBo bo, PageQuery pageQuery) {
+        bo.setBusinessId(getBusinessId(true));
         return iSeckillActivityService.queryPageList(bo, pageQuery);
     }
 

+ 48 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/merchant/ApiMerchantCategoryController.java

@@ -0,0 +1,48 @@
+package com.ruoyi.api.controller.merchant;
+
+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.core.validate.QueryGroup;
+import com.ruoyi.common.enums.FilePathSplicingType;
+import com.ruoyi.common.filepathsplicing.FilePathSplicing;
+import com.ruoyi.shop.merchant.domain.bo.MerchantCategoryBo;
+import com.ruoyi.shop.merchant.domain.vo.MerchantCategoryVo;
+import com.ruoyi.shop.merchant.service.IMerchantCategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 平台分类Controller
+ *
+ * @author lubo
+ * @date 2025-10-14
+ */
+@Validated
+@Api(value = "平台分类控制器", tags = {"平台分类管理"})
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/merchantCategory")
+public class ApiMerchantCategoryController extends AbstractApiController {
+
+    private final IMerchantCategoryService iMerchantCategoryService;
+
+    /**
+     * 分页查询平台分类列表
+     */
+    @FilePathSplicing(type = FilePathSplicingType.RESPONSE)
+    @ApiOperation("查询平台分类列表")
+    @GetMapping("/list")
+    public R<List<MerchantCategoryVo>> list(@Validated(QueryGroup.class) MerchantCategoryBo bo, PageQuery pageQuery) {
+        bo.setShelvedStatus(true);
+        return R.ok(iMerchantCategoryService.queryList(bo));
+    }
+
+}

+ 0 - 4
ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiProductController.java

@@ -97,10 +97,6 @@ public class ApiProductController extends AbstractApiController {
     @ApiOperation("推荐或新或热销产品列表")
     @GetMapping("/list")
     public R<List<ProductVo>> list(@Validated(QueryGroup.class) ProductBo bo) {
-        if(ObjectUtil.isNull(bo.getBusinessId()))
-        {
-            return R.ok(new ArrayList<>());
-        }
         bo.setShelvedStatus(true);
         bo.setAuditStatus(AuditStatus.AUDIT_PASS);
         return R.ok(iProductService.queryCustomList(bo));

+ 4 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/mapper/SeckillActivityMapper.java

@@ -1,8 +1,11 @@
 package com.ruoyi.shop.marketing.seckill.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.shop.marketing.seckill.domain.SeckillActivity;
+import com.ruoyi.shop.marketing.seckill.domain.bo.SeckillActivityBo;
 import com.ruoyi.shop.marketing.seckill.domain.vo.SeckillActivityVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 秒杀活动Mapper接口
@@ -12,4 +15,5 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
  */
 public interface SeckillActivityMapper extends BaseMapperPlus<SeckillActivityMapper, SeckillActivity, SeckillActivityVo> {
 
+    Page<SeckillActivityVo> selectSeckillActivityPage(@Param("page") Page<Object> build, @Param("bo") SeckillActivityBo bo);
 }

+ 1 - 2
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/service/impl/SeckillActivityServiceImpl.java

@@ -43,8 +43,7 @@ public class SeckillActivityServiceImpl implements ISeckillActivityService {
      */
     @Override
     public TableDataInfo<SeckillActivityVo> queryPageList(SeckillActivityBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<SeckillActivity> lqw = buildQueryWrapper(bo);
-        Page<SeckillActivityVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        Page<SeckillActivityVo> result = baseMapper.selectSeckillActivityPage(pageQuery.build(), bo);
         return TableDataInfo.build(result);
     }
 

+ 1 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/merchant/service/impl/MerchantCategoryServiceImpl.java

@@ -85,6 +85,7 @@ public class MerchantCategoryServiceImpl implements IMerchantCategoryService {
         lqw.like(StringUtils.isNotBlank(bo.getCategoryName()), MerchantCategory::getCategoryName, bo.getCategoryName());
         lqw.eq(bo.getParentId() != null, MerchantCategory::getParentId, bo.getParentId());
         lqw.eq(bo.getShelvedStatus() != null, MerchantCategory::getShelvedStatus, bo.getShelvedStatus());
+        lqw.orderByAsc(MerchantCategory::getSortOrder);
         return lqw;
     }
 

+ 27 - 0
ruoyi-shop/src/main/resources/mapper/marketing/seckill/SeckillActivityMapper.xml

@@ -25,5 +25,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy" column="update_by"/>
     </resultMap>
 
+    <select id="selectSeckillActivityPage"
+            resultType="com.ruoyi.shop.marketing.seckill.domain.vo.SeckillActivityVo">
+        SELECT sa.*,(SELECT COUNT(sap.id) FROM `tb_seckill_activity_product` sap WHERE sa.id = sap.seckill_id) productNum
+        FROM `tb_seckill_activity` sa
+        <where>
+            sa.shop_id = #{vo.shop_id}
+            <if test="vo.name != null and vo.name != ''">
+                AND sa.`name` LIKE CONCAT('%',#{vo.name},'%')
+            </if>
+            <if test="vo.active_state!=null and vo.active_state!= '' and vo.active_state==0">
+                AND (start_time &gt; DATE_FORMAT(NOW(),'%Y-%m-%d')
+                OR (start_time &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d') AND DATE_FORMAT(NOW(),'%Y-%m-%d') &lt;= end_time
+                AND CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' ',start_hour) &gt;= NOW()))
+            </if>
+            <if test="vo.active_state!=null and vo.active_state!= '' and vo.active_state==1">
+                AND start_time &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d') AND DATE_FORMAT(NOW(),'%Y-%m-%d') &lt;= end_time
+                AND CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' ',start_hour) &lt;= NOW() AND NOW() &lt;= CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' ',end_hour)
+            </if>
+            <if test="vo.active_state!=null and vo.active_state!= '' and vo.active_state==2">
+                AND (end_time &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d')
+                OR (start_time &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d') AND DATE_FORMAT(NOW(),'%Y-%m-%d') &lt;= end_time
+                AND CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' ',end_hour) &lt;= NOW()))
+            </if>
+        </where>
+        ORDER BY sa.create_time DESC
+    </select>
+
 
 </mapper>