|
@@ -4,6 +4,7 @@ import (
|
|
|
"fmt"
|
|
|
"hongze/hongze_task/models"
|
|
|
"hongze/hongze_task/utils"
|
|
|
+ "strconv"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -14,7 +15,7 @@ func CompanyFreeze() (err error) {
|
|
|
go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "试用两个月结束后,进入冻结 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
}
|
|
|
}()
|
|
|
- endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ endDate := time.Now().AddDate(0,0,-1).Format(utils.FormatDate)
|
|
|
items, err := models.GetCompanyNeedFreeze(endDate)
|
|
|
if err != nil {
|
|
|
fmt.Println("GetCompanyNeedFreeze Err:" + err.Error())
|
|
@@ -54,7 +55,7 @@ func CompanyLoss() (err error) {
|
|
|
go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "自动流失->冻结超3个月未处理 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
}
|
|
|
}()
|
|
|
- endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ endDate := time.Now().AddDate(0,0,-1).Format(utils.FormatDate)
|
|
|
items, err := models.GetCompanyNeedLoss(endDate)
|
|
|
if err != nil {
|
|
|
fmt.Println("GetCompanyNeedLoss Err:" + err.Error())
|
|
@@ -94,7 +95,7 @@ func CompanyTryOut() (err error) {
|
|
|
go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "正式客户自动试用->合同到期未续约转试用 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
}
|
|
|
}()
|
|
|
- endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ endDate := time.Now().AddDate(0,0,-1).Format(utils.FormatDate)
|
|
|
items, err := models.GetCompanyNeedTryOut(endDate)
|
|
|
if err != nil {
|
|
|
fmt.Println("GetCompanyNeedTryOut Err:" + err.Error())
|
|
@@ -233,3 +234,202 @@ func CompanyOldDataSync() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+//正式/试用客户--到期提醒
|
|
|
+func CompanyRemind()(err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode, "到期提醒失败:CompanyRemind;Err"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ //获取销售
|
|
|
+ sellers, err := models.GetSellers()
|
|
|
+ for k, v := range sellers {
|
|
|
+ fmt.Println(k, v.AdminId, v.Mobile)
|
|
|
+ CompanyRemind30Day(v)
|
|
|
+ time.Sleep(5*time.Second)
|
|
|
+ CompanyRemind15Day(v)
|
|
|
+ time.Sleep(5*time.Second)
|
|
|
+ CompanyRemind7Day(v)
|
|
|
+ time.Sleep(5*time.Second)
|
|
|
+ CompanyRemind1Day(v)
|
|
|
+ time.Sleep(5*time.Second)
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//30天后到期客户
|
|
|
+func CompanyRemind30Day(seller *models.Sellers) {
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode, "到期提醒失败:CompanyRemind;Err"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ remindEndDate := "2020-12-31" //time.Now().AddDate(0, 0, 30).Format(utils.FormatDate)
|
|
|
+ companyItems, err := models.GetRemindCompany(seller.AdminId, remindEndDate)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ emailContents := "<div><p>您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于30天后到期,请注意查看</p>"
|
|
|
+ emailContents += "<table border='1'><tr><td width='200'>30天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
|
|
|
+ var isSend bool
|
|
|
+ msgContent := ``
|
|
|
+ for _, v := range companyItems {
|
|
|
+ emailContents += `<tr><td>` + v.CompanyName + `</td><td>` + v.EndDate + `</td><td>` + seller.RealName + `</td><td>` + v.Status + `</td></tr>`
|
|
|
+ msgContent += `客户:` + v.CompanyName + ";状态:" + v.Status + "\n"
|
|
|
+ isSend = true
|
|
|
+ }
|
|
|
+ emailContents += "</table></br>"
|
|
|
+
|
|
|
+ if isSend {
|
|
|
+ if seller.Email != "" {
|
|
|
+ utils.SendEmailByHongze("到期前30天提醒", emailContents, utils.EmailSendToUsers, "", "")
|
|
|
+ }
|
|
|
+
|
|
|
+ if seller.OpenId != "" {
|
|
|
+ first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于30天后到期,请注意查看"
|
|
|
+ keyword1 := "到期前30天提醒"
|
|
|
+ keyword2 := remindEndDate
|
|
|
+ remark := msgContent
|
|
|
+
|
|
|
+ openIdList := make([]*models.OpenIdList, 0)
|
|
|
+ openIdItem := new(models.OpenIdList)
|
|
|
+ openIdItem.OpenId = seller.OpenId
|
|
|
+ openIdList = append(openIdList, openIdItem)
|
|
|
+ SendWxMsgWithCompanyRemind(first, keyword1, keyword2, remark, openIdList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//15天后到期客户
|
|
|
+func CompanyRemind15Day(seller *models.Sellers) {
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode, "到期提醒失败:CompanyRemind;Err"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ remindEndDate := time.Now().AddDate(0, 0, 15).Format(utils.FormatDate)
|
|
|
+ companyItems, err := models.GetRemindCompany(seller.AdminId, remindEndDate)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var isSend bool
|
|
|
+ msgContent := ``
|
|
|
+ emailContents := "<div><p>您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于15天后到期,请注意查看</p>"
|
|
|
+ emailContents += "<table border='1'><tr><td width='200'>30天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
|
|
|
+ for _, v := range companyItems {
|
|
|
+ emailContents += `<tr><td>` + v.CompanyName + `</td><td>` + v.EndDate + `</td><td>` + seller.RealName + `</td><td>` + v.Status + `</td></tr>`
|
|
|
+ msgContent += `客户:` + v.CompanyName + ";状态:" + v.Status + "\n"
|
|
|
+ isSend = true
|
|
|
+ }
|
|
|
+ emailContents += "</table></br>"
|
|
|
+
|
|
|
+ if isSend {
|
|
|
+ if seller.Email != "" {
|
|
|
+ utils.SendEmailByHongze("到期前30天提醒", emailContents, utils.EmailSendToUsers, "", "")
|
|
|
+ }
|
|
|
+
|
|
|
+ if seller.OpenId != "" {
|
|
|
+ first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于30天后到期,请注意查看"
|
|
|
+ keyword1 := "到期前30天提醒"
|
|
|
+ keyword2 := remindEndDate
|
|
|
+ remark := msgContent
|
|
|
+
|
|
|
+ openIdList := make([]*models.OpenIdList, 0)
|
|
|
+ openIdItem := new(models.OpenIdList)
|
|
|
+ openIdItem.OpenId = seller.OpenId
|
|
|
+ openIdList = append(openIdList, openIdItem)
|
|
|
+ SendWxMsgWithCompanyRemind(first, keyword1, keyword2, remark, openIdList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//7天后到期客户名称
|
|
|
+func CompanyRemind7Day(seller *models.Sellers) {
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode, "到期提醒失败:CompanyRemind;Err"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ remindEndDate := time.Now().AddDate(0, 0, 7).Format(utils.FormatDate)
|
|
|
+ companyItems, err := models.GetRemindCompany(seller.AdminId, remindEndDate)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var isSend bool
|
|
|
+ msgContent := ``
|
|
|
+ emailContents := "<div><p>您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于7天后到期,请注意查看</p>"
|
|
|
+ emailContents += "<table border='1'><tr><td width='200'>30天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
|
|
|
+ for _, v := range companyItems {
|
|
|
+ emailContents += `<tr><td>` + v.CompanyName + `</td><td>` + v.EndDate + `</td><td>` + seller.RealName + `</td><td>` + v.Status + `</td></tr>`
|
|
|
+ msgContent += `客户:` + v.CompanyName + ";状态:" + v.Status + "\n"
|
|
|
+ isSend = true
|
|
|
+ }
|
|
|
+ emailContents += "</table></br>"
|
|
|
+
|
|
|
+ if isSend {
|
|
|
+ if seller.Email != "" {
|
|
|
+ utils.SendEmailByHongze("到期前30天提醒", emailContents, utils.EmailSendToUsers, "", "")
|
|
|
+ }
|
|
|
+
|
|
|
+ if seller.OpenId != "" {
|
|
|
+ first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于30天后到期,请注意查看"
|
|
|
+ keyword1 := "到期前30天提醒"
|
|
|
+ keyword2 := remindEndDate
|
|
|
+ remark := msgContent
|
|
|
+
|
|
|
+ openIdList := make([]*models.OpenIdList, 0)
|
|
|
+ openIdItem := new(models.OpenIdList)
|
|
|
+ openIdItem.OpenId = seller.OpenId
|
|
|
+ openIdList = append(openIdList, openIdItem)
|
|
|
+ SendWxMsgWithCompanyRemind(first, keyword1, keyword2, remark, openIdList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//d到期当天提醒
|
|
|
+func CompanyRemind1Day(seller *models.Sellers) {
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode, "到期提醒失败:CompanyRemind;Err"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ remindEndDate := time.Now().AddDate(0, 0, 0).Format(utils.FormatDate)
|
|
|
+ companyItems, err := models.GetRemindCompany(seller.AdminId, remindEndDate)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var isSend bool
|
|
|
+ msgContent := ``
|
|
|
+ emailContents := "<div><p>您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于今天后到期,请注意查看</p>"
|
|
|
+ emailContents += "<table border='1'><tr><td width='200'>30天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
|
|
|
+ for _, v := range companyItems {
|
|
|
+ emailContents += `<tr><td>` + v.CompanyName + `</td><td>` + v.EndDate + `</td><td>` + seller.RealName + `</td><td>` + v.Status + `</td></tr>`
|
|
|
+ msgContent += `客户:` + v.CompanyName + ";状态:" + v.Status + "\n"
|
|
|
+ isSend = true
|
|
|
+ }
|
|
|
+ emailContents += "</table></br>"
|
|
|
+
|
|
|
+ if isSend {
|
|
|
+ if seller.Email != "" {
|
|
|
+ utils.SendEmailByHongze("到期前30天提醒", emailContents, utils.EmailSendToUsers, "", "")
|
|
|
+ }
|
|
|
+
|
|
|
+ if seller.OpenId != "" {
|
|
|
+ first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于30天后到期,请注意查看"
|
|
|
+ keyword1 := "到期前30天提醒"
|
|
|
+ keyword2 := remindEndDate
|
|
|
+ remark := msgContent
|
|
|
+
|
|
|
+ openIdList := make([]*models.OpenIdList, 0)
|
|
|
+ openIdItem := new(models.OpenIdList)
|
|
|
+ openIdItem.OpenId = seller.OpenId
|
|
|
+ openIdList = append(openIdList, openIdItem)
|
|
|
+ SendWxMsgWithCompanyRemind(first, keyword1, keyword2, remark, openIdList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|