wangkaiyue 2 жил өмнө
parent
commit
d94ae5497c

+ 11 - 1
config.json

@@ -1,3 +1,13 @@
 {
-  "webport": "825"
+  "webPort": "825",
+  "ahead": {
+    "prop": 0.1,
+    "updateCron": "",
+    "saveClickTimes": 2,
+    "dailyTimes": 10
+  },
+  "custom": {
+    "searchPool": 1,
+    "updateCron": ""
+  }
 }

+ 0 - 16
config/config.go

@@ -1,16 +0,0 @@
-package config
-
-import (
-	qutil "app.yhyue.com/moapp/jybase/common"
-)
-
-var Config *config
-
-type config struct {
-	Webport string
-}
-
-func init() {
-	//程序配置文件
-	qutil.ReadConfig(&Config)
-}

+ 33 - 0
entity/mananger/aheadManager.go

@@ -0,0 +1,33 @@
+package mananger
+
+import (
+	"github.com/robfig/cron/v3"
+	"leadGeneration/vars"
+)
+
+type aheadManager struct {
+	Conf vars.AheadConfig
+}
+
+// InitAheadManager 初始化
+func InitAheadManager(conf vars.AheadConfig) *aheadManager {
+	manager := &aheadManager{
+		conf,
+	}
+	go manager.ScheduledTasks()
+	return manager
+}
+
+func (this *aheadManager) ScheduledTasks() {
+	if this.Conf.UpdateCron != "" {
+		// 给对象增加定时任务
+		if _, err := cron.New().AddFunc(this.Conf.UpdateCron, this.UpdateUserGroupJob); err != nil {
+			panic(err)
+		}
+	}
+}
+
+//UpdateUserGroupJob 更新用户群组
+func (this *aheadManager) UpdateUserGroupJob() {
+
+}

+ 1 - 0
entity/mananger/customManager.go

@@ -0,0 +1 @@
+package mananger

+ 2 - 3
common/advancedProject.go → entity/search/advancedProject.go

