zwxi há 1 ano atrás
pai
commit
87d62eb2a3
3 ficheiros alterados com 106 adições e 0 exclusões
  1. 42 0
      controllers/banner.go
  2. 55 0
      models/banner_view_history.go
  3. 9 0
      routers/commentsRouter.go

+ 42 - 0
controllers/banner.go

@@ -269,3 +269,45 @@ 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()
+	}()
+
+	list, err := models.GetBannerHistoryList()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	resp := new(models.BannerHistoryListResp)
+
+	for _, v := range list {
+		v.PV = len(list)
+		sourceItem := models.SourcePv{
+			FirstSource:  v.FirstSource,
+			SecondSource: v.SecondSource,
+			PV:           0,
+			LastUpdatedTime: v.LastUpdatedTime,
+		}
+		v.SourceList = append(v.SourceList, sourceItem)
+		resp.List = append(resp.List, v)
+	}
+
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 55 - 0
models/banner_view_history.go

@@ -0,0 +1,55 @@
+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 * FROM banner_view_history WHERE 1=1 GROUP BY banner_url `
+	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
+}

+ 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",