Jelajahi Sumber

Merge branch 'master' into feature/v1.5.35

yuelujie 2 bulan lalu
induk
melakukan
d01ca3e878
1 mengubah file dengan 21 tambahan dan 10 penghapusan
  1. 21 10
      clueSync/everything.go

+ 21 - 10
clueSync/everything.go

@@ -345,16 +345,18 @@ func bigCustomer() {
 	log.Println("大客户线索定时任务开始")
 	dataArr := []map[string]interface{}{}
 	filterArr := []string{"-pc", "-app", "-wx", "-h5"}
-	sourceMap := map[string]string{} //根据留资维表:tidb/Jianyu_subjectdb/d_saleleads_code
-	saleSource := TiDb.SelectBySql(`SELECT source,name FROM d_saleleads_code WHERE department LIKE '%大客户%' AND is_delete = 1`)
+	sourceMap := map[string]map[string]interface{}{} //根据留资维表:tidb/Jianyu_subjectdb/d_saleleads_code
+	saleSource := TiDb.SelectBySql(`SELECT source,name,appoint_email FROM d_saleleads_code WHERE department LIKE '%大客户%' AND is_delete = 1`)
 	if saleSource != nil && len(*saleSource) > 0 {
 		for _, v := range *saleSource {
+			saleSourceMap := v
 			source := common.ObjToString(v["source"])
 			name := common.ObjToString(v["name"])
 			for _, s := range filterArr {
 				name = strings.ReplaceAll(name, s, "")
 			}
-			sourceMap[source] = name
+			saleSourceMap["name"] = name
+			sourceMap[source] = saleSourceMap
 		}
 	}
 	nowTime := time.Now().Format(date.Date_Full_Layout)
@@ -367,7 +369,7 @@ func bigCustomer() {
 		bigOrderTime = nowTime
 	}
 	data := FindBatchData("dk")
-	saleleadsData, ok := Mgo.Find("saleLeads", map[string]interface{}{"createtime": map[string]interface{}{"$gte": bigSaleTime}}, `{"phone":1,"createtime":1}`, nil, false, -1, -1)
+	saleleadsData, ok := Mgo.Find("saleLeads", map[string]interface{}{"createtime": map[string]interface{}{"$gt": bigSaleTime}}, `{"phone":1,"createtime":1}`, nil, false, -1, -1)
 	if ok && saleleadsData != nil && len(*saleleadsData) > 0 {
 		for _, v := range *saleleadsData {
 			sources := common.ObjToString(v["source"])
@@ -386,8 +388,9 @@ func bigCustomer() {
 					uid = common.ObjToString((*userMapping)["uid"])
 				}
 			}
-			if sourceMap[sources] != "" {
-				source := sourceMap[sources]
+			if sourceMap[sources] != nil {
+				sourceData := sourceMap[sources]
+				source := sourceData["name"]
 				phone := common.ObjToString(v["phone"])
 				if IsInternal(phone) {
 					continue
@@ -428,6 +431,7 @@ func bigCustomer() {
 					"belongTo":         belongTo,
 					"interest":         interest,
 					"data_requirement": data_requirement,
+					"appoint_email":    sourceData["appoint_email"],
 				})
 			}
 			if gconv.Int64(v["createtime"]) > bigSaleTime {
@@ -439,6 +443,7 @@ func bigCustomer() {
 	orderData := Mysql.SelectBySql(`SELECT * FROM dataexport_order WHERE create_time > "` + bigOrderTime + `" AND (product_type = '历史数据' or product_type = '数据流量包') AND order_status IN (0,1) AND salesperson IS NULL AND is_backstage_order = 0`)
 	if orderData != nil && len(*orderData) > 0 {
 		for _, v := range *orderData {
+			bigOrderTime = gconv.Time(gconv.String(v["create_time"])).Format(date.Date_Full_Layout)
 			phone := common.ObjToString(v["user_phone"])
 			order_status := common.IntAll(v["order_status"])
 			product_type := common.ObjToString(v["product_type"])
@@ -508,17 +513,23 @@ func bigCustomer() {
 				"data_count":     v["data_count"],
 				"unpayorderinfo": unpayorderinfo,
 				"payorderinfo":   payorderinfo, //增加客户需求
+				"appoint_email":  "",
 			})
-			bigOrderTime = gconv.Time(gconv.String(v["create_time"])).Format(date.Date_Full_Layout)
+
 		}
 		cfg.BigOrderTime = bigOrderTime
 	}
-
+	saveDataToRedis(data, "dk")
 	xlsxArr := []string{"用户昵称", "姓名", "公司名称", "职位", "联系人电话", "购买条数", "用户邮箱", "已支付订单信息", "未支付订单类型", "销售线索来源", "具体来源", "数据需求"}
 	if len(dataArr) > 0 {
 		bigArr := map[string][]map[string]interface{}{}
 		for _, v := range dataArr {
-			minemail, _ := EmailSelect("dk")
+			minemail := ""
+			if gconv.String(v["appoint_email"]) == "" {
+				minemail, _ = EmailSelect("dk")
+			} else {
+				minemail = gconv.String(v["appoint_email"])
+			}
 			bigArr[minemail] = append(bigArr[minemail], v)
 		}
 		for k, vb := range bigArr {
@@ -768,7 +779,7 @@ func getCommitteeTime(cfgTime int64) int64 {
 func processLeads(batch string, committeeTime int64, sourceMap map[string]map[string]interface{}, nowTime string) ([]map[string]interface{}, int64) {
 	dataArr := []map[string]interface{}{}
 	endtime := int64(0)
-	saleleadsData, ok := Mgo.Find("saleLeads", map[string]interface{}{"createtime": map[string]interface{}{"$gte": committeeTime}}, `{"phone":1,"createtime":1}`, nil, false, -1, -1)
+	saleleadsData, ok := Mgo.Find("saleLeads", map[string]interface{}{"createtime": map[string]interface{}{"$gt": committeeTime}}, `{"phone":1,"createtime":1}`, nil, false, -1, -1)
 	//saleleadsData, ok := Mgo.Find("saleLeads", map[string]interface{}{"createtime": committeeTime}, `{"phone":1,"createtime":1}`, nil, false, -1, -1)
 	if ok && saleleadsData != nil {
 		data := FindBatchData(batch)