瀏覽代碼

Merge branch 'dev_v1.5.36.2_wh' of jianyu/datatools into hotfix/v1.5.36.2

王浩 2 月之前
父節點
當前提交
9f758333d1
共有 3 個文件被更改,包括 42 次插入3 次删除
  1. 10 0
      clueSync/config.go
  2. 29 2
      clueSync/job.go
  3. 3 1
      clueSync/main.go

+ 10 - 0
clueSync/config.go

@@ -5,6 +5,7 @@ import (
 	"context"
 	"fmt"
 	"github.com/ClickHouse/clickhouse-go/v2"
+	"github.com/gogf/gf/v2/util/gconv"
 	"gopkg.in/gomail.v2"
 	"log"
 	"time"
@@ -284,6 +285,15 @@ func InitProduct(product []string) {
 		ProductMap[v] = "dk"
 	}
 }
+func InitUserChannel() {
+	data := Mysql.SelectBySql(`SELECT code FROM short_url WHERE clue = 1 `)
+	if data != nil && len(*data) > 0 {
+		for _, v := range *data {
+			code := gconv.String(v["code"])
+			UserChannel[code] = true
+		}
+	}
+}
 func ConnectClickhouse(cHouseConfig *CHouseConfig) error {
 	var (
 		ctx = context.Background()

+ 29 - 2
clueSync/job.go

@@ -283,8 +283,11 @@ func FormatData(data map[string]interface{}, item string) (bool, bool, bool) {
 	}
 	log.Println(333, cluename)
 	cluename = strings.ReplaceAll(cluename, " ", "")
-	isGroup, isCommerce := GetCompanyType(cluename, uId)                                                               //判断是否集团公司、工商库
-	if source == "0104" || strings.HasPrefix(belong_to, "02") || source == "0102" || source == "0103" || phone == "" { //参照用户来源代码表
+	isGroup, isCommerce := GetCompanyType(cluename, uId) //判断是否集团公司、工商库
+	//获取用户渠道
+	channel := GetUserChannel(uId)
+	_, exit := UserChannel[channel]
+	if source == "0104" || strings.HasPrefix(belong_to, "02") || source == "0102" || source == "0103" || phone == "" || (channel != "" && exit) { //参照用户来源代码表
 		//log.Println("线索分配失败,线索过滤!!", item, source, phone, userId)
 		//saveHlyj(belong_to, item, phone, name, sourceName, cluename, position, nowTime, isGroup, isCommerce)
 		return true, true, true
@@ -2264,3 +2267,27 @@ var phoneRegex = regexp.MustCompile(`^1[3-9]\d{9}$`)
 func ValidatePhone(phone string) bool {
 	return phoneRegex.MatchString(phone)
 }
+
+// 获取用户渠道信息
+func GetUserChannel(uid string) string {
+	channel := ""
+	userId := ""
+	data := TiDb.FindOne("dwd_f_userbase_baseinfo", map[string]interface{}{
+		"uid":    uid,
+		"status": 1,
+	}, "userid", "")
+	if data != nil {
+		userId = gconv.String((*data)["userid"])
+	}
+	if userId == "" {
+		return channel
+	}
+	//查找注册日志表
+	registerData, _ := MgoLog.FindOne("register_log", map[string]interface{}{
+		"userid": userId,
+	})
+	if registerData != nil {
+		channel = gconv.String((*registerData)["source"])
+	}
+	return channel
+}

+ 3 - 1
clueSync/main.go

@@ -38,6 +38,7 @@ var (
 	mode                = flag.Int("m", 1, "")
 	startTime, endTime  = "00:00", "23:59"
 	Gmail               mail.GmailAuth
+	UserChannel         map[string]bool
 )
 
 func main() {
@@ -159,6 +160,7 @@ func main() {
 	MgoQyxy = mongodb.NewMgoWithUser(db.MgoQyxy.Address, db.MgoQyxy.DbName, db.MgoQyxy.User, db.MgoQyxy.Password, db.MgoQyxy.DbSize)
 	InitArea()
 	InitProduct(db.ProductArr)
+	InitUserChannel()
 	if *mode == 1 {
 		go ordersClue() //后台订单进线索
 		//一秒钟一次
@@ -174,7 +176,7 @@ func main() {
 		})
 		//5分钟一次
 		go p.VarTimeTask.RunInTimeSection("5分钟定时任务1", db.CornExp2Start, db.CornExp2End, db.CornExp2, func(dayFirst bool) {
-
+			InitUserChannel()
 			users()               //新注册用户进线索
 			saleLeads()           //留资进线索
 			eventReg()            //渠道