| | |
| | | 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; |
| | |
| | | // 查询关注点赞转发记录,筛选出关注活动类型且未删除的关注记录,并按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()) |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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())) |
| | | ); |
| | |
| | | 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) |
| | |
| | | } |
| | | |
| | | @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(); |
| | | |