From e7f03acfa5ee4ad4fd6d1ee9e9ae9a5655488f6d Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期二, 09 十一月 2021 17:04:46 +0800 Subject: [PATCH] 1109修改 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java | 135 +++++++++++++++++++++++++++------------------ 1 files changed, 81 insertions(+), 54 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 f8ea3ea..e3eb9f9 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 @@ -1,21 +1,24 @@ package com.panzhihua.service_community.service.impl; +import static java.util.Objects.isNull; +import static org.apache.commons.lang3.StringUtils.isBlank; +import static org.apache.commons.lang3.StringUtils.isNotBlank; + +import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.DecimalFormat; -import java.util.*; -import java.util.concurrent.TimeUnit; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; 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; -import com.panzhihua.service_community.model.dos.ComActActPictureDO; import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.BeanUtils; import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; @@ -30,26 +33,32 @@ 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.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; 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.ComActActivityDAO; 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.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 @@ -101,7 +110,7 @@ if (status.intValue() == 2) {// 点击‘保存并发布’ 按钮 // 报名结束时间大于当前时间则设置为“进行中” if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) { - comActActivityDO.setStatus(4); + comActActivityDO.setStatus(3); } } @@ -170,7 +179,7 @@ // 结束时间大于当前时间则设置为“进行中” Date now = new Date(); if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) { - comActActivityDO.setStatus(4); + comActActivityDO.setStatus(3); } boolean b = this.updateById(comActActivityDO); if (b) { @@ -200,15 +209,15 @@ page.setSize(pageSize); page.setCurrent(pageNum); IPage<ComActActivityVO> iPage = comActActivityDAO.pageActivity(page, comActActivityVO); - List<ComActActivityVO> records = iPage.getRecords(); - if (!ObjectUtils.isEmpty(records)) { - records.forEach(comActActivityVO1 -> { - Integer status = comActActivityVO1.getStatus(); - if (status.intValue() == 3) { - comActActivityVO1.setStatus(4); - } - }); - } +// List<ComActActivityVO> records = iPage.getRecords(); +// if (!ObjectUtils.isEmpty(records)) { +// records.forEach(comActActivityVO1 -> { +// Integer status = comActActivityVO1.getStatus(); +// if (status.intValue() == 3) { +// comActActivityVO1.setStatus(4); +// } +// }); +// } return R.ok(iPage); } @@ -221,20 +230,11 @@ */ @Override public R releaseActivity(ComActActivityVO comActActivityVO) { - ComActActivityDO comActActivityDO = new ComActActivityDO(); -// comActActivityDO.setId(comActActivityVO.getId()); -// comActActivityDO.setPublishAt(comActActivityVO.getPublishAt()); -// comActActivityDO.setStatus(comActActivityVO.getStatus()); - comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId()); + ComActActivityDO comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId()); comActActivityDO.setPublishAt(comActActivityVO.getPublishAt()); - if (comActActivityVO.getPublishAt().before(comActActivityDO.getSignUpBegin())) { - comActActivityVO.setStatus(2); - } + comActActivityDO.setStatus(3); if (comActActivityVO.getPublishAt().after(comActActivityDO.getSignUpEnd())) { - comActActivityVO.setStatus(5); - } - if (comActActivityVO.getPublishAt().after(comActActivityDO.getSignUpBegin()) && comActActivityVO.getPublishAt().before(comActActivityDO.getSignUpEnd())) { - comActActivityVO.setStatus(3); + comActActivityVO.setStatus(4); } int update = comActActivityDAO.updateById(comActActivityDO); if (update > 0) { @@ -458,7 +458,9 @@ String attendPeople = actActivityDO.getAattendPeople(); if (isVolunteer.intValue() == 0 && isNotBlank(attendPeople)) { if (isBlank(currentUserTags)) { - return R.fail("您不是指定参与人群!"); + currentUserTags = "全部居民"; + } else { + currentUserTags = currentUserTags.concat(",全部居民"); } List<String> currentUserTagList = Arrays.asList(currentUserTags.split(",")); boolean checkResult = currentUserTagList.stream().anyMatch(currentUserTag -> attendPeople.contains(currentUserTag)); @@ -599,15 +601,15 @@ int num = comActActivityDAO.updateStatusToNotBegin(); log.info("定时任务--修改社区活动发布状态活动数量【{}】", num); // 修改报名状态 变为报名中 - int num1 = comActActivityDAO.updateStatusToBeginSign(); - log.info("定时任务--修改社区活动报名状态活动数量【{}】", num1); +// int num1 = comActActivityDAO.updateStatusToBeginSign(); +// log.info("定时任务--修改社区活动报名状态活动数量【{}】", num1); + int num3 = comActActivityDAO.updateStatusToBeginAfterSingEnd(); + log.info("定时任务--报名结束修改社区活动进行状态活动数量【{}】", num3); // 查询已经结束的活动,需要计算积分 List<Long> activityEndIds = comActActivityDAO.getActivityEndIds(); // 修改进行状态 变为进行中或者已结束 int num2 = comActActivityDAO.updateStatusToBeginActiveOrEnd(); log.info("定时任务--修改社区活动进行状态活动数量【{}】", num2); - int num3 = comActActivityDAO.updateStatusToBeginAfterSingEnd(); - log.info("定时任务--报名结束修改社区活动进行状态活动数量【{}】", num3); return R.ok(activityEndIds); } @@ -635,11 +637,20 @@ iPage.getRecords().forEach(vo ->{ List<ComActActEvaluateDO> comActActEvaluateDOList = comActActEvaluateDAO .selectList(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, vo.getId())); - if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() != 0) { + if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() > 0) { + BigDecimal starNum = BigDecimal.ZERO; //总星级 - int starNum = comActActEvaluateDOList.stream().mapToInt(ComActActEvaluateDO::getStarLevel).sum(); - //评分星级=总星级/总评价人数 - vo.setEvaluateLevel(Double.valueOf(starNum/comActActEvaluateDOList.size())); + for (ComActActEvaluateDO evaluateDO:comActActEvaluateDOList) { + starNum = starNum.add(BigDecimal.valueOf(evaluateDO.getStarLevel()==null?0:evaluateDO.getStarLevel())); + } + //评分星级(如果无评分默认5分)=总星级/总评价人数 + if(starNum.compareTo(BigDecimal.ZERO) == 0){ + vo.setEvaluateLevel(BigDecimal.valueOf(5)); + }else{ + vo.setEvaluateLevel(starNum.divide(BigDecimal.valueOf(comActActEvaluateDOList.size()),2, RoundingMode.HALF_UP)); + } + }else{ + vo.setEvaluateLevel(BigDecimal.valueOf(5)); } }); return R.ok(iPage); @@ -720,7 +731,7 @@ // 查询所有即将开始的活动 List<ComActActivityDO> actActivityList = comActActivityDAO.selectList(new QueryWrapper<ComActActivityDO>() .lambda().le(ComActActivityDO::getBeginAt, DateUtils.addDays(new Date(), 1)) - .ge(ComActActivityDO::getBeginAt, new Date())); + .ge(ComActActivityDO::getBeginAt, new Date()).notIn(ComActActivityDO::getStatus,5,6)); if (!actActivityList.isEmpty()) { WxXCXTempSend util = new WxXCXTempSend(); try { @@ -773,6 +784,7 @@ @Override public R activitySignIn(ComActActRegistVO comActActRegistVO) { Long activityId = comActActRegistVO.getActivityId(); + Long userId = comActActRegistVO.getUserId(); if (isNull(activityId)) { return R.fail("签到所属活动id不能为空!"); } @@ -780,22 +792,37 @@ 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)) { - return R.fail("你已签到,如要再次签到请三十分钟后尝试!"); + + Date beginAt = comActActivityDO.getBeginAt(); + Date endAt = comActActivityDO.getEndAt(); + Date nowDate = new Date(); + if (nowDate.before(beginAt) || nowDate.after(endAt)) { + return R.fail("不在活动时间范围内"); } + + int signCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>() + .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId)); + + if (signCount > 0) { + return R.fail("请勿重复签到"); + } + +// String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString()); +// if (stringRedisTemplate.hasKey(activitySignInKey)) { +// return R.fail("你已签到,如要再次签到请三十分钟后尝试!"); +// } ComActActRegistDO comActActRegistDO = new ComActActRegistDO(); comActActRegistDO.setActivityId(activityId); comActActRegistDO.setUserId(userId); comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer()); - comActActRegistDO.setCreateAt(new Date()); + comActActRegistDO.setCreateAt(nowDate); int result = comActActRegistDAO.insert(comActActRegistDO); if (result > 0) { - ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue(); - opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS); +// ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue(); +// opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS); + return R.ok(); } - return R.ok(); + return R.fail("网络错误,请重试"); } /** -- Gitblit v1.7.1