|
@@ -10,13 +10,103 @@ import (
|
|
|
"workTasks/userSign/match"
|
|
|
)
|
|
|
|
|
|
+type visitParam struct {
|
|
|
+ Code string
|
|
|
+ BitmapCode string
|
|
|
+ St, Et time.Time
|
|
|
+ Limit int
|
|
|
+ Desc string
|
|
|
+}
|
|
|
+
|
|
|
// GetBuryPointRes 分析埋点数据
|
|
|
func (ua *UserAnalysis) GetBuryPointRes(ctx context.Context, runTime time.Time) (fData []*AnalysisRes, err error) {
|
|
|
|
|
|
// 访问过指定页面
|
|
|
- if res, err := ua.GetVisitUserAnalysis(ctx, runTime.AddDate(0, 0, -45)); err == nil && len(res) > 0 {
|
|
|
- for _, t := range res {
|
|
|
- fData = append(fData, t)
|
|
|
+ for _, item := range []*visitParam{
|
|
|
+ {"buy_page_vip", "visit_buypage_vip_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入超级订阅购买页"},
|
|
|
+ {"buy_page_vip", "visit_buypage_vip_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入超级订阅购买页"},
|
|
|
+
|
|
|
+ {"buy_page_member", "visit_buypage_member_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入大会员购买页"},
|
|
|
+ {"buy_page_member", "visit_buypage_member_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入大会员购买页"},
|
|
|
+ {"buy_page_member", "visit_buypage_member_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入大会员购买页"},
|
|
|
+
|
|
|
+ {"landing_page_member", "visit_landing_member_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近45天进入大会员购买页"},
|
|
|
+ {"landing_page_member", "visit_landing_member_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入大会员购买页"},
|
|
|
+
|
|
|
+ {"buy_area_pack", "visit_buypage_areavip_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入省份订阅包购买页"},
|
|
|
+ {"buy_area_pack", "visit_buypage_areavip_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入省份订阅包购买页"},
|
|
|
+
|
|
|
+ {"data_export_page", "visit_dataexport_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天访问数据导出页面"},
|
|
|
+ {"data_export_page", "visit_dataexport_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天访问数据导出页面"},
|
|
|
+
|
|
|
+ {"buy_data_export", "visit_buypage_dataexport_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入数据导出购买页"},
|
|
|
+ {"buy_data_export", "visit_buypage_dataexport_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入数据导出购买页"},
|
|
|
+
|
|
|
+ {"buy_page_data_pack", "visit_buypage_dataPack_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近7天进入数据流量包购买页"},
|
|
|
+ {"buy_page_data_pack", "visit_buypage_dataPack_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近45天进入数据流量包购买页"},
|
|
|
+
|
|
|
+ {"buy_page_buyer_report", "visit_buypage_buyer_report_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入业主采购分析报告下载包购买页"},
|
|
|
+ {"buy_page_buyer_report", "visit_buypage_buyer_report_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入业主采购分析报告下载包购买页"},
|
|
|
+ {"buy_page_buyer_report", "visit_buypage_buyer_report_package_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入业主采购分析报告下载包购买页"},
|
|
|
+
|
|
|
+ {"buy_page_winner_report", "visit_buypage_winner_report_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入企业中标分析报告下载包购买页"},
|
|
|
+ {"buy_page_winner_report", "visit_buypage_winner_report_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入企业中标分析报告下载包购买页"},
|
|
|
+ {"buy_page_winner_report", "visit_buypage_winner_report_package_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入企业中标分析报告下载包购买页"},
|
|
|
+
|
|
|
+ {"buy_page_market_report", "visit_buypage_market_report_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入市场分析定制报告下载包购买页"},
|
|
|
+ {"buy_page_market_report", "visit_buypage_market_report_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入市场分析定制报告下载包购买页"},
|
|
|
+ {"buy_page_market_report", "visit_buypage_market_report_package_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入市场分析定制报告下载包购买页"},
|
|
|
+
|
|
|
+ {"buy_page_buyer_portrait_package", "visit_buypage_buyer_portrait_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入采购单位画像包购买页"},
|
|
|
+ {"buy_page_buyer_portrait_package", "visit_buypage_buyer_portrait_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入采购单位画像包购买页"},
|
|
|
+ {"buy_page_buyer_portrait_package", "visit_buypage_buyer_portrait_package_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入采购单位画像包购买页"},
|
|
|
+
|
|
|
+ {"buy_page_attach_package", "visit_buypage_attach_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入附件下载包购买页"},
|
|
|
+ {"buy_page_attach_package", "visit_buypage_attach_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入附件下载包购买页"},
|
|
|
+
|
|
|
+ {"buy_page_ent_credit_report", "visit_buypage_ent_credit_report_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入投标企业信用报告购买页"},
|
|
|
+ {"buy_page_ent_credit_report", "visit_buypage_ent_credit_report_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入投标企业信用报告购买页"},
|
|
|
+ {"buy_page_ent_credit_report", "visit_buypage_ent_credit_report_45_day", runTime.AddDate(0, 0, -7), runTime, 0, "近45天进入投标企业信用报告购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_wy", "visit_buypage_applet_wy_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入物业碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_wy", "visit_buypage_applet_wy_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入物业碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_clzl", "visit_buypage_applet_clzl_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入车辆租赁碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_clzl", "visit_buypage_applet_clzl_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入车辆租赁碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_ywsj", "visit_buypage_applet_ywsj_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入印务碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_ywsj", "visit_buypage_applet_ywsj_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入印务碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_hjcg", "visit_buypage_applet_hjcg_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入环境碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_hjcg", "visit_buypage_applet_hjcg_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入环境碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_af", "visit_buypage_applet_af_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入安防碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_af", "visit_buypage_applet_af_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入安防碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_gcsjzx", "visit_buypage_applet_gcsjzx_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入投招服工程设计咨询碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_gcsjzx", "visit_buypage_applet_gcsjzx_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入投招服工程设计咨询碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_fw", "visit_buypage_applet_fw_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入法务碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_fw", "visit_buypage_applet_fw_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入法务碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_bx", "visit_buypage_applet_bx_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入保服碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_bx", "visit_buypage_applet_bx_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入保服碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_cwsj", "visit_buypage_applet_cwsj_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入招服财审碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_cwsj", "visit_buypage_applet_cwsj_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入招服财审碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_zbdl", "visit_buypage_applet_zbdl_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入招服代理服务碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_zbdl", "visit_buypage_applet_zbdl_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入招服代理服务碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"buy_page_applet_glzx", "visit_buypage_applet_glzx_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入招服管理咨询碎片化小程序购买页"},
|
|
|
+ {"buy_page_applet_glzx", "visit_buypage_applet_glzx_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入招服管理咨询碎片化小程序购买页"},
|
|
|
+
|
|
|
+ {"download_ent_credit_report", "download_ent_credit_report_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天点击下载投标企业信用报告的用户"},
|
|
|
+
|
|
|
+ {"content_click_share", "buryPoint_share_7_day_gte2", runTime.AddDate(0, 0, -7), runTime, 1, "近7天高频分享大于1次"},
|
|
|
+ } {
|
|
|
+ if res := ua.getVisitStatic(ctx, item); res != nil {
|
|
|
+ fData = append(fData, res)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -29,37 +119,9 @@ func (ua *UserAnalysis) GetBuryPointRes(ctx context.Context, runTime time.Time)
|
|
|
fData = append(fData, datum)
|
|
|
}
|
|
|
|
|
|
- // 日志分析超出限制
|
|
|
- //visitBuyData, visitBuyErr := ua.visitBuyPageRes(ctx, runTime)
|
|
|
- //if visitBuyErr != nil {
|
|
|
- // g.Log().Errorf(ctx, "init visitBuyErr err:%v", visitBuyErr)
|
|
|
- //}
|
|
|
- //for _, datum := range visitBuyData {
|
|
|
- // fData = append(fData, datum)
|
|
|
- //}
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func (ua *UserAnalysis) GetVisitUserAnalysis(ctx context.Context, t time.Time) ([]*AnalysisRes, error) {
|
|
|
- var (
|
|
|
- visitedVipBuyPage = map[BaseUserId]bool{}
|
|
|
- )
|
|
|
- res, err := g.DB("ckLogs").Query(ctx, "SELECT user_id,count(*) as total FROM dwd_f_personnel_behavior WHERE action_id='c_jy_open_page' and `date` > ? and user_id!='' AND (url like '%jy_mobile/order/create/svip%' or url like '%/swordfish/page_big_pc/free/svip/buy%') group by user_id order BY total desc", t.Format(time.DateTime))
|
|
|
- if err != nil {
|
|
|
- return nil, errors.Wrap(err, "查询超级订阅购买页访问数据异常")
|
|
|
- }
|
|
|
-
|
|
|
- for _, m := range res.List() {
|
|
|
- userId := gconv.String(m["user_id"])
|
|
|
- baseUserId, ok := ua.UserMapping[userId]
|
|
|
- if !ok {
|
|
|
- continue
|
|
|
- }
|
|
|
- visitedVipBuyPage[baseUserId] = true
|
|
|
- }
|
|
|
- return []*AnalysisRes{{Name: "近45天浏览超级订阅购买页", Code: "visitedVipBuyPage", Data: visitedVipBuyPage}}, nil
|
|
|
-}
|
|
|
-
|
|
|
func (ua *UserAnalysis) clickShareRes(ctx context.Context, t time.Time) (returnData []*AnalysisRes, err error) {
|
|
|
//分析点击分享 近7天点击标讯分享按钮>=2
|
|
|
var (
|
|
@@ -103,253 +165,23 @@ type (
|
|
|
}
|
|
|
)
|
|
|
|
|
|
-func getVisitStatic(t time.Time) *cVisit {
|
|
|
- rData := &cVisit{}
|
|
|
- rData.matchObj = &match.TrieNode{}
|
|
|
- rData.fullData = map[string]*countObj{
|
|
|
- // 超级订阅购买页单未提交订单
|
|
|
- "visit_buypage_vip": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/swordfish/page_big_pc/free/svip/buy", "/jy_mobile/common/order/create/svip", "/jy_mobile/order/create/svip"},
|
|
|
- },
|
|
|
- "visit_buypage_member": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/big/pc/page/buy_commit", "/jy_mobile/common/order/create/bigmember"},
|
|
|
- },
|
|
|
- "visit_buypage_areavip": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/jy_mobile/common/order/create/areapack", "/jy_mobile/order/create/areapack"},
|
|
|
- },
|
|
|
- "visit_buypage_buyer_report_package": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/swordfish/page_big_pc/order/download-pack/prop", "/jy_mobile/order/create/owneranalysis"},
|
|
|
- },
|
|
|
- "visit_buypage_winner_report_package": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/swordfish/page_big_pc/order/download-pack/ent", "/jy_mobile/order/create/enterpriseanalysis"},
|
|
|
- },
|
|
|
- "visit_buypage_market_report_package": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/swordfish/page_big_pc/order/download-pack/market", "/jy_mobile/order/create/marketanalysis"},
|
|
|
- },
|
|
|
- "visit_buypage_buyer_portrait_package": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/jy_mobile/common/order/create/buyerpack", "/page_big_pc/order/buyer-pack", "/jy_mobile/order/create/buyerpack"},
|
|
|
- },
|
|
|
- "visit_buypage_attach_package": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/jy_mobile/common/order/create/filepack", "/swordfish/page_big_pc/order/file-pack", "/jy_mobile/order/create/filepack"},
|
|
|
- },
|
|
|
- "visit_buypage_ent_credit_report": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"/jy_mobile/order/create/creditreport", "/swordfish/page_big_pc/order/credit-report"},
|
|
|
- },
|
|
|
- "visit_buypage_applet_wy": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "wy",
|
|
|
- },
|
|
|
- "visit_buypage_applet_clzl": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "clzl",
|
|
|
- },
|
|
|
- "visit_buypage_applet_ywsj": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "ywsj",
|
|
|
- },
|
|
|
- "visit_buypage_applet_hjcg": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "hjcg",
|
|
|
- },
|
|
|
- "visit_buypage_applet_jjztb": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "jjztb",
|
|
|
- },
|
|
|
- "visit_buypage_applet_af": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "af",
|
|
|
- },
|
|
|
- "visit_buypage_applet_gcsjzx": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "gcsjzx",
|
|
|
- },
|
|
|
- "visit_buypage_applet_fw": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "fw",
|
|
|
- },
|
|
|
- "visit_buypage_applet_bx": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "bx",
|
|
|
- },
|
|
|
- "visit_buypage_applet_cwsj": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "cwsj",
|
|
|
- },
|
|
|
- "visit_buypage_applet_zbdl": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "zbdl",
|
|
|
- },
|
|
|
- "visit_buypage_applet_glzx": &countObj{
|
|
|
- Seven: map[BaseUserId]int{},
|
|
|
- One: map[BaseUserId]int{},
|
|
|
- LoadUrl: []string{"pages/order/create/index"},
|
|
|
- MiniCode: "glzx",
|
|
|
- },
|
|
|
- }
|
|
|
- rData.mappingData = map[string]*countObj{}
|
|
|
- for key, obj := range rData.fullData {
|
|
|
- rData.matchObj.Insert(obj.LoadUrl...)
|
|
|
- rData.mappingData[key] = obj
|
|
|
- for _, s := range obj.LoadUrl {
|
|
|
- if s != "pages/order/create/index" {
|
|
|
- rData.mappingData[s] = obj
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- rData.now = t
|
|
|
- return rData
|
|
|
-}
|
|
|
-
|
|
|
-func (cv *cVisit) addCount(url, miniCode, dataStr string, uid BaseUserId) {
|
|
|
- matchUrl := cv.matchObj.FindOneMaxStr(url)
|
|
|
- if matchUrl != "" {
|
|
|
- var insertOne bool
|
|
|
- if createTime, tErr := time.ParseInLocation(time.DateTime, dataStr, time.Local); tErr == nil {
|
|
|
- if cv.now.AddDate(0, 0, -1).Before(createTime) {
|
|
|
- insertOne = true
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- obj, ok := cv.mappingData[matchUrl]
|
|
|
- if ok && obj != nil {
|
|
|
- obj.Seven[uid]++
|
|
|
- if insertOne {
|
|
|
- obj.One[uid]++
|
|
|
- }
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //小程序
|
|
|
- if matchUrl == "pages/order/create/index" {
|
|
|
- if miniObj, miniOk := cv.mappingData[fmt.Sprintf("visit_buypage_applet_%s", miniCode)]; miniOk && miniObj != nil {
|
|
|
- miniObj.Seven[uid]++
|
|
|
- if insertOne {
|
|
|
- miniObj.One[uid]++
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func (cv *cVisit) getAnalysisRes() []*AnalysisRes {
|
|
|
- var (
|
|
|
- rData = []*AnalysisRes{}
|
|
|
- sevenTotal = map[BaseUserId]int{}
|
|
|
- )
|
|
|
- for code, obj := range cv.fullData {
|
|
|
- var (
|
|
|
- dataOne = map[BaseUserId]bool{}
|
|
|
- dataSeven = map[BaseUserId]bool{}
|
|
|
- )
|
|
|
- for basUserId, _ := range obj.One {
|
|
|
- dataOne[basUserId] = true
|
|
|
- }
|
|
|
- for basUserId, num := range obj.Seven {
|
|
|
- dataSeven[basUserId] = true
|
|
|
- sevenTotal[basUserId] += num
|
|
|
- }
|
|
|
- rData = append(rData, &AnalysisRes{fmt.Sprintf("近1天进入%s购买页单", code), fmt.Sprintf("%s_1_day", code), dataOne, false})
|
|
|
- rData = append(rData, &AnalysisRes{fmt.Sprintf("近7天进入%s购买页单", code), fmt.Sprintf("%s_7_day", code), dataSeven, false})
|
|
|
- }
|
|
|
- //统计7天访问大于7次
|
|
|
+func (ua *UserAnalysis) getVisitStatic(ctx context.Context, vp *visitParam) *AnalysisRes {
|
|
|
+ res, err := g.DB().Query(ctx, "SELECT userId,SUM(num) as total FROM dwd_d_visit WHERE code=? and date>=? and date<=?", vp.Code, vp.St.Format("2006-01-02"), vp.Et.Format("2006-01-02"))
|
|
|
var sevenData = map[BaseUserId]bool{}
|
|
|
- for basUserId, count := range sevenTotal {
|
|
|
- if count >= 7 {
|
|
|
- sevenData[basUserId] = true
|
|
|
- }
|
|
|
- }
|
|
|
- rData = append(rData, &AnalysisRes{"近7天进入进入购买页大于等于7次", "visit_buypage_7day_gte7", sevenData, false})
|
|
|
- return rData
|
|
|
- //[]*AnalysisRes{
|
|
|
- //{"近1天进入超级订阅购买页单未提交订单", "visit_buypage_vip_1_day", rData, false},
|
|
|
- //{"近1天进入大会员购买页单未提交订单", "visit_buypage_member_1_day", rData, false},
|
|
|
- //{"近1天进入省份订阅包购买页单未提交订单", "visit_buypage_areavip_1_day", rData, false},
|
|
|
- //{"近1天进入业主采购分析报告下载包购买页单未提交订单", "visit_buypage_buyer_report_package_1_day", rData, false},
|
|
|
- //{"近1天进入企业中标分析报告下载包购买页单未提交订单", "visit_buypage_winner_report_package_1_day", rData, false},
|
|
|
- //{"近1天进入市场分析定制报告下载包购买页单未提交订单", "visit_buypage_market_report_package_1_day", rData, false},
|
|
|
- //{"近1天进入采购单位画像包购买页单未提交订单", "visit_buypage_buyer_portrait_package_1_day", rData, false},
|
|
|
- //{"近1天进入附件下载包购买页单未提交订单", "visit_buypage_attach_package_1_day", rData, false},
|
|
|
- //{"近1天进入投标企业信用报告购买页单未提交订单", "visit_buypage_ent_credit_report_1_day", rData, false},
|
|
|
- //
|
|
|
- //{"近1天进入物业碎片化小程序购买页单未提交订单", "visit_buypage_applet_wy_1_day", rData, false},
|
|
|
- //{"近1天进入车辆租赁碎片化小程序购买页单未提交订单", "visit_buypage_applet_clzl_1_day", rData, false},
|
|
|
- //{"近1天进入印务碎片化小程序购买页单未提交订单", "visit_buypage_applet_ywsj_1_day", rData, false},
|
|
|
- //{"近1天进入环境碎片化小程序购买页单未提交订单", "visit_buypage_applet_hjcg_1_day", rData, false},
|
|
|
- //{"近1天进入家具碎片化小程序购买页单未提交订单", "visit_buypage_applet_jjztb_1_day", rData, false},
|
|
|
- //{"近1天进入安防碎片化小程序购买页单未提交订单", "visit_buypage_applet_af_1_day", rData, false},
|
|
|
- //{"近1天进入投招服工程设计咨询碎片化小程序购买页单未提交订单", "visit_buypage_applet_gcsjzx_1_day", rData, false},
|
|
|
- //{"近1天进入法务碎片化小程序购买页单未提交订单", "visit_buypage_applet_fw_1_day", rData, false},
|
|
|
- //
|
|
|
- //{"近1天进入保服碎片化小程序购买页单未提交订单", "visit_buypage_applet_bx_1_day", rData, false},
|
|
|
- //{"近1天进入招服财审碎片化小程序购买页单未提交订单", "visit_buypage_applet_cwsj_1_day", rData, false},
|
|
|
- //{"近1天进入招服代理服务碎片化小程序购买页单未提交订单", "visit_buypage_applet_zbdl_1_day", rData, false},
|
|
|
- //{"近1天进入招服管理咨询碎片化小程序购买页单未提交订单", "visit_buypage_applet_glzx_1_day", rData, false},
|
|
|
- //}
|
|
|
-}
|
|
|
-
|
|
|
-// 访问购买页面
|
|
|
-func (ua *UserAnalysis) visitBuyPageRes(ctx context.Context, t time.Time) (returnData []*AnalysisRes, err error) {
|
|
|
- visitStatic := getVisitStatic(t)
|
|
|
- res, err := g.DB("ckLogs").Query(ctx, "SELECT position_id,mini_program_code,url,date FROM dwd_f_personnel_behavior WHERE action_id='c_jy_open_page' and user_id !='' and and `date` > ? ", t.AddDate(0, 0, -7).Format(time.DateTime))
|
|
|
if err != nil {
|
|
|
- return nil, errors.Wrap(err, "查询超级订阅购买页访问数据异常")
|
|
|
- }
|
|
|
- var c int
|
|
|
- for _, m := range res.List() {
|
|
|
- var (
|
|
|
- position_id = gconv.String(m["position_id"])
|
|
|
- urlStr = gconv.String(m["url"])
|
|
|
- mini_program_code = gconv.String(m["mini_program_code"])
|
|
|
- dataStr = gconv.String(m["date"])
|
|
|
- )
|
|
|
- if position_id == "" {
|
|
|
- continue
|
|
|
- }
|
|
|
- if baseUserId, ok := ua.UserMapping[position_id]; ok {
|
|
|
- visitStatic.addCount(urlStr, mini_program_code, dataStr, baseUserId)
|
|
|
+ g.Log().Errorf(ctx, "<getVisitStatic.Query> err %v", err)
|
|
|
+ } else {
|
|
|
+ for _, m := range res.List() {
|
|
|
+ var (
|
|
|
+ userId = gconv.String(m["userId"])
|
|
|
+ total = gconv.Int(m["total"])
|
|
|
+ )
|
|
|
+ if vp.Limit <= 0 || (vp.Limit > 0 && total > vp.Limit) {
|
|
|
+ if v, ok := ua.UserMapping[userId]; ok {
|
|
|
+ sevenData[v] = true
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- c++
|
|
|
}
|
|
|
- g.Log().Infof(ctx, "<UserAnalysis.visitBuyPageRes> %d", c)
|
|
|
- return visitStatic.getAnalysisRes(), nil
|
|
|
+ return &AnalysisRes{fmt.Sprintf("getVisitStatic-%s", vp.BitmapCode), vp.BitmapCode, sevenData, false}
|
|
|
}
|