Browse Source
# Conflicts: # epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.javadev_shibei_match
32 changed files with 477 additions and 254 deletions
@ -0,0 +1,33 @@ |
|||||
|
package com.epmet.dto.extract.form; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
/** |
||||
|
* desc: 从业务数据抽取到统计库Form DTO |
||||
|
* |
||||
|
* @Author zxc |
||||
|
* @DateTime 2020/9/16 6:01 下午 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class AggregationExtractFormDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = -5488214001979782952L; |
||||
|
|
||||
|
private String customerId; |
||||
|
/** |
||||
|
* 开始日期 yyyy-MM-dd |
||||
|
*/ |
||||
|
private String startDate; |
||||
|
|
||||
|
/** |
||||
|
* 结束日期 yyyy-MM-dd |
||||
|
*/ |
||||
|
private String endDate; |
||||
|
|
||||
|
/** |
||||
|
* 抽取类型 monthly,daily |
||||
|
*/ |
||||
|
private String type; |
||||
|
} |
@ -0,0 +1,163 @@ |
|||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.constant.StrConstant; |
||||
|
import com.epmet.commons.tools.utils.DateUtils; |
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dto.StatsFormDTO; |
||||
|
import com.epmet.dto.extract.form.AggregationExtractFormDTO; |
||||
|
import com.epmet.dto.group.form.GroupStatsFormDTO; |
||||
|
import com.epmet.service.*; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
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.List; |
||||
|
|
||||
|
/** |
||||
|
* @author liujianjun |
||||
|
* @Description 业务数据聚合统计 |
||||
|
* @ClassName FactAggregationExtractController |
||||
|
* @Date 2020-06-23 15:18 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@RestController |
||||
|
@RequestMapping("fact/aggregation") |
||||
|
public class FactAggregationExtractController { |
||||
|
@Autowired |
||||
|
private StatsGroupService statsGroupService; |
||||
|
@Autowired |
||||
|
private StatsUserService statsUserService; |
||||
|
@Autowired |
||||
|
private StatsTopicService statsTopicService; |
||||
|
@Autowired |
||||
|
private StatsIssueService statsIssueService; |
||||
|
@Autowired |
||||
|
private StatsProjectService statsProjectService; |
||||
|
@Autowired |
||||
|
private StatsPublicityService statsPublicityService; |
||||
|
|
||||
|
/** |
||||
|
* desc: 按月或者天抽取业务数据到统计库 |
||||
|
* |
||||
|
* @param formDTO |
||||
|
* @return com.epmet.commons.tools.utils.Result |
||||
|
* @author LiuJanJun |
||||
|
* @date 2020/11/10 3:14 下午 |
||||
|
*/ |
||||
|
@RequestMapping("extractDailyOrMonthly") |
||||
|
public Result extractDaily(@RequestBody AggregationExtractFormDTO formDTO) { |
||||
|
if (StringUtils.isBlank(formDTO.getStartDate()) && StringUtils.isBlank(formDTO.getEndDate())) { |
||||
|
log.error("抽取日期范围不能为空"); |
||||
|
return new Result().error(); |
||||
|
} |
||||
|
if (formDTO.getStartDate().indexOf(StrConstant.HYPHEN) < 0 || formDTO.getEndDate().indexOf(StrConstant.HYPHEN) < 0) { |
||||
|
log.error("抽取日期范围格式不正确,yyyy-MM-dd"); |
||||
|
return new Result().error(); |
||||
|
} |
||||
|
List<String> daysBetween = DateUtils.getDaysBetween(formDTO.getStartDate(), formDTO.getEndDate(), DateUtils.DATE_PATTERN, DateUtils.DATE_PATTERN); |
||||
|
daysBetween.forEach(dateId -> { |
||||
|
Date date = DateUtils.parse(dateId, DateUtils.DATE_PATTERN); |
||||
|
StatsFormDTO param = new StatsFormDTO(); |
||||
|
param.setCustomerId(formDTO.getCustomerId()); |
||||
|
param.setDate(dateId); |
||||
|
|
||||
|
switch (formDTO.getType()) { |
||||
|
case "monthly": |
||||
|
extractGroupDataMonthly(param); |
||||
|
extractArticleDataMonthlyAndQuarterly(param); |
||||
|
break; |
||||
|
default: |
||||
|
extractUserDataDaily(param); |
||||
|
extractGroupDataDaily(param); |
||||
|
extractTopicDataDaily(param); |
||||
|
extractIssueDataDaily(param); |
||||
|
extractProjectDataDaily(param); |
||||
|
extractAtricleDataDaily(param); |
||||
|
} |
||||
|
}); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
private void extractUserDataDaily(StatsFormDTO formDTO) { |
||||
|
try { |
||||
|
statsUserService.partition(formDTO); |
||||
|
} catch (Exception e) { |
||||
|
log.error("抽取【用户】数据失败", e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void extractTopicDataDaily(StatsFormDTO formDTO) { |
||||
|
try { |
||||
|
statsTopicService.partition(formDTO); |
||||
|
} catch (Exception e) { |
||||
|
log.error("抽取【话题】数据失败", e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void extractIssueDataDaily(StatsFormDTO formDTO) { |
||||
|
try { |
||||
|
statsIssueService.agencyGridIssueStats(formDTO); |
||||
|
} catch (Exception e) { |
||||
|
log.error("抽取【议题】数据失败", e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void extractProjectDataDaily(StatsFormDTO formDTO) { |
||||
|
try { |
||||
|
statsProjectService.gridProjectStats(formDTO); |
||||
|
statsProjectService.agencyProjectStats(formDTO); |
||||
|
} catch (Exception e) { |
||||
|
log.error("抽取【项目】数据失败", e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void extractAtricleDataDaily(StatsFormDTO formDTO) { |
||||
|
try { |
||||
|
statsPublicityService.articleSummaryDailyStatsjob(formDTO); |
||||
|
statsPublicityService.tagUsedDailyStatsjob(formDTO); |
||||
|
statsPublicityService.tagViewedDailyStatsjob(formDTO); |
||||
|
} catch (Exception e) { |
||||
|
log.error("抽取【文章】数据失败", e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void extractGroupDataDaily(StatsFormDTO formDTO) { |
||||
|
try { |
||||
|
GroupStatsFormDTO groupStatsFormDTO = new GroupStatsFormDTO(); |
||||
|
groupStatsFormDTO.setDate(formDTO.getDate()); |
||||
|
groupStatsFormDTO.setCustomerId(formDTO.getCustomerId()); |
||||
|
|
||||
|
statsGroupService.groupGridDaily(groupStatsFormDTO); |
||||
|
statsGroupService.groupAgencyDaily(groupStatsFormDTO); |
||||
|
} catch (Exception e) { |
||||
|
log.error("抽取【小组】数据失败", e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void extractGroupDataMonthly(StatsFormDTO formDTO) { |
||||
|
try { |
||||
|
GroupStatsFormDTO groupStatsFormDTO = new GroupStatsFormDTO(); |
||||
|
groupStatsFormDTO.setDate(formDTO.getDate()); |
||||
|
groupStatsFormDTO.setCustomerId(formDTO.getCustomerId()); |
||||
|
|
||||
|
statsGroupService.groupAgencyMonthly(groupStatsFormDTO); |
||||
|
} catch (Exception e) { |
||||
|
log.error("抽取【小组】数据失败", e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void extractArticleDataMonthlyAndQuarterly(StatsFormDTO formDTO) { |
||||
|
try { |
||||
|
statsPublicityService.tagUsedMonthlyStatsjob(formDTO); |
||||
|
statsPublicityService.tagUsedQuarterlyStatsjob(formDTO); |
||||
|
statsPublicityService.tagViewedMonthlyStatsjob(formDTO); |
||||
|
statsPublicityService.tagViewedQuarterlyStatsjob(formDTO); |
||||
|
} catch (Exception e) { |
||||
|
log.error("抽取【文章】数据失败", e); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -1,15 +1,16 @@ |
|||||
package com.epmet.service; |
package com.epmet.service; |
||||
|
|
||||
import com.epmet.commons.tools.utils.Result; |
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dto.StatsFormDTO; |
||||
|
|
||||
public interface StatsTopicService { |
public interface StatsTopicService { |
||||
|
|
||||
/** |
/** |
||||
* @Description 调用统计服务执行统计 - 话题 |
|
||||
* @param |
* @param |
||||
* @return |
* @return |
||||
|
* @Description 调用统计服务执行统计 - 话题 |
||||
* @author wangc |
* @author wangc |
||||
* @date 2020.06.29 09:40 |
* @date 2020.06.29 09:40 |
||||
**/ |
**/ |
||||
Result execTopicStatistical(String date); |
Result execTopicStatistical(StatsFormDTO formDTO); |
||||
} |
} |
||||
|
@ -1,15 +1,16 @@ |
|||||
package com.epmet.service; |
package com.epmet.service; |
||||
|
|
||||
import com.epmet.commons.tools.utils.Result; |
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dto.StatsFormDTO; |
||||
|
|
||||
public interface StatsUserService { |
public interface StatsUserService { |
||||
|
|
||||
/** |
/** |
||||
* @Description 调用统计服务-用户 |
|
||||
* @param |
* @param |
||||
* @return |
* @return |
||||
|
* @Description 调用统计服务-用户 |
||||
* @author wangc |
* @author wangc |
||||
* @date 2020.06.29 09:39 |
* @date 2020.06.29 09:39 |
||||
**/ |
**/ |
||||
Result execUserStatistical(String date); |
Result execUserStatistical(StatsFormDTO formDTO); |
||||
} |
} |
||||
|
Loading…
Reference in new issue