cygx_yanxuan_special.go 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package services
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_cygx/models"
  6. "hongze/hongze_cygx/utils"
  7. "strconv"
  8. "strings"
  9. "time"
  10. )
  11. // 研选专栏有新内容审核通过时,给关注此专栏的客户发送模板消息
  12. func SendWxMsgSpecialFollow(specialId int) (err error) {
  13. var msg string
  14. defer func() {
  15. if err != nil {
  16. go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
  17. go utils.SendAlarmMsg(fmt.Sprint("研选专栏有新内容审核通过时,给关注此专栏的客户发送模板消息失败", specialId, ", specialId"), 2)
  18. utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
  19. }
  20. }()
  21. var first string
  22. var keyword1 string
  23. var keyword2 string
  24. var keyword3 string
  25. var keyword4 string
  26. var remark string
  27. followers, e := models.GetYanxuanSpecialFollowUserById(specialId)
  28. if e != nil {
  29. err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
  30. return
  31. }
  32. specialItem, e := models.GetYanxuanSpecialItemById(specialId)
  33. if e != nil {
  34. err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
  35. return
  36. }
  37. var allInUserId string
  38. for _, v := range followers {
  39. allInUserId += strconv.Itoa(v) + ","
  40. }
  41. allInUserId = strings.TrimRight(allInUserId, ",")
  42. userList, err := models.GetWxUserListByUserIds(allInUserId)
  43. if err != nil && err.Error() != utils.ErrNoRow() {
  44. return err
  45. }
  46. mobile := ``
  47. for _, v := range userList {
  48. mobile += v.Mobile + ","
  49. }
  50. mobile = strings.TrimRight(mobile, ",")
  51. openIdList, e := models.GetWxOpenIdByMobileList(mobile)
  52. if e != nil {
  53. err = errors.New("GetSellerByAdminId, Err: " + e.Error())
  54. return
  55. }
  56. //first =
  57. keyword1 = "研选专栏:" + specialItem.SpecialName
  58. keyword2 = "发布了新内容,点击查看详情"
  59. keyword3 = "-"
  60. //keyword4 = "【" + activityInfo.ResearchTheme + "】已有10人预报名"
  61. openIdArr := make([]string, 0)
  62. for _, v := range openIdList {
  63. openIdArr = append(openIdArr, v.OpenId)
  64. }
  65. redirectUrl := utils.WX_MSG_PATH_YX_SPECIAL_DETAIL + strconv.Itoa(specialId)
  66. sendInfo := new(SendWxTemplate)
  67. sendInfo.First = first
  68. sendInfo.Keyword1 = keyword1
  69. sendInfo.Keyword2 = keyword2
  70. sendInfo.Keyword3 = keyword3
  71. sendInfo.Keyword4 = keyword4
  72. sendInfo.Remark = remark
  73. sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
  74. sendInfo.RedirectUrl = redirectUrl
  75. sendInfo.RedirectTarget = 3
  76. sendInfo.Resource = strconv.Itoa(specialId)
  77. sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
  78. sendInfo.OpenIdArr = openIdArr
  79. err = PublicSendTemplateMsg(sendInfo)
  80. if err != nil {
  81. return
  82. }
  83. return
  84. }
  85. // SendReviewTemplateMsgAdmin 提交审核时给王芳,汪洋发消息
  86. func SendReviewTemplateMsgAdmin(specialId int) (err error) {
  87. defer func() {
  88. if err != nil {
  89. go utils.SendAlarmMsg("处理试用申请给王芳,汪洋发消息失败, ErrMsg: "+err.Error(), 3)
  90. }
  91. }()
  92. var configCode string
  93. //如果是研选的就推送给汪洋跟王芳,否则就推送给王芳
  94. configCode = utils.TPL_MSG_WANG_FANG_WANG_YANG
  95. cnf, e := models.GetConfigByCode(configCode)
  96. if e != nil {
  97. err = errors.New("GetConfigByCode, Err: " + e.Error() + configCode)
  98. return
  99. }
  100. openIdList, e := models.GetUserRecordListByMobile(4, cnf.ConfigValue)
  101. if e != nil && e.Error() != utils.ErrNoRow() {
  102. err = errors.New("GetUserRecordListByMobile, Err: " + e.Error() + cnf.ConfigValue)
  103. return err
  104. }
  105. specialItem, e := models.GetYanxuanSpecialItemById(specialId)
  106. if e != nil {
  107. err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
  108. return
  109. }
  110. user, e := models.GetWxUserItemByUserId(specialItem.UserId)
  111. if e != nil && e.Error() != utils.ErrNoRow() {
  112. err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
  113. return err
  114. }
  115. var keyword1 string
  116. var keyword2 string
  117. var keyword3 string
  118. var keyword4 string
  119. var remark string
  120. keyword1 = specialItem.RealName + "【" +user.CompanyName+"】"
  121. keyword2 = user.Mobile
  122. keyword3 = time.Now().Format(utils.FormatDateTime)
  123. keyword4 = "研选专栏提交了内容待审核"
  124. openIdArr := make([]string, 0)
  125. for _, v := range openIdList {
  126. openIdArr = append(openIdArr, v.OpenId)
  127. }
  128. redirectUrl := utils.WX_MSG_PATH_YX_SPECIAL_DETAIL + strconv.Itoa(specialId)
  129. sendInfo := new(SendWxTemplate)
  130. sendInfo.Keyword1 = keyword1
  131. sendInfo.Keyword2 = keyword2
  132. sendInfo.Keyword3 = keyword3
  133. sendInfo.Keyword4 = keyword4
  134. sendInfo.Remark = remark
  135. sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
  136. sendInfo.RedirectUrl = redirectUrl
  137. sendInfo.RedirectTarget = 3
  138. sendInfo.Resource = strconv.Itoa(specialId)
  139. sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
  140. sendInfo.OpenIdArr = openIdArr
  141. err = PublicSendTemplateMsg(sendInfo)
  142. if err != nil {
  143. return
  144. }
  145. return
  146. }