133 lines
4.4 KiB
Go
133 lines
4.4 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/plugin/wechat-integration/service"
|
|
"github.com/gin-gonic/gin"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type MiniStatisticsApi struct{}
|
|
|
|
var miniStatisticsService = service.ServiceGroupApp.MiniStatisticsService
|
|
|
|
// GetMiniStatistics 获取小程序基础统计数据
|
|
// @Tags MiniStatistics
|
|
// @Summary 获取小程序基础统计数据
|
|
// @Description 获取小程序基础统计数据
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Response{data=response.MiniStatisticsResponse} "获取成功"
|
|
// @Router /wechat/mini/statistics [get]
|
|
func (m *MiniStatisticsApi) GetMiniStatistics(c *gin.Context) {
|
|
statistics, err := miniStatisticsService.GetMiniStatistics()
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取小程序基础统计数据失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
|
|
response.OkWithData(statistics, c)
|
|
}
|
|
|
|
// GetVisitTrendData 获取访问趋势数据
|
|
// @Tags MiniStatistics
|
|
// @Summary 获取访问趋势数据
|
|
// @Description 获取小程序访问趋势数据
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param startDate query string false "开始日期"
|
|
// @Param endDate query string false "结束日期"
|
|
// @Success 200 {object} response.Response{data=[]response.VisitTrendData} "获取成功"
|
|
// @Router /wechat/mini/statistics/visit-trend [get]
|
|
func (m *MiniStatisticsApi) GetVisitTrendData(c *gin.Context) {
|
|
startDate := c.Query("startDate")
|
|
endDate := c.Query("endDate")
|
|
|
|
trendData, err := miniStatisticsService.GetVisitTrendData(startDate, endDate)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取访问趋势数据失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
|
|
response.OkWithData(trendData, c)
|
|
}
|
|
|
|
// GetSourceData 获取用户来源分布数据
|
|
// @Tags MiniStatistics
|
|
// @Summary 获取用户来源分布数据
|
|
// @Description 获取小程序用户来源分布数据
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Response{data=[]response.SourceData} "获取成功"
|
|
// @Router /wechat/mini/statistics/source [get]
|
|
func (m *MiniStatisticsApi) GetSourceData(c *gin.Context) {
|
|
sourceData, err := miniStatisticsService.GetSourceData()
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取用户来源分布数据失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
|
|
response.OkWithData(sourceData, c)
|
|
}
|
|
|
|
// GetPageData 获取页面访问数据
|
|
// @Tags MiniStatistics
|
|
// @Summary 获取页面访问数据
|
|
// @Description 获取小程序页面访问数据
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Response{data=[]response.PageData} "获取成功"
|
|
// @Router /wechat/mini/statistics/page [get]
|
|
func (m *MiniStatisticsApi) GetPageData(c *gin.Context) {
|
|
pageData, err := miniStatisticsService.GetPageData()
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取页面访问数据失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
|
|
response.OkWithData(pageData, c)
|
|
}
|
|
|
|
// GetRetentionData 获取用户留存数据
|
|
// @Tags MiniStatistics
|
|
// @Summary 获取用户留存数据
|
|
// @Description 获取小程序用户留存数据
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Response{data=[]response.RetentionData} "获取成功"
|
|
// @Router /wechat/mini/statistics/retention [get]
|
|
func (m *MiniStatisticsApi) GetRetentionData(c *gin.Context) {
|
|
retentionData, err := miniStatisticsService.GetRetentionData()
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取用户留存数据失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
|
|
response.OkWithData(retentionData, c)
|
|
}
|
|
|
|
// GetDeviceData 获取设备分布数据
|
|
// @Tags MiniStatistics
|
|
// @Summary 获取设备分布数据
|
|
// @Description 获取小程序设备分布数据
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Response{data=[]response.DeviceData} "获取成功"
|
|
// @Router /wechat/mini/statistics/device [get]
|
|
func (m *MiniStatisticsApi) GetDeviceData(c *gin.Context) {
|
|
deviceData, err := miniStatisticsService.GetDeviceData()
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取设备分布数据失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
|
|
response.OkWithData(deviceData, c)
|
|
}
|