From 8e2d30fd6ac9c8cd3ee6d68c8fd575848f37390d Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期二, 31 八月 2021 10:42:13 +0800
Subject: [PATCH] Merge branch 'test' into 'master'

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java |  166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 insertions(+), 1 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 b91f7cd..a9cffc8 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,12 +1,21 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.text.DecimalFormat;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 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;
 
@@ -21,13 +30,16 @@
 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.*;
 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.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.ComActActRegistDO;
 import com.panzhihua.service_community.model.dos.ComActActSignDO;
 import com.panzhihua.service_community.model.dos.ComActActivityDO;
 import com.panzhihua.service_community.service.ComActActivityService;
@@ -44,12 +56,22 @@
 @Service
 public class ComActActivityServiceImpl extends ServiceImpl<ComActActivityDAO, ComActActivityDO>
     implements ComActActivityService {
+    private static final String DELIMITER = ":";
+    private static final String ACTIVITY_SIGN_IN = "ACTIVITY:SIGN:IN";
     @Resource
     private ComActActivityDAO comActActivityDAO;
     @Resource
     private ComActActSignDAO comActActSignDAO;
     @Resource
     private UserService userService;
+    @Resource
+    private ComActActEvaluateDAO comActActEvaluateDAO;
+    @Resource
+    private ComActActRegistDAO comActActRegistDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComActActPictureDAO comActActPictureDAO;
 
     /**
      * 新增社区活动
@@ -86,6 +108,13 @@
             .eq(ComActActivityDO::getActivityName, comActActivityDO.getActivityName())
             .orderByDesc(ComActActivityDO::getCreateAt).last(" limit 1 "));
         Long activityId = one.getId();
+
+        //保存上传照片
+        ComActActPictureDO comActActPictureDO = new ComActActPictureDO();
+        comActActPictureDO.setActivityId(activityId);
+        comActActPictureDO.setUserId(comActActivityVO.getUserId());
+        comActActPictureDO.setUploadPicture(comActActivityVO.getCover());
+        comActActPictureDAO.insert(comActActPictureDO);
         return R.ok(activityId);
     }
 
@@ -263,6 +292,73 @@
     public R listActivitySigns(ActivitySignVO activitySignVO) {
         List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySigns(activitySignVO);
         return R.ok(activitySignVOS);
+    }
+
+    @Override
+    public R getSignLists(ActivitySignVO activitySignVO) {
+        return R.ok(comActActSignDAO.getSignLists(activitySignVO));
+    }
+
+    @Override
+    public R pageActivityEvaluates(ComActActEvaluateVO comActActEvaluateVO) {
+        IPage<ComActActEvaluateVO> comActActEvaluateVOIPage = comActActEvaluateDAO
+                .pageActivityEvaluates(new Page(comActActEvaluateVO.getPageNum(), comActActEvaluateVO.getPageSize()), comActActEvaluateVO);
+        return R.ok(comActActEvaluateVOIPage);
+    }
+
+    @Override
+    public R getEvaluateLists(ComActActEvaluateVO comActActEvaluateVO) {
+        return R.ok(comActActEvaluateDAO.getEvaluateLists(comActActEvaluateVO));
+    }
+
+    @Override
+    public R pageActivityRegists(ComActActRegistVO comActActRegistVO) {
+        IPage<ComActActRegistVO> comActActRegistVOIPage = comActActRegistDAO.pageActivityRegists(new Page(comActActRegistVO.getPageNum(), comActActRegistVO.getPageSize()), comActActRegistVO);
+        return R.ok(comActActRegistVOIPage);
+    }
+
+    @Override
+    public R getRegistLists(ComActActRegistVO comActActRegistVO) {
+        return R.ok(comActActRegistDAO.getRegistLists(comActActRegistVO));
+    }
+
+    @Override
+    public R getNoRegistLists(ComActActRegistVO comActActRegistVO) {
+        return R.ok(comActActRegistDAO.getNoRegistLists(comActActRegistVO));
+    }
+
+    @Override
+    public R activityStatistics(Long activityId) {
+        ComActActivityStatisticsVO comActActivityStatisticsVO = comActActivityDAO.activityStatistics(activityId);
+        if (comActActivityStatisticsVO != null) {
+            if (comActActivityStatisticsVO.getSignTotal().equals(0)){
+                comActActivityStatisticsVO.setSignTotalStr("不限");
+                comActActivityStatisticsVO.setNoSignTotalStr("");
+                comActActivityStatisticsVO.setSignPersent("");
+            }else {
+                comActActivityStatisticsVO.setSignTotalStr(String.valueOf(comActActivityStatisticsVO.getSignTotal()));
+                comActActivityStatisticsVO.setNoSignTotalStr(String.valueOf(Integer.valueOf(comActActivityStatisticsVO.getSignTotalStr()) - comActActivityStatisticsVO.getReallySignTotal()));
+                comActActivityStatisticsVO.setSignPersent(getPersent(comActActivityStatisticsVO.getReallySignTotal(),comActActivityStatisticsVO.getSignTotal()));
+            }
+            comActActivityStatisticsVO.setRegistPersent(getPersent(comActActivityStatisticsVO.getReallyRegistTotal(),comActActivityStatisticsVO.getRegistTotal()));
+            comActActivityStatisticsVO.setEvaluatePersent(getPersent(comActActivityStatisticsVO.getReallyEvaluateTotal(),comActActivityStatisticsVO.getEvaluateTotal()));
+        }
+        return R.ok(comActActivityStatisticsVO);
+    }
+
+    @Override
+    public R getPictureList(Long userId) {
+        List<ComActActPictureVO> comActActPictureVOS = new ArrayList<>();
+        List<ComActActPictureDO> comActActPictureDOS = comActActPictureDAO.selectList(new QueryWrapper<ComActActPictureDO>().lambda().
+                eq(ComActActPictureDO::getUserId, userId));
+        if (comActActPictureDOS != null && comActActPictureDOS.size() != 0) {
+            comActActPictureDOS.forEach(comActActPictureDO -> {
+                ComActActPictureVO comActActPictureVO = new ComActActPictureVO();
+                BeanUtils.copyProperties(comActActPictureDO, comActActPictureVO);
+                comActActPictureVOS.add(comActActPictureVO);
+            });
+        }
+        return R.ok(comActActPictureVOS);
     }
 
     /**
@@ -489,6 +585,16 @@
         page.setSize(pageSize);
         page.setCurrent(pageNum);
         IPage<ComActActivityVO> iPage = comActActivityDAO.pageActivityCommunityBack(page, comActActivityVO);
+        iPage.getRecords().forEach(vo ->{
+            List<ComActActEvaluateDO> comActActEvaluateDOList = comActActEvaluateDAO
+                    .selectList(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, vo.getId()));
+            if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() != 0) {
+                //总星级
+                int starNum = comActActEvaluateDOList.stream().mapToInt(ComActActEvaluateDO::getStarLevel).sum();
+                //评分星级=总星级/总评价人数
+                vo.setEvaluateLevel(Double.valueOf(starNum/comActActEvaluateDOList.size()));
+            }
+        });
         return R.ok(iPage);
     }
 
@@ -598,4 +704,62 @@
         return R.ok();
     }
 
+    private String getPersent(int x, int y){
+        if (y == 0) {
+            return "";
+        }
+        if (x == 0) {
+            return "0.00%";
+        }
+        double d1 = x * 1.0;
+        double d2 = y * 1.0;
+        DecimalFormat decimalFormat = new DecimalFormat("##.00%");
+        return decimalFormat.format(d1 / d2);
+    }
+
+    /**
+     * 用户签到
+     *
+     * @param comActActRegistVO 签到参数
+     * @return 签到结果
+     */
+    @Override
+    public R activitySignIn(ComActActRegistVO comActActRegistVO) {
+        Long activityId = comActActRegistVO.getActivityId();
+        Long userId = comActActRegistVO.getUserId();
+        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());
+        int result = comActActRegistDAO.insert(comActActRegistDO);
+        if (result > 0) {
+            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
+            opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS);
+        }
+        return R.ok();
+    }
+
+    /**
+     *用户签到记录列表
+     *
+     * @param userId 用id
+     * @return 用户签到列表
+     */
+    @Override
+    public R listSignInActivity(Long userId) {
+        List<ComActActRegistDO> comActActRegistDOS = comActActRegistDAO.selectList(new QueryWrapper<ComActActRegistDO>()
+                .lambda().eq(ComActActRegistDO::getUserId, userId));
+        ArrayList<ComActActRegistVO> comActActRegistVOS = new ArrayList<>();
+        comActActRegistDOS.forEach(comActActRegistDO -> {
+            ComActActRegistVO comActActRegistVO = new ComActActRegistVO();
+            BeanUtils.copyProperties(comActActRegistDO, comActActRegistVO);
+            comActActRegistVOS.add(comActActRegistVO);
+        });
+        return R.ok(comActActRegistVOS);
+    }
 }

--
Gitblit v1.7.1