From 1e3b97098151f2d0471de6e8103b6cdaa6b5099d Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期六, 18 九月 2021 09:15:59 +0800 Subject: [PATCH] Merge branch 'test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into auth --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java | 129 +++++++++++++++++++++++++----------------- 1 files changed, 77 insertions(+), 52 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..5673d1d 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) { @@ -599,15 +599,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 +635,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); @@ -773,6 +782,7 @@ @Override public R activitySignIn(ComActActRegistVO comActActRegistVO) { Long activityId = comActActRegistVO.getActivityId(); + Long userId = comActActRegistVO.getUserId(); if (isNull(activityId)) { return R.fail("签到所属活动id不能为空!"); } @@ -780,22 +790,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