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