From 49c396970bf850cdcbb2bb30b6d824e69c527e5f Mon Sep 17 00:00:00 2001 From: manailin <261030956@qq.com> Date: 星期五, 18 二月 2022 15:21:58 +0800 Subject: [PATCH] [新增]仁和区离攀返攀导入特定样式功能 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java | 96 ++++++++++++++++++++++++++--------------------- 1 files changed, 53 insertions(+), 43 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java index d05ab8b..0373c10 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java @@ -10,11 +10,7 @@ import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; @@ -38,33 +34,15 @@ 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.ActivitySignVO; -import com.panzhihua.common.model.vos.community.ComActActEvaluateVO; -import com.panzhihua.common.model.vos.community.ComActActPictureVO; -import com.panzhihua.common.model.vos.community.ComActActRegistVO; -import com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO; -import com.panzhihua.common.model.vos.community.ComActActivityTypeVO; -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.*; import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO; +import com.panzhihua.common.model.vos.user.SysTemplateConfigVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; -import com.panzhihua.service_community.dao.ComActActEvaluateDAO; -import com.panzhihua.service_community.dao.ComActActPictureDAO; -import com.panzhihua.service_community.dao.ComActActRegistDAO; -import com.panzhihua.service_community.dao.ComActActSignDAO; -import com.panzhihua.service_community.dao.ComActActivityCodeDao; -import com.panzhihua.service_community.dao.ComActActivityDAO; -import com.panzhihua.service_community.dao.ComBpActivityDAO; +import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.entity.ComActActivityCode; -import com.panzhihua.service_community.model.dos.ComActActEvaluateDO; -import com.panzhihua.service_community.model.dos.ComActActPictureDO; -import com.panzhihua.service_community.model.dos.ComActActRegistDO; -import com.panzhihua.service_community.model.dos.ComActActSignDO; -import com.panzhihua.service_community.model.dos.ComActActivityDO; +import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.ComActActivityCodeService; import com.panzhihua.service_community.service.ComActActivityService; import com.panzhihua.service_community.service.ComActIntegralUserTradeService; @@ -105,6 +83,8 @@ private ComActIntegralUserTradeService comActIntegralUserTradeService; @Resource private ComActActivityCodeService comActActivityCodeService; + @Resource + private ComActDAO comActDAO; /** * 新增社区活动 @@ -186,7 +166,8 @@ try { WxXCXTempSend util = new WxXCXTempSend(); String accessToken = util.getAppAccessToken(); - + ComActDO comActDO=comActDAO.selectById(comActActivityDO.getCommunityId()); + R<SysTemplateConfigVO> r=userService.selectTemplate(comActDO.getAreaCode(),1); activitySignVOS.forEach(activitySignVO1 -> { // 变更社区活动推送订阅消息给用户 WxUtil.sendSubscribeHDBG(activitySignVO1.getOpenid(), accessToken, @@ -196,7 +177,7 @@ comActActivityDO.getActivityAddr(), com.panzhihua.common.utlis.DateUtils.format(comActActivityVO.getBeginAt(), com.panzhihua.common.utlis.DateUtils.ymdhms_format), - comActActivityVO.getActivityAddr()); + comActActivityVO.getActivityAddr(),r.getData().getTemplateId()); }); } catch (Exception e) { log.error("消息推送失败,失败原因:" + e.getMessage()); @@ -285,8 +266,7 @@ */ @Override public R cancelActivity(ComActActivityVO comActActivityVO) { - ComActActivityDO comActActivityDO = new ComActActivityDO(); - comActActivityDO.setId(comActActivityVO.getId()); + ComActActivityDO comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId()); comActActivityDO.setStatus(comActActivityVO.getStatus()); comActActivityDO.setCancelReason(comActActivityVO.getCancelReason()); int update = comActActivityDAO.updateById(comActActivityDO); @@ -317,6 +297,12 @@ if (!ObjectUtils.isEmpty(comActActSignDO)) { comActActivityVO.setIsSign(1); comActActivityVO.setIsVolunteer(comActActSignDO.getIsVolunteer()); + } + List<ComActActRegistDO> regList = comActActRegistDAO.selectList(new QueryWrapper<ComActActRegistDO>().lambda() + .eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getActivityId, id).eq(ComActActRegistDO::getType, 1)); + if (!regList.isEmpty()) { + List<ComActActRegistDO> collect = regList.stream().sorted(Comparator.comparing(ComActActRegistDO::getId).reversed()).collect(Collectors.toList()); + comActActivityVO.setTimes(collect.get(0).getTimes()); } } } @@ -484,13 +470,13 @@ JSONObject.parseObject(JSONObject.toJSONString(userInfoR.getData()), LoginUserInfoVO.class); // 查询当前活动下参与居民 Integer residentCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda() - .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 0)); + .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 0).eq(ComActActSignDO::getStatus, 1)); if (volunteerMax != 0) { //志愿者活动 boolean userIsVolunteer = loginUserInfoVO.getIsVolunteer() == 1; // 查询当前活动下参与志愿者 Integer volunteerCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda() - .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 1)); + .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 1).eq(ComActActSignDO::getStatus, 1)); if (userIsVolunteer) { //用户是志愿者以志愿者身份参加 if (volunteerMax > volunteerCount || volunteerMax.equals(-1)) { @@ -551,9 +537,14 @@ num = comActActSignDAO.insert(comActActSignDO); } } else { + Integer regTimes = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>().lambda() + .eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getType, 1)); Integer canCancel = actActivityDO.getCanCancel(); if (nonNull(canCancel) && canCancel.equals(2)) { return R.fail("该活动暂不支持取消"); + } + if (regTimes > 0) { + return R.fail("您已参与活动,不可取消"); } if (isNull(signactivityVO.getReason())) { return R.fail("缺少取消原因"); @@ -567,8 +558,9 @@ if (num > 0) { AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO(); addComActIntegralUserDTO.setUserId(userId); - addComActIntegralUserDTO.setIntegralType(9); + addComActIntegralUserDTO.setIntegralType(8); addComActIntegralUserDTO.setActivityType(1); + addComActIntegralUserDTO.setIsVolunteer(comActActSignDO.getIsVolunteer()); addComActIntegralUserDTO.setCommunityId(actActivityDO.getCommunityId()); addComActIntegralUserDTO.setServiceId(activityId); comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO); @@ -592,7 +584,7 @@ public R listActivity(Long userId, Integer status) { List<ActivitySignVO> activitySignVOList = comActActSignDAO.selectList(userId); if (ObjectUtils.isEmpty(activitySignVOList)) { - return R.fail(); + return R.ok(); } List<Long> longs = activitySignVOList.stream().map(activitySignVO -> activitySignVO.getActivityId()) .collect(Collectors.toList()); @@ -839,6 +831,8 @@ try { String accessToken = util.getAppAccessToken(); actActivityList.forEach(actActivity -> { + ComActDO comActDO=comActDAO.selectById(actActivity.getCommunityId()); + R<SysTemplateConfigVO> r=userService.selectTemplate(comActDO.getAreaCode(),9); // 查询报名活动人员列表 List<ComActActSignDO> actSignList = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>() .lambda().eq(ComActActSignDO::getActivityId, actActivity.getId())); @@ -846,12 +840,13 @@ // 查询用户openId Map<String, String> map = comActActSignDAO.getUserOpenId(actSign.getUserId()); if (map != null) { + String openid = map.get("openid"); // 推送消息 WxUtil.sendSubscribeHDJJKS(openid, accessToken, actActivity.getActivityName(), com.panzhihua.common.utlis.DateUtils.format(actActivity.getBeginAt(), com.panzhihua.common.utlis.DateUtils.ymdhms_format), - actActivity.getActivityAddr(), actSignList.size() + ""); + actActivity.getActivityAddr(), actSignList.size() + "",r.getData().getTemplateId()); } }); @@ -896,6 +891,12 @@ return R.fail("活动不存在!"); } + ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>().lambda() + .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getUserId, userId).eq(ComActActSignDO::getStatus, 1)); + if (isNull(comActActSignDO)) { + return R.fail("活动未报名"); + } + Date beginAt = comActActivityDO.getBeginAt(); Date endAt = comActActivityDO.getEndAt(); Date nowDate = new Date(); @@ -910,22 +911,24 @@ if (signDayCount > 0) { return R.fail("请扫描新的签到码"); } - int limit = comActActivityDO.getLimit().intValue(); - if(limit != -1 && signAllCount >= limit){ - return R.fail("签到次数上限"); + Integer haveIntegralReward = comActActivityDO.getHaveIntegralReward(); + boolean isHave = nonNull(haveIntegralReward) && haveIntegralReward.equals(1); + if (isHave) { + int limit = comActActivityDO.getLimit().intValue(); + if(limit != -1 && signAllCount >= limit){ + return R.fail("签到次数上限"); + } } // String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString()); // if (stringRedisTemplate.hasKey(activitySignInKey)) { // return R.fail("你已签到,如要再次签到请三十分钟后尝试!"); // } - Integer haveIntegralReward = comActActivityDO.getHaveIntegralReward(); - boolean isHave = nonNull(haveIntegralReward) && haveIntegralReward.equals(1); ComActActRegistDO comActActRegistDO = new ComActActRegistDO(); comActActRegistDO.setActivityId(activityId); comActActRegistDO.setType(1); comActActRegistDO.setUserId(userId); - comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer()); + comActActRegistDO.setIsVolunteer(comActActSignDO.getIsVolunteer()); comActActRegistDO.setCreateAt(nowDate); comActActRegistDO.setCodeId(comActActRegistVO.getCodeId()); comActActRegistDO.setAward(isHave ? comActActivityDO.getRewardIntegral() : 0); @@ -934,10 +937,12 @@ int result = comActActRegistDAO.insert(comActActRegistDO); if (result > 0) { if (isHave) { + boolean isVolunteerAct = comActActivityDO.getVolunteerMax() != 0; AddComActIntegralUserDTO addComActIntegralUserDTO=new AddComActIntegralUserDTO(); addComActIntegralUserDTO.setUserId(userId); - addComActIntegralUserDTO.setIntegralType(8); + addComActIntegralUserDTO.setIntegralType(isVolunteerAct ? 5 : 4); addComActIntegralUserDTO.setActivityType(1); + addComActIntegralUserDTO.setIsVolunteer(comActActSignDO.getIsVolunteer()); addComActIntegralUserDTO.setCommunityId(comActActivityDO.getCommunityId()); addComActIntegralUserDTO.setServiceId(activityId); comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO); @@ -1068,4 +1073,9 @@ } return R.ok(); } + + @Override + public String getActBelongRegionCode(Long communityId) { + return baseMapper.getActBelongRegionCode(communityId); + } } -- Gitblit v1.7.1