123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- package services
- import (
- "errors"
- "fmt"
- "hongze/hongze_mfyx/models"
- "hongze/hongze_mfyx/utils"
- "strconv"
- "time"
- )
- // SendResearchActivitiesTemplateMsg 线下调研活动报名给所属销售跟建会人员推送
- func SendResearchActivitiesTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail, doStatus string) (err error) {
- //如果不是公司线下调研就返回
- if activityDetail.ActivityTypeId != 4 {
- return
- }
- defer func() {
- if err != nil {
- go utils.SendEmail("线下调研活动报名给所属销售跟建会人员推送失败Err"+time.Now().Format("2006-01-02 15:04:05"), ";Err:"+err.Error(), utils.EmailSendToUsers)
- go utils.SendAlarmMsg(fmt.Sprint("线下调研活动报名给所属销售跟建会人员推送失败Err:", err.Error(), "活动ID:", activityDetail.ActivityId, "手机号:", user.Mobile), 2)
- }
- }()
- var mobiles []string
- //获取销售信息
- sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
- if err != nil && err.Error() != utils.ErrNoRow() {
- return
- }
- if sellerItem != nil {
- mobiles = append(mobiles, sellerItem.Mobile)
- }
- //获取建会人员信息
- admin, err := models.GetSysAdminById(activityDetail.AdminId)
- if err != nil && err.Error() != utils.ErrNoRow() {
- return
- }
- if admin != nil {
- mobiles = append(mobiles, admin.Mobile)
- }
- var first string
- var keyword1 string
- var keyword2 string
- var keyword3 string
- var keyword4 string
- var remark string
- var redirectUrl string
- //first = "【" + activityDetail.ActivityName + "】有客户报名"
- keyword1 = user.RealName + "——" + user.CompanyName + "(" + sellerItem.RealName + ")"
- keyword2 = user.Mobile
- keyword3 = time.Now().Format(utils.FormatDateTime)
- keyword4 = doStatus + ":" + activityDetail.ActivityName
- //remark = "点击查看报告详情"
- openIdList, e := models.GetWxOpenIdByMobileSliceList(mobiles)
- if e != nil {
- err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
- return
- }
- openIdArr := make([]string, 0)
- for _, v := range openIdList {
- openIdArr = append(openIdArr, v.OpenId)
- }
- redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.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.WxMsgTemplateIdApplyXzs
- sendInfo.RedirectUrl = redirectUrl
- sendInfo.RedirectTarget = 3
- sendInfo.Resource = strconv.Itoa(activityDetail.ArticleId)
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_COMMENT
- sendInfo.OpenIdArr = openIdArr
- err = PublicSendTemplateMsg(sendInfo)
- if err != nil {
- return
- }
- return
- }
- // SendActivitieSignTemplateMsg 线下调研活动扫码签到给对应销售发模班消息
- func SendActivitieSignTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
- defer func() {
- if err != nil {
- go utils.SendAlarmMsg(fmt.Sprint("线下调研活动扫码签到给对应销售发模班消息推送失败Err:", err.Error(), "活动ID:", activityDetail.ActivityId, "手机号:", user.Mobile), 2)
- }
- }()
- var mobiles []string
- //获取销售信息
- sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
- if err != nil && err.Error() != utils.ErrNoRow() {
- return
- }
- if sellerItem != nil {
- mobiles = append(mobiles, sellerItem.Mobile)
- }
- var first string
- var keyword1 string
- var keyword2 string
- var keyword3 string
- var keyword4 string
- var remark string
- var redirectUrl string
- first = ""
- keyword1 = activityDetail.ActivityName
- keyword2 = user.RealName + "——" + user.CompanyName
- keyword3 = time.Now().Format(utils.FormatDateTime)
- keyword4 = ""
- remark = ""
- openIdList, e := models.GetWxOpenIdByMobileSliceList(mobiles)
- if e != nil {
- err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
- return
- }
- openIdArr := make([]string, 0)
- for _, v := range openIdList {
- openIdArr = append(openIdArr, v.OpenId)
- }
- if utils.RunMode != "release" {
- redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId)
- } else {
- redirectUrl = utils.WX_MSG_PATH_ACTIVITY_SIGN + strconv.Itoa(activityDetail.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.WxMsgTemplateIdActivitySign
- sendInfo.RedirectUrl = redirectUrl
- sendInfo.RedirectTarget = 3
- sendInfo.Resource = strconv.Itoa(activityDetail.ActivityId)
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_COMMENT
- sendInfo.OpenIdArr = openIdArr
- err = PublicSendTemplateMsg(sendInfo)
- if err != nil {
- return
- }
- return
- }
- // SendActivitieCancelSignTemplateMsg 取消活动给销售和内容组四人发模版消息
- func SendActivitieCancelSignTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
- defer func() {
- if err != nil {
- go utils.SendAlarmMsg(fmt.Sprint("取消活动给销售和内容组四人发模版消息Err:", err.Error(), "活动ID:", activityDetail.ActivityId, "手机号:", user.Mobile), 2)
- }
- }()
- //获取销售手机号
- sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
- if err != nil && err.Error() != utils.ErrNoRow() {
- return
- }
- configCode := utils.TPL_MSG_NEI_RONG_ZU
- cnf, e := models.GetConfigByCode(configCode)
- if e != nil {
- err = errors.New("GetConfigByCode, Err: " + e.Error() + configCode)
- return
- }
- openIdList, e := models.GetUserRecordListByMobile(4, cnf.ConfigValue+","+sellerItemQy.Mobile)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = errors.New("GetUserRecordListByMobile, Err: " + e.Error() + cnf.ConfigValue)
- return
- }
- keyword1 := user.RealName + "--" + user.CompanyName + "(" + sellerItemQy.RealName + ")"
- keyword2 := user.Mobile
- keyword3 := time.Now().Format(utils.FormatDateTime)
- keyword4 := "取消报名" + "【" + activityDetail.ActivityName + "】"
- openIdArr := make([]string, 0)
- for _, v := range openIdList {
- openIdArr = append(openIdArr, v.OpenId)
- }
- sendInfo := new(SendWxTemplate)
- sendInfo.Keyword1 = keyword1
- sendInfo.Keyword2 = keyword2
- sendInfo.Keyword3 = keyword3
- sendInfo.Keyword4 = keyword4
- sendInfo.TemplateId = utils.WxMsgTemplateIdApplyXzs
- sendInfo.RedirectTarget = 3
- sendInfo.Resource = user.Mobile
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
- sendInfo.OpenIdArr = openIdArr
- err = PublicSendTemplateMsg(sendInfo)
- return
- }
- // SendNeiRongZuActivitieSignTemplateMsg 报名活动给销售和内容组四人发模版消息
- func SendNeiRongZuActivitieSignTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
- defer func() {
- if err != nil {
- go utils.SendAlarmMsg(fmt.Sprint("取消活动给销售和内容组四人发模版消息Err:", err.Error(), "活动ID:", activityDetail.ActivityId, "手机号:", user.Mobile), 2)
- }
- }()
- //获取销售手机号
- sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
- if err != nil && err.Error() != utils.ErrNoRow() {
- return
- }
- configCode := utils.TPL_MSG_NEI_RONG_ZU
- cnf, e := models.GetConfigByCode(configCode)
- if e != nil {
- err = errors.New("GetConfigByCode, Err: " + e.Error() + configCode)
- return
- }
- openIdList, e := models.GetUserRecordListByMobile(4, cnf.ConfigValue+","+sellerItemQy.Mobile)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = errors.New("GetUserRecordListByMobile, Err: " + e.Error() + cnf.ConfigValue)
- return
- }
- keyword1 := user.RealName + "--" + user.CompanyName + "(" + sellerItemQy.RealName + ")"
- keyword2 := user.Mobile
- keyword3 := time.Now().Format(utils.FormatDateTime)
- keyword4 := "报名" + "【" + activityDetail.ActivityName + "】"
- openIdArr := make([]string, 0)
- for _, v := range openIdList {
- openIdArr = append(openIdArr, v.OpenId)
- }
- sendInfo := new(SendWxTemplate)
- sendInfo.Keyword1 = keyword1
- sendInfo.Keyword2 = keyword2
- sendInfo.Keyword3 = keyword3
- sendInfo.Keyword4 = keyword4
- sendInfo.TemplateId = utils.WxMsgTemplateIdApplyXzs
- sendInfo.RedirectTarget = 3
- sendInfo.Resource = user.Mobile
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
- sendInfo.OpenIdArr = openIdArr
- err = PublicSendTemplateMsg(sendInfo)
- return
- }
|