manailin
2021-09-10 321ebdf330ad299e87132cc51a6c3affe3f51e4d
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -7,6 +7,7 @@
import javax.annotation.Resource;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.screen.ComActPopulationCultureVO;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
@@ -29,13 +30,6 @@
import com.panzhihua.common.model.vos.IndexDataVO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActActRegistVO;
import com.panzhihua.common.model.vos.community.ActivitySignVO;
import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
import com.panzhihua.common.model.vos.community.ComActActivityVO;
import com.panzhihua.common.model.vos.community.CommunityActivitiesVO;
import com.panzhihua.common.model.vos.community.CommunityGovernanceTrendsVO;
import com.panzhihua.common.model.vos.community.SignactivityVO;
import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.WxUtil;
@@ -51,6 +45,11 @@
import com.panzhihua.service_community.service.ComActActivityService;
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
@@ -120,6 +119,7 @@
        comActActPictureDO.setActivityId(activityId);
        comActActPictureDO.setUserId(comActActivityVO.getUserId());
        comActActPictureDO.setUploadPicture(comActActivityVO.getCover());
        comActActPictureDO.setSysFlag(0);
        comActActPictureDAO.insert(comActActPictureDO);
        return R.ok(activityId);
    }
@@ -222,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();
@@ -330,7 +341,7 @@
    @Override
    public R getNoRegistLists(ComActActRegistVO comActActRegistVO) {
        return null;
        return R.ok(comActActRegistDAO.getNoRegistLists(comActActRegistVO));
    }
    @Override
@@ -357,6 +368,21 @@
        List<ComActActPictureVO> comActActPictureVOS = new ArrayList<>();
        List<ComActActPictureDO> comActActPictureDOS = comActActPictureDAO.selectList(new QueryWrapper<ComActActPictureDO>().lambda().
                eq(ComActActPictureDO::getUserId, userId));
        if (comActActPictureDOS != null && comActActPictureDOS.size() != 0) {
            comActActPictureDOS.forEach(comActActPictureDO -> {
                ComActActPictureVO comActActPictureVO = new ComActActPictureVO();
                BeanUtils.copyProperties(comActActPictureDO, comActActPictureVO);
                comActActPictureVOS.add(comActActPictureVO);
            });
        }
        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();
@@ -404,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));
@@ -415,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 (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();
@@ -732,6 +772,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)) {