Browse Source

Merge branch 'banner_history' into debug

zwxi 1 year ago
parent
commit
59554670de
2 changed files with 42 additions and 21 deletions
  1. 19 9
      controllers/banner.go
  2. 23 12
      models/banner_view_history.go

+ 19 - 9
controllers/banner.go

@@ -285,29 +285,39 @@ func (this *BannerController) BannerStatistic() {
 		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)
+	//resp := new(models.BannerHistoryListResp)
+
+	souceMap := make(map[string][]*models.SourcePv)
 
 	for _, v := range list {
-		v.PV = len(list)
-		sourceItem := models.SourcePv{
-			FirstSource:  v.FirstSource,
-			SecondSource: v.SecondSource,
-			PV:           0,
+		item := &models.SourcePv{
+			FirstSource:     v.FirstSource,
+			SecondSource:    v.SecondSource,
+			Pv:              v.Pv,
 			LastUpdatedTime: v.LastUpdatedTime,
 		}
-		v.SourceList = append(v.SourceList, sourceItem)
-		resp.List = append(resp.List, v)
+		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 = resp
+	br.Data = urlList
 }

+ 23 - 12
models/banner_view_history.go

@@ -21,35 +21,46 @@ type BannerViewHistory struct {
 }
 
 func GetBannerHistoryList() (items []*BannerHistoryListRespItem, err error) {
-	sql := ` SELECT * FROM banner_view_history WHERE 1=1 GROUP BY banner_url `
+	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
+	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 // 公司名称
+	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
+	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
+}