123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- package services
- import (
- "errors"
- "fmt"
- "hongze/hongze_cygx/models"
- "hongze/hongze_cygx/models/company"
- "hongze/hongze_cygx/utils"
- "strconv"
- "strings"
- "time"
- )
- // Kp互动提醒
- func SendCygxTemplateRecordSource(log models.WxUserRaiLabelRedis) (err error) {
- userId := log.UserId
- sourceId := log.SourceId
- sourceType := log.SourceType
- defer func() {
- if err != nil {
- go utils.SendAlarmMsg(fmt.Sprint("Kp互动提醒失败,SendCygxTemplateRecordSource err", err.Error()), 2)
- }
- }()
- var keyword1 string
- var keyword2 string
- var keyword3 string
- var keyword4 string
- var keyword5 string
- var redirectUrl string
- wxUser, e := models.GetWxUserItemByUserId(userId)
- if e != nil {
- err = errors.New("GetWxUserItemByUserId" + e.Error())
- return
- }
- if wxUser.IsMaker == 0 {
- return
- }
- companyProduct, e := company.GetCompanyProductByCompanyIdAndProductId(wxUser.CompanyId, utils.COMPANY_PRODUCT_RAI_ID)
- if e != nil {
- err = errors.New("GetCompanyProductByCompanyIdAndProductId, Err:" + e.Error())
- return
- }
- var adminIds []int
- adminIds = append(adminIds, companyProduct.SellerId, companyProduct.ShareSellerId)
- listAdmin, e := models.GetAdminByAdminIds(adminIds)
- if e != nil {
- err = errors.New("GetAdminByAdminIds, Err: " + e.Error())
- return
- }
- var mobiles []string
- for _, v := range listAdmin {
- mobiles = append(mobiles, v.Mobile)
- }
- //fmt.Println(mobiles)
- var source string
- switch sourceType {
- case 1:
- detail, e := models.GetArticleDetailById(sourceId)
- if e != nil {
- err = errors.New("GetArticleDetailById, Err: " + e.Error())
- return
- }
- keyword2 = "阅读报告:" + detail.Title
- redirectUrl = utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(sourceId)
- source = utils.CYGX_OBJ_ARTICLE
- case 4:
- activityDetail, e := models.GetAddActivityDetailByActivityId(sourceId)
- if e != nil {
- err = errors.New("GetAddActivityDetailByActivityId" + e.Error())
- return
- }
- keyword2 = "参与线上活动:" + activityDetail.ActivityName
- redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(sourceId)
- source = utils.CYGX_OBJ_ACTIVITY
- case 9:
- activityDetail, e := models.GetAddActivityDetailByActivityId(sourceId)
- if e != nil {
- err = errors.New("GetAddActivityDetailByActivityId" + e.Error())
- return
- }
- keyword2 = "参与线上活动:" + activityDetail.ActivityName
- redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(sourceId)
- source = utils.CYGX_OBJ_ACTIVITYVIDEO
- case 10:
- chartDetail, e := models.GetChartDetailByChartId(sourceId)
- if e != nil {
- err = errors.New("GetChartDetailByChartId, Err: " + e.Error())
- return
- }
- keyword2 = "阅读图表:" + chartDetail.Title
- redirectUrl = utils.WX_MSG_PATH_CHART_DETAIL + strconv.Itoa(sourceId)
- source = utils.CYGX_OBJ_NEWCHART
- default:
- return
- }
- var startDate, endDate string
- startDate = time.Now().Format(utils.FormatDate)
- startDate = time.Now().AddDate(0, 0, 1).Format(utils.FormatDate)
- tatal, e := models.GetCygxTemplateRecordSourceCount(userId, sourceId, source, startDate, endDate)
- if e != nil {
- err = errors.New("GetCygxTemplateRecordSourceCount, Err: " + e.Error())
- return
- }
- if tatal > 0 {
- return // 一天只推送一次
- }
- item := new(models.CygxTemplateRecordSource)
- item.UserId = userId
- item.Source = source
- item.SourceId = sourceId
- item.CreateTime = time.Now()
- e = models.AddCygxTemplateRecordSource(item)
- if e != nil {
- err = errors.New("AddCygxTemplateRecordSource, Err: " + e.Error())
- return
- }
- var keywords []string
- keywords = append(keywords, keyword1, keyword2, keyword3, keyword4, keyword5)
- openIdList, e := models.GetMfyxWxOpenIdByMobileList(strings.Join(mobiles, ","))
- if e != nil {
- err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
- return
- }
- if len(openIdList) == 0 {
- return
- }
- openIdArr := make([]string, 0)
- for _, v := range openIdList {
- openIdArr = append(openIdArr, v.OpenId)
- }
- //redirectUrl = utils.WX_MSG_PATH_TEMPLATE_MSG + "SourceId=" + strconv.Itoa(msgId) + "&SourceType=1"
- sendInfo := new(SendWxCategoryTemplate)
- sendInfo.Keywords = keywords
- sendInfo.TemplateId = utils.WxMsgTemplateIdArticleUserRemind
- sendInfo.RedirectTarget = 4
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
- sendInfo.OpenIdArr = openIdArr
- sendInfo.RedirectUrl = redirectUrl
- err = SendCategoryTemplateMsg(sendInfo)
- return
- }
|