From 0aaadc99bfced7f391ca1450951f46508389c620 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Fri, 25 Apr 2025 17:37:40 +0800 Subject: [PATCH] refactor(votesActivity): 修改活动类型选择框的类名 --- src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java | 72 ++++++++++++++++++++++++++++++++--- 1 files changed, 65 insertions(+), 7 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 13ca39c..531879d 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,10 +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.ApiActivityOrderListDto; -import cc.mrbird.febs.mall.dto.activity.ApiCheckOrderDto; -import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto; -import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionRecordInPageDto; +import cc.mrbird.febs.mall.dto.activity.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.HappyActivityService; @@ -80,7 +77,6 @@ // 查询关注点赞转发记录,筛选出关注活动类型且未删除的关注记录,并按ID升序排序,限制结果数量为3 List<HappyFollow> happyFollows = happyFollowMapper.selectList( new LambdaQueryWrapper<HappyFollow>() - .select(HappyFollow::getMemberId) .eq(HappyFollow::getSourceType, StateUpDownEnum.SOURCE_TYPE_ACTIVITY.getCode()) .in(HappyFollow::getSourceId, ids) .eq(HappyFollow::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) @@ -169,6 +165,44 @@ if(happyActivityOption != null){ BeanUtil.copyProperties(happyActivityOption, apiActivityOptionVo); } + + //投票人数 + List<HappyFollow> happyFollows = happyFollowMapper.selectList( + new LambdaQueryWrapper<HappyFollow>() + .select(HappyFollow::getId) + .eq(HappyFollow::getSourceOptionId, id) + .eq(HappyFollow::getType, StateUpDownEnum.VOTE.getCode()) + .eq(HappyFollow::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) + .groupBy(HappyFollow::getMemberId) + ); + apiActivityOptionVo.setVoteCnt(CollUtil.isNotEmpty(happyFollows) ? happyFollows.size() : 0); + + List<HappyActivityOption> happyActivityOptions = happyActivityOptionMapper.selectList( + new LambdaQueryWrapper<HappyActivityOption>() + .select(HappyActivityOption::getId,HappyActivityOption::getLikesCnt) + .eq(HappyActivityOption::getActivityId, happyActivityOption.getActivityId()) + .eq(HappyActivityOption::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) + .eq(HappyActivityOption::getState, StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_SUCCESS.getCode()) + .orderByDesc(HappyActivityOption::getLikesCnt) + ); + //获取上一个名次的数据 + int firstCnt = 1; + int distanceCnt = 0; + for (HappyActivityOption option : happyActivityOptions){ + if(option.getId().equals(id)){ + apiActivityOptionVo.setFirstCnt(firstCnt); + if( firstCnt == 1 ){ + apiActivityOptionVo.setDistanceCnt(distanceCnt); + }else{ + apiActivityOptionVo.setDistanceCnt(distanceCnt- option.getLikesCnt()); + } + break; + }else{ + firstCnt = firstCnt + 1; + distanceCnt = option.getLikesCnt(); + } + } + return new FebsResponse().success().data(apiActivityOptionVo); } @@ -263,7 +297,6 @@ new LambdaQueryWrapper<HappyFollow>() .eq(HappyFollow::getMemberId, memberId) .eq(HappyFollow::getSourceId, sourceId) - .eq(HappyFollow::getSourceOptionId, sourceOptionId) .eq(HappyFollow::getType, type) .gt(HappyFollow::getCreatedTime, DateUtil.beginOfDay(new Date())) ); @@ -285,7 +318,7 @@ if(CollUtil.isNotEmpty(records)){ //stream流操作records,获取全部的memberId(全部投票人) Set<Long> memberIds = records.stream().map(ApiVoteRecordInPageVo::getMemberId).collect(Collectors.toSet()); - if(CollUtil.isEmpty(memberIds)){ + if(CollUtil.isNotEmpty(memberIds)){ List<MallMember> mallMembers = mallMemberMapper.selectList( new LambdaQueryWrapper<MallMember>() .select(MallMember::getId, MallMember::getName, MallMember::getAvatar) @@ -307,6 +340,31 @@ } @Override + public FebsResponse operateValidRegister(ApiOperateValidRegisterActivityDto dto) { + Long memberId = LoginUserUtil.getLoginUser().getId(); + HappyActivity happyActivity = this.baseMapper.selectById(dto.getActivityId()); + + if (StateUpDownEnum.ACTIVITY_STATE_END.getCode() == happyActivity.getState()) { + throw new FebsException("活动已结束"); + } + if (StateUpDownEnum.DOWN.getCode() == happyActivity.getAddState()) { + throw new FebsException("活动尚未开启报名"); + } + //判断用户是否重复报名 + Integer registerCnt = happyActivityOptionMapper.selectCount( + new LambdaQueryWrapper<HappyActivityOption>() + .eq(HappyActivityOption::getMemberId, memberId) + .eq(HappyActivityOption::getActivityId, dto.getActivityId()) + .ne(HappyActivityOption::getState, StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_REFUSE.getCode()) + .eq(HappyActivityOption::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) + ); + if (registerCnt > 0) { + throw new FebsException("您已经报名过了"); + } + return new FebsResponse().success(); + } + + @Override public FebsResponse operateRegister(ApiOperateRegisterActivityDto dto) { Long memberId = LoginUserUtil.getLoginUser().getId(); -- Gitblit v1.9.1