Эх сурвалжийг харах

feat:人员行为统计新增字段

fuwencai 1 жил өмнө
parent
commit
3c270ccf0a

+ 27 - 23
api/hello/v1/personnel.go

@@ -3,27 +3,31 @@ package v1
 import "github.com/gogf/gf/v2/frame/g"
 import "github.com/gogf/gf/v2/frame/g"
 
 
 type PersonnelInsertReq struct {
 type PersonnelInsertReq struct {
-	g.Meta      `path:"/statistics" tags:"contract" method:"post" summary:"insert records"`
-	ActionId    string `json:"action_id" dc:"事件ID"`
-	ActionType  string `json:"action_type" dc:"事件类型"`
-	BreakerId   string `json:"breaker_id" dc:"断点ID"`
-	BreakerName string `json:"breaker_name" dc:"断点名称"`
-	OrderId     string `json:"order_id" dc:"订单编号"`
-	OrderTime   string `json:"order_time" dc:"下单时间"`
-	PayTime     string `json:"pay_time" dc:"支付时间"`
-	PayWay      string `json:"pay_way" dc:"支付方式"`
-	Price       int    `json:"price" dc:"金额(元)"`
-	Product     string `json:"product" dc:"产品类型"`
-	ProductName string `json:"product_name" dc:"产品类型名称"`
-	PageId      string `json:"page_id" dc:"页面ID"`
-	PageName    string `json:"page_name" dc:"页面名称"`
-	BiddingId   string `json:"bidding_id" dc:"详情页id"`
-	Desc        string `json:"desc" dc:"页面功能简述"`
-	Source      string `json:"source" dc:"来源名称"`
-	Url         string `json:"url" dc:"地址"`
-	ChainName   string `json:"chain_name" v:"required"  dc:"公链名称"`
-	Port        string `json:"port" `
-	Refer       string `json:"refer" dc:"跳转前页面"`
-	SearchWord  string `json:"search_word"  dc:"搜索词" `
-	Filter      string `json:"filter"  dc:"搜索条件"`
+	g.Meta          `path:"/statistics" tags:"contract" method:"post" summary:"insert records"`
+	ActionId        string `json:"action_id" dc:"事件ID"`
+	ActionType      string `json:"action_type" dc:"事件类型"`
+	BreakerId       string `json:"breaker_id" dc:"断点ID"`
+	BreakerName     string `json:"breaker_name" dc:"断点名称"`
+	OrderId         string `json:"order_id" dc:"订单编号"`
+	OrderTime       string `json:"order_time" dc:"下单时间"`
+	PayTime         string `json:"pay_time" dc:"支付时间"`
+	PayWay          string `json:"pay_way" dc:"支付方式"`
+	Price           int    `json:"price" dc:"金额(元)"`
+	Product         string `json:"product" dc:"产品类型"`
+	ProductName     string `json:"product_name" dc:"产品类型名称"`
+	PageId          string `json:"page_id" dc:"页面ID"`
+	PageName        string `json:"page_name" dc:"页面名称"`
+	BiddingId       string `json:"bidding_id" dc:"详情页id"`
+	Desc            string `json:"desc" dc:"页面功能简述"`
+	Source          string `json:"source" dc:"来源名称"`
+	Url             string `json:"url" dc:"地址"`
+	ChainName       string `json:"chain_name" v:"required"  dc:"公链名称"`
+	Port            string `json:"port" `
+	Refer           string `json:"refer" dc:"跳转前页面"`
+	SearchWord      string `json:"search_word"  dc:"搜索词" `
+	Filter          string `json:"filter"  dc:"搜索条件"`
+	BreakData       string `json:"breakData"  dc:"额外数据"`
+	AppId           string `json:"appId"  dc:"appid"`
+	AppVersion      string `json:"appVersion"  dc:"版本号"`
+	MiniProgramCode string `json:"miniProgramCode"  dc:"来源"`
 }
 }

+ 4 - 0
internal/common/common.go

