|
|
@ -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,23 +107,42 @@ 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<String> customerIdList = null; |
|
|
|
String statsDateStr = DateUtils.format(statsDate); |
|
|
|
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); |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
private Date getStatsDateFromParam(StatsFormDTO formDTO) { |
|
|
|
Date statsDate = null; |
|
|
|
if (null != formDTO && StringUtils.isNotBlank(formDTO.getDate())) { |
|
|
|
statsDate = DateUtils.parse(formDTO.getDate(), DateUtils.DATE_PATTERN); |
|
|
|
} else { |
|
|
|
statsDate = DateUtils.integrate(DateUtils.addDateDays(statsDate, -NumConstant.ONE), DateUtils.DATE_PATTERN); |
|
|
|
} |
|
|
|
return statsDate; |
|
|
|
} |
|
|
|
|
|
|
|
private void statsSummaryByCustomerId(DimIdGenerator.DimIdBean dimIdBean, String statsDateStr, String customerId) { |
|
|
|
try { |
|
|
|
//key:所在机关Id
|
|
|
|
Map<String, ArticleGridPublishedSummaryDTO> agencySummaryMap = new HashMap<>(); |
|
|
@ -131,24 +152,21 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("articlePublishedCountDayStats exception", e); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean tagUsedDailyStatsjob(Date statsDate) { |
|
|
|
public Boolean tagUsedDailyStatsjob(StatsFormDTO formDTO) { |
|
|
|
Date statsDate = getStatsDateFromParam(formDTO); |
|
|
|
|
|
|
|
//如果不传时间 则统计数据为今天之前的数据和,否则统计的是截止到传入的日期数据的和
|
|
|
|
if (statsDate == null) { |
|
|
|
//当天的凌晨时间 即为今天之前的数据
|
|
|
|
statsDate = DateUtils.integrate(DateUtils.addDateDays(new Date(), -NumConstant.ONE), DateUtils.DATE_PATTERN); |
|
|
|
} else { |
|
|
|
statsDate = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); |
|
|
|
} |
|
|
|
DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); |
|
|
|
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<String> customerIdList = null; |
|
|
@ -156,29 +174,31 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { |
|
|
|
customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); |
|
|
|
if (!CollectionUtils.isEmpty(customerIdList)) { |
|
|
|
for (String customerId : customerIdList) { |
|
|
|
Date finalStatsDate = statsDate; |
|
|
|
//统计
|
|
|
|
try { |
|
|
|
statsTagUsedDaily(finalStatsDate, dimIdBean, customerId); |
|
|
|
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); |
|
|
|
} |
|
|
|
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<String> customerIdList = null; |
|
|
@ -194,20 +214,21 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { |
|
|
|
} |
|
|
|
} |
|
|
|
} while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean tagViewedDailyStatsjob(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 tagViewedDailyStatsjob(StatsFormDTO formDTO) { |
|
|
|
Date statsDate = getStatsDateFromParam(formDTO); |
|
|
|
DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(statsDate); |
|
|
|
if (null != formDTO && StringUtils.isNotBlank(formDTO.getCustomerId())) { |
|
|
|
try { |
|
|
|
statsTagViewedDaily(statsDate, dimIdBean, formDTO.getCustomerId()); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "tagViewedDailyStatsjob", formDTO.getCustomerId(), dimIdBean.getMonthId()), e); |
|
|
|
} |
|
|
|
} else { |
|
|
|
int pageNo = NumConstant.ONE; |
|
|
|
int pageSize = NumConstant.ONE_HUNDRED; |
|
|
|
List<String> customerIdList = null; |
|
|
@ -223,19 +244,22 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { |
|
|
|
} |
|
|
|
} |
|
|
|
} 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); |
|
|
|
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<String> customerIdList = null; |
|
|
@ -251,19 +275,32 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { |
|
|
|
} |
|
|
|
} |
|
|
|
} 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); |
|
|
|
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); |
|
|
|
} |
|
|
|
} else { |
|
|
|
int pageNo = NumConstant.ONE; |
|
|
|
int pageSize = NumConstant.ONE_HUNDRED; |
|
|
|
List<String> customerIdList = null; |
|
|
@ -286,19 +323,28 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { |
|
|
|
} |
|
|
|
} |
|
|
|
} 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); |
|
|
|
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<String> customerIdList = null; |
|
|
@ -321,6 +367,8 @@ public class StatsPublicityServiceImpl implements StatsPublicityService { |
|
|
|
} |
|
|
|
} |
|
|
|
} while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize); |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|