|
@@ -349,16 +349,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)
|
|
@@ -371,7 +373,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"])
|
|
@@ -390,8 +392,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
|
|
@@ -432,6 +435,7 @@ func bigCustomer() {
|
|
|
"belongTo": belongTo,
|
|
|
"interest": interest,
|
|
|
"data_requirement": data_requirement,
|
|
|
+ "appoint_email": sourceData["appoint_email"],
|
|
|
})
|
|
|
}
|
|
|
if gconv.Int64(v["createtime"]) > bigSaleTime {
|
|
@@ -446,6 +450,7 @@ func bigCustomer() {
|
|
|
orderData := Mysql.SelectBySql(orderDataSql, bigOrderTime)
|
|
|
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["productType"])
|
|
@@ -517,17 +522,23 @@ func bigCustomer() {
|
|
|
"data_count": 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 {
|
|
@@ -777,7 +788,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)
|