@@ -38,6 +38,10 @@ var (
 								refer  Nullable(String) DEFAULT NULL COMMENT '跳转前页面',
 								refer  Nullable(String) DEFAULT NULL COMMENT '跳转前页面',
 								search_word  Nullable(String) DEFAULT NULL COMMENT '搜索词',
 								search_word  Nullable(String) DEFAULT NULL COMMENT '搜索词',
 								filter  Nullable(String) DEFAULT NULL COMMENT '搜索条件字段'
 								filter  Nullable(String) DEFAULT NULL COMMENT '搜索条件字段'
+								breakData  Nullable(String) DEFAULT NULL  COMMENT '额外数据',
+								appId  Nullable(String) DEFAULT NULL COMMENT 'appid',
+								appVersion  Nullable(String) DEFAULT NULL COMMENT '版本号',
+								miniProgramCode  Nullable(String) DEFAULT NULL COMMENT '来源';
 							)
 							)
 							ENGINE = MergeTree
 							ENGINE = MergeTree
 							ORDER BY date
 							ORDER BY date

+ 5 - 0
internal/controller/personnel/personnel.go

@@ -38,6 +38,11 @@ func (p *personnel) Statistics(ctx context.Context, req *v1.PersonnelInsertReq)
 	in.Desc = common.If(req.Desc == "undefined", "", req.Desc).(string)
 	in.Desc = common.If(req.Desc == "undefined", "", req.Desc).(string)
 	in.Source = common.If(req.Source == "undefined", "", req.Source).(string)
 	in.Source = common.If(req.Source == "undefined", "", req.Source).(string)
 	in.Url = common.If(req.Url == "undefined", "", req.Url).(string)
 	in.Url = common.If(req.Url == "undefined", "", req.Url).(string)
+	in.AppId = common.If(req.Url == "appId", "", req.AppId).(string)
+	in.BreakData = common.If(req.Url == "breakData", "", req.BreakData).(string)
+	in.AppVersion = common.If(req.Url == "appVersion", "", req.AppVersion).(string)
+	in.MiniProgramCode = common.If(req.Url == "miniProgramCode", "", req.MiniProgramCode).(string)
+
 	sessionGet, err := model.UserSessionCtx.Get(ctx)
 	sessionGet, err := model.UserSessionCtx.Get(ctx)
 	if err == nil {
 	if err == nil {
 		session := sessionGet.JySession
 		session := sessionGet.JySession

+ 12 - 1
internal/dao/internal/personnel.go

@@ -123,6 +123,10 @@ func (dao *PersonnelDao) BatchExecInsert(ctx context.Context, in []*model.Person
 			"refer":           i.Refer,
 			"refer":           i.Refer,
 			"search_word":     i.SearchWord,
 			"search_word":     i.SearchWord,
 			"filter":          i.Filter,
 			"filter":          i.Filter,
+			"appId":           i.AppId,
+			"breakData":       i.BreakData,
+			"appVersion":      i.AppVersion,
+			"miniProgramCode": i.MiniProgramCode,
 		})
 		})
 	}
 	}
 	_, err = g.DB().Model(dao.Model()).Data(insertData).Insert()
 	_, err = g.DB().Model(dao.Model()).Data(insertData).Insert()
