Kaynağa Gözat

feat(activity): 添加活动结果上传功能

- 在OperationalActivityController中新增uploadResult接口用于上传活动结果
- 在OperationalActivityService中添加uploadActivityResult方法定义
- 在OperationalActivityServiceImpl中实现活动结果上传逻辑
- 扩展StoreOperationalActivityDTO实体类添加活动类型、报名时间、人数限制等字段
- 添加结果类型、结果文字、结果图片地址等相关属性
- 实现活动结果上传的数据验证和数据库更新操作
fcw 2 ay önce
ebeveyn
işleme
576c899fc6

+ 26 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/vo/StoreOperationalActivityDTO.java

@@ -82,5 +82,31 @@ public class StoreOperationalActivityDTO {
 
     @ApiModelProperty(value = "AI审核的输入参数")
     private JsonNode auditParam;
+
+    @ApiModelProperty(value = "活动类型:COMMENT-评论有礼, MARKETING-营销活动")
+    private String activityType;
+
+    @ApiModelProperty(value = "报名开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signupStartTime;
+
+    @ApiModelProperty(value = "报名结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signupEndTime;
+
+    @ApiModelProperty(value = "活动限制人数")
+    private Integer activityLimitPeople;
+
+    @ApiModelProperty(value = "活动详情")
+    private String activityDetails;
+
+    @ApiModelProperty(value = "结果类型:0-文字, 1-图片")
+    private Integer resultType;
+
+    @ApiModelProperty(value = "结果文字")
+    private String resultText;
+
+    @ApiModelProperty(value = "结果图片地址")
+    private String resultMediaUrl;
 }
 

+ 17 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/OperationalActivityController.java

@@ -156,5 +156,22 @@ public class OperationalActivityController {
             return R.fail(e.getMessage());
         }
     }
+
+    @ApiOperation("上传活动结果")
+    @ApiOperationSupport(order = 8)
+    @PostMapping("/uploadResult")
+    public R<String> uploadActivityResult(@RequestBody StoreOperationalActivityDTO dto) {
+        log.info("OperationalActivityController.uploadActivityResult: dto={}", dto);
+        try {
+            int result = activityService.uploadActivityResult(dto);
+            if (result > 0) {
+                return R.success("活动结果上传成功");
+            }
+            return R.fail("活动结果上传失败");
+        } catch (Exception e) {
+            log.error("OperationalActivityController.uploadActivityResult ERROR: {}", e.getMessage(), e);
+            return R.fail(e.getMessage());
+        }
+    }
 }
 

+ 8 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/service/OperationalActivityService.java

@@ -67,5 +67,13 @@ public interface OperationalActivityService {
      */
     int updateActivityStatus(Integer id, Integer status);
 
+    /**
+     * 上传活动结果
+     *
+     * @param dto 活动结果信息(包含活动ID和结果内容)
+     * @return 更新结果
+     */
+    int uploadActivityResult(StoreOperationalActivityDTO dto);
+
 }
 

+ 21 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/OperationalActivityServiceImpl.java

@@ -433,5 +433,26 @@ public class OperationalActivityServiceImpl implements OperationalActivityServic
 
         return activityMapper.updateById(activity);
     }
+
+    @Override
+    public int uploadActivityResult(StoreOperationalActivityDTO dto) {
+        log.info("OperationalActivityServiceImpl.uploadActivityResult: dto={}", dto);
+
+        if (dto.getId() == null) {
+            throw new IllegalArgumentException("活动ID不能为空");
+        }
+
+        if (dto.getResultType() == null) {
+            throw new IllegalArgumentException("结果类型不能为空");
+        }
+
+        StoreOperationalActivity activity = new StoreOperationalActivity();
+        activity.setId(dto.getId());
+        activity.setResultType(dto.getResultType());
+        activity.setResultText(dto.getResultText());
+        activity.setResultMediaUrl(dto.getResultMediaUrl());
+
+        return activityMapper.updateById(activity);
+    }
 }