123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- package userAnalysis
- import (
- "context"
- "fmt"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- "github.com/pkg/errors"
- "time"
- "workTasks/userSign/match"
- )
- type visitParam struct {
- Code string
- BitmapCode string
- St, Et time.Time
- Limit int
- Desc string
- SaveOld bool
- }
- // GetBuryPointRes 分析埋点数据
- func (ua *UserAnalysis) GetBuryPointRes(ctx context.Context, runTime time.Time) (fData []*AnalysisRes, err error) {
- // 访问过指定页面
- for _, item := range []*visitParam{
- {"buy_page_vip", "visit_buypage_vip_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入超级订阅购买页", false},
- {"buy_page_vip", "visit_buypage_vip_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入超级订阅购买页", false},
- {"buy_page_member", "visit_buypage_member_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入大会员购买页", false},
- {"buy_page_member", "visit_buypage_member_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入大会员购买页", false},
- {"buy_page_member", "visit_buypage_member_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入大会员购买页", false},
- {"landing_page_member", "visit_landing_member_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近45天进入大会员购买页", false},
- {"landing_page_member", "visit_landing_member_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入大会员购买页", false},
- {"buy_area_pack", "visit_buypage_areavip_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入省份订阅包购买页", false},
- {"buy_area_pack", "visit_buypage_areavip_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入省份订阅包购买页", false},
- {"data_export_page", "visit_dataexport_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天访问数据导出页面", false},
- {"data_export_page", "visit_dataexport_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天访问数据导出页面", false},
- {"buy_data_export", "visit_buypage_dataexport_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入数据导出购买页", false},
- {"buy_data_export", "visit_buypage_dataexport_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入数据导出购买页", false},
- {"buy_page_data_pack", "visit_buypage_dataPack_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入数据流量包购买页", false},
- {"buy_page_data_pack", "visit_buypage_dataPack_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入数据流量包购买页", false},
- {"buy_page_buyer_report", "visit_buypage_buyer_report_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入业主采购分析报告下载包购买页", false},
- {"buy_page_buyer_report", "visit_buypage_buyer_report_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入业主采购分析报告下载包购买页", false},
- {"buy_page_buyer_report", "visit_buypage_buyer_report_package_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入业主采购分析报告下载包购买页", false},
- {"buy_page_winner_report", "visit_buypage_winner_report_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入企业中标分析报告下载包购买页", false},
- {"buy_page_winner_report", "visit_buypage_winner_report_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入企业中标分析报告下载包购买页", false},
- {"buy_page_winner_report", "visit_buypage_winner_report_package_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入企业中标分析报告下载包购买页", false},
- {"buy_page_market_report", "visit_buypage_market_report_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入市场分析定制报告下载包购买页", false},
- {"buy_page_market_report", "visit_buypage_market_report_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入市场分析定制报告下载包购买页", false},
- {"buy_page_market_report", "visit_buypage_market_report_package_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入市场分析定制报告下载包购买页", false},
- {"buy_page_buyer_portrait_package", "visit_buypage_buyer_portrait_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入采购单位画像包购买页", false},
- {"buy_page_buyer_portrait_package", "visit_buypage_buyer_portrait_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入采购单位画像包购买页", false},
- {"buy_page_buyer_portrait_package", "visit_buypage_buyer_portrait_package_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入采购单位画像包购买页", false},
- {"buy_page_attach_package", "visit_buypage_attach_package_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入附件下载包购买页", false},
- {"buy_page_attach_package", "visit_buypage_attach_package_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入附件下载包购买页", false},
- {"buy_page_attach_package", "visit_attach_package_report_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天进入附件下载包购买页", false},
- {"buy_page_ent_credit_report", "visit_buypage_ent_credit_report_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入投标企业信用报告购买页", false},
- {"buy_page_ent_credit_report", "visit_buypage_ent_credit_report_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入投标企业信用报告购买页", false},
- {"buy_page_ent_credit_report", "visit_buypage_ent_credit_report_45_day", runTime.AddDate(0, 0, -7), runTime, 0, "近45天进入投标企业信用报告购买页", false},
- {"buy_page_applet_wy", "visit_buypage_applet_wy_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入物业碎片化小程序购买页", false},
- {"buy_page_applet_wy", "visit_buypage_applet_wy_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入物业碎片化小程序购买页", false},
- {"buy_page_applet_clzl", "visit_buypage_applet_clzl_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入车辆租赁碎片化小程序购买页", false},
- {"buy_page_applet_clzl", "visit_buypage_applet_clzl_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入车辆租赁碎片化小程序购买页", false},
- {"buy_page_applet_ywsj", "visit_buypage_applet_ywsj_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入印务碎片化小程序购买页", false},
- {"buy_page_applet_ywsj", "visit_buypage_applet_ywsj_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入印务碎片化小程序购买页", false},
- {"buy_page_applet_hjcg", "visit_buypage_applet_hjcg_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入环境碎片化小程序购买页", false},
- {"buy_page_applet_hjcg", "visit_buypage_applet_hjcg_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入环境碎片化小程序购买页", false},
- {"buy_page_applet_af", "visit_buypage_applet_af_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入安防碎片化小程序购买页", false},
- {"buy_page_applet_af", "visit_buypage_applet_af_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入安防碎片化小程序购买页", false},
- {"buy_page_applet_gcsjzx", "visit_buypage_applet_gcsjzx_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入投招服工程设计咨询碎片化小程序购买页", false},
- {"buy_page_applet_gcsjzx", "visit_buypage_applet_gcsjzx_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入投招服工程设计咨询碎片化小程序购买页", false},
- {"buy_page_applet_fw", "visit_buypage_applet_fw_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入法务碎片化小程序购买页", false},
- {"buy_page_applet_fw", "visit_buypage_applet_fw_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入法务碎片化小程序购买页", false},
- {"buy_page_applet_bx", "visit_buypage_applet_bx_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入保服碎片化小程序购买页", false},
- {"buy_page_applet_bx", "visit_buypage_applet_bx_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入保服碎片化小程序购买页", false},
- {"buy_page_applet_cwsj", "visit_buypage_applet_cwsj_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入招服财审碎片化小程序购买页", false},
- {"buy_page_applet_cwsj", "visit_buypage_applet_cwsj_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入招服财审碎片化小程序购买页", false},
- {"buy_page_applet_zbdl", "visit_buypage_applet_zbdl_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入招服代理服务碎片化小程序购买页", false},
- {"buy_page_applet_zbdl", "visit_buypage_applet_zbdl_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入招服代理服务碎片化小程序购买页", false},
- {"buy_page_applet_glzx", "visit_buypage_applet_glzx_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天进入招服管理咨询碎片化小程序购买页", false},
- {"buy_page_applet_glzx", "visit_buypage_applet_glzx_7_day", runTime.AddDate(0, 0, -7), runTime, 0, "近7天进入招服管理咨询碎片化小程序购买页", false},
- {"download_ent_credit_report", "download_ent_credit_report_45_day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天点击下载投标企业信用报告的用户", false},
- {"content_click_share", "buryPoint_share_7_day_gte2", runTime.AddDate(0, 0, -7), runTime, 1, "近7天高频分享大于1次", false},
- {"add_project_follow", "add_monitor_project_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天新增监控项目用户", false},
- {"add_ent_follow", "add_monitor_ent_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天新增监控企业用户", false},
- {"add_ent_follow", "add_monitor_ent_gte5_45day", runTime.AddDate(0, 0, -45), runTime, 4, "近45天高频监控企业>=5", false},
- {"add_ent_follow", "add_monitor_ent_gte1_45day", runTime.AddDate(0, 0, -45), runTime, 0, "近45天高频监控企业>=1", false},
- {"add_buyer_follow", "add_monitor_buyer_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天新增监控业主用户", false},
- {"change_subscribe", "add_change_subscribe_1_day", runTime.AddDate(0, 0, -1), runTime, 0, "近1天调整订阅词用户", false},
- {"jy_activities", "activity_A25142", runTime.AddDate(0, 0, -1), runTime, 0, "近1天调整订阅词用户", true},
- } {
- if res := ua.getVisitStatic(ctx, item); res != nil {
- fData = append(fData, res)
- }
- }
- //7天留资用户
- rData, err := ua.clickShareRes(ctx, runTime.AddDate(0, 0, -7))
- if err != nil {
- g.Log().Errorf(ctx, "init clickShareRes err:%v", err)
- }
- for _, datum := range rData {
- fData = append(fData, datum)
- }
- return
- }
- func (ua *UserAnalysis) clickShareRes(ctx context.Context, t time.Time) (returnData []*AnalysisRes, err error) {
- //分析点击分享 近7天点击标讯分享按钮>=2
- var (
- rData = map[BaseUserId]bool{}
- tData = map[BaseUserId]int{}
- )
- res, err := g.DB("ckLogs").Query(ctx, "SELECT position_id FROM dwd_f_personnel_behavior WHERE page_id ='article_content' AND breaker_name in ('QQ','朋友圈','微信') AND `date` > ? ", t.Format(time.DateTime))
- if err != nil {
- return nil, errors.Wrap(err, "查询超级订阅购买页访问数据异常")
- }
- for _, m := range res.List() {
- var (
- position_id = gconv.String(m["position_id"])
- )
- if baseUserId, ok := ua.UserMapping[position_id]; ok {
- tData[baseUserId]++
- }
- }
- for bid, datum := range tData {
- if datum >= 2 {
- rData[bid] = true
- }
- }
- return []*AnalysisRes{
- {"近7天高频分享用户", "buryPoint_share_7_day_gte2", rData, false},
- }, nil
- }
- type (
- countObj struct {
- Seven map[BaseUserId]int
- One map[BaseUserId]int
- LoadUrl []string
- MiniCode string //小程序code
- }
- cVisit struct {
- fullData map[string]*countObj
- mappingData map[string]*countObj
- matchObj *match.TrieNode
- now time.Time
- }
- )
- 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<=? GROUP by userId ", vp.Code, vp.St.Format(time.DateTime), vp.Et.Format(time.DateTime))
- var sevenData = map[BaseUserId]bool{}
- if vp.BitmapCode == "visit_buypage_dataPack_7_day" {
- fmt.Println("xxx")
- }
- if err != nil {
- g.Log().Errorf(ctx, "<getVisitStatic.Query> err %v", err)
- } else {
- for _, m := range res.List() {
- var (
- userId = gconv.Int64(m["userId"])
- total = gconv.Int(m["total"])
- )
- if vp.Limit <= 0 || (vp.Limit > 0 && total > vp.Limit) {
- sevenData[BaseUserId(userId)] = true
- }
- }
- }
- return &AnalysisRes{fmt.Sprintf("getVisitStatic-%s", vp.BitmapCode), vp.BitmapCode, sevenData, vp.SaveOld}
- }
|