puhanshu
2021-09-13 68a3e4c053d15961ede69fe7698f63fe827624c3
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -46,6 +46,11 @@
import lombok.extern.slf4j.Slf4j;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 社区活动
@@ -114,6 +119,7 @@
        comActActPictureDO.setActivityId(activityId);
        comActActPictureDO.setUserId(comActActivityVO.getUserId());
        comActActPictureDO.setUploadPicture(comActActivityVO.getCover());
        comActActPictureDO.setSysFlag(0);
        comActActPictureDAO.insert(comActActPictureDO);
        return R.ok(activityId);
    }
@@ -216,9 +222,20 @@
    @Override
    public R releaseActivity(ComActActivityVO comActActivityVO) {
        ComActActivityDO comActActivityDO = new ComActActivityDO();
        comActActivityDO.setId(comActActivityVO.getId());
//        comActActivityDO.setId(comActActivityVO.getId());
//        comActActivityDO.setPublishAt(comActActivityVO.getPublishAt());
//        comActActivityDO.setStatus(comActActivityVO.getStatus());
        comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId());
        comActActivityDO.setPublishAt(comActActivityVO.getPublishAt());
        comActActivityDO.setStatus(comActActivityVO.getStatus());
        if (comActActivityVO.getPublishAt().before(comActActivityDO.getSignUpBegin())) {
            comActActivityVO.setStatus(2);
        }
        if (comActActivityVO.getPublishAt().after(comActActivityDO.getSignUpEnd())) {
            comActActivityVO.setStatus(5);
        }
        if (comActActivityVO.getPublishAt().after(comActActivityDO.getSignUpBegin()) && comActActivityVO.getPublishAt().before(comActActivityDO.getSignUpEnd())) {
            comActActivityVO.setStatus(3);
        }
        int update = comActActivityDAO.updateById(comActActivityDO);
        if (update > 0) {
            return R.ok();
@@ -361,6 +378,21 @@
        return R.ok(comActActPictureVOS);
    }
    @Override
    public R getSysPictureList(Integer type) {
        List<ComActActPictureVO> comActActPictureVOS = new ArrayList<>();
        List<ComActActPictureDO> comActActPictureDOS = comActActPictureDAO.selectList(new QueryWrapper<ComActActPictureDO>().lambda().
                eq(ComActActPictureDO::getSysFlag, 1).eq(ComActActPictureDO :: getType, type));
        if (comActActPictureDOS != null && comActActPictureDOS.size() != 0) {
            comActActPictureDOS.forEach(comActActPictureDO -> {
                ComActActPictureVO comActActPictureVO = new ComActActPictureVO();
                BeanUtils.copyProperties(comActActPictureDO, comActActPictureVO);
                comActActPictureVOS.add(comActActPictureVO);
            });
        }
        return R.ok(comActActPictureVOS);
    }
    /**
     * 分页展示我的所有活动 时间倒序排列
     *
@@ -398,7 +430,11 @@
        Integer type = signactivityVO.getType();
        Long userId = signactivityVO.getUserId();
        Integer isVolunteer = signactivityVO.getIsVolunteer();
        // 查询社区活动
        ComActActivityDO actActivityDO = this.baseMapper.selectById(activityId);
        if (isNull(actActivityDO)) {
            return R.fail("活动不存在");
        }
        int num = 0;
        if (1 == type) {
            R<LoginUserInfoVO> userInfoR = userService.getUserInfoByUserId(String.valueOf(userId));
@@ -409,21 +445,31 @@
                return R.fail("只有志愿者才能报名");
            }
            // 查询社区活动
            ComActActivityDO actActivityDO = this.baseMapper.selectById(activityId);
            if (actActivityDO != null) {
                // 查询当前活动下参与志愿者/居民数量
                Integer count = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
                    .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, isVolunteer));
                if (isVolunteer.equals(1) && actActivityDO.getVolunteerMax() <= count
                    && !actActivityDO.getVolunteerMax().equals(-1)) {
                    return R.fail("志愿者报名人数已满");
                }
            // 查询当前活动下参与志愿者/居民数量
            Integer count = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
                .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, isVolunteer));
            if (isVolunteer.equals(1) && actActivityDO.getVolunteerMax() <= count
                && !actActivityDO.getVolunteerMax().equals(-1)) {
                return R.fail("志愿者报名人数已满");
            }
                if (isVolunteer.equals(0) && actActivityDO.getParticipantMax() <= count
                    && !actActivityDO.getParticipantMax().equals(-1)) {
                    return R.fail("居民报名人数已满");
            //审查用户是否有该活动报名权限(是否活动指定参与人群)
            String currentUserTags = loginUserInfoVO.getTags();
            String attendPeople = actActivityDO.getAattendPeople();
            if (isVolunteer.intValue() == 0 && isNotBlank(attendPeople)) {
                if (isBlank(currentUserTags)) {
                    return R.fail("您不是指定参与人群!");
                }
                List<String> currentUserTagList = Arrays.asList(currentUserTags.split(","));
                boolean checkResult = currentUserTagList.stream().anyMatch(currentUserTag -> attendPeople.contains(currentUserTag));
                if (!checkResult) {
                    return R.fail("您不是指定参与人群!");
                }
            }
            if (isVolunteer.equals(0) && actActivityDO.getParticipantMax() <= count
                && !actActivityDO.getParticipantMax().equals(-1)) {
                return R.fail("居民报名人数已满");
            }
            ComActActSignDO comActActSignDO = new ComActActSignDO();
@@ -512,33 +558,34 @@
     */
    @Override
    public R timedTaskActActivity() {
        List<Long> longs = comActActivityDAO.selectTimedTaskActActivity();
        if (ObjectUtils.isEmpty(longs)) {
            return R.fail("没有需要取消的社区活动");
        }
        List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectBatchIds(longs);
        List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
        if (!ObjectUtils.isEmpty(comActActivityDOS)) {
            comActActivityDOS.forEach(comActActivityDO -> {
                ComActActivityVO comActActivityVO = new ComActActivityVO();
                BeanUtils.copyProperties(comActActivityDO, comActActivityVO);
                List<ComActActSignDO> comActActSignDOS = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>()
                    .lambda().eq(ComActActSignDO::getActivityId, comActActivityDO.getId()));
                if (!ObjectUtils.isEmpty(comActActSignDOS)) {
                    List<ActivitySignVO> activitySignVOList = new ArrayList<>();
                    comActActSignDOS.forEach(comActActSignDO -> {
                        ActivitySignVO activitySignVO = new ActivitySignVO();
                        BeanUtils.copyProperties(comActActSignDO, activitySignVO);
                        activitySignVOList.add(activitySignVO);
                        comActActivityVO.setActivitySignVOList(activitySignVOList);
                    });
                }
                comActActivityVOS.add(comActActivityVO);
            });
            int num = comActActivityDAO.updateIdBatch(longs);
            log.info("定时任务--一共取消社区活动数量【{}】", num);
        }
        return R.ok(comActActivityVOS);
