From 09ef90148d14a154cef9fa86e267e42368d2a633 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期一, 20 十二月 2021 09:46:34 +0800
Subject: [PATCH] 通用大屏相关代码提交

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java |  352 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 351 insertions(+), 1 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java
index 2c58b94..20588bd 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java
@@ -16,12 +16,24 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireVO;
 import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCommunityStatisticsVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenDynStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenEasyPhotoStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMerchantStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMicroWishStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenNeighborStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenQuestionnaireStatisticsInfo;
 import com.panzhihua.common.model.vos.community.bigscreen.GridsGovernanceStatisticsVO;
 import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
 import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
 import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
 import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO;
+import com.panzhihua.service_community.dao.ComActDynDAO;
+import com.panzhihua.service_community.dao.ComActQuestnaireDAO;
 import com.panzhihua.service_community.dao.ComMngPopulationDAO;
 import com.panzhihua.service_community.dao.ConvenientMerchantDAO;
 import org.springframework.stereotype.Service;
@@ -51,7 +63,7 @@
 @Slf4j
 public class BigScreenStatisticsServiceImpl implements BigScreenStatisticsService {
 
-    private static final Integer pageSize = 200;
+    private static final Integer pageSize = 100;
 
     @Resource
     private ComActEasyPhotoDAO comActEasyPhotoDAO;
@@ -76,6 +88,12 @@
 
     @Resource
     private ConvenientMerchantDAO convenientMerchantDAO;
+
+    @Resource
+    private ComActQuestnaireDAO comActQuestnaireDAO;
+
+    @Resource
+    private ComActDynDAO comActDynDAO;
 
     /**
      * 大数据分析平台-居民自治
@@ -290,4 +308,336 @@
         List<ConvenientMerchantVO> popularMerchants = convenientMerchantDAO.getScreenPopularMerchants(page, pagePopularMerchantDTO);
         return R.ok(popularMerchants);
     }
+
+    /**
+     * 首页二级页面-微心愿
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexMicroWish(Long communityId) {
+        BigScreenMicroWishStatisticsInfo statisticsInfo = comActMicroWishDAO.selectIndexMicroWishBaseData(communityId);
+        //微心愿新增折线数据
+        Date nowDate = new Date();
+        List<StatisticsCommVO> microWishAddPolylineData = comActMicroWishDAO.getMicroWishAddPolylineData(communityId);
+        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
+        for (int i = 1; i <= currentMon; i++) {
+            String temp;
+            if (i > 9) {
+                temp = "" + i;
+            } else {
+                temp = "0" + i;
+            }
+            boolean isExist = microWishAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
+                    e.getFiled().endsWith(temp));
+            if (!isExist) {
+                StatisticsCommVO other = new StatisticsCommVO();
+                other.setFiled(temp);
+                other.setNum(0);
+                microWishAddPolylineData.add(other);
+            }
+        }
+        microWishAddPolylineData = microWishAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
+                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
+        statisticsInfo.setMicroWishAddPolylineData(microWishAddPolylineData);
+        //微心愿累计折线数据
+        List<StatisticsCommVO> microWishTotalPolylineData = new ArrayList<>();
+        String year = new SimpleDateFormat("yyyy").format(nowDate);
+        microWishAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActMicroWishDAO.getMicroWishTotalPolylineDate(communityId, year + e.getFiled());
+            temp.setFiled(e.getFiled());
+            microWishTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setMicroWishTotalPolylineData(microWishTotalPolylineData);
+        //微心愿展示列表
+        List<ComActMicroWishVO> microWishDisplayList = comActMicroWishDAO.selectScreenDisplayList(communityId, pageSize);
+        statisticsInfo.setMicroWishDisplayList(microWishDisplayList);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-随手拍
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexEasyPhoto(Long communityId) {
+        BigScreenEasyPhotoStatisticsInfo statisticsInfo = comActEasyPhotoDAO.selectIndexEasyPhotoBaseData(communityId);
+        //随手拍新增折线数据
+        Date nowDate = new Date();
+        List<StatisticsCommVO> easyPhotoAddPolylineData = comActEasyPhotoDAO.getEasyPhotoAddPolylineData(communityId);
+        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
+        for (int i = 1; i <= currentMon; i++) {
+            String temp;
+            if (i > 9) {
+                temp = "" + i;
+            } else {
+                temp = "0" + i;
+            }
+            boolean isExist = easyPhotoAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
+                    e.getFiled().endsWith(temp));
+            if (!isExist) {
+                StatisticsCommVO other = new StatisticsCommVO();
+                other.setFiled(temp);
+                other.setNum(0);
+                easyPhotoAddPolylineData.add(other);
+            }
+        }
+        easyPhotoAddPolylineData = easyPhotoAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
+                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
+        statisticsInfo.setEasyPhotoAddPolylineData(easyPhotoAddPolylineData);
+        //随手拍累计折线数据
+        List<StatisticsCommVO> easyPhotoTotalPolylineData = new ArrayList<>();
+        String year = new SimpleDateFormat("yyyy").format(nowDate);
+        easyPhotoAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActEasyPhotoDAO.getEasyPhotoTotalPolylineDate(communityId, year + e.getFiled());
+            temp.setFiled(e.getFiled());
+            easyPhotoTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setEasyPhotoTotalPolylineData(easyPhotoTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-随手拍展示列表
+     * @param communityId
+     * @param classifyId
+     * @return
+     */
+    @Override
+    public R indexEasyPhotoList(Long communityId, Long classifyId) {
+        List<ComActEasyPhotoVO> easyPhotoVOList = comActEasyPhotoDAO.indexEasyPhotoList(communityId, classifyId, pageSize);
+        return R.ok(easyPhotoVOList);
+    }
+
+    /**
+     * 首页二级页面-社区问卷
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexQuestionnaire(Long communityId) {
+        BigScreenQuestionnaireStatisticsInfo statisticsInfo = comActQuestnaireDAO.getIndexQuestionnaireBaseData(communityId);
+        //社区问卷新增折线数据
+        Date nowDate = new Date();
+        List<StatisticsCommVO> questionnaireAddPolylineData = comActQuestnaireDAO.getQuestionnaireAddPolylineData(communityId);
+        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
+        for (int i = 1; i <= currentMon; i++) {
+            String temp;
+            if (i > 9) {
+                temp = "" + i;
+            } else {
+                temp = "0" + i;
+            }
+            boolean isExist = questionnaireAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
+                    e.getFiled().endsWith(temp));
+            if (!isExist) {
+                StatisticsCommVO other = new StatisticsCommVO();
+                other.setFiled(temp);
+                other.setNum(0);
+                questionnaireAddPolylineData.add(other);
+            }
+        }
+        questionnaireAddPolylineData = questionnaireAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
+                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
+        statisticsInfo.setQuestionnaireAddPolylineData(questionnaireAddPolylineData);
+        //社区问卷累计折线数据
+        List<StatisticsCommVO> questionnaireTotalPolylineData = new ArrayList<>();
+        String year = new SimpleDateFormat("yyyy").format(nowDate);
+        questionnaireAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActQuestnaireDAO.getQuestionnaireTotalPolylineDate(communityId, year + e.getFiled());
+            temp.setFiled(e.getFiled());
+            questionnaireTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setQuestionnaireTotalPolylineData(questionnaireTotalPolylineData);
+        //展示列表
+        List<ComActQuestnaireVO> displayList = comActQuestnaireDAO.selectQuestionnaireDisplayList(communityId, pageSize);
+        statisticsInfo.setQuestionnaireDisplayList(displayList);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-社区动态
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexDyn(Long communityId) {
+        BigScreenDynStatisticsInfo statisticsInfo = new BigScreenDynStatisticsInfo();
+        List<StatisticsCommVO> dynCircleData = comActDynDAO.getIndexDynBaseData(communityId);
+        statisticsInfo.setDynCircleData(dynCircleData);
+        if (!dynCircleData.isEmpty()) {
+            statisticsInfo.setDynNum(dynCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
+        }
+        //社区动态新增折线数据
+        Date nowDate = new Date();
+        List<StatisticsCommVO> dynAddPolylineData = comActDynDAO.getDynAddPolylineData(communityId);
+        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
+        for (int i = 1; i <= currentMon; i++) {
+            String temp;
+            if (i > 9) {
+                temp = "" + i;
+            } else {
+                temp = "0" + i;
+            }
+            boolean isExist = dynAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
+                    e.getFiled().endsWith(temp));
+            if (!isExist) {
+                StatisticsCommVO other = new StatisticsCommVO();
+                other.setFiled(temp);
+                other.setNum(0);
+                dynAddPolylineData.add(other);
+            }
+        }
+        dynAddPolylineData = dynAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
+                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
+        statisticsInfo.setDynAddPolylineData(dynAddPolylineData);
+        //社区动态累计折线数据
+        List<StatisticsCommVO> dynTotalPolylineData = new ArrayList<>();
+        String year = new SimpleDateFormat("yyyy").format(nowDate);
+        dynAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActDynDAO.getDynTotalPolylineDate(communityId, year + e.getFiled());
+            temp.setFiled(e.getFiled());
+            dynTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setDynTotalPolylineData(dynTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-社区动态展示列表
+     * @param communityId
+     * @param type
+     * @return
+     */
+    @Override
+    public R indexDynList(Long communityId, Long type) {
+        List<ComActDynVO> dynList = comActDynDAO.indexDynList(communityId, type, pageSize);
+        return R.ok(dynList);
+    }
+
+    /**
+     * 首页二级页面-邻里圈
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexNeighbor(Long communityId) {
+        BigScreenNeighborStatisticsInfo statisticsInfo = new BigScreenNeighborStatisticsInfo();
+        List<StatisticsCommVO> neighborCircleData = comActNeighborCircleDAO.getIndexNeighborBaseData(communityId);
+        statisticsInfo.setNeighborCircleData(neighborCircleData);
+        if (!neighborCircleData.isEmpty()) {
+            statisticsInfo.setPublishContentNum(neighborCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
+            statisticsInfo.setPublishTopicNum(neighborCircleData.size());
+        }
+        //邻里圈新增折线数据
+        Date nowDate = new Date();
+        List<StatisticsCommVO> neighborAddPolylineData = comActNeighborCircleDAO.getNeighborAddPolylineData(communityId);
+        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
+        for (int i = 1; i <= currentMon; i++) {
+            String temp;
+            if (i > 9) {
+                temp = "" + i;
+            } else {
+                temp = "0" + i;
+            }
+            boolean isExist = neighborAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
+                    e.getFiled().endsWith(temp));
+            if (!isExist) {
+                StatisticsCommVO other = new StatisticsCommVO();
+                other.setFiled(temp);
+                other.setNum(0);
+                neighborAddPolylineData.add(other);
+            }
+        }
+        neighborAddPolylineData = neighborAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
+                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
+        statisticsInfo.setNeighborAddPolylineData(neighborAddPolylineData);
+        //邻里圈累计折线数据
+        List<StatisticsCommVO> neighborTotalPolylineData = new ArrayList<>();
+        String year = new SimpleDateFormat("yyyy").format(nowDate);
+        neighborAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActNeighborCircleDAO.getNeighborTotalPolylineDate(communityId, year + e.getFiled());
+            temp.setFiled(e.getFiled());
+            neighborTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setNeighborTotalPolylineData(neighborTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-邻里圈展示列表
+     * @param communityId
+     * @param topicId
+     * @return
+     */
+    @Override
+    public R indexNeighborList(Long communityId, Long topicId) {
+        List<ComActNeighborCircleAdminVO> neighborList = comActNeighborCircleDAO.indexNeighborList(communityId, topicId, pageSize);
+        return R.ok(neighborList);
+    }
+
+    /**
+     * 首页二级页面-便民商家
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexMerchant(Long communityId) {
+        BigScreenMerchantStatisticsInfo statisticsInfo = convenientMerchantDAO.getIndexMerchantBaseData(communityId);
+        //资源类型饼图数据(暂无)
+//        List<StatisticsCommVO> resourceTypeCircleData;
+        //服务类型饼图数据
+        List<StatisticsCommVO> serviceTypeCircleData = convenientMerchantDAO.selectServiceTypeCircleData(communityId);
+        statisticsInfo.setServiceTypeCircleData(serviceTypeCircleData);
+        if (!serviceTypeCircleData.isEmpty()) {
+            //服务类型数
+            statisticsInfo.setServiceTypeNum(serviceTypeCircleData.size());
+        }
+        //服务次数(目前暂时使用浏览量)新增折线数据
+        Date nowDate = new Date();
+        List<StatisticsCommVO> serviceTimesAddPolylineData = convenientMerchantDAO.getServiceTimesAddPolylineData(communityId);
+        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
+        for (int i = 1; i <= currentMon; i++) {
+            String temp;
+            if (i > 9) {
+                temp = "" + i;
+            } else {
+                temp = "0" + i;
+            }
+            boolean isExist = serviceTimesAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
+                    e.getFiled().endsWith(temp));
+            if (!isExist) {
+                StatisticsCommVO other = new StatisticsCommVO();
+                other.setFiled(temp);
+                other.setNum(0);
+                serviceTimesAddPolylineData.add(other);
+            }
+        }
+        serviceTimesAddPolylineData = serviceTimesAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
+                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
+        statisticsInfo.setServiceTimesAddPolylineData(serviceTimesAddPolylineData);
+        //服务次数(目前暂时使用浏览量)累计折线数据
+        List<StatisticsCommVO> serviceTimesTotalPolylineData = new ArrayList<>();
+        String year = new SimpleDateFormat("yyyy").format(nowDate);
+        serviceTimesAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = convenientMerchantDAO.getServiceTimesTotalPolylineDate(communityId, year + e.getFiled());
+            temp.setFiled(e.getFiled());
+            serviceTimesTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setServiceTimesTotalPolylineData(serviceTimesTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-商家展示列表
+     * @param communityId
+     * @param categoryId
+     * @return
+     */
+    @Override
+    public R indexMerchantList(Long communityId, Long categoryId) {
+        List<ConvenientMerchantVO> merchantList = convenientMerchantDAO.indexMerchantList(communityId, categoryId, pageSize);
+        return R.ok(merchantList);
+    }
 }

--
Gitblit v1.7.1