|
@@ -366,7 +366,6 @@ func bigCustomer() {
|
|
if bigOrderTime == "" {
|
|
if bigOrderTime == "" {
|
|
bigOrderTime = nowTime
|
|
bigOrderTime = nowTime
|
|
}
|
|
}
|
|
- abhList := []map[string]interface{}{}
|
|
|
|
data := FindBatchData("dk")
|
|
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{}{"$gte": bigSaleTime}}, `{"phone":1,"createtime":1}`, nil, false, -1, -1)
|
|
if ok && saleleadsData != nil && len(*saleleadsData) > 0 {
|
|
if ok && saleleadsData != nil && len(*saleleadsData) > 0 {
|
|
@@ -412,30 +411,6 @@ func bigCustomer() {
|
|
if strings.HasPrefix(bt, "03") || bt == "0102" {
|
|
if strings.HasPrefix(bt, "03") || bt == "0102" {
|
|
continue
|
|
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"])
|
|
|
|
- }
|
|
|
|
- continue
|
|
|
|
- }*/
|
|
|
|
}
|
|
}
|
|
|
|
|
|
dataArr = append(dataArr, map[string]interface{}{
|
|
dataArr = append(dataArr, map[string]interface{}{
|
|
@@ -479,7 +454,7 @@ func bigCustomer() {
|
|
query["userid"] = orderUserId
|
|
query["userid"] = orderUserId
|
|
}
|
|
}
|
|
userData := TiDb.FindOne("dwd_f_userbase_baseinfo", query, "", "")
|
|
userData := TiDb.FindOne("dwd_f_userbase_baseinfo", query, "", "")
|
|
- username, usernickname, userid, uid, source, payorderinfo, unpayorderinfo, s_sourceid := "", "", "", "", "", "", "", ""
|
|
|
|
|
|
+ username, usernickname, userid, uid, source, payorderinfo, unpayorderinfo := "", "", "", "", "", "", ""
|
|
if userData != nil {
|
|
if userData != nil {
|
|
if phone == "" {
|
|
if phone == "" {
|
|
phone = common.ObjToString((*userData)["phone"])
|
|
phone = common.ObjToString((*userData)["phone"])
|
|
@@ -491,7 +466,6 @@ func bigCustomer() {
|
|
usernickname = common.ObjToString((*userData)["nickname"])
|
|
usernickname = common.ObjToString((*userData)["nickname"])
|
|
uid = common.ObjToString((*userData)["uid"])
|
|
uid = common.ObjToString((*userData)["uid"])
|
|
userid = common.ObjToString((*userData)["userid"])
|
|
userid = common.ObjToString((*userData)["userid"])
|
|
- s_sourceid = common.ObjToString((*userData)["s_sourceid"])
|
|
|
|
bt := common.ObjToString((*userData)["belong_to"])
|
|
bt := common.ObjToString((*userData)["belong_to"])
|
|
if strings.HasPrefix(bt, "03") || bt == "0102" {
|
|
if strings.HasPrefix(bt, "03") || bt == "0102" {
|
|
continue
|
|
continue
|
|
@@ -519,26 +493,6 @@ func bigCustomer() {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
data[key] = true
|
|
data[key] = true
|
|
- if s_sourceid == db.Sourceid {
|
|
|
|
- abhList = append(abhList, map[string]interface{}{
|
|
|
|
- "createTime": nowTime,
|
|
|
|
- "lastUpdateTime": nowTime,
|
|
|
|
- "phone": phone,
|
|
|
|
- "username": username,
|
|
|
|
- "usernickname": usernickname,
|
|
|
|
- "uid": uid,
|
|
|
|
- "userid": userid,
|
|
|
|
- "company": v["company_name"],
|
|
|
|
- "email": v["user_mail"],
|
|
|
|
- "belongTo": "大客户",
|
|
|
|
- "source": source,
|
|
|
|
- "data_count": v["data_count"],
|
|
|
|
- "unpayorderinfo": unpayorderinfo,
|
|
|
|
- "payorderinfo": payorderinfo, //增加客户需求
|
|
|
|
- })
|
|
|
|
- bigOrderTime = gconv.Time(gconv.String(v["create_time"])).Format(date.Date_Full_Layout)
|
|
|
|
- continue
|
|
|
|
- }
|
|
|
|
dataArr = append(dataArr, map[string]interface{}{
|
|
dataArr = append(dataArr, map[string]interface{}{
|
|
"createTime": nowTime,
|
|
"createTime": nowTime,
|
|
"lastUpdateTime": nowTime,
|
|
"lastUpdateTime": nowTime,
|
|
@@ -559,13 +513,7 @@ func bigCustomer() {
|
|
}
|
|
}
|
|
cfg.BigOrderTime = bigOrderTime
|
|
cfg.BigOrderTime = bigOrderTime
|
|
}
|
|
}
|
|
- if len(abhList) > 0 {
|
|
|
|
- ABHEmail("big", abhList)
|
|
|
|
- }
|
|
|
|
- if len(abhList) > 0 || len(dataArr) > 0 {
|
|
|
|
- keyContent := fmt.Sprintf("data_%s_%s", time.Now().Format("2006-01-02"), "dk")
|
|
|
|
- redis.Put("newother", keyContent, data, 86400)
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
xlsxArr := []string{"用户昵称", "姓名", "公司名称", "职位", "联系人电话", "购买条数", "用户邮箱", "已支付订单信息", "未支付订单类型", "销售线索来源", "具体来源", "数据需求"}
|
|
xlsxArr := []string{"用户昵称", "姓名", "公司名称", "职位", "联系人电话", "购买条数", "用户邮箱", "已支付订单信息", "未支付订单类型", "销售线索来源", "具体来源", "数据需求"}
|
|
if len(dataArr) > 0 {
|
|
if len(dataArr) > 0 {
|
|
bigArr := map[string][]map[string]interface{}{}
|
|
bigArr := map[string][]map[string]interface{}{}
|
|
@@ -731,10 +679,7 @@ func AdvisoryCommittee() {
|
|
sourceMap := buildSourceMap("咨询组")
|
|
sourceMap := buildSourceMap("咨询组")
|
|
nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
startTime := getCommitteeTime(cfg.AdvisoryCommitteeTime)
|
|
startTime := getCommitteeTime(cfg.AdvisoryCommitteeTime)
|
|
- dataArr, abhList, endtime := processLeads("zx", startTime, sourceMap, nowTime)
|
|
|
|
- if len(abhList) > 0 {
|
|
|
|
- ABHEmail("advisory", abhList)
|
|
|
|
- }
|
|
|
|
|
|
+ dataArr, endtime := processLeads("zx", startTime, sourceMap, nowTime)
|
|
|
|
|
|
cfg.AdvisoryCommitteeTime = endtime
|
|
cfg.AdvisoryCommitteeTime = endtime
|
|
exportToExcel(dataArr, "咨询服务销售线索", "zx")
|
|
exportToExcel(dataArr, "咨询服务销售线索", "zx")
|
|
@@ -753,10 +698,7 @@ func SelectionDepartment() {
|
|
sourceMap := buildSourceMap("运营部")
|
|
sourceMap := buildSourceMap("运营部")
|
|
nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
startTime := getCommitteeTime(cfg.SelectionDepartmentTime)
|
|
startTime := getCommitteeTime(cfg.SelectionDepartmentTime)
|
|
- dataArr, abhList, endtime := processLeads("yy", startTime, sourceMap, nowTime)
|
|
|
|
- if len(abhList) > 0 {
|
|
|
|
- ABHEmail("selection", abhList)
|
|
|
|
- }
|
|
|
|
|
|
+ dataArr, endtime := processLeads("yy", startTime, sourceMap, nowTime)
|
|
cfg.SelectionDepartmentTime = endtime
|
|
cfg.SelectionDepartmentTime = endtime
|
|
exportToExcel(dataArr, "运营部销售线索", "yy")
|
|
exportToExcel(dataArr, "运营部销售线索", "yy")
|
|
log.Println("运营部线索定时任务结束")
|
|
log.Println("运营部线索定时任务结束")
|
|
@@ -774,10 +716,7 @@ func MarketCustomer() {
|
|
sourceMap := buildSourceMap("市场组")
|
|
sourceMap := buildSourceMap("市场组")
|
|
nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
startTime := getCommitteeTime(cfg.MarketSaleTime)
|
|
startTime := getCommitteeTime(cfg.MarketSaleTime)
|
|
- dataArr, abhList, endtime := processLeads("sc", startTime, sourceMap, nowTime)
|
|
|
|
- if len(abhList) > 0 {
|
|
|
|
- ABHEmail("market", abhList)
|
|
|
|
- }
|
|
|
|
|
|
+ dataArr, endtime := processLeads("sc", startTime, sourceMap, nowTime)
|
|
cfg.MarketSaleTime = endtime
|
|
cfg.MarketSaleTime = endtime
|
|
exportToExcel(dataArr, "商务合作销售线索", "sc")
|
|
exportToExcel(dataArr, "商务合作销售线索", "sc")
|
|
common.WriteSysConfig(&cfg)
|
|
common.WriteSysConfig(&cfg)
|
|
@@ -790,15 +729,19 @@ func isRunning() bool {
|
|
}
|
|
}
|
|
|
|
|
|
// 从数据库构建来源映射
|
|
// 从数据库构建来源映射
|
|
-func buildSourceMap(department string) map[string]string {
|
|
|
|
- sourceMap := map[string]string{}
|
|
|
|
- saleSource := TiDb.SelectBySql(fmt.Sprintf(`SELECT source,name FROM d_saleleads_code WHERE department LIKE '%%%s%%' AND is_delete = 1`, department))
|
|
|
|
|
|
+func buildSourceMap(department string) map[string]map[string]interface{} {
|
|
|
|
+ sourceMap := map[string]map[string]interface{}{}
|
|
|
|
+ saleSource := TiDb.SelectBySql(fmt.Sprintf(`SELECT source,name,appoint_email FROM d_saleleads_code WHERE department LIKE '%%%s%%' AND is_delete = 1`, department))
|
|
if saleSource != nil {
|
|
if saleSource != nil {
|
|
for _, v := range *saleSource {
|
|
for _, v := range *saleSource {
|
|
source := common.ObjToString(v["source"])
|
|
source := common.ObjToString(v["source"])
|
|
name := common.ObjToString(v["name"])
|
|
name := common.ObjToString(v["name"])
|
|
name = filterSourceName(name)
|
|
name = filterSourceName(name)
|
|
- sourceMap[source] = name
|
|
|
|
|
|
+ appointEmail := common.ObjToString(v["appoint_email"])
|
|
|
|
+ sourceMap[source] = map[string]interface{}{
|
|
|
|
+ "name": name,
|
|
|
|
+ "appointEmail": appointEmail,
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return sourceMap
|
|
return sourceMap
|
|
@@ -822,39 +765,35 @@ func getCommitteeTime(cfgTime int64) int64 {
|
|
}
|
|
}
|
|
|
|
|
|
// 处理线索
|
|
// 处理线索
|
|
-func processLeads(batch string, committeeTime int64, sourceMap map[string]string, nowTime string) ([]map[string]interface{}, []map[string]interface{}, int64) {
|
|
|
|
|
|
+func processLeads(batch string, committeeTime int64, sourceMap map[string]map[string]interface{}, nowTime string) ([]map[string]interface{}, int64) {
|
|
dataArr := []map[string]interface{}{}
|
|
dataArr := []map[string]interface{}{}
|
|
- abhList := []map[string]interface{}{}
|
|
|
|
endtime := int64(0)
|
|
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{}{"$gte": 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 {
|
|
if ok && saleleadsData != nil {
|
|
data := FindBatchData(batch)
|
|
data := FindBatchData(batch)
|
|
for _, v := range *saleleadsData {
|
|
for _, v := range *saleleadsData {
|
|
lead := map[string]interface{}{}
|
|
lead := map[string]interface{}{}
|
|
lead, endtime = processLead(v, sourceMap, nowTime, committeeTime, data)
|
|
lead, endtime = processLead(v, sourceMap, nowTime, committeeTime, data)
|
|
if lead != nil {
|
|
if lead != nil {
|
|
- /* if isABHLead(lead) {
|
|
|
|
- abhList = append(abhList, lead)
|
|
|
|
- } else {
|
|
|
|
- dataArr = append(dataArr, lead)
|
|
|
|
- }*/
|
|
|
|
dataArr = append(dataArr, lead)
|
|
dataArr = append(dataArr, lead)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
saveDataToRedis(data, batch)
|
|
saveDataToRedis(data, batch)
|
|
}
|
|
}
|
|
|
|
|
|
- return dataArr, abhList, endtime
|
|
|
|
|
|
+ return dataArr, endtime
|
|
}
|
|
}
|
|
|
|
|
|
// 处理单个线索
|
|
// 处理单个线索
|
|
-func processLead(v map[string]interface{}, sourceMap map[string]string, nowTime string, committeeTime int64, data map[string]interface{}) (map[string]interface{}, int64) {
|
|
|
|
|
|
+func processLead(v map[string]interface{}, sourceMap map[string]map[string]interface{}, nowTime string, committeeTime int64, data map[string]interface{}) (map[string]interface{}, int64) {
|
|
sources := common.ObjToString(v["source"])
|
|
sources := common.ObjToString(v["source"])
|
|
// 更新委员会时间
|
|
// 更新委员会时间
|
|
if gconv.Int64(v["createtime"]) > committeeTime {
|
|
if gconv.Int64(v["createtime"]) > committeeTime {
|
|
committeeTime = gconv.Int64(v["createtime"])
|
|
committeeTime = gconv.Int64(v["createtime"])
|
|
}
|
|
}
|
|
- if sourceMap[sources] == "" {
|
|
|
|
|
|
+ sourceData, exist := sourceMap[sources]
|
|
|
|
+ if !exist {
|
|
return nil, committeeTime
|
|
return nil, committeeTime
|
|
}
|
|
}
|
|
phone := common.ObjToString(v["phone"])
|
|
phone := common.ObjToString(v["phone"])
|
|
@@ -878,13 +817,14 @@ func processLead(v map[string]interface{}, sourceMap map[string]string, nowTime
|
|
"username": common.ObjToString(v["name"]),
|
|
"username": common.ObjToString(v["name"]),
|
|
"company": common.ObjToString(v["company"]),
|
|
"company": common.ObjToString(v["company"]),
|
|
"phone": phone,
|
|
"phone": phone,
|
|
- "source": sourceMap[sources],
|
|
|
|
|
|
+ "source": gconv.String(sourceData["name"]),
|
|
"belongTo": "咨询组/市场组", // 根据需要修改
|
|
"belongTo": "咨询组/市场组", // 根据需要修改
|
|
"interest": common.ObjToString(v["interest"]),
|
|
"interest": common.ObjToString(v["interest"]),
|
|
"data_requirement": common.ObjToString(v["data_requirement"]),
|
|
"data_requirement": common.ObjToString(v["data_requirement"]),
|
|
"branch": v["branch"],
|
|
"branch": v["branch"],
|
|
"job": v["position"],
|
|
"job": v["position"],
|
|
"email": common.ObjToString(v["mail"]),
|
|
"email": common.ObjToString(v["mail"]),
|
|
|
|
+ "appointEmail": gconv.String(sourceData["appointEmail"]),
|
|
}, committeeTime
|
|
}, committeeTime
|
|
}
|
|
}
|
|
|
|
|
|
@@ -923,8 +863,11 @@ func exportToExcel(dataArr []map[string]interface{}, title, batch string) {
|
|
}
|
|
}
|
|
bigArr := map[string][]map[string]interface{}{}
|
|
bigArr := map[string][]map[string]interface{}{}
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
- minemail, _ := EmailSelect(batch)
|
|
|
|
- bigArr[minemail] = append(bigArr[minemail], v)
|
|
|
|
|
|
+ appointEmail := gconv.String(v["appointEmail"])
|
|
|
|
+ if appointEmail == "" {
|
|
|
|
+ appointEmail, _ = EmailSelect(batch)
|
|
|
|
+ }
|
|
|
|
+ bigArr[appointEmail] = append(bigArr[appointEmail], v)
|
|
}
|
|
}
|
|
for email, arr := range bigArr {
|
|
for email, arr := range bigArr {
|
|
data := FindBatch(batch)
|
|
data := FindBatch(batch)
|