|
@@ -1,69 +1,98 @@
|
|
|
package services
|
|
|
|
|
|
-// 选专栏有新内容审核通过时,给关注此专栏的客户发送模板消息
|
|
|
+import (
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_cygx/models"
|
|
|
+ "hongze/hongze_cygx/utils"
|
|
|
+ "strconv"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+// 研选专栏有新内容审核通过时,给关注此专栏的客户发送模板消息
|
|
|
func SendWxMsgSpecialFollow(specialId int) (err error) {
|
|
|
- //var msg string
|
|
|
- //defer func() {
|
|
|
- // if err != nil {
|
|
|
- // go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
- // go utils.SendAlarmMsg(fmt.Sprint("预报名活动,感兴趣人数满10人时,推送给活动负责人和王芳消息发送失败", activityInfo.ResearchTheme, ", activityId"), 2)
|
|
|
- // utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
|
|
|
- // }
|
|
|
- //}()
|
|
|
- //var first string
|
|
|
- //var keyword1 string
|
|
|
- //var keyword2 string
|
|
|
- //var keyword3 string
|
|
|
- //var keyword4 string
|
|
|
- //var remark string
|
|
|
- //
|
|
|
- //adminUser, e := models.GetSellerByAdminId(activityInfo.AdminId)
|
|
|
- //if e != nil {
|
|
|
- // err = errors.New("GetSellerByAdminId, Err: " + e.Error())
|
|
|
- // return
|
|
|
- //}
|
|
|
- //cnf, _ := models.GetConfigByCode("tpl_msg")
|
|
|
- //mobile := adminUser.Mobile + "," + cnf.ConfigValue
|
|
|
- //
|
|
|
- //specialSignupList, e := models.GetActivityListSpecialByActivityId(activityId)
|
|
|
- //if e != nil {
|
|
|
- // err = errors.New("GetActivityListSpecialAll, Err: " + e.Error())
|
|
|
- // return
|
|
|
- //}
|
|
|
- //for _, v := range specialSignupList {
|
|
|
- // keyword1 += "【" + v.RealName + "--" + v.CompanyName + "】"
|
|
|
- //}
|
|
|
- //openIdList, e := models.GetWxOpenIdByMobileList(mobile)
|
|
|
- //if e != nil {
|
|
|
- // err = errors.New("GetSellerByAdminId, Err: " + e.Error())
|
|
|
- // return
|
|
|
- //}
|
|
|
- //first = "【" + activityInfo.ResearchTheme + "】已有10人预报名"
|
|
|
- //keyword3 = "-"
|
|
|
- //keyword2 = "-"
|
|
|
+ var msg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("研选专栏有新内容审核通过时,给关注此专栏的客户发送模板消息失败", specialId, ", specialId"), 2)
|
|
|
+ utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var first string
|
|
|
+ var keyword1 string
|
|
|
+ var keyword2 string
|
|
|
+ var keyword3 string
|
|
|
+ var keyword4 string
|
|
|
+ var remark string
|
|
|
+
|
|
|
+ followers, e := models.GetYanxuanSpecialFollowUserById(specialId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ specialItem, e := models.GetYanxuanSpecialItemById(specialId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var allInUserId string
|
|
|
+ for _, v := range followers {
|
|
|
+ allInUserId += strconv.Itoa(v) + ","
|
|
|
+ }
|
|
|
+
|
|
|
+ allInUserId = strings.TrimRight(allInUserId, ",")
|
|
|
+
|
|
|
+ userList, err := models.GetWxUserListByUserIds(allInUserId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ mobile := ``
|
|
|
+
|
|
|
+ for _, v := range userList {
|
|
|
+ mobile += v.Mobile + ","
|
|
|
+ }
|
|
|
+
|
|
|
+ mobile = strings.TrimRight(mobile, ",")
|
|
|
+
|
|
|
+
|
|
|
+ openIdList, e := models.GetWxOpenIdByMobileList(mobile)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetSellerByAdminId, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //first =
|
|
|
+ keyword1 = "研选专栏:" + specialItem.SpecialName
|
|
|
+ keyword2 = "发布了新内容,点击查看详情"
|
|
|
+ keyword3 = "-"
|
|
|
//keyword4 = "【" + activityInfo.ResearchTheme + "】已有10人预报名"
|
|
|
- //openIdArr := make([]string, 0)
|
|
|
- //for _, v := range openIdList {
|
|
|
- // openIdArr = append(openIdArr, v.OpenId)
|
|
|
- //}
|
|
|
- //redirectUrl := utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(activityId)
|
|
|
- //sendInfo := new(SendWxTemplate)
|
|
|
- //sendInfo.First = first
|
|
|
- //sendInfo.Keyword1 = keyword1
|
|
|
- //sendInfo.Keyword2 = keyword2
|
|
|
- //sendInfo.Keyword3 = keyword3
|
|
|
- //sendInfo.Keyword4 = keyword4
|
|
|
- //sendInfo.Remark = remark
|
|
|
- //sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
|
|
|
- //sendInfo.RedirectUrl = redirectUrl
|
|
|
- //sendInfo.RedirectTarget = 3
|
|
|
- //sendInfo.Resource = strconv.Itoa(activityId)
|
|
|
- //sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
- //sendInfo.OpenIdArr = openIdArr
|
|
|
- //err = PublicSendTemplateMsg(sendInfo)
|
|
|
- //if err != nil {
|
|
|
- // return
|
|
|
- //}
|
|
|
+ openIdArr := make([]string, 0)
|
|
|
+ for _, v := range openIdList {
|
|
|
+ openIdArr = append(openIdArr, v.OpenId)
|
|
|
+ }
|
|
|
+ redirectUrl := utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(specialId)
|
|
|
+ sendInfo := new(SendWxTemplate)
|
|
|
+ sendInfo.First = first
|
|
|
+ sendInfo.Keyword1 = keyword1
|
|
|
+ sendInfo.Keyword2 = keyword2
|
|
|
+ sendInfo.Keyword3 = keyword3
|
|
|
+ sendInfo.Keyword4 = keyword4
|
|
|
+ sendInfo.Remark = remark
|
|
|
+ sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
|
|
|
+ sendInfo.RedirectUrl = redirectUrl
|
|
|
+ sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.Resource = strconv.Itoa(specialId)
|
|
|
+ sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
+ sendInfo.OpenIdArr = openIdArr
|
|
|
+ err = PublicSendTemplateMsg(sendInfo)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
|