罗元桥
2021-09-09 23f22cc73e57133eb18e40d260f49bbd1bb9c221
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: 社区活动
@@ -414,7 +419,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));
@@ -425,9 +434,6 @@
                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));
@@ -436,10 +442,23 @@
                    return R.fail("志愿者报名人数已满");
                }
            //审查用户是否有该活动报名权限(是否活动指定参与人群)
            String currentUserTags = loginUserInfoVO.getTags();
            String attendPeople = actActivityDO.getAattendPeople();
            if (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();
@@ -742,6 +761,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)) {