Explorar o código

Merge branch 'sitemap' of wangfan/adweb3-server into master

wangfan hai 5 meses
pai
achega
47e9aa80ba

+ 45 - 17
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/dmp/controller/DMPDataController.java

@@ -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(

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/dmp/vo/report/SiteOverviewStatsVO.java

@@ -2,6 +2,8 @@ package org.jeecg.modules.adweb.dmp.vo.report;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * 网站综合统计数据VO, GA流量,询盘数据等
  *
@@ -27,6 +29,8 @@ public class SiteOverviewStatsVO {
 
     private String enquiryConversionRate;
 
+    private List<DailyStatsVO> dailyStats;
+
     @Data
     public static class DailyStatsVO {