|
@@ -1,8 +1,10 @@
|
|
|
package main
|
|
|
|
|
|
import (
|
|
|
+ "app.yhyue.com/moapp/jybase/mail"
|
|
|
"app.yhyue.com/moapp/jybase/redis"
|
|
|
"fmt"
|
|
|
+ "github.com/tealeg/xlsx"
|
|
|
"log"
|
|
|
"math"
|
|
|
"strings"
|
|
@@ -508,7 +510,7 @@ func orders() {
|
|
|
product_type_str1 := `"大会员","VIP订阅","数据流量包","历史数据"`
|
|
|
product_type := common.ObjToString(v["product_type"])
|
|
|
if order_status == 0 && is_backstage_order == 0 && strings.Contains(product_type_str1, product_type) {
|
|
|
- ok1, ok2 := FormatData(v, "orders")
|
|
|
+ ok1, ok2, _ := FormatData(v, "orders")
|
|
|
if !ok1 {
|
|
|
common.WriteSysConfig(&cfg)
|
|
|
log.Println("线索卡点", "orders", v, selectTimeEnd, selectTimeStart)
|
|
@@ -533,7 +535,7 @@ func readClue() {
|
|
|
data := TiDb.SelectBySql(sql)
|
|
|
if data != nil && *data != nil && len(*data) > 0 {
|
|
|
for _, v := range *data {
|
|
|
- ok1, ok2 := FormatData(v, "readClue")
|
|
|
+ ok1, ok2, _ := FormatData(v, "readClue")
|
|
|
if !ok1 {
|
|
|
common.WriteSysConfig(&cfg)
|
|
|
log.Println("线索卡点", "readClue", v, lastReadClueTime)
|
|
@@ -563,11 +565,18 @@ func users() {
|
|
|
selectTimeEnd := cfg.LastUserId
|
|
|
sql := fmt.Sprintf(`select * from dwd_f_userbase_baseinfo where createtime > "%s" and (s_platform != 'xcx' or s_platform is NULL) and source = "0101" and status != 2 order by createtime asc`, selectTimeEnd)
|
|
|
data := TiDb.SelectBySql(sql)
|
|
|
+ abhList := []map[string]interface{}{}
|
|
|
if data != nil && *data != nil && len(*data) > 0 {
|
|
|
for k, v := range *data {
|
|
|
//判断用户是否有小程序切使用过剑鱼其他产品
|
|
|
createtime := common.ObjToString(v["createtime"])
|
|
|
- ok1, ok2 := FormatData(v, "users")
|
|
|
+ ok1, ok2, ok3 := FormatData(v, "users")
|
|
|
+ if !ok3 {
|
|
|
+ cfg.LastUserId = createtime
|
|
|
+ //安博会数据
|
|
|
+ abhList = append(abhList, v)
|
|
|
+ continue
|
|
|
+ }
|
|
|
if !ok1 {
|
|
|
log.Println("线索卡点", "users", v, selectTimeEnd)
|
|
|
} else {
|
|
@@ -579,6 +588,10 @@ func users() {
|
|
|
cfg.LastUserId = createtime
|
|
|
}
|
|
|
}
|
|
|
+ if len(abhList) > 0 {
|
|
|
+ //安博会发邮件高翔
|
|
|
+ ABHEmail("user", abhList)
|
|
|
+ }
|
|
|
}
|
|
|
common.WriteSysConfig(&cfg)
|
|
|
selectXcxTimeEnd := cfg.LastXcxUserId
|
|
@@ -618,6 +631,7 @@ WHERE
|
|
|
`, selectXcxTimeEnd, selectXcxTimeEnd)
|
|
|
xcxData := debrisProductMysql.SelectBySql(xcxSql)
|
|
|
if xcxData != nil && *xcxData != nil && len(*xcxData) > 0 {
|
|
|
+ afList := []map[string]interface{}{}
|
|
|
for k, v := range *xcxData {
|
|
|
//判断用户是否有小程序切使用过剑鱼其他产品
|
|
|
//判断uid
|
|
@@ -641,7 +655,11 @@ WHERE
|
|
|
cfg.LastXcxUserId = updatetime
|
|
|
continue
|
|
|
}
|
|
|
- ok1, ok2 := FormatData(v, "xcxusers")
|
|
|
+ ok1, ok2, ok3 := FormatData(v, "xcxusers")
|
|
|
+ if !ok3 {
|
|
|
+ //首次使用"安防"小程序新注册用户
|
|
|
+ afList = append(afList, v)
|
|
|
+ }
|
|
|
if !ok1 {
|
|
|
common.WriteSysConfig(&cfg)
|
|
|
log.Println("小程序用户分配线索卡点", "xcxusers", v, selectXcxTimeEnd)
|
|
@@ -656,6 +674,9 @@ WHERE
|
|
|
cfg.LastXcxUserId = updatetime
|
|
|
}
|
|
|
}
|
|
|
+ if len(afList) > 0 {
|
|
|
+ //发邮件给张文福
|
|
|
+ }
|
|
|
}
|
|
|
common.WriteSysConfig(&cfg)
|
|
|
log.Println("新注册用户定时任务结束")
|
|
@@ -674,6 +695,7 @@ func saleLeads() {
|
|
|
log.Println("用户留资定时任务开始")
|
|
|
session := Mgo.GetMgoConn()
|
|
|
lastId := cfg.LastId
|
|
|
+ abhList := []map[string]interface{}{}
|
|
|
defer func() {
|
|
|
Mgo.DestoryMongoConn(session)
|
|
|
}()
|
|
@@ -710,7 +732,13 @@ func saleLeads() {
|
|
|
if sourceMap[sourceCode] != "" {
|
|
|
continue
|
|
|
}
|
|
|
- ok1, ok2 := FormatData(thisData, "saleLeads")
|
|
|
+ ok1, ok2, ok3 := FormatData(thisData, "saleLeads")
|
|
|
+ if !ok3 {
|
|
|
+ cfg.LastId = mongodb.BsonIdToSId(thisData["_id"])
|
|
|
+ //安博会数据
|
|
|
+ abhList = append(abhList, thisData)
|
|
|
+ continue
|
|
|
+ }
|
|
|
if !ok1 {
|
|
|
log.Println("线索卡点", "saleLeads", thisData, lastId)
|
|
|
} else {
|
|
@@ -720,6 +748,10 @@ func saleLeads() {
|
|
|
}
|
|
|
cfg.LastId = mongodb.BsonIdToSId(thisData["_id"])
|
|
|
}
|
|
|
+ if len(abhList) > 0 {
|
|
|
+ //安博会发邮件高翔
|
|
|
+ ABHEmail("saleLeads", abhList)
|
|
|
+ }
|
|
|
common.WriteSysConfig(&cfg)
|
|
|
log.Println("用户留资定时任务结束")
|
|
|
}
|
|
@@ -729,7 +761,9 @@ func userbase() {
|
|
|
selectTimeEnd := time.Unix(time.Now().Unix()-1800, 0).Format("2006-01-02 15:04:05")
|
|
|
sql := fmt.Sprintf(`select * from dwd_f_userbase_baseinfo where updatetime > "%s" and source != "0105" and source != "0104" and source != "0103" and source != "0102"`, selectTimeEnd)
|
|
|
data := TiDb.SelectBySql(sql)
|
|
|
+
|
|
|
if data != nil && *data != nil && len(*data) > 0 {
|
|
|
+ abhList := []map[string]interface{}{}
|
|
|
for _, v := range *data {
|
|
|
phone := common.ObjToString(v["phone"])
|
|
|
uId := common.ObjToString(v["uid"])
|
|
@@ -840,14 +874,17 @@ func userbase() {
|
|
|
}
|
|
|
} else {
|
|
|
if count == 0 {
|
|
|
- ok1, ok2 := FormatData(v, "users")
|
|
|
+ ok1, ok2, ok3 := FormatData(v, "users")
|
|
|
+ if !ok3 {
|
|
|
+ //安博会数据
|
|
|
+ abhList = append(abhList, v)
|
|
|
+ continue
|
|
|
+ }
|
|
|
if !ok1 {
|
|
|
- common.WriteSysConfig(&cfg)
|
|
|
log.Println("线索卡点", "userbase uid", v, uId)
|
|
|
} else {
|
|
|
if !ok2 {
|
|
|
log.Println("用户分配已达上限", "userbase uid", v, uId)
|
|
|
- common.WriteSysConfig(&cfg)
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -866,6 +903,10 @@ func userbase() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if len(abhList) > 0 {
|
|
|
+ //安博会发邮件高翔
|
|
|
+ ABHEmail("user", abhList)
|
|
|
+ }
|
|
|
}
|
|
|
log.Println("userbase定时任务结束")
|
|
|
}
|
|
@@ -1390,7 +1431,7 @@ func rebind() {
|
|
|
rebindTimeEnd = common.ObjToString(v["sub_again_date"])
|
|
|
registedates, _ := time.Parse(date.Date_Full_Layout, gconv.String(v["register_time"]))
|
|
|
if time.Now().Unix()-registedates.Unix() > int64(db.RegTimes)*86400 {
|
|
|
- ok1, ok2 := FormatData(v, "rebind")
|
|
|
+ ok1, ok2, _ := FormatData(v, "rebind")
|
|
|
if !ok1 {
|
|
|
log.Println("线索卡点", "allocation", v, rebindTimeEnd)
|
|
|
} else {
|
|
@@ -1422,7 +1463,7 @@ func activeUsers() {
|
|
|
if data != nil && *data != nil && len(*data) > 0 {
|
|
|
for _, v := range *data {
|
|
|
activeTimeEnd = common.ObjToString(v["act_again_date"])
|
|
|
- ok1, ok2 := FormatData(v, "allocation")
|
|
|
+ ok1, ok2, _ := FormatData(v, "allocation")
|
|
|
log.Println(v, "allocation", ok1, ok2)
|
|
|
if !ok1 {
|
|
|
log.Println("线索卡点", "allocation", v, activeTimeEnd)
|
|
@@ -1437,3 +1478,259 @@ func activeUsers() {
|
|
|
}
|
|
|
log.Println("活跃用户处理结束")
|
|
|
}
|
|
|
+
|
|
|
+// 安博会邮件
|
|
|
+func ABHEmail(source string, data []map[string]interface{}) {
|
|
|
+ fileName, detailName, email, dir := "", "", "", ""
|
|
|
+ var err error
|
|
|
+ switch source {
|
|
|
+ case "user":
|
|
|
+ xlsxArr := []string{"姓名", "联系方式", "邮箱", "公司名称", "咨询需求", "销售线索来源", "具体来源", "留资时间"}
|
|
|
+ batch := FindBatch("abh")
|
|
|
+ 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 data {
|
|
|
+ row := sh.AddRow()
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["name"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["phone"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["email"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["company_name"]))
|
|
|
+ row.AddCell().SetString("")
|
|
|
+ row.AddCell().SetString("")
|
|
|
+ row.AddCell().SetString("安博会用户注册")
|
|
|
+ row.AddCell().SetString(gconv.Time(gconv.Int64(v["createtime"])).Format(date.Date_Full_Layout))
|
|
|
+ //增加客户需求
|
|
|
+ }
|
|
|
+ dir := "./xlsx/abh/" + fileName + ".xlsx"
|
|
|
+ err = xf.Save(dir)
|
|
|
+ case "saleLeads":
|
|
|
+ xlsxArr := []string{"用户昵称", "姓名", "公司名称", "职位", "联系人电话", "购买条数", "用户邮箱", "已支付订单信息", "未支付订单类型", "销售线索来源", "具体来源", "数据需求"}
|
|
|
+ batch := FindBatch("abh")
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, v := range data {
|
|
|
+ sources := common.ObjToString(v["source"])
|
|
|
+ interest := common.ObjToString(v["interest"])
|
|
|
+ row := sh.AddRow()
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["usernickname"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["username"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["company"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["job"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["phone"]))
|
|
|
+ row.AddCell().SetValue(0)
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["email"]))
|
|
|
+ row.AddCell().SetString("")
|
|
|
+ row.AddCell().SetString("")
|
|
|
+ row.AddCell().SetString(sourceMap[sources])
|
|
|
+ row.AddCell().SetString(interest)
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["data_requirement"]))
|
|
|
+ //增加客户需求
|
|
|
+ }
|
|
|
+ dir := "./xlsx/abh/" + fileName + ".xlsx"
|
|
|
+ err = xf.Save(dir)
|
|
|
+ case "big":
|
|
|
+ xlsxArr := []string{"用户昵称", "姓名", "公司名称", "职位", "联系人电话", "购买条数", "用户邮箱", "已支付订单信息", "未支付订单类型", "销售线索来源", "具体来源", "数据需求"}
|
|
|
+ batch := FindBatch("abh")
|
|
|
+ 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 data {
|
|
|
+ row := sh.AddRow()
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["usernickname"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["username"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["company"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["job"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["phone"]))
|
|
|
+ row.AddCell().SetValue(common.IntAll(v["data_count"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["email"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["payorderinfo"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["unpayorderinfo"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["source"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["interest"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["data_requirement"]))
|
|
|
+ //增加客户需求
|
|
|
+ }
|
|
|
+ dir := "./xlsx/abh/" + fileName + ".xlsx"
|
|
|
+ err = xf.Save(dir)
|
|
|
+ case "advisory":
|
|
|
+ xlsxArr := []string{"姓名", "联系方式", "邮箱", "公司名称", "咨询需求", "销售线索来源", "具体来源", "留资时间"}
|
|
|
+ //排序:首先按照“联系方式”排序,即同1个用户的留资放在一起,其次按照留资时间正序排序。
|
|
|
+ batch := FindBatch("abh")
|
|
|
+ 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 data {
|
|
|
+ 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))
|
|
|
+ }
|
|
|
+ dir := "./xlsx/abh/" + fileName + ".xlsx"
|
|
|
+ err = xf.Save(dir)
|
|
|
+ case "market":
|
|
|
+ xlsxArr := []string{"姓名", "联系人电话", "公司名称", "职位", "部门", "销售线索来源", "留资时间"}
|
|
|
+ batch := FindBatch("abh")
|
|
|
+ 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 data {
|
|
|
+ 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))
|
|
|
+ //增加客户需求
|
|
|
+ }
|
|
|
+ dir := "./xlsx/abh/" + fileName + ".xlsx"
|
|
|
+ err = xf.Save(dir)
|
|
|
+ }
|
|
|
+ email = db.AbhEmail
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 安防邮件
|
|
|
+func AFEmail(data []map[string]interface{}) {
|
|
|
+ xlsxArr := []string{"姓名", "联系方式", "邮箱", "公司名称", "咨询需求", "销售线索来源", "具体来源", "留资时间"}
|
|
|
+ batch := FindBatch("af")
|
|
|
+ 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 data {
|
|
|
+ row := sh.AddRow()
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["name"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["phone"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["email"]))
|
|
|
+ row.AddCell().SetString(common.ObjToString(v["company_name"]))
|
|
|
+ row.AddCell().SetString("")
|
|
|
+ row.AddCell().SetString("")
|
|
|
+ row.AddCell().SetString("首次使用安防新注册")
|
|
|
+ row.AddCell().SetString(gconv.Time(gconv.Int64(v["createtime"])).Format(date.Date_Full_Layout))
|
|
|
+ //增加客户需求
|
|
|
+ }
|
|
|
+ email := db.AfEmail
|
|
|
+ dir := "./xlsx/af/" + 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)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|