zhangchen hace 2 meses
padre
commit
39f11ddcda

+ 21 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/vo/StoreOperationalActivityCasePreviewVo.java

@@ -0,0 +1,21 @@
+package shop.alien.entity.storePlatform.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 案例卡片概览返回:列表默认一条,外层带总数
+ */
+@Data
+@ApiModel(value = "StoreOperationalActivityCasePreviewVo", description = "案例卡片概览(列表+总数)")
+public class StoreOperationalActivityCasePreviewVo {
+
+    @ApiModelProperty(value = "案例列表,默认返回一条")
+    private List<StoreOperationalActivityAchievementCaseVo> list;
+
+    @ApiModelProperty(value = "案例总数")
+    private Long total;
+}

+ 21 - 4
alien-store/src/main/java/shop/alien/store/controller/StoreOperationalActivityController.java

@@ -212,8 +212,25 @@ public class StoreOperationalActivityController {
         }
     }
 
-    @ApiOperation("案例详情")
+    @ApiOperation("案例卡片概览(列表默认一条,含总数)")
     @ApiOperationSupport(order = 8)
+    @ApiImplicitParam(name = "storeId", value = "店铺ID", dataTypeClass = Integer.class, paramType = "query", required = true)
+    @GetMapping("/achievement/case/preview")
+    public R<StoreOperationalActivityCasePreviewVo> listCasePreview(@RequestParam("storeId") Integer storeId) {
+        log.info("StoreOperationalActivityController.listCasePreview storeId={}", storeId);
+        try {
+            StoreOperationalActivityCasePreviewVo result = achievementService.listCasePreview(storeId);
+            return R.data(result);
+        } catch (IllegalArgumentException e) {
+            return R.fail(e.getMessage());
+        } catch (Exception e) {
+            log.error("StoreOperationalActivityController.listCasePreview ERROR: {}", e.getMessage(), e);
+            return R.fail(e.getMessage());
+        }
+    }
+
+    @ApiOperation("案例详情")
+    @ApiOperationSupport(order = 9)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "activityId", value = "活动ID", dataTypeClass = Integer.class, paramType = "query", required = true),
             @ApiImplicitParam(name = "userId", value = "用户ID", dataTypeClass = Integer.class, paramType = "query", required = true)
@@ -235,7 +252,7 @@ public class StoreOperationalActivityController {
     }
 
     @ApiOperation("我的报名列表")
-    @ApiOperationSupport(order = 9)
+    @ApiOperationSupport(order = 10)
     @ApiImplicitParam(name = "userId", value = "用户ID", dataTypeClass = Integer.class, paramType = "query", required = true)
     @GetMapping("/signup/my")
     public R<List<StoreOperationalActivityMySignupVo>> listMySignups(@RequestParam("userId") Integer userId) {
@@ -257,7 +274,7 @@ public class StoreOperationalActivityController {
     }
 
     @ApiOperation("删除报名及成果")
-    @ApiOperationSupport(order = 10)
+    @ApiOperationSupport(order = 11)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "activityId", value = "活动ID", dataTypeClass = Integer.class, paramType = "query", required = true),
             @ApiImplicitParam(name = "signupId", value = "报名ID", dataTypeClass = Integer.class, paramType = "query", required = true)
@@ -283,7 +300,7 @@ public class StoreOperationalActivityController {
     }
 
     @ApiOperation("商家端案例列表")
-    @ApiOperationSupport(order = 10)
+    @ApiOperationSupport(order = 12)
     @PostMapping("/achievement/case/store/list")
     public R<IPage<StoreOperationalActivityAchievementCaseVo>> listStoreCasePage(
             @RequestBody StoreOperationalActivityCaseQueryDto dto) {

+ 12 - 0
alien-store/src/main/java/shop/alien/store/service/StoreOperationalActivityAchievementService.java

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import shop.alien.entity.storePlatform.vo.StoreOperationalActivityAchievementCaseDetailVo;
 import shop.alien.entity.storePlatform.vo.StoreOperationalActivityAchievementCaseVo;
 import shop.alien.entity.storePlatform.vo.StoreOperationalActivityAchievementVo;
+import shop.alien.entity.storePlatform.vo.StoreOperationalActivityCasePreviewVo;
 import shop.alien.store.dto.StoreOperationalActivityAchievementDto;
 
+import java.util.List;
+
 /**
  * 运营活动成果服务
  *
@@ -54,6 +57,15 @@ public interface StoreOperationalActivityAchievementService {
     IPage<StoreOperationalActivityAchievementCaseVo> listCasePage(Integer storeId, Integer activityStatus, Integer pageNum, Integer pageSize);
 
     /**
+     * 案例卡片概览:列表默认返回一条,外层带案例总数。
+     * 每条为某活动下某用户的最新更新成果,包含首图/视频、昵称、更新时间。
+     *
+     * @param storeId 店铺ID
+     * @return 含 list(默认1条)与 total(总数)
+     */
+    StoreOperationalActivityCasePreviewVo listCasePreview(Integer storeId);
+
+    /**
      * 案例详情
      *
      * @param activityId 活动ID

+ 13 - 0
alien-store/src/main/java/shop/alien/store/service/impl/StoreOperationalActivityAchievementServiceImpl.java

@@ -18,6 +18,7 @@ import shop.alien.entity.storePlatform.vo.StoreOperationalActivityAchievementCas
 import shop.alien.entity.storePlatform.vo.StoreOperationalActivityAchievementCaseItemVo;
 import shop.alien.entity.storePlatform.vo.StoreOperationalActivityAchievementCaseVo;
 import shop.alien.entity.storePlatform.vo.StoreOperationalActivityAchievementVo;
+import shop.alien.entity.storePlatform.vo.StoreOperationalActivityCasePreviewVo;
 import shop.alien.mapper.storePlantform.StoreOperationalActivityAchievementMapper;
 import shop.alien.mapper.storePlantform.StoreOperationalActivityMapper;
 import shop.alien.store.dto.StoreOperationalActivityAchievementDto;
@@ -138,6 +139,18 @@ public class StoreOperationalActivityAchievementServiceImpl implements StoreOper
     }
 
     @Override
+    public StoreOperationalActivityCasePreviewVo listCasePreview(Integer storeId) {
+        if (storeId == null) {
+            throw new IllegalArgumentException("店铺ID不能为空");
+        }
+        StoreOperationalActivityCasePreviewVo vo = new StoreOperationalActivityCasePreviewVo();
+        IPage<StoreOperationalActivityAchievementCaseVo> page = listCasePage(storeId, null, 1, 1);
+        vo.setTotal(page.getTotal());
+        vo.setList(page.getRecords() != null ? page.getRecords() : new ArrayList<>());
+        return vo;
+    }
+
+    @Override
     public StoreOperationalActivityAchievementCaseDetailVo getCaseDetail(Integer activityId, Integer userId) {
         if (activityId == null) {
             throw new IllegalArgumentException("活动ID不能为空");