| | |
| | | import cc.mrbird.febs.mall.dto.ApiOperateDoDto; |
| | | import cc.mrbird.febs.mall.vo.activity.ApiActivityOrderInfoVo; |
| | | import cc.mrbird.febs.mall.vo.activity.ApiActivityOrderListVo; |
| | | import cc.mrbird.febs.mall.vo.activity.ApiVoteActivityHotVo; |
| | | import cc.mrbird.febs.pay.model.BrandWCPayRequestData; |
| | | import cc.mrbird.febs.pay.service.IXcxPayService; |
| | | import cn.hutool.core.bean.BeanUtil; |
| | |
| | | HappyActivity happyActivity = this.baseMapper.selectOne( |
| | | new LambdaQueryWrapper<HappyActivity>() |
| | | .eq(HappyActivity::getId, dto.getId()) |
| | | .eq(HappyActivity::getType, dto.getType()) |
| | | .eq(HappyActivity::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | | .ne(HappyActivity::getState, StateUpDownEnum.ACTIVITY_STATE_NOT_START.getCode()) |
| | | ); |
| | |
| | | if(StateUpDownEnum.ACTIVITY_TYPE_VOTE.getCode() != happyActivity.getType()){ |
| | | throw new FebsException("当前活动无法投票"); |
| | | } |
| | | if (StateUpDownEnum.ACTIVITY_STATE_NOT_START.getCode() == happyActivity.getState()) { |
| | | throw new FebsException("活动尚未开始"); |
| | | } |
| | | if (StateUpDownEnum.ACTIVITY_STATE_END.getCode() == happyActivity.getState()) { |
| | | throw new FebsException("活动已结束"); |
| | | } |
| | | |
| | | HappyActivityOption happyActivityOption = happyActivityOptionMapper.selectById(sourceOptionId); |
| | | if (null == happyActivityOption) { |
| | |
| | | @Override |
| | | public FebsResponse operateRegister(ApiOperateRegisterActivityDto dto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | return null; |
| | | |
| | | 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("您已经报名过了"); |
| | | } |
| | | |
| | | Integer optionCnt = happyActivityOptionMapper.selectCount( |
| | | new LambdaQueryWrapper<HappyActivityOption>() |
| | | .eq(HappyActivityOption::getActivityId, dto.getActivityId()) |
| | | .eq(HappyActivityOption::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | | ); |
| | | |
| | | HappyActivityOption happyActivityOption = new HappyActivityOption(); |
| | | BeanUtil.copyProperties(dto, happyActivityOption); |
| | | happyActivityOption.setOrderCnt(optionCnt + 1); |
| | | happyActivityOption.setMemberId(memberId); |
| | | happyActivityOption.setOptionName(dto.getRealName()); |
| | | happyActivityOptionMapper.insert(happyActivityOption); |
| | | return new FebsResponse().success().message("报名成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse addConnect(ApiOperateRegisterUserDto dto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | |
| | | List<HappyActivityConnect> happyActivityConnects = happyActivityConnectMapper.selectList( |
| | | new LambdaQueryWrapper<HappyActivityConnect>() |
| | | .eq(HappyActivityConnect::getMemberId, memberId) |
| | | .eq(HappyActivityConnect::getName, dto.getName()) |
| | | ); |
| | | if(CollUtil.isNotEmpty(happyActivityConnects)){ |
| | | throw new FebsException("已经添加过该联系人"); |
| | | } |
| | | |
| | | HappyActivityConnect happyActivityConnect = new HappyActivityConnect(); |
| | | happyActivityConnect.setMemberId(memberId); |
| | |
| | | if(ObjectUtil.isNotEmpty(dto.getState())){ |
| | | happyActivityOrderLambdaQueryWrapper.eq(HappyActivityOrder::getState, dto.getState()); |
| | | } |
| | | happyActivityOrderLambdaQueryWrapper.eq(HappyActivityOrder::getDeleteFlag, StateUpDownEnum.DOWN.getCode()); |
| | | happyActivityOrderLambdaQueryWrapper.orderByDesc(HappyActivityOrder::getCreatedTime); |
| | | Page<HappyActivityOrder> page = new Page<>(dto.getPageNum(), dto.getPageSize()); |
| | | Page<HappyActivityOrder> voteActivityPage = happyActivityOrderMapper.selectPage(page, happyActivityOrderLambdaQueryWrapper); |
| | |
| | | return new FebsResponse().success().data(apiActivityOrderInfoVos); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse orderDelete(Long id) { |
| | | // 获取当前登录用户的ID |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | |
| | | List<HappyActivityOrder> happyActivityOrders = happyActivityOrderMapper.selectList( |
| | | new LambdaQueryWrapper<HappyActivityOrder>() |
| | | .eq(HappyActivityOrder::getId, id) |
| | | .eq(HappyActivityOrder::getMemberId, memberId) |
| | | ); |
| | | if(CollUtil.isNotEmpty(happyActivityOrders)){ |
| | | happyActivityOrders.forEach(happyActivityOrder -> { |
| | | happyActivityOrder.setDeleteFlag(StateUpDownEnum.UP.getCode()); |
| | | happyActivityOrderMapper.updateById(happyActivityOrder); |
| | | }); |
| | | } |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public void activityEnd() { |
| | | Date date = new Date(); |
| | | List<HappyActivity> happyActivities = this.baseMapper.selectList( |
| | | new LambdaQueryWrapper<HappyActivity>() |
| | | .eq(HappyActivity::getState, StateUpDownEnum.ACTIVITY_STATE_ENROLLING.getCode()) |
| | | .le(HappyActivity::getEndTime, date) |
| | | ); |
| | | if(CollUtil.isEmpty(happyActivities)){ |
| | | return; |
| | | } |
| | | happyActivities.forEach(happyActivity -> { |
| | | happyActivity.setState(StateUpDownEnum.ACTIVITY_STATE_END.getCode()); |
| | | this.baseMapper.updateById(happyActivity); |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 当活动即将开始时自动更新活动状态 |
| | | * 此方法旨在查询所有即将开始的活动,并将它们的状态更新为报名进行中 |
| | | */ |
| | | @Override |
| | | public void activityStart() { |
| | | // 获取当前日期和时间 |
| | | DateTime date = DateUtil.date(); |
| | | |
| | | // 查询所有状态为未开始且当前时间在活动开始时间结束时间之间的活动 |
| | | List<HappyActivity> happyActivities = this.baseMapper.selectList( |
| | | new LambdaQueryWrapper<HappyActivity>() |
| | | .eq(HappyActivity::getState, StateUpDownEnum.ACTIVITY_STATE_NOT_START.getCode()) |
| | | .le(HappyActivity::getStartTime, date) |
| | | .ge(HappyActivity::getEndTime, date) |
| | | ); |
| | | |
| | | // 如果没有找到任何符合条件的活动,则直接返回 |
| | | if(CollUtil.isEmpty(happyActivities)){ |
| | | return; |
| | | } |
| | | |
| | | // 遍历每个符合条件的活动,将其状态更新为报名进行中,并保存更新 |
| | | happyActivities.forEach(happyActivity -> { |
| | | happyActivity.setState(StateUpDownEnum.ACTIVITY_STATE_ENROLLING.getCode()); |
| | | this.baseMapper.updateById(happyActivity); |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse voteActivityHot(Long id) { |
| | | |
| | | ApiVoteActivityHotVo apiVoteActivityHotVo = new ApiVoteActivityHotVo(); |
| | | HappyActivity happyActivity = this.baseMapper.selectById(id); |
| | | apiVoteActivityHotVo.setStartTime(happyActivity.getStartTime()); |
| | | apiVoteActivityHotVo.setEndTime(happyActivity.getEndTime()); |
| | | |
| | | Integer optionCnt = happyActivityOptionMapper.selectCount( |
| | | new LambdaQueryWrapper<HappyActivityOption>() |
| | | .eq(HappyActivityOption::getActivityId, id) |
| | | .eq(HappyActivityOption::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | | .eq(HappyActivityOption::getState, StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_SUCCESS.getCode()) |
| | | ); |
| | | apiVoteActivityHotVo.setOptionCnt(optionCnt); |
| | | |
| | | Integer followVoteCnt = happyFollowMapper.selectCount( |
| | | new LambdaQueryWrapper<HappyFollow>() |
| | | .eq(HappyFollow::getSourceType, StateUpDownEnum.SOURCE_TYPE_ACTIVITY.getCode()) |
| | | .eq(HappyFollow::getSourceId, id) |
| | | .eq(HappyFollow::getType, StateUpDownEnum.VOTE.getCode()) |
| | | .eq(HappyFollow::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | | ); |
| | | apiVoteActivityHotVo.setFollowVoteCnt(followVoteCnt); |
| | | |
| | | return new FebsResponse().success().data(apiVoteActivityHotVo); |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | Date date = new Date(); |