banner_yx_survey.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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, content string, 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("SendCygxBannerYxSurveyTemplateMsg Err"+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. //销售对应的Openid
  61. openIdList, e := models.GetWxOpenIdByMobileList(sellerItem.Mobile)
  62. if e != nil {
  63. err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
  64. return
  65. }
  66. if len(openIdList) == 0 {
  67. return
  68. }
  69. openIdArr := make([]string, 0)
  70. for _, v := range openIdList {
  71. openIdArr = append(openIdArr, v.OpenId)
  72. }
  73. var keyword1 string
  74. var keyword2 string
  75. var keyword3 string
  76. var keyword4 string
  77. keyword1 = fmt.Sprint(user.RealName, "--", user.CompanyName, "(", sellerItem.RealName, ")")
  78. if user.Mobile == "" {
  79. user.Mobile = user.Email
  80. }
  81. keyword2 = user.Mobile
  82. keyword3 = time.Now().Format(utils.FormatDateTime)
  83. keyword4 = fmt.Sprint("研选调研需求:", content)
  84. var redirectUrl string
  85. if utils.RunMode == "" {
  86. redirectUrl = utils.WX_MSG_PATH_YX_SURVEY_DETAIL + strconv.Itoa(articleId)
  87. }
  88. sendInfo := new(SendWxTemplate)
  89. sendInfo.Keyword1 = keyword1
  90. sendInfo.Keyword2 = keyword2
  91. sendInfo.Keyword3 = keyword3
  92. sendInfo.Keyword4 = keyword4
  93. sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_ADD
  94. sendInfo.TemplateId = utils.WxMsgTemplateIdArticleUserRemind
  95. sendInfo.RedirectUrl = redirectUrl
  96. sendInfo.RedirectTarget = 3
  97. sendInfo.Resource = strconv.Itoa(articleId)
  98. sendInfo.OpenIdArr = openIdArr
  99. err = PublicSendTemplateMsg(sendInfo)
  100. return
  101. }