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;
@@ -107,7 +109,7 @@
        }*/
        if (status.intValue() == 2) {// 点击‘保存并发布’ 按钮
            // 报名结束时间大于当前时间则设置为“进行中”
            if (comActActivityVO.getSignUpBegin() != null && now.getTime() >= comActActivityVO.getSignUpBegin().getTime()) {
            if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) {
                comActActivityDO.setStatus(3);
            }
        }
@@ -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) {
@@ -228,21 +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());
        comActActivityVO.setStatus(2);
//        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) {
@@ -466,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));
@@ -607,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);
    }
@@ -643,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);
@@ -728,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 {