|
@@ -7,6 +7,8 @@ import (
|
|
"github.com/gogf/gf/util/gconv"
|
|
"github.com/gogf/gf/util/gconv"
|
|
"log"
|
|
"log"
|
|
"net/url"
|
|
"net/url"
|
|
|
|
+ "os"
|
|
|
|
+ "path/filepath"
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
|
|
|
|
@@ -671,6 +673,7 @@ func FindBatchData(moudle string) map[string]interface{} {
|
|
//数据提取
|
|
//数据提取
|
|
keyContent := fmt.Sprintf("data_%s_%s", now, moudle)
|
|
keyContent := fmt.Sprintf("data_%s_%s", now, moudle)
|
|
data := redis.Get("newother", keyContent)
|
|
data := redis.Get("newother", keyContent)
|
|
|
|
+ return make(map[string]interface{})
|
|
if data == nil {
|
|
if data == nil {
|
|
return make(map[string]interface{})
|
|
return make(map[string]interface{})
|
|
} else {
|
|
} else {
|
|
@@ -679,43 +682,6 @@ func FindBatchData(moudle string) map[string]interface{} {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-// 咨询组线索
|
|
|
|
-func AdvisoryCommittee() {
|
|
|
|
- /*if !isRunning() {
|
|
|
|
- log.Println("不是工作日,任务暂停")
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- log.Println("咨询部线索定时任务开始")
|
|
|
|
-
|
|
|
|
- sourceMap := buildSourceMap("咨询组")
|
|
|
|
- nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
|
|
- startTime := getCommitteeTime(cfg.AdvisoryCommitteeTime)
|
|
|
|
- dataArr, endtime := processLeads("zx", startTime, sourceMap, nowTime)
|
|
|
|
-
|
|
|
|
- cfg.AdvisoryCommitteeTime = endtime
|
|
|
|
- exportToExcel(dataArr, "咨询服务销售线索", "zx")
|
|
|
|
- log.Println("咨询部线索定时任务结束")
|
|
|
|
- common.WriteSysConfig(&cfg)*/
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// 运营部线索
|
|
|
|
-/*func SelectionDepartment() {
|
|
|
|
- if !isRunning() {
|
|
|
|
- log.Println("不是工作日,任务暂停")
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- log.Println("运营部线索定时任务开始")
|
|
|
|
-
|
|
|
|
- sourceMap := buildSourceMap("运营部")
|
|
|
|
- nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
|
|
- startTime := getCommitteeTime(cfg.SelectionDepartmentTime)
|
|
|
|
- dataArr, endtime := processLeads("yy", startTime, sourceMap, nowTime)
|
|
|
|
- cfg.SelectionDepartmentTime = endtime
|
|
|
|
- exportToExcel(dataArr, "运营部销售线索", "yy")
|
|
|
|
- log.Println("运营部线索定时任务结束")
|
|
|
|
- common.WriteSysConfig(&cfg)
|
|
|
|
-}
|
|
|
|
-*/
|
|
|
|
// 特殊留资
|
|
// 特殊留资
|
|
func SpecialSaleLeads() {
|
|
func SpecialSaleLeads() {
|
|
/*if !isRunning() {
|
|
/*if !isRunning() {
|
|
@@ -730,6 +696,10 @@ func SpecialSaleLeads() {
|
|
log.Println(fmt.Sprintf("%s留资线索定时任务开始", gconv.String(v["groupName"])))
|
|
log.Println(fmt.Sprintf("%s留资线索定时任务开始", gconv.String(v["groupName"])))
|
|
//留来源获取
|
|
//留来源获取
|
|
sourceMap := buildSourceMap(gconv.String(v["groupName"]))
|
|
sourceMap := buildSourceMap(gconv.String(v["groupName"]))
|
|
|
|
+ if len(sourceMap) == 0 {
|
|
|
|
+ log.Println(fmt.Sprintf("%s留资线索定时任务结束", gconv.String(v["groupName"])))
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
dataArr, endtime := processLeads(v, sourceMap)
|
|
dataArr, endtime := processLeads(v, sourceMap)
|
|
//最后一次数据修改
|
|
//最后一次数据修改
|
|
TiDb.Update("saleLeads_config", map[string]interface{}{
|
|
TiDb.Update("saleLeads_config", map[string]interface{}{
|
|
@@ -743,24 +713,6 @@ func SpecialSaleLeads() {
|
|
log.Println("特殊留资线索定时任务结束")
|
|
log.Println("特殊留资线索定时任务结束")
|
|
}
|
|
}
|
|
|
|
|
|
-// 市场部线索
|
|
|
|
-func MarketCustomer() {
|
|
|
|
- /*if !isRunning() {
|
|
|
|
- log.Println("不是工作日,任务暂停")
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- log.Println("市场部线索定时任务开始")
|
|
|
|
-
|
|
|
|
- sourceMap := buildSourceMap("市场组")
|
|
|
|
- nowTime := time.Now().Format(date.Date_Full_Layout)
|
|
|
|
- startTime := getCommitteeTime(cfg.MarketSaleTime)
|
|
|
|
- dataArr, endtime := processLeads("sc", startTime, sourceMap, nowTime)
|
|
|
|
- cfg.MarketSaleTime = endtime
|
|
|
|
- exportToExcel(dataArr, "商务合作销售线索", "sc")
|
|
|
|
- common.WriteSysConfig(&cfg)
|
|
|
|
- log.Println("市场部线索定时任务结束")*/
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
// 判断是否在工作日
|
|
// 判断是否在工作日
|
|
func isRunning() bool {
|
|
func isRunning() bool {
|
|
return getRunOk()
|
|
return getRunOk()
|
|
@@ -940,6 +892,12 @@ func exportToExcel(dataArr []map[string]interface{}, title, batch, mails string)
|
|
row.AddCell().SetString(gconv.Time(gconv.Int64(v["createtime"])).Format(date.Date_Full_Layout))
|
|
row.AddCell().SetString(gconv.Time(gconv.Int64(v["createtime"])).Format(date.Date_Full_Layout))
|
|
}
|
|
}
|
|
dir := fmt.Sprintf("./xlsx/%s/%s.xlsx", batch, fileName)
|
|
dir := fmt.Sprintf("./xlsx/%s/%s.xlsx", batch, fileName)
|
|
|
|
+ // 确保目录存在(自动创建)
|
|
|
|
+ dirPath := filepath.Dir(dir) // 提取目录部分(如 "./xlsx/batch")
|
|
|
|
+ if err := os.MkdirAll(dirPath, 0755); err != nil {
|
|
|
|
+ log.Println("创建目录失败:", err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
if err := xf.Save(dir); err != nil {
|
|
if err := xf.Save(dir); err != nil {
|
|
log.Println("xls error", err, dir)
|
|
log.Println("xls error", err, dir)
|
|
return
|
|
return
|
|
@@ -983,7 +941,7 @@ func EmailSelect(batch, mailStr string) (string, string) {
|
|
mailMap[personName] = arr[1]
|
|
mailMap[personName] = arr[1]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- for personName, mailStr := range mailMap {
|
|
|
|
|
|
+ for personName, mail := range mailMap {
|
|
isOk := false
|
|
isOk := false
|
|
for _, m := range *bigData {
|
|
for _, m := range *bigData {
|
|
tablePersonName := gconv.String(m["name"])
|
|
tablePersonName := gconv.String(m["name"])
|
|
@@ -999,7 +957,7 @@ func EmailSelect(batch, mailStr string) (string, string) {
|
|
TiDb.Insert("dwd_f_crm_clue_big_autodraw_record", map[string]interface{}{
|
|
TiDb.Insert("dwd_f_crm_clue_big_autodraw_record", map[string]interface{}{
|
|
"name": personName,
|
|
"name": personName,
|
|
"count": common.Int64All((*rData)["count"]),
|
|
"count": common.Int64All((*rData)["count"]),
|
|
- "email": mailStr,
|
|
|
|
|
|
+ "email": mail,
|
|
"type": batch,
|
|
"type": batch,
|
|
})
|
|
})
|
|
return minemail, name
|
|
return minemail, name
|
|
@@ -1018,6 +976,23 @@ func EmailSelect(batch, mailStr string) (string, string) {
|
|
name = vName
|
|
name = vName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ for k, s := range strings.Split(mailStr, "|") {
|
|
|
|
+ if len(strings.Split(s, "-")) > 1 {
|
|
|
|
+ arr := strings.Split(s, "-")
|
|
|
|
+ if k == 0 {
|
|
|
|
+ minemail, name = arr[1], arr[0]
|
|
|
|
+ }
|
|
|
|
+ personName := arr[0]
|
|
|
|
+ TiDb.Insert("dwd_f_crm_clue_big_autodraw_record", map[string]interface{}{
|
|
|
|
+ "name": personName,
|
|
|
|
+ "count": 0,
|
|
|
|
+ "email": arr[1],
|
|
|
|
+ "type": batch,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
TiDb.UpdateOrDeleteBySql(`update dwd_f_crm_clue_big_autodraw_record set count = count + 1 where name = ? and type=?`, name, batch)
|
|
TiDb.UpdateOrDeleteBySql(`update dwd_f_crm_clue_big_autodraw_record set count = count + 1 where name = ? and type=?`, name, batch)
|
|
return minemail, name
|
|
return minemail, name
|