|
@@ -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)
|