|
@@ -1,5 +1,7 @@
|
|
|
package org.jeecg.modules.adweb.dmp.controller;
|
|
|
|
|
|
+import static org.jeecg.modules.adweb.dmp.vo.report.SiteOverviewStatsVO.DailyStatsVO;
|
|
|
+
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -8,11 +10,14 @@ import org.apache.commons.lang.StringUtils;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.modules.adweb.common.util.DateUtil;
|
|
|
import org.jeecg.modules.adweb.dmp.service.IGACountryReportService;
|
|
|
+import org.jeecg.modules.adweb.dmp.service.IGADailyReportService;
|
|
|
import org.jeecg.modules.adweb.dmp.service.IGAPagePathReportService;
|
|
|
import org.jeecg.modules.adweb.dmp.service.IGASourceMediumReportService;
|
|
|
import org.jeecg.modules.adweb.dmp.vo.report.CountryStatsVO;
|
|
|
import org.jeecg.modules.adweb.dmp.vo.report.PagePathStatsVO;
|
|
|
+import org.jeecg.modules.adweb.dmp.vo.report.SiteOverviewStatsVO;
|
|
|
import org.jeecg.modules.adweb.dmp.vo.report.SourceMediumStatsVO;
|
|
|
+import org.jeecg.modules.adweb.enquiry.service.IAdwebEnquiryService;
|
|
|
import org.jeecg.modules.adweb.site.service.IAdwebSiteService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
@@ -36,27 +41,50 @@ import java.util.Map;
|
|
|
public class DMPDataController {
|
|
|
|
|
|
@Autowired private IAdwebSiteService adwebSiteService;
|
|
|
+
|
|
|
+ @Autowired private IGADailyReportService gaDailyReportService;
|
|
|
@Autowired private IGASourceMediumReportService gaSourceMediumReportService;
|
|
|
@Autowired private IGACountryReportService gaCountryReportService;
|
|
|
@Autowired private IGAPagePathReportService gaPagePathReportService;
|
|
|
|
|
|
- // /** 网站流量分析统计 */
|
|
|
- // public Result<?> getSiteTraffic(
|
|
|
- // String siteCode,
|
|
|
- // String dateType,
|
|
|
- // @DateTimeFormat(pattern = "yyyy-MM-dd") Date start,
|
|
|
- // @DateTimeFormat(pattern = "yyyy-MM-dd") Date end) {
|
|
|
- // // 1. 计算时间区间
|
|
|
- // if (StringUtils.isNotBlank(dateType)) {
|
|
|
- // Map<String, Date> map = DateUtil.getDateRangeByType(dateType);
|
|
|
- // start = map.get("start");
|
|
|
- // end = map.get("end");
|
|
|
- // } else {
|
|
|
- // if (end != null) {
|
|
|
- // end = DateUtil.addDays(end, 1);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
+ @Autowired private IAdwebEnquiryService adwebEnquiryService;
|
|
|
+
|
|
|
+ /** 网站流量分析统计 */
|
|
|
+ @GetMapping("/site-overview/stats")
|
|
|
+ public Result<SiteOverviewStatsVO> getSiteOverviewStats(
|
|
|
+ String siteCode,
|
|
|
+ String dateType,
|
|
|
+ @DateTimeFormat(pattern = "yyyy-MM-dd") Date start,
|
|
|
+ @DateTimeFormat(pattern = "yyyy-MM-dd") Date end) {
|
|
|
+ // 1. 计算时间区间
|
|
|
+ if (StringUtils.isNotBlank(dateType)) {
|
|
|
+ Map<String, Date> dateRange = DateUtil.getDateRangeByType(dateType);
|
|
|
+ start = dateRange.get("start");
|
|
|
+ end = dateRange.get("end");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. 查询GA Daily Report和Enquiries
|
|
|
+ List<DailyStatsVO> dailyStatsVOs =
|
|
|
+ gaDailyReportService.getDailyStatsWithinPeriod(siteCode, start, end);
|
|
|
+
|
|
|
+ // 3. 生成SiteOverviewStatsVO并返回
|
|
|
+ SiteOverviewStatsVO siteOverviewStatsVO = new SiteOverviewStatsVO();
|
|
|
+ siteOverviewStatsVO.setTotalUsers(
|
|
|
+ dailyStatsVOs.stream().mapToInt(DailyStatsVO::getTotalUsers).sum());
|
|
|
+ siteOverviewStatsVO.setPageViews(
|
|
|
+ dailyStatsVOs.stream().mapToInt(DailyStatsVO::getPageViews).sum());
|
|
|
+ siteOverviewStatsVO.setEnquires(
|
|
|
+ dailyStatsVOs.stream().mapToInt(DailyStatsVO::getEnquires).sum());
|
|
|
+ siteOverviewStatsVO.setDailyPageViews(12.00d);
|
|
|
+ siteOverviewStatsVO.setAvgTimeOnPage(120);
|
|
|
+ siteOverviewStatsVO.setPageViewsPerSession(10);
|
|
|
+ siteOverviewStatsVO.setBounceRate("15.00%");
|
|
|
+ siteOverviewStatsVO.setEnquiryConversionRate("10%");
|
|
|
+
|
|
|
+ siteOverviewStatsVO.setDailyStats(dailyStatsVOs);
|
|
|
+
|
|
|
+ return Result.ok(siteOverviewStatsVO);
|
|
|
+ }
|
|
|
|
|
|
@GetMapping("/source-medium/stats")
|
|
|
public Result<List<SourceMediumStatsVO>> getSourceMediumStats(
|