@@ -1,11 +1,10 @@
-package common
+package search
 
 import (
 	qutil "app.yhyue.com/moapp/jybase/common"
 	"encoding/json"
 	"fmt"
 	"leadGeneration/public"
-	"leadGeneration/util"
 	"log"
 	"regexp"
 	"strings"
@@ -26,7 +25,7 @@ func AdvancedProject(userid, keyWords string) (map[string]interface{}, error) {
 	mae.FormatParam.STime = time.Now().AddDate(0, -3, 0).Unix()
 	finalSql := fmt.Sprintf(mae.GetCommonQuerySqlWithAggs(), projectsNumber, mae.Size, projectsSort)
 	log.Println("超前项目es查询:", finalSql)
-	res, _, data := util.GetAggs("bidding", "bidding", finalSql)
+	res, _, data := public.GetAggs("bidding", "bidding", finalSql)
 	if res == nil || len(res) == 0 || data == nil || len(data) == 0 {
 		return nil, nil
 	}

+ 1 - 1
common/commonSearch.go → entity/search/commonSearch.go

@@ -1,4 +1,4 @@
-package common
+package search
 
 import (
 	qutil "app.yhyue.com/moapp/jybase/common"

+ 3 - 3
common/customizedAnalysis.go → entity/search/customizedAnalysis.go

@@ -1,9 +1,9 @@
-package common
+package search
 
 import (
 	"encoding/json"
 	"fmt"
-	"leadGeneration/util"
+	"leadGeneration/public"
 	"log"
 	"strings"
 	"time"
@@ -25,7 +25,7 @@ func PotentialCustomizeAnalysis(userid, keyWords string) (map[string]interface{}
 	mae.FormatParam.STime = time.Now().AddDate(-1, 0, 0).Unix()
 	finalSql := fmt.Sprintf(mae.GetCommonQuerySqlWithAggs(), strings.Join(aggs, ","), mae.Size, "")
 	log.Println("定制化分析报告es查询:", finalSql)
-	res, _, _ := util.GetAggs("projectset", "projectset", finalSql)
+	res, _, _ := public.GetAggs("projectset", "projectset", finalSql)
 	if res == nil || len(res) == 0 {
 		return nil, nil
 	}

+ 1 - 1
common/marketAnalysisEntity.go → entity/search/marketAnalysisEntity.go

@@ -1,4 +1,4 @@
-package common
+package search
 
 const (
 	//客户分布

+ 11 - 1
go.mod

@@ -2,15 +2,23 @@ module leadGeneration
 
 go 1.17
 
-require app.yhyue.com/moapp/jybase v0.0.0-20221010080805-39dc6a853eff
+require (
+	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d
+	app.yhyue.com/moapp/jybase v0.0.0-20221010080805-39dc6a853eff
+	github.com/robfig/cron/v3 v3.0.1
+)
 
 require (
 	github.com/dchest/captcha v0.0.0-20200903113550-03f5f0333e1f // indirect
 	github.com/garyburd/redigo v1.6.2 // indirect
+	github.com/go-sql-driver/mysql v1.6.0 // indirect
 	github.com/go-stack/stack v1.8.0 // indirect
 	github.com/golang/snappy v0.0.4 // indirect
 	github.com/howeyc/fsnotify v0.9.0 // indirect
+	github.com/jinzhu/inflection v1.0.0 // indirect
+	github.com/jinzhu/now v1.1.1 // indirect
 	github.com/klauspost/compress v1.13.6 // indirect
+	github.com/olivere/elastic v6.2.37+incompatible // indirect
 	github.com/pkg/errors v0.9.1 // indirect
 	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
 	github.com/xdg-go/scram v1.0.2 // indirect
@@ -20,4 +28,6 @@ require (
 	golang.org/x/crypto v0.0.0-20210920023735-84f357641f63 // indirect
 	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
 	golang.org/x/text v0.3.7 // indirect
+	gorm.io/driver/mysql v1.0.5 // indirect
+	gorm.io/gorm v1.21.3 // indirect
 )

+ 11 - 0
go.sum

@@ -1,3 +1,4 @@
+app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d h1:WPsYuuptAd3UEgN+jPzpnsDe/OvcshDUUtOTZPYGSJ8=
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d/go.mod h1:91/lSD/hS+ckMVP3WdidRzDhC60lLMdyce9QHy0cSMA=
 app.yhyue.com/moapp/jybase v0.0.0-20221010080805-39dc6a853eff h1:uYssVU5ODQHRdRpUt8jSVuJPFdbxQ+0G3CH6I7seRwU=
 app.yhyue.com/moapp/jybase v0.0.0-20221010080805-39dc6a853eff/go.mod h1:HelrO6tcD9TcKb/HOP2BLbzppyDz2kpQSFhPMQTUgbQ=
@@ -144,6 +145,7 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh
 github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
 github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
 github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
@@ -247,11 +249,14 @@ github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/U
 github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg=
 github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc=
 github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
+github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
+github.com/jinzhu/now v1.1.1 h1:g39TucaRWyV3dwDO++eEc6qf8TVIQ/Da48WmqjZ3i7E=
 github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
 github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
 github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -281,6 +286,7 @@ github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
@@ -308,6 +314,7 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA
 github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
 github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
 github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
+github.com/olivere/elastic v6.2.37+incompatible h1:UfSGJem5czY+x/LqxgeCBgjDn6St+z8OnsCuxwD3L0U=
 github.com/olivere/elastic v6.2.37+incompatible/go.mod h1:J+q1zQJTgAz9woqsbVRqGeB5G1iqDKVBWLNSYW8yfJ8=
 github.com/olivere/elastic/v7 v7.0.22/go.mod h1:VDexNy9NjmtAkrjNoI7tImv7FR4tf5zUA3ickqu5Pc8=
 github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -361,6 +368,8 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
 github.com/rabbitmq/amqp091-go v1.1.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM=
 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
+github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
 github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -788,7 +797,9 @@ gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C
 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gorm.io/driver/mysql v1.0.5 h1:WAAmvLK2rG0tCOqrf5XcLi2QUwugd4rcVJ/W3aoon9o=
 gorm.io/driver/mysql v1.0.5/go.mod h1:N1OIhHAIhx5SunkMGqWbGFVeh4yTNWKmMo1GOAsohLI=
+gorm.io/gorm v1.21.3 h1:qDFi55ZOsjZTwk5eN+uhAmHi8GysJ/qCTichM/yO7ME=
 gorm.io/gorm v1.21.3/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

+ 2 - 2
main.go

@@ -2,12 +2,12 @@ package main
 
 import (
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
-	"leadGeneration/config"
 	_ "leadGeneration/public"
+	"leadGeneration/vars"
 	"net/http"
 )
 
 func main() {
 	mux1 := http.NewServeMux()
-	xweb.RunBase(":"+config.Config.Webport, mux1)
+	xweb.RunBase(":"+vars.Config.WebPort, mux1)
 }

+ 1 - 1
util/aggsSearchUtil.go → public/aggsSearchUtil.go

@@ -1,4 +1,4 @@
-package util
+package public
 
 import (
 	elastic2 "app.yhyue.com/moapp/esv1/gopkg.in/olivere/elastic.v1"

+ 1 - 0
services/a_init.go

@@ -3,6 +3,7 @@ package services
 import (
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
+	_ "leadGeneration/services/filter"
 	"time"
 )
 

+ 0 - 0
filter/filter.go → services/filter/filter.go


+ 0 - 0
filter/logfilter.go → services/filter/logfilter.go


+ 0 - 0
filter/sessionfilter.go → services/filter/sessionfilter.go


+ 23 - 1
services/userMerge.go

@@ -4,7 +4,9 @@ import (
 	. "app.yhyue.com/moapp/jybase/api"
 	qutil "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
+	"app.yhyue.com/moapp/jybase/mongodb"
 	"log"
+	"time"
 )
 
 //LeadGeneration 潜在客户触达接口
@@ -18,7 +20,19 @@ type LeadGeneration struct {
 func (this *LeadGeneration) GetDate() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
-		return map[string]interface{}{}, nil
+		//根据判断用户是否是7天内注册的新用户
+		isNewUser := mongodb.StringTOBsonId("userId").Timestamp().After(time.Now().AddDate(0, 0, -7))
+		keyWords := this.GetString("keyWords")
+		rData := map[string]interface{}{}
+		//获取超前项目
+		if aheadData := getAheadData(userId, keyWords, isNewUser); aheadData != nil && len(aheadData) > 0 {
+			rData["ahead"] = aheadData
+		}
+		//获取定制化报告数据
+		if customData := getCustomData(userId, keyWords, isNewUser); customData != nil && len(customData) > 0 {
+			rData["custom"] = customData
+		}
+		return rData, nil
 	}()
 	if errMsg != nil {
 		log.Printf("%s LeadGeneration GetDate 异常:%s\n", userId, errMsg.Error())
@@ -37,3 +51,11 @@ func (this *LeadGeneration) ClickRecord() {
 	}
 	this.ServeJson(NewResult(rData, errMsg))
 }
+
+func getAheadData(userId, keyWords string, isNew bool) map[string]interface{} {
+	return nil
+}
+
+func getCustomData(userId, keyWords string, isNew bool) map[string]interface{} {
+	return nil
+}

+ 30 - 0
vars/config.go

@@ -0,0 +1,30 @@
+package vars
+
+import (
+	qutil "app.yhyue.com/moapp/jybase/common"
+)
+
+var Config *config
+
+type config struct {
+	WebPort string       `json:"webPort"` //服务端口
+	Ahead   AheadConfig  `json:"ahead"`   //超前项目配置
+	Custom  CustomConfig `json:"custom"`  //定制化报告配置
+}
+
+type AheadConfig struct {
+	Prop           float64 `json:"prop"`           //新增用户百分比
+	DailyTimes     int     `json:"dailyTimes"`     //每日展示次数
+	SaveClickTimes int     `json:"saveClickTimes"` //保留用户的点击量
+	UpdateCron     string  `json:"updateCron"`     //更新周活用户
+}
+
+type CustomConfig struct {
+	SearchPool int    `json:"searchPool"` //检索并发池
+	UpdateCron string `json:"updateCron"` //更新周活用户
+}
+
+func init() {
+	//程序配置文件
+	qutil.ReadConfig(&Config)
+}