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