Browse Source

代码暂存

master
jianjun 5 years ago
parent
commit
212ea20a51
  1. 106
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java

106
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java

@ -5,6 +5,7 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.DimAgencyConstant;
import com.epmet.constant.ProjectConstant; import com.epmet.constant.ProjectConstant;
import com.epmet.dto.voice.ArticleGridPublishedSummaryDTO; import com.epmet.dto.voice.ArticleGridPublishedSummaryDTO;
import com.epmet.dto.voice.ArticleViewedSummaryDTO; import com.epmet.dto.voice.ArticleViewedSummaryDTO;
@ -121,15 +122,15 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
for (String customerId : customerIdList) { for (String customerId : customerIdList) {
Date finalStatsDate = statsDate; Date finalStatsDate = statsDate;
try { try {
//key:所在机关Id //key:所在机关Id
Map<String, ArticleGridPublishedSummaryDTO> agencySummaryMap = new HashMap<>(); Map<String, ArticleGridPublishedSummaryDTO> agencySummaryMap = new HashMap<>();
statsPublishedGridDaily(finalStatsDate, dimIdBean, customerId, agencySummaryMap); statsPublishedGridDaily(finalStatsDate, dimIdBean, customerId, agencySummaryMap);
statsPublishedDepartmentDaily(finalStatsDate, dimIdBean, customerId, agencySummaryMap); statsPublishedDepartmentDaily(finalStatsDate, dimIdBean, customerId, agencySummaryMap);
statsPublishedAgencyDaily(finalStatsDate, dimIdBean, customerId, agencySummaryMap); statsPublishedAgencyDaily(finalStatsDate, dimIdBean, customerId, agencySummaryMap);
} catch (Exception e) { } catch (Exception e) {
log.error("articlePublishedCountDayStats exception", e); log.error("articlePublishedCountDayStats exception", e);
} }
} }
} }
@ -340,7 +341,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
log.warn("publicitySummary getDepartmentListByCustomerId return empty,customerId:{}", customerId); log.warn("publicitySummary getDepartmentListByCustomerId return empty,customerId:{}", customerId);
return; return;
} }
executorService.submit(()->{ executorService.submit(() -> {
//转换为 需要插入的Entity //转换为 需要插入的Entity
Map<String, FactArticlePublishedDepartmentDailyEntity> departmentDailyEntityMap = convertDepartmentDailyEntity(departmentDTOList, dimIdBean); Map<String, FactArticlePublishedDepartmentDailyEntity> departmentDailyEntityMap = convertDepartmentDailyEntity(departmentDTOList, dimIdBean);
//获取当天的业务数据 //获取当天的业务数据
@ -402,7 +403,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
log.warn("publicitySummary getGridListByCustomerId return empty,customerId:{}", customerId); log.warn("publicitySummary getGridListByCustomerId return empty,customerId:{}", customerId);
return; return;
} }
executorService.submit(()->{ executorService.submit(() -> {
//转换为 需要插入的Entity //转换为 需要插入的Entity
Map<String, FactArticlePublishedGridDailyEntity> gridDailyEntityMap = convertGridDailyEntity(gridDTOList, dimIdBean); Map<String, FactArticlePublishedGridDailyEntity> gridDailyEntityMap = convertGridDailyEntity(gridDTOList, dimIdBean);
//获取当天的业务数据 //获取当天的业务数据
@ -432,12 +433,13 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
log.warn("publicitySummary getAgencyListByCustomerId return empty,customerId:{}", customerId); log.warn("publicitySummary getAgencyListByCustomerId return empty,customerId:{}", customerId);
return; return;
} }
executorService.submit(()->{ executorService.submit(() -> {
//转换为 需要插入的Entity //转换为 需要插入的Entity
Map<String, FactArticlePublishedAgencyDailyEntity> agencyDailyEntityMap = convertAgencyDailyEntity(agencyDTOList, dimIdBean); Map<String, FactArticlePublishedAgencyDailyEntity> agencyDailyEntityMap = convertAgencyDailyEntity(agencyDTOList, dimIdBean);
//获取当天的业务数据 //获取当天的业务数据
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllAgencyPublishedCount(customerId, statsDate); List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllAgencyPublishedCount(customerId, statsDate);
Map<String, FactArticlePublishedAgencyDailyEntity> haveDataAgencyDailyMap = new HashMap<>(); Map<String, FactArticlePublishedAgencyDailyEntity> haveDataAgencyDailyMap = new HashMap<>();
Map<String, FactArticlePublishedAgencyDailyEntity> haveDataAgencyDailySelfMap = new HashMap<>();
if (!CollectionUtils.isEmpty(publishedArticleCount)) { if (!CollectionUtils.isEmpty(publishedArticleCount)) {
for (ArticleGridPublishedSummaryDTO summaryDTO : publishedArticleCount) { for (ArticleGridPublishedSummaryDTO summaryDTO : publishedArticleCount) {
FactArticlePublishedAgencyDailyEntity gridDailyEntities = agencyDailyEntityMap.get(summaryDTO.getPublisherId()); FactArticlePublishedAgencyDailyEntity gridDailyEntities = agencyDailyEntityMap.get(summaryDTO.getPublisherId());
@ -447,9 +449,17 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
} }
gridDailyEntities.setArticleTotalCount(summaryDTO.getArticleTotalCount()); gridDailyEntities.setArticleTotalCount(summaryDTO.getArticleTotalCount());
gridDailyEntities.setArticlePublishedCount(summaryDTO.getArticlePublishedCount()); gridDailyEntities.setArticlePublishedCount(summaryDTO.getArticlePublishedCount());
//同一个机关下数据累加
buildAgencySummaryData(agencySummaryMap, summaryDTO);
haveDataAgencyDailyMap.put(summaryDTO.getAgencyId(), gridDailyEntities); haveDataAgencyDailyMap.put(summaryDTO.getAgencyId(), gridDailyEntities);
//同一个机关下数据累加
//buildAgencySummaryData(agencySummaryMap, summaryDTO);
//构建机关自己的数据
FactArticlePublishedAgencyDailyEntity selfDaily = ConvertUtils.sourceToTarget(dimIdBean, FactArticlePublishedAgencyDailyEntity.class);
selfDaily.setCustomerId(gridDailyEntities.getCustomerId());
selfDaily.setPid(gridDailyEntities.getPid());
selfDaily.setAgencyId(summaryDTO.getAgencyId().concat(DimAgencyConstant.TYPE_SELF_ID_SUFFIX));
selfDaily.setArticleTotalCount(summaryDTO.getArticleTotalCount());
selfDaily.setArticlePublishedCount(summaryDTO.getArticlePublishedCount());
haveDataAgencyDailySelfMap.put(selfDaily.getAgencyId(), selfDaily);
} }
} }
//数据向上级机关添加 //数据向上级机关添加
@ -465,7 +475,10 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
setPublishedData2ParentAgency(agencyDailyEntityMap, summary, dailyEntity); setPublishedData2ParentAgency(agencyDailyEntityMap, summary, dailyEntity);
} }
} }
//将机关本身的数据插入
if (!CollectionUtils.isEmpty(haveDataAgencyDailySelfMap)) {
agencyDailyEntityMap.putAll(haveDataAgencyDailySelfMap);
}
boolean b = factArticlePublishedAgencyDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), agencyDailyEntityMap.values()); boolean b = factArticlePublishedAgencyDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), agencyDailyEntityMap.values());
}); });
@ -495,6 +508,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
Map<String, FactTagUsedGridDailyEntity> tagUsedGridDailyMap = new HashMap<>(); Map<String, FactTagUsedGridDailyEntity> tagUsedGridDailyMap = new HashMap<>();
Map<String, FactTagUsedDepartmentDailyEntity> tagUsedDeptDailyMap = new HashMap<>(); Map<String, FactTagUsedDepartmentDailyEntity> tagUsedDeptDailyMap = new HashMap<>();
Map<String, FactTagUsedAgencyDailyEntity> tagUsedAgencyDailyMap = new HashMap<>(); Map<String, FactTagUsedAgencyDailyEntity> tagUsedAgencyDailyMap = new HashMap<>();
Map<String, FactTagUsedAgencyDailyEntity> tagUsedAgencyDailySelfMap = new HashMap<>();
//获取当天的业务数据 //获取当天的业务数据
//1获取文章及机关id,网格Id //1获取文章及机关id,网格Id
List<ArticleEntity> publishedArticleList = articleService.getPublishedArticleByPublishTime(customerId, statsDate); List<ArticleEntity> publishedArticleList = articleService.getPublishedArticleByPublishTime(customerId, statsDate);
@ -528,7 +542,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
convertTagUsedDepartmentDailyEntity(tagUsedDeptDailyMap, articleEntity, tagEntity, dimIdBean); convertTagUsedDepartmentDailyEntity(tagUsedDeptDailyMap, articleEntity, tagEntity, dimIdBean);
break; break;
case ProjectConstant.PUBLISHER_TYPE_AGENCY: case ProjectConstant.PUBLISHER_TYPE_AGENCY:
convertTagUsedAgencyDailyEntity(dimAgencyEntity.getPid(), tagUsedAgencyDailyMap, articleEntity, tagEntity, dimIdBean); convertTagUsedAgencyDailySelfEntity(dimAgencyEntity.getPid(), tagUsedAgencyDailySelfMap, articleEntity, tagEntity, dimIdBean);
break; break;
} }
} }
@ -581,6 +595,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
//转换为 需要插入的Entity key gridId_tagId //转换为 需要插入的Entity key gridId_tagId
Map<String, FactTagViewedGridDailyEntity> tagViewedGridDailyMap = new HashMap<>(); Map<String, FactTagViewedGridDailyEntity> tagViewedGridDailyMap = new HashMap<>();
Map<String, FactTagViewedAgencyDailyEntity> tagViewedAgencyDailyMap = new HashMap<>(); Map<String, FactTagViewedAgencyDailyEntity> tagViewedAgencyDailyMap = new HashMap<>();
Map<String, FactTagViewedAgencyDailyEntity> tagViewedAgencyDailySelfMap = new HashMap<>();
//获取当天的业务数据 //获取当天的业务数据
//1获取今天文章的阅读记录数 //1获取今天文章的阅读记录数
Date startTime = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN); Date startTime = DateUtils.integrate(statsDate, DateUtils.DATE_PATTERN);
@ -595,6 +610,14 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
if (CollectionUtils.isEmpty(articleTagsList)) { if (CollectionUtils.isEmpty(articleTagsList)) {
continue; continue;
} }
ArticleEntity articleEntity = articleService.selectById(viewedSummaryDTO.getArticleId());
if (articleEntity == null) {
continue;
}
boolean isAgencyPublished = false;
if (ProjectConstant.PUBLISHER_TYPE_AGENCY.equals(articleEntity.getPublisherType())) {
isAgencyPublished = true;
}
String gridId = viewedSummaryDTO.getGridId(); String gridId = viewedSummaryDTO.getGridId();
DimGridEntity dimGridEntity = dimGridEntityMap.get(gridId); DimGridEntity dimGridEntity = dimGridEntityMap.get(gridId);
@ -603,10 +626,13 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
continue; continue;
} }
DimAgencyEntity dimAgencyEntity = dimAgencyEntityMap.get(dimGridEntity.getAgencyId()); DimAgencyEntity dimAgencyEntity = dimAgencyEntityMap.get(dimGridEntity.getAgencyId());
articleTagsList.forEach(articleTag -> { for (ArticleTagsEntity articleTag : articleTagsList) {
convertTagViewedGridDailyEntity(dimAgencyEntity, tagViewedGridDailyMap, articleTag, viewedSummaryDTO, dimIdBean); convertTagViewedGridDailyEntity(dimAgencyEntity, tagViewedGridDailyMap, articleTag, viewedSummaryDTO, dimIdBean);
convertTagViewedAgencyDailyEntity(dimAgencyEntity, tagViewedAgencyDailyMap, articleTag, viewedSummaryDTO, dimIdBean); convertTagViewedAgencyDailyEntity(dimAgencyEntity, tagViewedAgencyDailyMap, articleTag, viewedSummaryDTO, dimIdBean);
}); if (isAgencyPublished) {
convertTagViewedAgencyDailySelfEntity(dimAgencyEntity, tagViewedAgencyDailySelfMap, articleTag, viewedSummaryDTO, dimIdBean);
}
}
} }
factTagViewedGridDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), tagViewedGridDailyMap.values()); factTagViewedGridDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), tagViewedGridDailyMap.values());
@ -619,11 +645,15 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
FactTagViewedAgencyDailyEntity currentEntity = entry.getValue(); FactTagViewedAgencyDailyEntity currentEntity = entry.getValue();
DimAgencyEntity dimAgencyEntity = dimAgencyEntityMap.get(currentEntity.getAgencyId()); DimAgencyEntity dimAgencyEntity = dimAgencyEntityMap.get(currentEntity.getAgencyId());
if (dimAgencyEntity == null) { if (dimAgencyEntity == null) {
log.error("dimAgencyEntityMap bizData agencyId:{} not exist in dimAgency", agencyId); log.error("dimAgencyEntityMap bizData agencyId:{} not exist in dimAgency", agencyId);
continue; continue;
} }
setTagViewedData2ParentAgency(dimAgencyEntityMap, finalTagUsedAgencyDailyMap, currentEntity, dimIdBean); setTagViewedData2ParentAgency(dimAgencyEntityMap, finalTagUsedAgencyDailyMap, currentEntity, dimIdBean);
} }
if (!CollectionUtils.isEmpty(tagViewedAgencyDailySelfMap)) {
finalTagUsedAgencyDailyMap.putAll(tagViewedAgencyDailySelfMap);
}
factTagViewedAgencyDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), finalTagUsedAgencyDailyMap.values()); factTagViewedAgencyDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), finalTagUsedAgencyDailyMap.values());
} }
@ -969,6 +999,25 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
} }
} }
private void convertTagUsedAgencyDailySelfEntity(String pid, Map<String, FactTagUsedAgencyDailyEntity> result, ArticleEntity articleEntity, ArticleTagsEntity tagEntity, DimIdGenerator.DimIdBean dimIdBean) {
String agencyId = articleEntity.getOrgId().concat(DimAgencyConstant.TYPE_SELF_ID_SUFFIX);
String tagId = tagEntity.getTagId();
String key = agencyId.concat(StrConstant.UNDER_LINE).concat(tagId);
FactTagUsedAgencyDailyEntity entity = result.get(key);
if (entity == null) {
entity = ConvertUtils.sourceToTarget(dimIdBean, FactTagUsedAgencyDailyEntity.class);
entity.setPid(pid);
entity.setCustomerId(articleEntity.getCustomerId());
entity.setAgencyId(agencyId);
entity.setTagId(tagId);
entity.setTagName(tagEntity.getTagName());
entity.setUsedCount(1);
result.put(key, entity);
} else {
entity.setUsedCount(entity.getUsedCount() + 1);
}
}
private void convertTagViewedGridDailyEntity(DimAgencyEntity dimAgencyEntity, Map<String, FactTagViewedGridDailyEntity> result, private void convertTagViewedGridDailyEntity(DimAgencyEntity dimAgencyEntity, Map<String, FactTagViewedGridDailyEntity> result,
ArticleTagsEntity tagEntity, ArticleViewedSummaryDTO viewedSummaryDTO, DimIdGenerator.DimIdBean dimIdBean) { ArticleTagsEntity tagEntity, ArticleViewedSummaryDTO viewedSummaryDTO, DimIdGenerator.DimIdBean dimIdBean) {
String gridId = viewedSummaryDTO.getGridId(); String gridId = viewedSummaryDTO.getGridId();
@ -1010,4 +1059,25 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
entity.setTagReadCount(entity.getTagReadCount() + viewedCount); entity.setTagReadCount(entity.getTagReadCount() + viewedCount);
} }
} }
private void convertTagViewedAgencyDailySelfEntity(DimAgencyEntity dimAgencyEntity, Map<String, FactTagViewedAgencyDailyEntity> result,
ArticleTagsEntity tagEntity, ArticleViewedSummaryDTO viewedSummaryDTO, DimIdGenerator.DimIdBean dimIdBean) {
String agencyId = dimAgencyEntity.getId().concat(DimAgencyConstant.TYPE_SELF_ID_SUFFIX);
String tagId = tagEntity.getTagId();
String key = agencyId.concat(StrConstant.UNDER_LINE).concat(tagId);
Integer viewedCount = viewedSummaryDTO.getViewedCount() == null ? 0 : viewedSummaryDTO.getViewedCount();
FactTagViewedAgencyDailyEntity entity = result.get(key);
if (entity == null) {
entity = ConvertUtils.sourceToTarget(dimIdBean, FactTagViewedAgencyDailyEntity.class);
entity.setPid(dimAgencyEntity.getPid());
entity.setCustomerId(tagEntity.getCustomerId());
entity.setAgencyId(agencyId);
entity.setTagId(tagId);
entity.setTagName(tagEntity.getTagName());
entity.setTagReadCount(viewedCount);
result.put(key, entity);
} else {
entity.setTagReadCount(entity.getTagReadCount() + viewedCount);
}
}
} }

Loading…
Cancel
Save