@@ -144,7 +148,7 @@ func (dao *PersonnelDao) ExecInsert(ctx context.Context, in model.PersonnelInser
 	dimSqlDML.WriteString(" (jy_trusted_id,user_id,position_id,phone,ip,platform,os,os_version,browser," +
 	dimSqlDML.WriteString(" (jy_trusted_id,user_id,position_id,phone,ip,platform,os,os_version,browser," +
 		"browser_version,date,action_id,action_type,breaker_id,breaker_name,click_time,order_id," +
 		"browser_version,date,action_id,action_type,breaker_id,breaker_name,click_time,order_id," +
 		"order_time,pay_time,pay_way,price,product,product_name,page_id,page_name,bidding_id,desc," +
 		"order_time,pay_time,pay_way,price,product,product_name,page_id,page_name,bidding_id,desc," +
-		"url,source,user_agent,port,refer,search_word,filter) values ( ")
+		"url,source,user_agent,port,refer,search_word,filter,appId,breakData,appVersion,miniProgramCode) values ( ")
 	dimSqlDML.WriteString("'" + in.JYTrustedId + "'")
 	dimSqlDML.WriteString("'" + in.JYTrustedId + "'")
 	dimSqlDML.WriteString(",")
 	dimSqlDML.WriteString(",")
 	dimSqlDML.WriteString("'" + in.UserId + "'")
 	dimSqlDML.WriteString("'" + in.UserId + "'")
@@ -212,6 +216,13 @@ func (dao *PersonnelDao) ExecInsert(ctx context.Context, in model.PersonnelInser
 	dimSqlDML.WriteString("'" + in.SearchWord + "'")
 	dimSqlDML.WriteString("'" + in.SearchWord + "'")
 	dimSqlDML.WriteString(",")
 	dimSqlDML.WriteString(",")
 	dimSqlDML.WriteString("'" + in.Filter + "'")
 	dimSqlDML.WriteString("'" + in.Filter + "'")
+	dimSqlDML.WriteString("'" + in.AppId + "'")
+	dimSqlDML.WriteString(",")
+	dimSqlDML.WriteString("'" + in.BreakData + "'")
+	dimSqlDML.WriteString(",")
+	dimSqlDML.WriteString("'" + in.AppVersion + "'")
+	dimSqlDML.WriteString(",")
+	dimSqlDML.WriteString("'" + in.MiniProgramCode + "'")
 	dimSqlDML.WriteString(")")
 	dimSqlDML.WriteString(")")
 	_, err = g.DB().Exec(ctx, dimSqlDML.String())
 	_, err = g.DB().Exec(ctx, dimSqlDML.String())
 	if err != nil {
 	if err != nil {

+ 38 - 34
internal/model/personnel.go

@@ -1,38 +1,42 @@
 package model
 package model
 
 
 type PersonnelInsertInput struct {
 type PersonnelInsertInput struct {
-	ActionId       string
-	ActionType     string
-	BreakerId      string
-	BreakerName    string
-	OrderId        string
-	OrderTime      string
-	PayTime        string
-	PayWay         string
-	Price          int
-	Product        string
-	ProductName    string
-	PageId         string
-	PageName       string
-	BiddingId      string
-	Desc           string
-	Source         string
-	UserId         string
-	PositionId     int64
-	Phone          string
-	Ip             string
-	Platform       string //平台
-	Os             string //系统
-	OsVersion      string //系统版本
-	Browser        string //浏览器
-	BrowserVersion string //浏览器版本
-	Date           int64  //访问时间
-	Url            string //页面url
-	UserAgent      string //header 信息
-	JYTrustedId    string //匿名用户id
-	ChainName      string //库信息
-	Port           string //行为端口
-	Refer          string //跳转前页面
-	SearchWord     string //搜索词
-	Filter         string //搜索条件
+	ActionId        string
+	ActionType      string
+	BreakerId       string
+	BreakerName     string
+	OrderId         string
+	OrderTime       string
+	PayTime         string
+	PayWay          string
+	Price           int
+	Product         string
+	ProductName     string
+	PageId          string
+	PageName        string
+	BiddingId       string
+	Desc            string
+	Source          string
+	UserId          string
+	PositionId      int64
+	Phone           string
+	Ip              string
+	Platform        string //平台
+	Os              string //系统
+	OsVersion       string //系统版本
+	Browser         string //浏览器
+	BrowserVersion  string //浏览器版本
+	Date            int64  //访问时间
+	Url             string //页面url
+	UserAgent       string //header 信息
+	JYTrustedId     string //匿名用户id
+	ChainName       string //库信息
+	Port            string //行为端口
+	Refer           string //跳转前页面
+	SearchWord      string //搜索词
+	Filter          string //搜索条件
+	BreakData       string //"额外数据
+	AppId           string // appid"
+	AppVersion      string // 版本号
+	MiniProgramCode string // "来源"`
 }
 }

+ 4 - 1
test.http

@@ -8,7 +8,10 @@ pageReferrer: 1111
   "search_word": "搜索词ceshi4569",
   "search_word": "搜索词ceshi4569",
   "page_id": "11",
   "page_id": "11",
   "pay_time": "2024-05-13 16:13:00",
   "pay_time": "2024-05-13 16:13:00",
-  "order_time": "2024-05-14 16:13:00"
+  "appId": "aaaaaidtest",
+  "appVersion": "aaatest",
+  "miniProgramCode": "testm"
+
 }
 }
 
 
 ###
 ###