From 83afb0e64e6a024be19997504f150ccca82557d4 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 1 Jul 2020 18:11:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/filter/LogMsgSendFilter.java | 3 + .../epmet/commons/tools/utils/IpUtils.java | 35 +- .../feign/DataStatisticalOpenFeignClient.java | 14 +- ...ataStatisticalOpenFeignClientFallBack.java | 30 +- .../controller/StatsPublicityController.java | 45 +-- .../epmet/service/StatsPublicityService.java | 19 +- .../impl/StatsPublicityServiceImpl.java | 372 ++++++++++-------- 7 files changed, 305 insertions(+), 213 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java index 4f24fa70d2..4bdce1f3e0 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java @@ -8,6 +8,7 @@ import ch.qos.logback.classic.spi.StackTraceElementProxy; import ch.qos.logback.core.spi.FilterReply; import com.epmet.commons.tools.dto.form.DingTalkTextMsg; import com.epmet.commons.tools.utils.DingdingMsgSender; +import com.epmet.commons.tools.utils.IpUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,6 +39,8 @@ public class LogMsgSendFilter extends LevelFilter { stringBuilder.append("告警级别:" + event.getLevel()); stringBuilder.append("\n"); + stringBuilder.append("IP地址:" + IpUtils.getServerIp()); + stringBuilder.append("\n"); stringBuilder.append("故障时间:" + formatLongTime2Str(event.getTimeStamp())); stringBuilder.append("\n"); stringBuilder.append("TraceId:" + Thread.currentThread().getName()); diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IpUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IpUtils.java index 6ce41b048f..bde12725d9 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IpUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IpUtils.java @@ -13,6 +13,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletRequest; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; /** * IP工具类 @@ -23,7 +27,7 @@ import javax.servlet.http.HttpServletRequest; public class IpUtils { private static Logger logger = LoggerFactory.getLogger(IpUtils.class); - public static String getIpAddr(HttpServletRequest request) { + public static String getIpAddr(HttpServletRequest request) { String ip = null; try { ip = request.getHeader("x-forwarded-for"); @@ -48,4 +52,33 @@ public class IpUtils { return ip; } + + /** + * desc:获取本地Ip + * @return + */ + public static String getServerIp(){ + String SERVER_IP = ""; + try { + Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces(); + InetAddress ip = null; + while (netInterfaces.hasMoreElements()) { + NetworkInterface ni = (NetworkInterface) netInterfaces + .nextElement(); + ip = ni.getInetAddresses().nextElement(); + SERVER_IP = ip.getHostAddress(); + if (!ip.isSiteLocalAddress() && !ip.isLoopbackAddress() + && ip.getHostAddress().indexOf(":") == -1) { + SERVER_IP = ip.getHostAddress(); + break; + }else{ + ip = null; + } + } + } catch (SocketException e) { + logger.error("IpUtils getServerIp exception ", e); + } + + return SERVER_IP; + } } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index 996d8b48bf..9953e2d3c1 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -29,7 +29,7 @@ public interface DataStatisticalOpenFeignClient { * @author: jianjun liu */ @PostMapping(value = "data/stats/statspublicity/articleSummaryDailyStatsjob") - Result articleSummaryDailyStatsjob(@RequestParam(value = "date",required = false) String date); + Result articleSummaryDailyStatsjob(StatsFormDTO formDTO); /** * desc: 定时任务 【日】统计文章总数及在线文章总数 包含 机关 部门 网格 @@ -39,7 +39,7 @@ public interface DataStatisticalOpenFeignClient { * @author: jianjun liu */ @PostMapping(value = "data/stats/statspublicity/tagUsedDailyStatsjob") - Result tagUsedDailyStatsjob(@RequestParam(value = "date",required = false) String date); + Result tagUsedDailyStatsjob(StatsFormDTO formDTO); /** * desc: 【月】 统计发表文章最多的分类 包含 机关 部门 网格 @@ -48,7 +48,7 @@ public interface DataStatisticalOpenFeignClient { * @author: jianjun liu */ @PostMapping(value = "data/stats/statspublicity/tagUsedMonthlyStatsjob") - Result tagUsedMonthlyStatsjob(@RequestParam(value = "date",required = false) String date); + Result tagUsedMonthlyStatsjob(StatsFormDTO formDTO); /** * desc: 【季,年】 统计发表文章最多的分类 包含 机关 部门 网格 @@ -57,7 +57,7 @@ public interface DataStatisticalOpenFeignClient { * @author: jianjun liu */ @PostMapping(value = "data/stats/statspublicity/tagUsedQuarterlyStatsjob") - Result tagUsedQuarterlyStatsjob(@RequestParam(value = "date",required = false) String date); + Result tagUsedQuarterlyStatsjob(StatsFormDTO formDTO); /** * desc: 【日】 统计阅读最多的标签 包含 机关 网格 @@ -66,7 +66,7 @@ public interface DataStatisticalOpenFeignClient { * @author: jianjun liu */ @PostMapping(value = "data/stats/statspublicity/tagViewedDailyStatsjob") - Result tagViewedDailyStatsjob(@RequestParam(value = "date",required = false) String date); + Result tagViewedDailyStatsjob(StatsFormDTO formDTO); /** * desc: 【月】 统计阅读最多的标签 包含 机关 网格 @@ -75,7 +75,7 @@ public interface DataStatisticalOpenFeignClient { * @author: jianjun liu */ @PostMapping(value = "data/stats/statspublicity/tagViewedMonthlyStatsjob") - Result tagViewedMonthlyStatsjob(@RequestParam(value = "date",required = false) String date); + Result tagViewedMonthlyStatsjob(StatsFormDTO formDTO); /** * desc: 【季,年】 统计阅读最多的标签 包含 机关 网格 @@ -85,7 +85,7 @@ public interface DataStatisticalOpenFeignClient { * @param date */ @PostMapping(value = "data/stats/statspublicity/tagViewedQuarterlyStatsjob") - Result tagViewedQuarterlyStatsjob(@RequestParam(value = "date",required = false) String date); + Result tagViewedQuarterlyStatsjob(StatsFormDTO formDTO); /** * @Description 统计 “网格小组”, dim:【网格-日】 diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index e871ada6e1..d58fa69ec4 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -27,8 +27,8 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp * @author: jianjun liu */ @Override - public Result articleSummaryDailyStatsjob(String date) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "articleSummaryDailyStatsjob"); + public Result articleSummaryDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "articleSummaryDailyStatsjob",formDTO); } /** @@ -39,8 +39,8 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp * @author: jianjun liu */ @Override - public Result tagUsedDailyStatsjob(String date) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedDailyStatsjob"); + public Result tagUsedDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedDailyStatsjob",formDTO); } /** @@ -50,8 +50,8 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp * @author: jianjun liu */ @Override - public Result tagUsedMonthlyStatsjob(String date) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedMonthlyStatsjob"); + public Result tagUsedMonthlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedMonthlyStatsjob",formDTO); } /** @@ -61,8 +61,8 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp * @author: jianjun liu */ @Override - public Result tagUsedQuarterlyStatsjob(String date) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedQuarterlyStatsjob"); + public Result tagUsedQuarterlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedQuarterlyStatsjob",formDTO); } /** @@ -72,8 +72,8 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp * @author: jianjun liu */ @Override - public Result tagViewedDailyStatsjob(String date) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedDailyStatsjob"); + public Result tagViewedDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedDailyStatsjob",formDTO); } /** @@ -83,8 +83,8 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp * @author: jianjun liu */ @Override - public Result tagViewedMonthlyStatsjob(String date) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedMonthlyStatsjob"); + public Result tagViewedMonthlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedMonthlyStatsjob",formDTO); } /** @@ -92,11 +92,11 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp * * @date: 2020/6/22 9:09 * @author: jianjun liu - * @param date + * @param formDTO */ @Override - public Result tagViewedQuarterlyStatsjob(String date) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedQuarterlyStatsjob",date); + public Result tagViewedQuarterlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedQuarterlyStatsjob",formDTO); } @Override diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsPublicityController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsPublicityController.java index 79ca1d0acf..eb01c07d69 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsPublicityController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsPublicityController.java @@ -1,13 +1,14 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.StatsFormDTO; import com.epmet.service.StatsPublicityService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.Date; import java.util.concurrent.ExecutorService; /** @@ -26,77 +27,77 @@ public class StatsPublicityController { /** * desc:【日】统计文章总数及在线文章总数 包含 机关 部门 网格 * - * @param statsDate 默认:为T-1天,如果传 则统计的是【statsDate】的数据 + * @param formDTO 默认:为T-1天,如果传 则统计的是【formDTO】的数据 * @return */ @PostMapping(value = "articleSummaryDailyStatsjob") - public Result articleSummaryDailyStatsjob(Date statsDate) { - return new Result().ok(statsPublicityService.articleSummaryDailyStatsjob(statsDate)); + public Result articleSummaryDailyStatsjob(@RequestBody(required = false) StatsFormDTO formDTO) { + return new Result().ok(statsPublicityService.articleSummaryDailyStatsjob(formDTO)); } /** * desc:【日】 统计发表文章最多的分类 包含 机关 部门 网格 * - * @param statsDate 默认:为T-1天,如果传 则统计的是【statsDate】的数据 + * @param formDTO 默认:为T-1天,如果传 则统计的是【formDTO】的数据 * @return */ @PostMapping(value = "tagUsedDailyStatsjob") - public Result tagUsedDailyStatsjob(Date statsDate) { - return new Result().ok(statsPublicityService.tagUsedDailyStatsjob(statsDate)); + public Result tagUsedDailyStatsjob(@RequestBody(required = false) StatsFormDTO formDTO) { + return new Result().ok(statsPublicityService.tagUsedDailyStatsjob(formDTO)); } /** * desc:【月,季,年】 统计发表文章最多的分类 包含 机关 部门 网格 * - * @param statsDate 默认:为T-1天,如果传 则统计的是【statsDate】的数据 + * @param formDTO 默认:为T-1天,如果传 则统计的是【formDTO】的数据 * @return */ @PostMapping(value = "tagUsedMonthlyStatsjob") - public Result tagUsedMonthlyStatsjob(Date statsDate) { - return new Result().ok(statsPublicityService.tagUsedMonthlyStatsjob(statsDate)); + public Result tagUsedMonthlyStatsjob(@RequestBody(required = false) StatsFormDTO formDTO) { + return new Result().ok(statsPublicityService.tagUsedMonthlyStatsjob(formDTO)); } /** * desc:【季,年】 统计发表文章最多的分类 包含 机关 部门 网格 * - * @param statsDate 默认:为T-1天,如果传 则统计的是【statsDate】的数据 + * @param formDTO 默认:为T-1天,如果传 则统计的是【formDTO】的数据 * @return */ @PostMapping(value = "tagUsedQuarterlyStatsjob") - public Result tagUsedQuarterlyStatsjob(Date statsDate) { - return new Result().ok(statsPublicityService.tagUsedQuarterlyStatsjob(statsDate)); + public Result tagUsedQuarterlyStatsjob(@RequestBody(required = false) StatsFormDTO formDTO) { + return new Result().ok(statsPublicityService.tagUsedQuarterlyStatsjob(formDTO)); } /** * desc:【日】 统计阅读最多的标签 包含 机关 网格 * - * @param statsDate 默认:为T-1天,如果传 则统计的是【statsDate】的数据 + * @param formDTO 默认:为T-1天,如果传 则统计的是【formDTO】的数据 * @return */ @PostMapping(value = "tagViewedDailyStatsjob") - public Result tagViewedDailyStatsjob(Date statsDate) { - return new Result().ok(statsPublicityService.tagViewedDailyStatsjob(statsDate)); + public Result tagViewedDailyStatsjob(@RequestBody(required = false) StatsFormDTO formDTO) { + return new Result().ok(statsPublicityService.tagViewedDailyStatsjob(formDTO)); } /** * desc:【月】 统计阅读最多的标签 包含 机关 网格 * - * @param statsDate 默认:为T-1天,如果传 则统计的是【statsDate】的数据 + * @param formDTO 默认:为T-1天,如果传 则统计的是【formDTO】的数据 * @return */ @PostMapping(value = "tagViewedMonthlyStatsjob") - public Result tagViewedMonthlyStatsjob(Date statsDate) { - return new Result().ok(statsPublicityService.tagViewedMonthlyStatsjob(statsDate)); + public Result tagViewedMonthlyStatsjob(@RequestBody(required = false) StatsFormDTO formDTO) { + return new Result().ok(statsPublicityService.tagViewedMonthlyStatsjob(formDTO)); } /** * desc:【季,年】 统计阅读最多的标签 包含 机关 网格 * - * @param statsDate 默认:为T-1天,如果传 则统计的是【statsDate】的数据 + * @param formDTO 默认:为T-1天,如果传 则统计的是【formDTO】的数据 * @return */ @PostMapping(value = "tagViewedQuarterlyStatsjob") - public Result tagViewedQuarterlyStatsjob(Date statsDate) { - return new Result().ok(statsPublicityService.tagViewedQuarterlyStatsjob(statsDate)); + public Result tagViewedQuarterlyStatsjob(@RequestBody(required = false) StatsFormDTO formDTO) { + return new Result().ok(statsPublicityService.tagViewedQuarterlyStatsjob(formDTO)); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsPublicityService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsPublicityService.java index 772d48e788..14a165b830 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsPublicityService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsPublicityService.java @@ -1,7 +1,7 @@ package com.epmet.service; -import java.util.Date; +import com.epmet.dto.StatsFormDTO; public interface StatsPublicityService { /** @@ -10,8 +10,9 @@ public interface StatsPublicityService { * @return: Boolean * @date: 2020/6/17 16:11 * @author: jianjun liu + * @param statsDate */ - Boolean articleSummaryDailyStatsjob(Date statsDate); + Boolean articleSummaryDailyStatsjob(StatsFormDTO statsDate); /** * desc: 按日 统计每个标签被引用的使用文章数 @@ -19,18 +20,20 @@ public interface StatsPublicityService { * @return: Boolean * @date: 2020/6/17 16:11 * @author: jianjun liu + * @param statsDate */ - Boolean tagUsedDailyStatsjob(Date statsDate); + Boolean tagUsedDailyStatsjob(StatsFormDTO statsDate); /** * desc: 按月 统计每个标签被引用的使用文章数 * * @param + * @param statsDate * @return: * @date: 2020/6/19 18:44 * @author: jianjun liu */ - Boolean tagUsedMonthlyStatsjob(Date statsDate); + Boolean tagUsedMonthlyStatsjob(StatsFormDTO statsDate); /** * desc: 按季年统计标签被使用次数 @@ -40,7 +43,7 @@ public interface StatsPublicityService { * @date: 2020/6/20 10:44 * @author: jianjun liu */ - Boolean tagUsedQuarterlyStatsjob(Date statsDate); + Boolean tagUsedQuarterlyStatsjob(StatsFormDTO statsDate); /** * desc: 按日 统计每个标签的阅读数 @@ -50,7 +53,7 @@ public interface StatsPublicityService { * @date: 2020/6/20 8:40 * @author: jianjun liu */ - Boolean tagViewedDailyStatsjob(Date statsDate); + Boolean tagViewedDailyStatsjob(StatsFormDTO statsDate); /** * desc: 按月统计标签被查看次数 @@ -60,7 +63,7 @@ public interface StatsPublicityService { * @date: 2020/6/20 10:44 * @author: jianjun liu */ - Boolean tagViewedMonthlyStatsjob(Date statsDate); + Boolean tagViewedMonthlyStatsjob(StatsFormDTO statsDate); /** * desc: 按季年统计标签被查看次数 @@ -70,5 +73,5 @@ public interface StatsPublicityService { * @date: 2020/6/20 10:44 * @author: jianjun liu */ - Boolean tagViewedQuarterlyStatsjob(Date statsDate); + Boolean tagViewedQuarterlyStatsjob(StatsFormDTO statsDate); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java index 6098238d0b..051c7add67 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java @@ -7,6 +7,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DimAgencyConstant; import com.epmet.constant.ProjectConstant; +import com.epmet.dto.StatsFormDTO; import com.epmet.dto.voice.ArticleGridPublishedSummaryDTO; import com.epmet.dto.voice.ArticleViewedSummaryDTO; import com.epmet.entity.stats.*; @@ -21,6 +22,7 @@ import com.epmet.service.voice.ArticleVisitRecordService; import com.epmet.service.voice.TagCustomerService; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -105,80 +107,100 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { private FactTagViewedAgencyYearlyService factTagViewedAgencyYearlyService; @Override - public Boolean articleSummaryDailyStatsjob(Date statsDate) { + public Boolean articleSummaryDailyStatsjob(StatsFormDTO formDTO) { + Date statsDate = getStatsDateFromParam(formDTO); + String statsDateStr = DateUtils.format(statsDate); + DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); //如果不传时间 则统计数据为今天之前的数据和,否则统计的是截止到传入的日期数据的和 - if (statsDate == null) { - //查询的是昨天及以前的数据 - statsDate = DateUtils.integrate(DateUtils.addDateDays(statsDate, -NumConstant.ONE), DateUtils.DATE_PATTERN); + //入参有客户Id的则按客户Id执行,没有的则全部客户都执行 + if (null != formDTO && StringUtils.isNotBlank(formDTO.getCustomerId())) { + statsSummaryByCustomerId(dimIdBean, statsDateStr, formDTO.getCustomerId()); } else { - statsDate = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); - } - DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); - int pageNo = NumConstant.ONE; - int pageSize = NumConstant.ONE_HUNDRED; - List customerIdList = null; - String statsDateStr = DateUtils.format(statsDate); - do { - customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); - if (!CollectionUtils.isEmpty(customerIdList)) { - for (String customerId : customerIdList) { - try { - //key:所在机关Id - Map agencySummaryMap = new HashMap<>(); - statsPublishedGridDaily(statsDateStr, dimIdBean, customerId, agencySummaryMap); - statsPublishedDepartmentDaily(statsDateStr, dimIdBean, customerId, agencySummaryMap); - statsPublishedAgencyDaily(statsDateStr, dimIdBean, customerId, agencySummaryMap); - } catch (Exception e) { - log.error("articlePublishedCountDayStats exception", e); + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + List customerIdList = null; + do { + customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); + if (!CollectionUtils.isEmpty(customerIdList)) { + for (String customerId : customerIdList) { + statsSummaryByCustomerId(dimIdBean, statsDateStr, customerId); } - } - } - } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } + return true; } - @Override - public Boolean tagUsedDailyStatsjob(Date statsDate) { + private Date getStatsDateFromParam(StatsFormDTO formDTO) { + Date statsDate = DateUtils.integrate(DateUtils.addDateDays(statsDate, -NumConstant.ONE), DateUtils.DATE_PATTERN); + if (null != formDTO && StringUtils.isNotBlank(formDTO.getDate())) { + statsDate = DateUtils.parse(formDTO.getDate(), DateUtils.DATE_PATTERN); + } + return statsDate; + } - //如果不传时间 则统计数据为今天之前的数据和,否则统计的是截止到传入的日期数据的和 - if (statsDate == null) { - //当天的凌晨时间 即为今天之前的数据 - statsDate = DateUtils.integrate(DateUtils.addDateDays(new Date(), -NumConstant.ONE), DateUtils.DATE_PATTERN); - } else { - statsDate = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); + private void statsSummaryByCustomerId(DimIdGenerator.DimIdBean dimIdBean, String statsDateStr, String customerId) { + try { + //key:所在机关Id + Map agencySummaryMap = new HashMap<>(); + statsPublishedGridDaily(statsDateStr, dimIdBean, customerId, agencySummaryMap); + statsPublishedDepartmentDaily(statsDateStr, dimIdBean, customerId, agencySummaryMap); + statsPublishedAgencyDaily(statsDateStr, dimIdBean, customerId, agencySummaryMap); + } catch (Exception e) { + log.error("articlePublishedCountDayStats exception", e); } + } + + @Override + public Boolean tagUsedDailyStatsjob(StatsFormDTO formDTO) { + Date statsDate = getStatsDateFromParam(formDTO); + DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); - int pageNo = NumConstant.ONE; - int pageSize = NumConstant.ONE_HUNDRED; - List customerIdList = null; - do { - customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); - if (!CollectionUtils.isEmpty(customerIdList)) { - for (String customerId : customerIdList) { - Date finalStatsDate = statsDate; - //统计 - try { - statsTagUsedDaily(finalStatsDate, dimIdBean, customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagUsedDailyStatsjob", customerId, dimIdBean.getDateId()), e); + if (null != formDTO && StringUtils.isNotBlank(formDTO.getCustomerId())) { + //统计 + try { + statsTagUsedDaily(statsDate, dimIdBean, formDTO.getCustomerId()); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagUsedDailyStatsjob", formDTO.getCustomerId(), dimIdBean.getDateId()), e); + } + } else { + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + List customerIdList = null; + do { + customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); + if (!CollectionUtils.isEmpty(customerIdList)) { + for (String customerId : customerIdList) { + //统计 + try { + statsTagUsedDaily(statsDate, dimIdBean, customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagUsedDailyStatsjob", customerId, dimIdBean.getDateId()), e); + } } } - } - } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } return true; } @Override - public Boolean tagUsedMonthlyStatsjob(Date statsDate) { - //如果不传时间 则统计数据为今天之前的数据和,否则统计的是截止到传入的日期数据的和 - if (statsDate == null) { - //当天的凌晨时间 即为今天之前的数据 - statsDate = DateUtils.integrate(DateUtils.addDateDays(new Date(), -NumConstant.ONE), DateUtils.DATE_PATTERN); - } else { - statsDate = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); - } + public Boolean tagUsedMonthlyStatsjob(StatsFormDTO formDTO) { + Date statsDate = getStatsDateFromParam(formDTO); DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); + + if (null != formDTO && StringUtils.isNotBlank(formDTO.getCustomerId())) { + + try { + statsTagUsedMonthly(dimIdBean.getMonthId(), formDTO.getCustomerId()); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagUsedMonthlyStatsjob", formDTO.getCustomerId(), dimIdBean.getMonthId()), e); + } + } + } else + + { int pageNo = NumConstant.ONE; int pageSize = NumConstant.ONE_HUNDRED; List customerIdList = null; @@ -194,133 +216,163 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { } } } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); - return true; } + return true; +} @Override - public Boolean tagViewedDailyStatsjob(Date statsDate) { + public Boolean tagViewedDailyStatsjob(StatsFormDTO formDTO) { - //如果不传时间 则统计数据为今天之前的数据和,否则统计的是截止到传入的日期数据的和 - if (statsDate == null) { - //当天的凌晨时间 即为今天之前的数据 - statsDate = DateUtils.integrate(DateUtils.addDateDays(new Date(), -NumConstant.ONE), DateUtils.DATE_PATTERN); - } else { - statsDate = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); - } + Date statsDate = getStatsDateFromParam(formDTO); DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); - int pageNo = NumConstant.ONE; - int pageSize = NumConstant.ONE_HUNDRED; - List customerIdList = null; - do { - customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); - if (!CollectionUtils.isEmpty(customerIdList)) { - for (String customerId : customerIdList) { - try { - statsTagViewedDaily(statsDate, dimIdBean, customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedDailyStatsjob", customerId, dimIdBean.getDateId()), e); + if (null != formDTO && StringUtils.isNotBlank(formDTO.getCustomerId())) { + try { + statsTagUsedMonthly(dimIdBean.getMonthId(), formDTO.getCustomerId()); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagUsedMonthlyStatsjob", customerId, dimIdBean.getMonthId()), e); + } + + } else { + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + List customerIdList = null; + do { + customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); + if (!CollectionUtils.isEmpty(customerIdList)) { + for (String customerId : customerIdList) { + try { + statsTagViewedDaily(statsDate, dimIdBean, customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedDailyStatsjob", customerId, dimIdBean.getDateId()), e); + } } } - } - } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } + return true; } @Override - public Boolean tagViewedMonthlyStatsjob(Date statsDate) { - //如果不传时间 则统计数据为今天之前的数据和,否则统计的是截止到传入的日期数据的和 - if (statsDate == null) { - //当天的凌晨时间 即为今天之前的数据 - statsDate = DateUtils.integrate(DateUtils.addDateDays(new Date(), -NumConstant.ONE), DateUtils.DATE_PATTERN); - } else { - statsDate = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); - } + public Boolean tagViewedMonthlyStatsjob(StatsFormDTO formDTO) { + Date statsDate = getStatsDateFromParam(formDTO); DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); - int pageNo = NumConstant.ONE; - int pageSize = NumConstant.ONE_HUNDRED; - List customerIdList = null; - do { - customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); - if (!CollectionUtils.isEmpty(customerIdList)) { - for (String customerId : customerIdList) { - try { - statsTagViewedMonthly(dimIdBean.getMonthId(), customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedMonthlyStatsjob", customerId, dimIdBean.getDateId()), e); + if (null != formDTO && StringUtils.isNotBlank(formDTO.getCustomerId())) { + try { + statsTagViewedMonthly(dimIdBean.getMonthId(), formDTO.getCustomerId()); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedMonthlyStatsjob", formDTO.getCustomerId(), dimIdBean.getDateId()), e); + } + } else { + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + List customerIdList = null; + do { + customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); + if (!CollectionUtils.isEmpty(customerIdList)) { + for (String customerId : customerIdList) { + try { + statsTagViewedMonthly(dimIdBean.getMonthId(), customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedMonthlyStatsjob", customerId, dimIdBean.getDateId()), e); + } } } - } - } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } return true; } @Override - public Boolean tagUsedQuarterlyStatsjob(Date statsDate) { - //如果不传时间 则统计数据为今天之前的数据和,否则统计的是截止到传入的日期数据的和 - if (statsDate == null) { - //当天的凌晨时间 即为今天之前的数据 - statsDate = DateUtils.integrate(DateUtils.addDateDays(new Date(), -NumConstant.ONE), DateUtils.DATE_PATTERN); - } else { - statsDate = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); - } + public Boolean tagUsedQuarterlyStatsjob(StatsFormDTO formDTO) { + Date statsDate = getStatsDateFromParam(formDTO); DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); - int pageNo = NumConstant.ONE; - int pageSize = NumConstant.ONE_HUNDRED; - List customerIdList = null; - do { - customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); - if (!CollectionUtils.isEmpty(customerIdList)) { - for (String customerId : customerIdList) { - try { - log.debug("start === statsTagUsedQuarterly "); - statsTagUsedQuarterly(dimIdBean.getQuarterId(), customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedQuarterly", customerId, dimIdBean.getQuarterId()), e); - } - try { - log.debug("start === statsTagUsedQuarterly "); - statsTagUsedYearly(dimIdBean.getYearId(), customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedYearly", customerId, dimIdBean.getYearId()), e); - } + if (null != formDTO && StringUtils.isNotBlank(formDTO.getCustomerId())) { + try { + try { + log.debug("start === statsTagUsedQuarterly "); + statsTagUsedQuarterly(dimIdBean.getQuarterId(), formDTO.getCustomerId()); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedQuarterly", formDTO.getCustomerId(), dimIdBean.getQuarterId()), e); } + try { + log.debug("start === statsTagUsedQuarterly "); + statsTagUsedYearly(dimIdBean.getYearId(), formDTO.getCustomerId()); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedYearly", formDTO.getCustomerId(), dimIdBean.getYearId()), e); + } + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedMonthlyStatsjob", formDTO.getCustomerId(), dimIdBean.getDateId()), e); } - } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } else { + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + List customerIdList = null; + do { + customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); + if (!CollectionUtils.isEmpty(customerIdList)) { + for (String customerId : customerIdList) { + try { + log.debug("start === statsTagUsedQuarterly "); + statsTagUsedQuarterly(dimIdBean.getQuarterId(), customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedQuarterly", customerId, dimIdBean.getQuarterId()), e); + } + try { + log.debug("start === statsTagUsedQuarterly "); + statsTagUsedYearly(dimIdBean.getYearId(), customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagUsedYearly", customerId, dimIdBean.getYearId()), e); + } + } + } + } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } return true; } @Override - public Boolean tagViewedQuarterlyStatsjob(Date statsDate) { - //如果不传时间 则统计数据为今天之前的数据和,否则统计的是截止到传入的日期数据的和 - if (statsDate == null) { - //当天的凌晨时间 即为今天之前的数据 - statsDate = DateUtils.integrate(DateUtils.addDateDays(new Date(), -NumConstant.ONE), DateUtils.DATE_PATTERN); - } else { - statsDate = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); - } + public Boolean tagViewedQuarterlyStatsjob(StatsFormDTO formDTO) { + Date statsDate = getStatsDateFromParam(formDTO); DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); - int pageNo = NumConstant.ONE; - int pageSize = NumConstant.ONE_HUNDRED; - List customerIdList = null; - do { - customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); - if (!CollectionUtils.isEmpty(customerIdList)) { - for (String customerId : customerIdList) { - try { - log.debug("start === statsTagViewedQuarterly "); - statsTagViewedQuarterly(dimIdBean.getQuarterId(), customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", customerId, dimIdBean.getQuarterId()), e); - } - try { - log.debug("start === statsTagViewedYearly "); - statsTagViewedYearly(dimIdBean.getYearId(), customerId); - } catch (Exception e) { - log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", customerId, dimIdBean.getYearId()), e); + if (null != formDTO && StringUtils.isNotBlank(formDTO.getCustomerId())) { + try { + log.debug("start === statsTagViewedQuarterly "); + statsTagViewedQuarterly(dimIdBean.getQuarterId(), formDTO.getCustomerId()); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", formDTO.getCustomerId(), dimIdBean.getQuarterId()), e); + } + try { + log.debug("start === statsTagViewedYearly "); + statsTagViewedYearly(dimIdBean.getYearId(), formDTO.getCustomerId()); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", formDTO.getCustomerId(), dimIdBean.getYearId()), e); + } + } else { + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + List customerIdList = null; + do { + customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); + if (!CollectionUtils.isEmpty(customerIdList)) { + for (String customerId : customerIdList) { + try { + log.debug("start === statsTagViewedQuarterly "); + statsTagViewedQuarterly(dimIdBean.getQuarterId(), customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", customerId, dimIdBean.getQuarterId()), e); + } + try { + log.debug("start === statsTagViewedYearly "); + statsTagViewedYearly(dimIdBean.getYearId(), customerId); + } catch (Exception e) { + log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "statsTagViewedQuarterly", customerId, dimIdBean.getYearId()), e); + } } } - } - } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); + } + return true; } @@ -870,13 +922,13 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { */ private void statsTagViewedQuarterly(String quarterId, String customerId) { List gridMonthlyList = factTagViewedGridMonthlyService.getTagViewedCountByQuarterId(customerId, quarterId); - log.debug("statsTagViewedQuarterly grid quarterId:{},customerId:{},result:{}",quarterId,customerId,JSON.toJSONString(gridMonthlyList)); + log.debug("statsTagViewedQuarterly grid quarterId:{},customerId:{},result:{}", quarterId, customerId, JSON.toJSONString(gridMonthlyList)); if (!CollectionUtils.isEmpty(gridMonthlyList)) { List gridQuarterlyList = ConvertUtils.sourceToTarget(gridMonthlyList, FactTagViewedGridQuarterlyEntity.class); factTagViewedGridQuarterlyService.deleteAndInsertByQuarterId(customerId, quarterId, gridQuarterlyList); } List agencyMonthlyList = factTagViewedAgencyMonthlyService.getTagViewedCountByQuarterId(customerId, quarterId); - log.debug("statsTagViewedQuarterly agency quarterId:{},customerId:{},result:{}",quarterId,customerId,JSON.toJSONString(gridMonthlyList)); + log.debug("statsTagViewedQuarterly agency quarterId:{},customerId:{},result:{}", quarterId, customerId, JSON.toJSONString(gridMonthlyList)); if (!CollectionUtils.isEmpty(agencyMonthlyList)) { List agencyQuarterlyList = ConvertUtils.sourceToTarget(agencyMonthlyList, FactTagViewedAgencyQuarterlyEntity.class); factTagViewedAgencyQuarterlyService.deleteAndInsertByQuarterId(customerId, quarterId, agencyQuarterlyList); @@ -915,13 +967,13 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { */ private void statsTagViewedYearly(String yearId, String customerId) { List gridMonthlyList = factTagViewedGridMonthlyService.getTagViewedCountByYearId(customerId, yearId); - log.debug("statsTagViewedYearly grid yearId:{},customerId:{},result:{}",yearId,customerId,JSON.toJSONString(gridMonthlyList)); + log.debug("statsTagViewedYearly grid yearId:{},customerId:{},result:{}", yearId, customerId, JSON.toJSONString(gridMonthlyList)); if (!CollectionUtils.isEmpty(gridMonthlyList)) { List gridYearlyList = ConvertUtils.sourceToTarget(gridMonthlyList, FactTagViewedGridYearlyEntity.class); factTagViewedGridYearlyService.deleteAndInsertByYearId(customerId, yearId, gridYearlyList); } List agencyMonthlyList = factTagViewedAgencyMonthlyService.getTagViewedCountByYearId(customerId, yearId); - log.debug("statsTagViewedYearly agency yearId:{},customerId:{},result:{}",yearId,customerId,JSON.toJSONString(agencyMonthlyList)); + log.debug("statsTagViewedYearly agency yearId:{},customerId:{},result:{}", yearId, customerId, JSON.toJSONString(agencyMonthlyList)); if (!CollectionUtils.isEmpty(agencyMonthlyList)) { List agencyYearlyList = ConvertUtils.sourceToTarget(agencyMonthlyList, FactTagViewedAgencyYearlyEntity.class); factTagViewedAgencyYearlyService.deleteAndInsertByYearId(customerId, yearId, agencyYearlyList);