From 2f67dbf8e585cbff4ed5737c08d0b0061e8b4d50 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 23 Apr 2025 17:50:20 +0800
Subject: [PATCH] refactor(mall): 重构投票活动相关接口和数据结构
---
src/main/java/cc/mrbird/febs/mall/controller/activity/ViewHappyActivityController.java | 7 --
src/main/java/cc/mrbird/febs/mall/dto/activity/ApiVoteOptionInPageDto.java | 24 ++++++++
src/main/java/cc/mrbird/febs/mall/vo/activity/ApiCategoryInfoVo.java | 2
src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityCategoryController.java | 2
src/main/resources/mapper/modules/HappyActivityOptionMapper.xml | 19 ++++++
src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java | 45 +++-----------
src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityCategoryServiceImpl.java | 2
src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java | 14 +---
src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java | 3
src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityMapper.java | 8 ++
src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java | 7 +-
src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionListVo.java | 7 -
12 files changed, 74 insertions(+), 66 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityCategoryController.java b/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityCategoryController.java
index 60eb729..347d96b 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityCategoryController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityCategoryController.java
@@ -2,7 +2,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.service.HappyActivityCategoryService;
-import cc.mrbird.febs.mall.vo.ApiCategoryInfoVo;
+import cc.mrbird.febs.mall.vo.activity.ApiCategoryInfoVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java b/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java
index 72ed54a..85fd0bf 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.annotation.Limit;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto;
import cc.mrbird.febs.mall.service.HappyActivityService;
import cc.mrbird.febs.mall.vo.*;
import io.swagger.annotations.Api;
@@ -56,10 +57,10 @@
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = ApiActivityOptionListVo.class)
})
- @GetMapping(value = "/voteOptionList/{id}")
- public FebsResponse voteOptionList(@PathVariable("id") Long id) {
+ @GetMapping(value = "/voteOptionInPage")
+ public FebsResponse voteOptionInPage(@RequestBody @Validated ApiVoteOptionInPageDto dto) {
- return happyActivityService.voteOptionList(id);
+ return happyActivityService.voteOptionInPage(dto);
}
@ApiOperation(value = "投票活动-选项详情", notes = "投票活动-选项详情")
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/activity/ViewHappyActivityController.java b/src/main/java/cc/mrbird/febs/mall/controller/activity/ViewHappyActivityController.java
index 7e467c5..97a1e8d 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/activity/ViewHappyActivityController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/activity/ViewHappyActivityController.java
@@ -2,8 +2,6 @@
import cc.mrbird.febs.common.controller.BaseController;
import cc.mrbird.febs.common.entity.FebsConstant;
-import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.entity.HappyActivity;
@@ -12,19 +10,14 @@
import cc.mrbird.febs.mall.mapper.HappyActivityCategoryMapper;
import cc.mrbird.febs.mall.mapper.HappyActivityOptionMapper;
import cc.mrbird.febs.mall.service.IAdminHappyActivityService;
-import cc.mrbird.febs.mall.vo.activity.VoteActivityVo;
-import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
-
-import java.util.Map;
@Controller("votesActivityView")
@RequestMapping(FebsConstant.VIEW_PREFIX + "modules/votesActivity")
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiVoteOptionInPageDto.java b/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiVoteOptionInPageDto.java
new file mode 100644
index 0000000..21938ef
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiVoteOptionInPageDto.java
@@ -0,0 +1,24 @@
+package cc.mrbird.febs.mall.dto.activity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+@Data
+@ApiModel(value = "ApiVoteOptionInPageDto", description = "参数")
+public class ApiVoteOptionInPageDto {
+
+
+ @NotNull(message = "页码不能为空")
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer pageNow;
+
+ @NotNull(message = "每页数量不能为空")
+ @ApiModelProperty(value = "每页数量", example = "10")
+ private Integer pageSize;
+
+ @NotNull(message = "活动ID不能为空")
+ @ApiModelProperty(value = "活动ID")
+ private Long activityId;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityMapper.java
index 440c582..d968a9f 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityMapper.java
@@ -1,9 +1,11 @@
package cc.mrbird.febs.mall.mapper;
+import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto;
import cc.mrbird.febs.mall.entity.HappyActivity;
import cc.mrbird.febs.mall.dto.ApiActivityInfoDto;
import cc.mrbird.febs.mall.vo.ApiActivityInfoVo;
import cc.mrbird.febs.mall.dto.ApiVoteRecordInPageDto;
+import cc.mrbird.febs.mall.vo.ApiActivityOptionListVo;
import cc.mrbird.febs.mall.vo.ApiVoteRecordInPageVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,5 +15,9 @@
Page<ApiActivityInfoVo> selectActivityPage(Page<ApiActivityInfoVo> page, @Param("record")ApiActivityInfoDto dto);
- Page<ApiVoteRecordInPageVo> getVoteRecordInPage(Page<ApiActivityInfoVo> page, @Param("record")ApiVoteRecordInPageDto dto);
+ Page<ApiVoteRecordInPageVo> getVoteRecordInPage(Page<ApiVoteRecordInPageVo> page, @Param("record")ApiVoteRecordInPageDto dto);
+
+ void updateHappyActivityOptionLikeCnt(@Param("id")Long sourceOptionId);
+
+ Page<ApiActivityOptionListVo> getVoteOptionInPage(Page<ApiActivityOptionListVo> page, @Param("record")ApiVoteOptionInPageDto dto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java b/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java
index 0460af0..d7a6612 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto;
import cc.mrbird.febs.mall.entity.HappyActivity;
import cc.mrbird.febs.mall.dto.ApiOperateDoDto;
import cc.mrbird.febs.mall.dto.ApiOperateVoteDto;
@@ -14,7 +15,7 @@
FebsResponse activityInfo(ApiActivityDto dto);
- FebsResponse voteOptionList(Long id);
+ FebsResponse voteOptionInPage(ApiVoteOptionInPageDto dto);
FebsResponse voteOption(Long id);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityCategoryServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityCategoryServiceImpl.java
index 13e5f6f..d7cd306 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityCategoryServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityCategoryServiceImpl.java
@@ -5,7 +5,7 @@
import cc.mrbird.febs.mall.entity.HappyActivityCategory;
import cc.mrbird.febs.mall.mapper.HappyActivityCategoryMapper;
import cc.mrbird.febs.mall.service.HappyActivityCategoryService;
-import cc.mrbird.febs.mall.vo.ApiCategoryInfoVo;
+import cc.mrbird.febs.mall.vo.activity.ApiCategoryInfoVo;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
index 773d5c5..a0df434 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
@@ -7,6 +7,7 @@
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.common.utils.ShareCodeUtil;
import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.HappyActivityService;
@@ -134,37 +135,11 @@
}
@Override
- public FebsResponse voteOptionList(Long id) {
- ArrayList<ApiActivityOptionListVo> apiActivityOptionListVos = new ArrayList<>();
-
-
- HappyActivity happyActivity = this.baseMapper.selectById(id);
- if(StateUpDownEnum.ACTIVITY_TYPE_VOTE.getCode() != happyActivity.getType()){
- throw new FebsException("投票活动才可获取投票选项");
- }
-
- List<HappyActivityOption> happyActivityOptions = happyActivityOptionMapper.selectList(
- new LambdaQueryWrapper<HappyActivityOption>()
- .select(
- HappyActivityOption::getId,
- HappyActivityOption::getOptionName,
- HappyActivityOption::getRank,
- HappyActivityOption::getLikesCnt,
- HappyActivityOption::getImage
- )
- .eq(HappyActivityOption::getActivityId,id)
- .eq(HappyActivityOption::getState,StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_SUCCESS.getCode())
- .eq(HappyActivityOption::getDeleteFlag,StateUpDownEnum.DOWN.getCode())
- .orderByAsc(HappyActivityOption::getRank)
- );
- if(CollUtil.isNotEmpty(happyActivityOptions)){
- happyActivityOptions.forEach(option -> {
- ApiActivityOptionListVo apiActivityOptionListVo = new ApiActivityOptionListVo();
- BeanUtil.copyProperties(option, apiActivityOptionListVo);
- apiActivityOptionListVos.add(apiActivityOptionListVo);
- });
- }
- return new FebsResponse().success().data(apiActivityOptionListVos);
+ public FebsResponse voteOptionInPage(ApiVoteOptionInPageDto dto) {
+ // 创建分页对象,传入当前页和每页大小
+ Page<ApiActivityOptionListVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
+ Page<ApiActivityOptionListVo> voteRecordInPage = this.baseMapper.getVoteOptionInPage(page, dto);
+ return new FebsResponse().success().data(voteRecordInPage);
}
@Override
@@ -252,7 +227,7 @@
}
HappyActivityOption happyActivityOption = happyActivityOptionMapper.selectById(sourceOptionId);
- if (happyActivityOption == null) {
+ if (null == happyActivityOption) {
throw new FebsException("投票对象不存在");
}
if (StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_SUCCESS.getCode() != happyActivityOption.getState()) {
@@ -268,17 +243,17 @@
.gt(HappyFollow::getCreatedTime, DateUtil.beginOfDay(new Date()))
);
if (CollUtil.isNotEmpty(happyFollows) && happyFollows.size() >= happyActivity.getVoteCnt()){
- throw new FebsException("今日已经投票");
+ throw new FebsException("今日已经投完票");
}
+ this.baseMapper.updateHappyActivityOptionLikeCnt(sourceOptionId);
this.operateDoVote(memberId, sourceType, sourceId, sourceOptionId, type);
- this.addLikeCnt(sourceOptionId);
return new FebsResponse().success();
}
@Override
public FebsResponse voteRecordInPage(ApiVoteRecordInPageDto dto) {
// 创建分页对象,传入当前页和每页大小
- Page<ApiActivityInfoVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
+ Page<ApiVoteRecordInPageVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
Page<ApiVoteRecordInPageVo> voteRecordInPage = this.baseMapper.getVoteRecordInPage(page, dto);
List<ApiVoteRecordInPageVo> records = voteRecordInPage.getRecords();
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionListVo.java
index fa07419..3e296ba 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionListVo.java
@@ -14,13 +14,10 @@
@ApiModelProperty(value = "选项名称")
private String optionName;
- @ApiModelProperty(value = "排名")
- private Integer rank;
-
- @ApiModelProperty(value = "点赞数量")
+ @ApiModelProperty(value = "投票数量")
private Integer likesCnt;
- @ApiModelProperty(value = "投票选项图片 URL")
+ @ApiModelProperty(value = "封面")
private String image;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java
index 9f9d7e3..763d1a5 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java
@@ -14,23 +14,17 @@
@ApiModelProperty(value = "选项名称")
private String optionName;
- @ApiModelProperty(value = "排名")
- private Integer rank;
-
- @ApiModelProperty(value = "点赞数量")
+ @ApiModelProperty(value = "票数")
private Integer likesCnt;
- @ApiModelProperty(value = "投票选项图片 URL")
+ @ApiModelProperty(value = "封面头像")
private String image;
- @ApiModelProperty(value = "投票选项视频URL")
+ @ApiModelProperty(value = "作品")
private String videoUrl;
@ApiModelProperty(value = "选项描述")
private String description;
-
- @ApiModelProperty(value = "名称")
- private String realName;
@ApiModelProperty(value = "性别 0-女1-男 2-保密")
private Integer sex;
@@ -41,6 +35,4 @@
@ApiModelProperty(value = "是否签约mcn机构 0否 1是")
private Integer mcnState;
- @ApiModelProperty(value = "投票数量")
- private Integer voteCnt;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiCategoryInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiCategoryInfoVo.java
similarity index 93%
rename from src/main/java/cc/mrbird/febs/mall/vo/ApiCategoryInfoVo.java
rename to src/main/java/cc/mrbird/febs/mall/vo/activity/ApiCategoryInfoVo.java
index a6ba03a..7dfdef8 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/ApiCategoryInfoVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiCategoryInfoVo.java
@@ -1,4 +1,4 @@
-package cc.mrbird.febs.mall.vo;
+package cc.mrbird.febs.mall.vo.activity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/src/main/resources/mapper/modules/HappyActivityOptionMapper.xml b/src/main/resources/mapper/modules/HappyActivityOptionMapper.xml
index 02086bc..af7ebca 100644
--- a/src/main/resources/mapper/modules/HappyActivityOptionMapper.xml
+++ b/src/main/resources/mapper/modules/HappyActivityOptionMapper.xml
@@ -42,4 +42,23 @@
order by a.id desc
</select>
+
+ <update id="updateHappyActivityOptionLikeCnt" >
+ update happy_activity_option set likes_cnt = likes_cnt + 1 where id = #{id}
+ </update>
+
+ <select id="getVoteOptionInPage" resultType="cc.mrbird.febs.mall.vo.ApiActivityOptionListVo">
+ select
+ a.id as id,
+ a.option_name as optionName,
+ a.image as image,
+ a.likes_cnt as likesCnt
+ from happy_activity_option a
+ where
+ a.state = 1
+ and a.activity_id = #{record.activityId}
+ and a.DELETE_FLAG = 1
+ order by a.order_cnt asc
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1