banner_yx_survey.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package services
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_cygx/models"
  6. "hongze/hongze_cygx/utils"
  7. "strconv"
  8. "time"
  9. )
  10. // 约访专家的请求
  11. func AddCygxBannerYxSurvey(user *models.WxUserItem, content string) (err error) {
  12. defer func() {
  13. if err != nil {
  14. fmt.Println(err)
  15. go utils.SendAlarmMsg("约访专家的请求失败"+err.Error(), 2)
  16. }
  17. }()
  18. item := new(models.CygxBannerYxSurvey)
  19. item.UserId = user.UserId
  20. item.CreateTime = time.Now()
  21. item.ModifyTime = time.Now()
  22. item.Mobile = user.Mobile
  23. item.Email = user.Email
  24. item.CompanyId = user.CompanyId
  25. item.CompanyName = user.CompanyName
  26. item.Content = content
  27. item.RegisterPlatform = utils.REGISTER_PLATFORM
  28. sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
  29. if err != nil && err.Error() != utils.ErrNoRow() {
  30. return
  31. }
  32. item.RealName = user.RealName
  33. if sellerItem != nil {
  34. item.SellerName = sellerItem.RealName
  35. }
  36. _, e := models.AddCygxBannerYxSurvey(item)
  37. if e != nil {
  38. err = errors.New("AddCygxBannerYxSurvey, Err: " + e.Error())
  39. return
  40. }
  41. return
  42. }
  43. // 用户约访专家的请求,向对应销售发送模版消息
  44. func SendCygxBannerYxSurveyTemplateMsg(user *models.WxUserItem, articleId int) (err error) {
  45. var msg string
  46. msg = fmt.Sprint(user, articleId)
  47. defer func() {
  48. if err != nil {
  49. go utils.SendAlarmMsg("活动带问提醒发送模版消息失败"+msg, 2)
  50. }
  51. }()
  52. //获取权益销售
  53. sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
  54. if err != nil && err.Error() != utils.ErrNoRow() {
  55. return
  56. }
  57. if sellerItem == nil {
  58. return
  59. }
  60. //文章详情
  61. detailArticle, e := models.GetArticleDetailById(articleId)
  62. if e != nil {
  63. err = errors.New("GetArticleDetailById, Err: " + e.Error())
  64. return
  65. }
  66. //销售对应的Openid
  67. openIdList, e := models.GetWxOpenIdByMobileList(sellerItem.Mobile)
  68. if e != nil {
  69. err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
  70. return
  71. }
  72. if len(openIdList) == 0 {
  73. return
  74. }
  75. openIdArr := make([]string, 0)
  76. for _, v := range openIdList {
  77. openIdArr = append(openIdArr, v.OpenId)
  78. }
  79. var keyword1 string
  80. var keyword2 string
  81. var keyword3 string
  82. var keyword4 string
  83. keyword1 = fmt.Sprint(user.RealName, "--", user.CompanyName, "(", sellerItem.RealName, ")")
  84. if user.Mobile == "" {
  85. user.Mobile = user.Email
  86. }
  87. keyword2 = user.Mobile
  88. keyword3 = time.Now().Format(utils.FormatDateTime)
  89. keyword4 = fmt.Sprint("约访专家(", detailArticle.Title, ")")
  90. var redirectUrl string
  91. redirectUrl = utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(articleId)
  92. sendInfo := new(SendWxTemplate)
  93. sendInfo.Keyword1 = keyword1
  94. sendInfo.Keyword2 = keyword2
  95. sendInfo.Keyword3 = keyword3
  96. sendInfo.Keyword4 = keyword4
  97. sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_ADD
  98. sendInfo.TemplateId = utils.WxMsgTemplateIdArticleUserRemind
  99. sendInfo.RedirectUrl = redirectUrl
  100. sendInfo.RedirectTarget = 3
  101. sendInfo.Resource = strconv.Itoa(articleId)
  102. sendInfo.OpenIdArr = openIdArr
  103. err = PublicSendTemplateMsg(sendInfo)
  104. return
  105. }