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/service/impl/HappyActivityServiceImpl.java |   45 ++++++++++-----------------------------------
 1 files changed, 10 insertions(+), 35 deletions(-)

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();

--
Gitblit v1.9.1