瀏覽代碼

Merge branch 'banner_history'

zwxi 1 年之前
父節點
當前提交
e56039dc7e
共有 3 個文件被更改,包括 127 次插入0 次删除
  1. 52 0
      controllers/banner.go
  2. 66 0
      models/banner_view_history.go
  3. 9 0
      routers/commentsRouter.go

+ 52 - 0
controllers/banner.go

@@ -269,3 +269,55 @@ func (this *BannerController) Upload() {
 	br.Data = resp
 	return
 }
+
+// @Title
+// @Description banner统计
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Param   BannerType   query   int  true       "分类:1:轮播图,2:头部海报"
+// @Param   KeyWord   query   string  true       "检索关键词"
+// @Success 200 {object} models.BannerListResp
+// @router /statistic [get]
+func (this *BannerController) BannerStatistic() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	urlList, err := models.GetBannerUrlList()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+
+	list, err := models.GetBannerHistoryList()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	//resp := new(models.BannerHistoryListResp)
+
+	souceMap := make(map[string][]*models.SourcePv)
+
+	for _, v := range list {
+		item := &models.SourcePv{
+			FirstSource:     v.FirstSource,
+			SecondSource:    v.SecondSource,
+			Pv:              v.Pv,
+			LastUpdatedTime: v.LastUpdatedTime,
+		}
+		souceMap[v.BannerUrl] = append(souceMap[v.BannerUrl], item)
+	}
+	for _, v := range urlList {
+		v.SourceList = souceMap[v.BannerUrl]
+	}
+
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = urlList
+}

+ 66 - 0
models/banner_view_history.go

@@ -0,0 +1,66 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// BannerViewHistory banner访问历史
+type BannerViewHistory struct {
+	ViewHistoryID   uint64    `orm:"column(view_history_id);pk"` // id
+	UserID          uint64    // 用户id
+	Mobile          string    // 手机号
+	Email           string    // 邮箱
+	RealName        string    // 用户实际名称
+	CompanyName     string    // 公司名称
+	CreatedTime     time.Time // 创建时间
+	LastUpdatedTime time.Time
+	FirstSource     int // 一级来源 1小程序移动 2小程序pc 3研报官网
+	SecondSource    int // 二级来源 1首页 2研报详情页
+	BannerUrl       string
+}
+
+func GetBannerHistoryList() (items []*BannerHistoryListRespItem, err error) {
+	sql := ` SELECT *,COUNT(*) AS pv,MAX(last_updated_time) AS latest_update_time  FROM banner_view_history 
+WHERE 1=1 GROUP BY   
+banner_url,
+  first_source,
+  second_source `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+type SourcePv struct {
+	FirstSource     int
+	SecondSource    int
+	Pv              int
+	LastUpdatedTime string
+}
+
+type BannerHistoryListRespItem struct {
+	ViewHistoryID   uint64    `orm:"column(view_history_id);pk"` // id
+	UserID          uint64    // 用户id
+	Mobile          string    // 手机号
+	Email           string    // 邮箱
+	RealName        string    // 用户实际名称
+	CompanyName     string    // 公司名称
+	CreatedTime     string // 创建时间
+	LastUpdatedTime string
+	FirstSource     int // 一级来源 1小程序移动 2小程序pc 3研报官网
+	SecondSource    int // 二级来源 1首页 2研报详情页
+	BannerUrl       string
+	Pv              int
+	SourceList      []*SourcePv
+}
+
+type BannerHistoryListResp struct {
+	List []*BannerHistoryListRespItem
+}
+
+func GetBannerUrlList() (items []*BannerHistoryListRespItem, err error) {
+	sql := ` SELECT *,COUNT(*) AS pv FROM banner_view_history WHERE 1=1 GROUP BY banner_url `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -8692,6 +8692,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:BannerController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:BannerController"],
+        beego.ControllerComments{
+            Method: "BannerStatistic",
+            Router: `/statistic`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:BannerController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:BannerController"],
         beego.ControllerComments{
             Method: "Upload",