Эх сурвалжийг харах

Merge commit '4ec0d5e147f44b03f2ded4b36e770340e1e7354a'

* commit '4ec0d5e147f44b03f2ded4b36e770340e1e7354a':
  非集团在工商查询修改
  小程序用户注册进线索处理
  查询判断处理
  保护期修改
Jianghan 7 сар өмнө
parent
commit
b0c77796f0

+ 24 - 386
clueSync/everything.go

@@ -412,31 +412,32 @@ func bigCustomer() {
 					if strings.HasPrefix(bt, "03") || bt == "0102" {
 						continue
 					}
-				}
-				s_sourceid := common.ObjToString((*userData)["s_sourceid"])
-				if s_sourceid == db.Sourceid {
-					//安博会数据
-					abhList = append(abhList, map[string]interface{}{
-						"createTime":       nowTime,
-						"lastUpdateTime":   nowTime,
-						"uid":              uid,
-						"userid":           userid,
-						"username":         username,
-						"usernickname":     usernickname,
-						"company":          company,
-						"job":              job,
-						"phone":            phone,
-						"email":            email,
-						"source":           source,
-						"belongTo":         belongTo,
-						"interest":         interest,
-						"data_requirement": data_requirement,
-					})
-					if gconv.Int64(v["createtime"]) > bigSaleTime {
-						bigSaleTime = gconv.Int64(v["createtime"])
+					s_sourceid := common.ObjToString((*userData)["s_sourceid"])
+					if s_sourceid == db.Sourceid {
+						//安博会数据
+						abhList = append(abhList, map[string]interface{}{
+							"createTime":       nowTime,
+							"lastUpdateTime":   nowTime,
+							"uid":              uid,
+							"userid":           userid,
+							"username":         username,
+							"usernickname":     usernickname,
+							"company":          company,
+							"job":              job,
+							"phone":            phone,
+							"email":            email,
+							"source":           source,
+							"belongTo":         belongTo,
+							"interest":         interest,
+							"data_requirement": data_requirement,
+						})
+						if gconv.Int64(v["createtime"]) > bigSaleTime {
+							bigSaleTime = gconv.Int64(v["createtime"])
+						}
+						continue
 					}
-					continue
 				}
+
 				dataArr = append(dataArr, map[string]interface{}{
 					"createTime":       nowTime,
 					"lastUpdateTime":   nowTime,
@@ -638,369 +639,6 @@ func IsInternal(phone string) bool {
 	return false
 }
 
-/*
-// 咨询组线索
-
-	func AdvisoryCommittee() {
-		runOk := getRunOk()
-		if !runOk {
-			log.Println("不是工作日,任务暂停")
-			return
-		}
-		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`)
-		if saleSource != nil && len(*saleSource) > 0 {
-			for _, v := range *saleSource {
-				source := common.ObjToString(v["source"])
-				name := common.ObjToString(v["name"])
-				for _, s := range filterArr {
-					name = strings.ReplaceAll(name, s, "")
-				}
-				sourceMap[source] = name
-			}
-		}
-		nowTime := time.Now().Format(date.Date_Full_Layout)
-		advisoryCommitteeTime := cfg.AdvisoryCommitteeTime
-		if advisoryCommitteeTime == 0 {
-			advisoryCommitteeTime = time.Now().Unix()
-		}
-		abhList := []map[string]interface{}{}
-		saleleadsData, ok := Mgo.Find("saleLeads", map[string]interface{}{"createtime": map[string]interface{}{"$gte": advisoryCommitteeTime}}, `{"phone":1,"createtime":1}`, nil, false, -1, -1)
-		if ok && saleleadsData != nil && len(*saleleadsData) > 0 {
-			data := FindBatchData("zx")
-			for _, v := range *saleleadsData {
-				sources := common.ObjToString(v["source"])
-				userid := common.ObjToString(v["userid"])
-				uid := ""
-				if !mongodb.IsObjectIdHex(userid) {
-					userMapping := TiDb.FindOne("dwd_f_userbase_id_mapping", map[string]interface{}{"position_id": userid}, "", "")
-					if userMapping != nil && len(*userMapping) > 0 {
-						userid = common.ObjToString((*userMapping)["userid"])
-						uid = common.ObjToString((*userMapping)["uid"])
-					}
-				} else {
-					userMapping := TiDb.FindOne("dwd_f_userbase_id_mapping", map[string]interface{}{"userid": userid}, "", "")
-					if userMapping != nil && len(*userMapping) > 0 {
-						userid = common.ObjToString((*userMapping)["userid"])
-						uid = common.ObjToString((*userMapping)["uid"])
-					}
-				}
-				if sourceMap[sources] != "" {
-					company := common.ObjToString(v["company"])
-					phone := common.ObjToString(v["phone"])
-					if IsInternal(phone) {
-						continue
-					}
-					username := common.ObjToString(v["name"])
-					email := common.ObjToString(v["mail"])
-					interest := common.ObjToString(v["interest"])
-					data_requirement := common.ObjToString(v["data_requirement"])
-					source := sourceMap[sources]
-					belongTo := "咨询组"
-					userData := TiDb.FindOne("dwd_f_userbase_baseinfo", map[string]interface{}{"uid": uid}, "", "")
-					if userData != nil {
-						bt := common.ObjToString((*userData)["belong_to"])
-						if strings.HasPrefix(bt, "03") || bt == "0102" {
-							continue
-						}
-					}
-					key := fmt.Sprintf("%s_%s_%s", source, phone, interest)
-					if _, ok := data[key]; ok {
-						continue
-					}
-					data[key] = true
-					s_sourceid := common.ObjToString((*userData)["s_sourceid"])
-					if s_sourceid == db.Sourceid {
-						abhList = append(abhList, map[string]interface{}{
-							"createTime":       nowTime,
-							"createtime":       v["createtime"],
-							"username":         username,
-							"company":          company,
-							"phone":            phone,
-							"source":           source,
-							"belongTo":         belongTo,
-							"interest":         interest,
-							"data_requirement": data_requirement,
-							"branch":           v["branch"],
-							"email":            email,
-						})
-						if gconv.Int64(v["createtime"]) > advisoryCommitteeTime {
-							advisoryCommitteeTime = gconv.Int64(v["createtime"])
-						}
-						continue
-					}
-					dataArr = append(dataArr, map[string]interface{}{
-						"createTime":       nowTime,
-						"createtime":       v["createtime"],
-						"username":         username,
-						"company":          company,
-						"phone":            phone,
-						"source":           source,
-						"belongTo":         belongTo,
-						"interest":         interest,
-						"data_requirement": data_requirement,
-						"branch":           v["branch"],
-						"email":            email,
-					})
-
-				}
-
-			}
-			keyContent := fmt.Sprintf("data_%s_%s", time.Now().Format("2006-01-02"), "zx")
-			redis.Put("newother", keyContent, data, 86400)
-		}
-		if len(abhList) > 0 {
-			//安博会发邮件高翔
-			ABHEmail("advisory", abhList)
-		}
-		cfg.AdvisoryCommitteeTime = advisoryCommitteeTime
-		xlsxArr := []string{"姓名", "联系方式", "邮箱", "公司名称", "咨询需求", "销售线索来源", "具体来源", "留资时间"}
-		if len(dataArr) > 0 {
-			//排序:首先按照“联系方式”排序,即同1个用户的留资放在一起,其次按照留资时间正序排序。
-			batch := FindBatch("zx")
-			fileName, detailName := "咨询服务销售线索 "+time.Now().Format(date.Date_Short_Layout)+"-"+batch, ""
-			xf := xlsx.NewFile()
-			style := xlsx.NewStyle()
-			style.Font.Size = 12
-			style.Font.Bold = true
-			style.Alignment.Vertical = "center"
-			style.Alignment.Horizontal = "center"
-			detailName = "今日新增咨询服务销售线索,请查收附件,及时跟进。"
-			sh, _ := xf.AddSheet("线索数据")
-			row1 := sh.AddRow()
-			for _, x := range xlsxArr {
-				cell := row1.AddCell()
-				cell.SetString(x)
-				cell.SetStyle(style)
-			}
-			for _, v := range dataArr {
-				row := sh.AddRow()
-				row.AddCell().SetString(common.ObjToString(v["username"]))
-				row.AddCell().SetString(common.ObjToString(v["phone"]))
-				row.AddCell().SetString(common.ObjToString(v["email"]))
-				row.AddCell().SetString(common.ObjToString(v["company"]))
-				row.AddCell().SetString(common.ObjToString(v["data_requirement"]))
-				row.AddCell().SetString(common.ObjToString(v["source"]))
-				row.AddCell().SetString(common.ObjToString(v["interest"]))
-				row.AddCell().SetString(gconv.Time(gconv.Int64(v["createtime"])).Format(date.Date_Full_Layout))
-				//增加客户需求
-			}
-			email := db.AdvisoryCommitteeMail
-			dir := "./xlsx/zx/" + fileName + ".xlsx"
-			err := xf.Save(dir)
-			if err != nil {
-				log.Println("xls error", err, dir)
-			} else {
-				gmail := &mail.GmailAuth{
-					SmtpHost: "smtp.exmail.qq.com",
-					SmtpPort: 465,
-					User:     "public03@topnet.net.cn",
-					Pwd:      "ue9Rg9Sf4CVtdm5a",
-				}
-				for _, v := range email {
-					status := mail.GSendMail_q("剑鱼标讯", v, "", "", fileName, detailName, dir, fileName+".xlsx", gmail)
-					if status {
-						log.Println("send mail success", fileName, v)
-					}
-				}
-			}
-		}
-		common.WriteSysConfig(&cfg)
-		log.Println("咨询部线索定时任务结束")
-	}
-
-// 市场部线索
-
-	func marketCustomer() {
-		runOk := getRunOk()
-		if !runOk {
-			log.Println("不是工作日,任务暂停")
-			return
-		}
-		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`)
-		if saleSource != nil && len(*saleSource) > 0 {
-			for _, v := range *saleSource {
-				source := common.ObjToString(v["source"])
-				name := common.ObjToString(v["name"])
-				for _, s := range filterArr {
-					name = strings.ReplaceAll(name, s, "")
-				}
-				sourceMap[source] = name
-			}
-		}
-		nowTime := time.Now().Format(date.Date_Full_Layout)
-		marketSaleTime := cfg.MarketSaleTime
-		if marketSaleTime == 0 {
-			marketSaleTime = time.Now().Unix()
-		}
-		abhList := []map[string]interface{}{}
-		saleleadsData, ok := Mgo.Find("saleLeads", map[string]interface{}{"createtime": map[string]interface{}{"$gte": marketSaleTime}}, `{"phone":1,"createtime":1}`, nil, false, -1, -1)
-		if ok && saleleadsData != nil && len(*saleleadsData) > 0 {
-			data := FindBatchData("sc")
-			for _, v := range *saleleadsData {
-				sources := common.ObjToString(v["source"])
-				userid := common.ObjToString(v["userid"])
-				uid := ""
-				if !mongodb.IsObjectIdHex(userid) {
-					userMapping := TiDb.FindOne("dwd_f_userbase_id_mapping", map[string]interface{}{"position_id": userid}, "", "")
-					if userMapping != nil && len(*userMapping) > 0 {
-						userid = common.ObjToString((*userMapping)["userid"])
-						uid = common.ObjToString((*userMapping)["uid"])
-					}
-				} else {
-					userMapping := TiDb.FindOne("dwd_f_userbase_id_mapping", map[string]interface{}{"userid": userid}, "", "")
-					if userMapping != nil && len(*userMapping) > 0 {
-						userid = common.ObjToString((*userMapping)["userid"])
-						uid = common.ObjToString((*userMapping)["uid"])
-					}
-				}
-				if sourceMap[sources] != "" {
-					company := common.ObjToString(v["company"])
-					phone := common.ObjToString(v["phone"])
-					if IsInternal(phone) {
-						continue
-					}
-					job := common.ObjToString(v["position"])
-					username := common.ObjToString(v["name"])
-					email := common.ObjToString(v["mail"])
-					interest := common.ObjToString(v["interest"])
-					data_requirement := common.ObjToString(v["data_requirement"])
-					source := sourceMap[sources]
-					belongTo, usernickname := "市场组", ""
-					userData := TiDb.FindOne("dwd_f_userbase_baseinfo", map[string]interface{}{"uid": uid}, "", "")
-					if userData != nil {
-						usernickname = common.ObjToString((*userData)["nickname"])
-						bt := common.ObjToString((*userData)["belong_to"])
-						if strings.HasPrefix(bt, "03") || bt == "0102" {
-							continue
-						}
-					}
-					key := fmt.Sprintf("%s_%s", source, phone)
-					if _, ok := data[key]; ok {
-						continue
-					}
-					s_sourceid := common.ObjToString((*userData)["s_sourceid"])
-					data[key] = true
-					if s_sourceid == db.Sourceid {
-						abhList = append(abhList, map[string]interface{}{
-							"createTime":       nowTime,
-							"lastUpdateTime":   nowTime,
-							"createtime":       v["createtime"],
-							"uid":              uid,
-							"userid":           userid,
-							"username":         username,
-							"usernickname":     usernickname,
-							"company":          company,
-							"job":              job,
-							"phone":            phone,
-							"email":            email,
-							"source":           source,
-							"belongTo":         belongTo,
-							"interest":         interest,
-							"data_requirement": data_requirement,
-							"branch":           v["branch"],
-							"s_sourceid":       s_sourceid,
-						})
-						if gconv.Int64(v["createtime"]) > marketSaleTime {
-							marketSaleTime = gconv.Int64(v["createtime"])
-						}
-						continue
-					}
-					dataArr = append(dataArr, map[string]interface{}{
-						"createTime":       nowTime,
-						"lastUpdateTime":   nowTime,
-						"createtime":       v["createtime"],
-						"uid":              uid,
-						"userid":           userid,
-						"username":         username,
-						"usernickname":     usernickname,
-						"company":          company,
-						"job":              job,
-						"phone":            phone,
-						"email":            email,
-						"source":           source,
-						"belongTo":         belongTo,
-						"interest":         interest,
-						"data_requirement": data_requirement,
-						"branch":           v["branch"],
-						"s_sourceid":       s_sourceid,
-					})
-
-				}
-				if gconv.Int64(v["createtime"]) > marketSaleTime {
-					marketSaleTime = gconv.Int64(v["createtime"])
-				}
-			}
-			if len(abhList) > 0 {
-				//安博会发邮件高翔
-				ABHEmail("market", abhList)
-			}
-			keyContent := fmt.Sprintf("data_%s_%s", time.Now().Format("2006-01-02"), "sc")
-			redis.Put("newother", keyContent, data, 86400)
-
-		}
-		cfg.MarketSaleTime = marketSaleTime
-		xlsxArr := []string{"姓名", "联系人电话", "公司名称", "职位", "部门", "销售线索来源", "留资时间"}
-		if len(dataArr) > 0 {
-			//排序:首先按照“联系方式”排序,即同1个用户的留资放在一起,其次按照留资时间正序排序。
-			batch := FindBatch("sc")
-			fileName, detailName := "商务合作销售线索 "+time.Now().Format(date.Date_Short_Layout)+"-"+batch, ""
-			xf := xlsx.NewFile()
-			style := xlsx.NewStyle()
-			style.Font.Size = 12
-			style.Font.Bold = true
-			style.Alignment.Vertical = "center"
-			style.Alignment.Horizontal = "center"
-			detailName = "今日新增商务合作销售线索,请查收附件,及时跟进。"
-			sh, _ := xf.AddSheet("线索数据")
-			row1 := sh.AddRow()
-			for _, x := range xlsxArr {
-				cell := row1.AddCell()
-				cell.SetString(x)
-				cell.SetStyle(style)
-			}
-			for _, v := range dataArr {
-
-				row := sh.AddRow()
-				row.AddCell().SetString(common.ObjToString(v["username"]))
-				row.AddCell().SetString(common.ObjToString(v["phone"]))
-				row.AddCell().SetString(common.ObjToString(v["company"]))
-				row.AddCell().SetString(common.ObjToString(v["job"]))
-				row.AddCell().SetString(common.ObjToString(v["branch"]))
-				row.AddCell().SetString(common.ObjToString(v["source"]))
-				row.AddCell().SetString(gconv.Time(gconv.Int64(v["createtime"])).Format(date.Date_Full_Layout))
-				//增加客户需求
-			}
-			email := db.MarketSaleMail
-			dir := "./xlsx/sc/" + fileName + ".xlsx"
-			err := xf.Save(dir)
-			if err != nil {
-				log.Println("xls error", err, dir)
-			} else {
-				gmail := &mail.GmailAuth{
-					SmtpHost: "smtp.exmail.qq.com",
-					SmtpPort: 465,
-					User:     "public03@topnet.net.cn",
-					Pwd:      "ue9Rg9Sf4CVtdm5a",
-				}
-				status := mail.GSendMail_q("剑鱼标讯", email, "", "", fileName, detailName, dir, fileName+".xlsx", gmail)
-				if status {
-					log.Println("send mail success", fileName, email)
-				}
-			}
-
-		}
-		common.WriteSysConfig(&cfg)
-		log.Println("大客户线索定时任务结束")
-	}
-*/
 func eventReg() {
 	lastEventRegTime := cfg.LastEventRegTime
 	sql := fmt.Sprintf(`select * from exhibition_sign_up where is_del = 0 and update_time > "%s" order by update_time asc`, lastEventRegTime)

+ 1 - 1
clueSync/job.go

@@ -244,7 +244,7 @@ func FormatData(data map[string]interface{}, item string) (bool, bool, bool) {
 	}
 	log.Println(333, cluename)
 	cluename = strings.ReplaceAll(cluename, " ", "")
-	isGroup, isCommerce := GetCompanyType(cluename)                                                                    //判断是否集团公司、工商库
+	isGroup, isCommerce := GetCompanyType(cluename, uId)                                                               //判断是否集团公司、工商库
 	if source == "0104" || strings.HasPrefix(belong_to, "02") || source == "0102" || source == "0103" || phone == "" { //参照用户来源代码表
 		//log.Println("线索分配失败,线索过滤!!", item, source, phone, userId)
 		//saveHlyj(belong_to, item, phone, name, sourceName, cluename, position, nowTime, isGroup, isCommerce)

+ 15 - 35
clueSync/jobutil.go

@@ -76,8 +76,9 @@ func WorkDataHandle(company, phone, demand, name, product string, acceptanceData
 	if cluename == "" {
 		cluename = phone //没有线索名,手机号代替
 	}
+
 	ok, data, saleData := false, map[string]interface{}{}, []map[string]interface{}{}
-	isGroup, isCommerce := GetCompanyType(cluename)
+	isGroup, isCommerce := GetCompanyType(cluename, uId)
 	uCount, _ := TiDb.FindOne("dwd_f_crm_clue_info", map[string]interface{}{"uid": uId}, "", ""), true //查当前线索是否已存在
 	if uCount != nil && len(*uCount) > 0 {
 		isUpdate := gconv.Int64((*uCount)["is_artificially_modified"])
@@ -596,7 +597,7 @@ func users() {
 	selectXcxTimeEnd := cfg.LastXcxUserId
 	xcxSql := fmt.Sprintf(`SELECT DISTINCT
 	aa.mgo_id as  userId,
-	cc.NAME as   industry ,
+	cc.code as   industry ,
 	aa.phone,
 	IF
 			( aa.phone_time IS NULL, aa.create_time, aa.phone_time ) as  time 
@@ -982,37 +983,6 @@ func getClueType(item string, data map[string]interface{}, sourceCode string, so
 			code = "618"
 			subname = "7天后到期"
 		}
-	} else if item == "xcxusers" {
-		level = "S"
-		pcode = "532"
-		code = "477"
-		topname = "其他"
-		switch sourceCode {
-		case "环境采购":
-			pcode = "532"
-			code = "696"
-			subname = `首次使用“环境”小程序`
-		case "物业":
-			pcode = "532"
-			code = "693"
-			subname = `首次使用“物业”小程序`
-		case "印务商机":
-			pcode = "532"
-			code = "697"
-			subname = `首次使用“印务”小程序`
-		case "家具":
-			pcode = "532"
-			code = "695"
-			subname = `首次使用“家具”小程序`
-		case "车辆租赁":
-			pcode = "532"
-			code = "694"
-			subname = `首次使用“车辆”小程序`
-		case "安防":
-			pcode = "532"
-			code = "701"
-			subname = `首次使用“安防”小程序`
-		}
 	} else if item == "allocation" {
 		pcode = "532"
 		code = "671"
@@ -1357,9 +1327,19 @@ func getPositionId(phone string) (positionId int64) {
 	return
 }
 
-func GetCompanyType(companyName string) (int, int) {
-	//是否是集团
+func GetCompanyType(companyName string, uId string) (int, int) {
 	isGroup, isCommerce := 0, 0
+	uCount := TiDb.FindOne("dwd_f_crm_clue_info", map[string]interface{}{"uid": uId}, "", "")
+	if uCount != nil && len(*uCount) > 0 {
+		isUpdate := gconv.Int64((*uCount)["is_artificially_modified"])
+		if isUpdate == 1 {
+			companyName = gconv.String((*uCount)["cluename"])
+		}
+	}
+	if companyName == "" {
+		return isGroup, isCommerce
+	}
+	//是否是集团
 	if c := TiDb.CountBySql(`select count(1) from group_company_name where company_name=?`, companyName); c > 0 {
 		isGroup = 1
 	}

+ 4 - 2
clueSync/kc.go

@@ -470,7 +470,7 @@ func ordersClue() {
 				} else {
 					trailstatus = "01"
 				}
-				isGroup, isCommerce := GetCompanyType(cluename) //判断是否集团公司、工商库
+				isGroup, isCommerce := GetCompanyType(cluename, uId) //判断是否集团公司、工商库
 				clueData := TiDb.FindOne("dwd_f_crm_clue_info", map[string]interface{}{"uid": uId}, "", "")
 				if clueData == nil || len(*clueData) == 0 {
 					log.Println("saleDep", saleDep)
@@ -660,7 +660,9 @@ func refundAuto() {
 							if isRenewalProtection == 1 {
 								vip_endtime := common.ObjToString(vv["vip_endtime"])
 								vip_endtimes, _ := time.ParseInLocation(date.Date_Full_Layout, vip_endtime, time.Local)
-								if time.Now().Unix()-vip_endtimes.Unix() < 3*30*86400 {
+								beforeTime := time.Now().AddDate(0, -1, 0)
+								//if time.Now().Unix()-vip_endtimes.Unix() < 3*30*86400 {
+								if beforeTime.Unix() <= vip_endtimes.Unix() {
 									isOk = true
 								}
 							}