101captain
2021-11-09 e7f03acfa5ee4ad4fd6d1ee9e9ae9a5655488f6d
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -4,6 +4,8 @@
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.ArrayList;
import java.util.Arrays;
@@ -177,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) {
@@ -456,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,13 +603,13 @@
        // 修改报名状态 变为报名中
//        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);
    }
@@ -633,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);
@@ -718,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 {