//        List<Long> longs = comActActivityDAO.selectTimedTaskActActivity();
//        if (ObjectUtils.isEmpty(longs)) {
//            return R.fail("没有需要取消的社区活动");
//        }
//        List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectBatchIds(longs);
//        List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
//        if (!ObjectUtils.isEmpty(comActActivityDOS)) {
//            comActActivityDOS.forEach(comActActivityDO -> {
//                ComActActivityVO comActActivityVO = new ComActActivityVO();
//                BeanUtils.copyProperties(comActActivityDO, comActActivityVO);
//                List<ComActActSignDO> comActActSignDOS = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>()
//                    .lambda().eq(ComActActSignDO::getActivityId, comActActivityDO.getId()));
//                if (!ObjectUtils.isEmpty(comActActSignDOS)) {
//                    List<ActivitySignVO> activitySignVOList = new ArrayList<>();
//                    comActActSignDOS.forEach(comActActSignDO -> {
//                        ActivitySignVO activitySignVO = new ActivitySignVO();
//                        BeanUtils.copyProperties(comActActSignDO, activitySignVO);
//                        activitySignVOList.add(activitySignVO);
//                        comActActivityVO.setActivitySignVOList(activitySignVOList);
//                    });
//                }
//                comActActivityVOS.add(comActActivityVO);
//            });
//            int num = comActActivityDAO.updateIdBatch(longs);
//            log.info("定时任务--一共取消社区活动数量【{}】", num);
//        }
//        return R.ok(comActActivityVOS);
        return R.ok();
    }
    /**
@@ -726,6 +773,13 @@
    @Override
    public R activitySignIn(ComActActRegistVO comActActRegistVO) {
        Long activityId = comActActRegistVO.getActivityId();
        if (isNull(activityId)) {
            return R.fail("签到所属活动id不能为空!");
        }
        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
        if (isNull(comActActivityDO)) {
            return R.fail("活动不存在!");
        }
        Long userId = comActActRegistVO.getUserId();
        String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString());
        if (stringRedisTemplate.hasKey(activitySignInKey)) {