|
@@ -68,6 +68,197 @@ func SendCategoryTemplateMsg(sendInfo *SendWxCategoryTemplate) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// 用户模块
|
|
|
+// 研选类目模板消息
|
|
|
+func SendPermissionApplyTemplateMsgAdminByYxCategory(req models.ApplyTryReq, companyId int, usermobile, redirectUrl string) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg("研选类目模板消息消息失败, SendPermissionApplyTemplateMsgAdminByYxCategoryErrMsg: "+err.Error(), 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ //潜在客户、未开权益,已开FICC的客户推给王芳,开通权益的客户推给对应销售
|
|
|
+ mobileOpneid := utils.WxMsgTemplateIdAskMsgMobilePublic
|
|
|
+ if companyId > 1 {
|
|
|
+ raiCount, e := models.GetCompanyProductCount(companyId, utils.COMPANY_PRODUCT_RAI_ID)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCompanyProductCount, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if raiCount == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sealldetail, e := models.GetRaiSellerByCompanyId(companyId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mobileOpneid = sealldetail.Mobile
|
|
|
+ }
|
|
|
+
|
|
|
+ openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobileOpneid)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if len(openIdList) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var keyword1 string
|
|
|
+ var keyword2 string
|
|
|
+ var keyword3 string
|
|
|
+ var keyword4 string
|
|
|
+ var keyword5 string
|
|
|
+ keyword1 = req.RealName
|
|
|
+ keyword2 = utils.TruncateActivityNameString(req.CompanyName)
|
|
|
+ keyword3 = "权限申请"
|
|
|
+ keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
|
|
|
+ if companyId == 1 {
|
|
|
+ keyword5 = "潜在客户"
|
|
|
+ } else {
|
|
|
+ keyword5 = "FICC客户"
|
|
|
+ }
|
|
|
+ openIdArr := make([]string, 0)
|
|
|
+ for _, v := range openIdList {
|
|
|
+ openIdArr = append(openIdArr, v.OpenId)
|
|
|
+ }
|
|
|
+ detail, e := models.GetCygxApplyRecordByMobile(usermobile)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxApplyRecordByMobile" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //redirectUrl := ""
|
|
|
+ //如果是潜在客户就推送可查看详情的模版消息
|
|
|
+ if detail.ApplyMethod == 2 {
|
|
|
+ redirectUrl = utils.WX_MSG_PATH_APPLY_DETAIL + strconv.Itoa(detail.ApplyRecordId)
|
|
|
+ }
|
|
|
+
|
|
|
+ keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
|
|
|
+ sendInfo := new(SendWxCategoryTemplate)
|
|
|
+ sendInfo.Keywords = keywords
|
|
|
+ sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
+ sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
+ sendInfo.OpenIdArr = openIdArr
|
|
|
+ sendInfo.RedirectUrl = redirectUrl
|
|
|
+ err = SendCategoryTemplateMsg(sendInfo)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 用户模块End
|
|
|
+
|
|
|
+// 报告模块
|
|
|
+// 发送用户留言提醒(研选公众号类目模版消息)
|
|
|
+func SendCommentWxTemplateMsgByYxCategory(req models.AddCygxArticleCommentReq, user *models.WxUserItem, articleInfo *models.ArticleDetail, msgId int) (err error) {
|
|
|
+ if articleInfo.ArticleTypeId == 0 {
|
|
|
+ return // 非研选的文章不做推送
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("发送用户用户留言提醒失败,文章ID:", req.ArticleId, "err", err.Error()), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ companyItem, e := models.GetSellerDetailAllByCompanyId(user.CompanyId)
|
|
|
+ if e != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if companyItem == nil {
|
|
|
+ err = errors.New("获取客户所属销售信息失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var keyword1 string
|
|
|
+ var keyword2 string
|
|
|
+ var keyword3 string
|
|
|
+ var keyword4 string
|
|
|
+ var keyword5 string
|
|
|
+ var redirectUrl string
|
|
|
+ var mobile string
|
|
|
+
|
|
|
+ var keywords []string
|
|
|
+ keyword1 = user.RealName
|
|
|
+ keyword2 = utils.TruncateActivityNameString(companyItem.CompanyName)
|
|
|
+ keyword3 = companyItem.SellerName
|
|
|
+ keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
|
|
|
+ keyword5 = "报告留言:" + req.Content
|
|
|
+ keyword5 = utils.TruncateActivityNameString(keyword5)
|
|
|
+ keywords = append(keywords, keyword1, keyword2, keyword3, keyword4, keyword5)
|
|
|
+
|
|
|
+ var mobiles []string
|
|
|
+ mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.RAI_MOBILE_GE_LIN) //葛琳、高亦文、董衡、吴昂迪手机号
|
|
|
+ mobile = companyItem.Mobile + "," + utils.WxMsgTemplateIdAskMsgMobilePublic + "," + strings.Join(mobiles, ",")
|
|
|
+ //mobile =
|
|
|
+ openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
|
|
|
+ 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.WxCategoryMsgTemplateIdApplyXzs
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
+ sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
+ sendInfo.OpenIdArr = openIdArr
|
|
|
+ sendInfo.RedirectUrl = redirectUrl
|
|
|
+ err = SendCategoryTemplateMsg(sendInfo)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 发送报告提问消息提醒
|
|
|
+func SendWxCategoryMsgWithActivityAsk(companyName, realName, sellerName, askTime, askMsg string, openIdList []*models.OpenIdList, msgId int) (err error) {
|
|
|
+ if len(openIdList) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("发送报告提问消息提醒类目模版消息失败,用户名", realName, "留言ID:", msgId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var keyword1 string
|
|
|
+ var keyword2 string
|
|
|
+ var keyword3 string
|
|
|
+ var keyword4 string
|
|
|
+ var keyword5 string
|
|
|
+
|
|
|
+ keyword1 = realName
|
|
|
+ keyword2 = companyName
|
|
|
+ keyword3 = sellerName
|
|
|
+ keyword4 = askTime
|
|
|
+ keyword5 = utils.TruncateActivityNameString("活动提问:" + askMsg)
|
|
|
+
|
|
|
+ keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
|
|
|
+
|
|
|
+ openIdArr := make([]string, 0)
|
|
|
+ for _, v := range openIdList {
|
|
|
+ openIdArr = append(openIdArr, v.OpenId)
|
|
|
+ }
|
|
|
+ redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(msgId)
|
|
|
+
|
|
|
+ sendInfo := new(SendWxCategoryTemplate)
|
|
|
+ sendInfo.Keywords = keywords
|
|
|
+ sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
+ sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
+ sendInfo.OpenIdArr = openIdArr
|
|
|
+ sendInfo.RedirectUrl = redirectUrl
|
|
|
+ err = SendCategoryTemplateMsg(sendInfo)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//报告模块END
|
|
|
+
|
|
|
+// 活动模块
|
|
|
// 帮我带问的问题,会前1小时发送
|
|
|
func SendMfyxEmailFileForAskMsgResearch(cont context.Context) (err error) {
|
|
|
var msg string
|
|
@@ -140,54 +331,6 @@ func SendMfyxEmailFileForAskMsgResearch(cont context.Context) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// 发送报告提问消息提醒
|
|
|
-func SendWxCategoryMsgWithActivityAsk(companyName, realName, sellerName, askTime, askMsg string, openIdList []*models.OpenIdList, msgId int) (err error) {
|
|
|
- if len(openIdList) == 0 {
|
|
|
- return
|
|
|
- }
|
|
|
- var msg string
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- go utils.SendEmail("发送类目模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
- go utils.SendAlarmMsg(fmt.Sprint("发送报告提问消息提醒类目模版消息失败,用户名", realName, "留言ID:", msgId), 2)
|
|
|
- utils.FileLog.Info("发送类目模版消息失败,Err:%s", err.Error())
|
|
|
- }
|
|
|
- fmt.Println("line 21", err, msg)
|
|
|
- }()
|
|
|
- var keyword1 string
|
|
|
- var keyword2 string
|
|
|
- var keyword3 string
|
|
|
- var keyword4 string
|
|
|
- var keyword5 string
|
|
|
-
|
|
|
- keyword1 = realName
|
|
|
- keyword2 = companyName
|
|
|
- keyword3 = sellerName
|
|
|
- keyword4 = askTime
|
|
|
- keyword5 = utils.TruncateActivityNameString("活动提问:" + askMsg)
|
|
|
-
|
|
|
- keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
|
|
|
-
|
|
|
- openIdArr := make([]string, 0)
|
|
|
- for _, v := range openIdList {
|
|
|
- openIdArr = append(openIdArr, v.OpenId)
|
|
|
- }
|
|
|
- redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(msgId)
|
|
|
-
|
|
|
- sendInfo := new(SendWxCategoryTemplate)
|
|
|
- sendInfo.Keywords = keywords
|
|
|
- sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 4
|
|
|
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
- sendInfo.OpenIdArr = openIdArr
|
|
|
- sendInfo.RedirectUrl = redirectUrl
|
|
|
- err = SendCategoryTemplateMsg(sendInfo)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
// 推送会议开始消息提醒60分钟前
|
|
|
func SendMfyxActivityBeginMsg(cont context.Context) (err error) {
|
|
|
//func SendActivityBeginMsg() (err error) {
|
|
@@ -401,50 +544,237 @@ func SendActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetai
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// 研选专栏审核完成时,给提交人发送类目模板消息
|
|
|
-func SendWxCategoryMsgSpecialAuthor(specialId, status int) (err error) {
|
|
|
+// 发送活动提问消息提醒(研选公众号类目模版消息)
|
|
|
+func SendWxCategoryMsgWithAsk(user *models.WxUserItem, activityInfo *models.ActivityDetail, askMsg string, askId int) (err error) {
|
|
|
+ if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
|
|
|
+ return
|
|
|
+ }
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- go utils.SendAlarmMsg(fmt.Sprint("研选专栏审核完成时,给提交人发送模板消息 SendWxCategoryMsgSpecialAuthor ", specialId, ", specialId", err.Error()), 2)
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("发送活动提问消息提醒类目模版消息失败,用户名", user.RealName, "提问ID:", askId), 2)
|
|
|
}
|
|
|
}()
|
|
|
- var keyword1 string
|
|
|
- var keyword2 string
|
|
|
- var keyword3 string
|
|
|
- var keyword4 string
|
|
|
- var redirectUrl string
|
|
|
|
|
|
- specialItem, e := models.GetYanxuanSpecialItemById(specialId)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
|
|
|
- return
|
|
|
+ companyId := user.CompanyId
|
|
|
+ var sellerName string
|
|
|
+ //潜在客户、未开权益,已开FICC的客户推给王芳,开通权益的客户推给对应销售
|
|
|
+ mobile := utils.WxMsgTemplateIdAskMsgMobilePublic
|
|
|
+ if companyId > 1 {
|
|
|
+ raiCount, e := models.GetCompanyProductCount(companyId, utils.COMPANY_PRODUCT_RAI_ID)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCompanyProductCount, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if raiCount > 0 {
|
|
|
+ sealldetail, e := models.GetRaiSellerByCompanyId(companyId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sellerName = sealldetail.RealName
|
|
|
+ mobile += "," + sealldetail.Mobile
|
|
|
+ }
|
|
|
}
|
|
|
- user, e := models.GetWxUserItemByUserId(specialItem.UserId)
|
|
|
+ var mobiles []string
|
|
|
+ mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.RAI_MOBILE_GE_LIN) //葛琳、高亦文、董衡、吴昂迪手机号
|
|
|
+ mobile += "," + strings.Join(mobiles, ",")
|
|
|
+ openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
|
|
|
if e != nil {
|
|
|
- err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- openIdList, err := models.GetMfyxWxOpenIdByMobileList(user.Mobile)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
|
|
|
return err
|
|
|
}
|
|
|
-
|
|
|
if len(openIdList) == 0 {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- keyword1 = utils.TruncateActivityNameString(specialItem.Title)
|
|
|
- keyword2 = specialItem.NickName
|
|
|
- if status == 1 {
|
|
|
- keyword3 = "文章已通过审核,点击查看详情"
|
|
|
- redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_DETAIL + strconv.Itoa(specialId)
|
|
|
- } else {
|
|
|
- keyword3 = "文章未通过审核,点击查看驳回原因"
|
|
|
- redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_CENTER
|
|
|
- }
|
|
|
- keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
|
|
|
- openIdArr := make([]string, 0)
|
|
|
+ var keyword1 string
|
|
|
+ var keyword2 string
|
|
|
+ var keyword3 string
|
|
|
+ var keyword4 string
|
|
|
+ var keyword5 string
|
|
|
+
|
|
|
+ keyword1 = user.RealName
|
|
|
+ keyword2 = utils.TruncateActivityNameString(user.CompanyName)
|
|
|
+ keyword3 = sellerName
|
|
|
+ keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
|
|
|
+ keyword5 = utils.TruncateActivityNameString("活动提问:" + askMsg)
|
|
|
+
|
|
|
+ keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
|
|
|
+
|
|
|
+ openIdArr := make([]string, 0)
|
|
|
+ for _, v := range openIdList {
|
|
|
+ openIdArr = append(openIdArr, v.OpenId)
|
|
|
+ }
|
|
|
+
|
|
|
+ redirectUrl := utils.WX_MSG_PATH_TEMPLATE_MSG + "SourceId=" + strconv.Itoa(askId) + "&SourceType=2"
|
|
|
+ //redirectUrl = ""
|
|
|
+ sendInfo := new(SendWxCategoryTemplate)
|
|
|
+ sendInfo.Keywords = keywords
|
|
|
+ sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
+ sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
+ sendInfo.OpenIdArr = openIdArr
|
|
|
+ sendInfo.RedirectUrl = redirectUrl
|
|
|
+ err = SendCategoryTemplateMsg(sendInfo)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 用户报名模板消息推送(研选公众号类目模版消息)
|
|
|
+func SendNeiRongZuActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
|
|
|
+ if activityDetail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,文章ID:", activityDetail.ActivityId), 2)
|
|
|
+ fmt.Println(err)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ sellerItemQy, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var mobile string
|
|
|
+ var sellerRealName string
|
|
|
+ var mobiles []string
|
|
|
+ mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.MobileShenTao, utils.MobileZhangChuanXin) //高亦文、董衡、吴昂迪手机号
|
|
|
+ if sellerItemQy != nil {
|
|
|
+ mobiles = append(mobiles, sellerItemQy.Mobile)
|
|
|
+ sellerRealName = sellerItemQy.RealName
|
|
|
+ } else {
|
|
|
+ sellerRealName = "__"
|
|
|
+ }
|
|
|
+ mobile = strings.Join(mobiles, ",")
|
|
|
+ openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if len(openIdList) == 0 {
|
|
|
+ err = nil
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ openIdArr := make([]string, 0)
|
|
|
+ for _, v := range openIdList {
|
|
|
+ openIdArr = append(openIdArr, v.OpenId)
|
|
|
+ }
|
|
|
+ var keywords []string
|
|
|
+ keywords = append(keywords, user.RealName, user.CompanyName, sellerRealName, time.Now().Format(utils.FormatDateTimeMinute2), utils.TruncateActivityNameString("报名:"+activityDetail.ActivityName))
|
|
|
+ redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId) //活动详情地址
|
|
|
+ sendInfo := new(SendWxCategoryTemplate)
|
|
|
+ sendInfo.Keywords = keywords
|
|
|
+ sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
+ sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
+ sendInfo.OpenIdArr = openIdArr
|
|
|
+ sendInfo.RedirectUrl = redirectUrl
|
|
|
+ err = SendCategoryTemplateMsg(sendInfo)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 用户取消报名模板消息推送(研选公众号类目模版消息)
|
|
|
+func SendActivitieCancelSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
|
|
|
+ if activityDetail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,活动ID:", activityDetail.ActivityId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ sellerItemQy, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var mobile string
|
|
|
+ var sellerRealName string
|
|
|
+ var mobiles []string
|
|
|
+ mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.MobileShenTao, utils.MobileZhangChuanXin) //高亦文、董衡、吴昂迪手机号
|
|
|
+ if sellerItemQy != nil {
|
|
|
+ mobiles = append(mobiles, sellerItemQy.Mobile)
|
|
|
+ sellerRealName = sellerItemQy.RealName
|
|
|
+ } else {
|
|
|
+ sellerRealName = "__"
|
|
|
+ }
|
|
|
+ mobile = strings.Join(mobiles, ",")
|
|
|
+ openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if len(openIdList) == 0 {
|
|
|
+ err = nil
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ openIdArr := make([]string, 0)
|
|
|
+ for _, v := range openIdList {
|
|
|
+ openIdArr = append(openIdArr, v.OpenId)
|
|
|
+ }
|
|
|
+ var keywords []string
|
|
|
+ keywords = append(keywords, user.RealName, user.CompanyName, sellerRealName, time.Now().Format(utils.FormatDateTimeMinute2), utils.TruncateActivityNameString("取消报名:"+activityDetail.ActivityName))
|
|
|
+ redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId) //活动详情地址
|
|
|
+ sendInfo := new(SendWxCategoryTemplate)
|
|
|
+ sendInfo.Keywords = keywords
|
|
|
+ sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
+ sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
+ sendInfo.OpenIdArr = openIdArr
|
|
|
+ sendInfo.RedirectUrl = redirectUrl
|
|
|
+ err = SendCategoryTemplateMsg(sendInfo)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 活动模块END
|
|
|
+
|
|
|
+// 专栏模块
|
|
|
+// 研选专栏审核完成时,给提交人发送类目模板消息
|
|
|
+func SendWxCategoryMsgSpecialAuthor(specialId, status int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("研选专栏审核完成时,给提交人发送模板消息 SendWxCategoryMsgSpecialAuthor ", specialId, ", specialId", err.Error()), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var keyword1 string
|
|
|
+ var keyword2 string
|
|
|
+ var keyword3 string
|
|
|
+ var keyword4 string
|
|
|
+ var redirectUrl string
|
|
|
+
|
|
|
+ specialItem, e := models.GetYanxuanSpecialItemById(specialId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ user, e := models.GetWxUserItemByUserId(specialItem.UserId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ openIdList, err := models.GetMfyxWxOpenIdByMobileList(user.Mobile)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(openIdList) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ keyword1 = utils.TruncateActivityNameString(specialItem.Title)
|
|
|
+ keyword2 = specialItem.NickName
|
|
|
+ if status == 1 {
|
|
|
+ keyword3 = "文章已通过审核,点击查看详情"
|
|
|
+ redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_DETAIL + strconv.Itoa(specialId)
|
|
|
+ } else {
|
|
|
+ keyword3 = "文章未通过审核,点击查看驳回原因"
|
|
|
+ redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_CENTER
|
|
|
+ }
|
|
|
+ keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
|
|
|
+ openIdArr := make([]string, 0)
|
|
|
for _, v := range openIdList {
|
|
|
openIdArr = append(openIdArr, v.OpenId)
|
|
|
}
|
|
@@ -544,7 +874,7 @@ func SendWxCategoryMsgSpecialFollow(specialId int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// SendReviewCategoryTemplateMsgAdmin 提交审核时给王芳、葛琳和沈涛发研选类目模板消息
|
|
|
+// SendReviewCategoryTemplateMsgAdmin 专栏提交审核时给王芳、葛琳和沈涛发研选类目模板消息
|
|
|
func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
@@ -605,186 +935,4 @@ func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// 发送活动提问消息提醒(研选公众号类目模版消息)
|
|
|
-func SendWxCategoryMsgWithAsk(user *models.WxUserItem, activityInfo *models.ActivityDetail, askMsg string, askId int) (err error) {
|
|
|
- if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
|
|
|
- return
|
|
|
- }
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- fmt.Println(err)
|
|
|
- go utils.SendAlarmMsg(fmt.Sprint("发送活动提问消息提醒类目模版消息失败,用户名", user.RealName, "提问ID:", askId), 2)
|
|
|
- }
|
|
|
- }()
|
|
|
-
|
|
|
- companyId := user.CompanyId
|
|
|
- var sellerName string
|
|
|
- //潜在客户、未开权益,已开FICC的客户推给王芳,开通权益的客户推给对应销售
|
|
|
- mobile := utils.WxMsgTemplateIdAskMsgMobilePublic
|
|
|
- if companyId > 1 {
|
|
|
- raiCount, e := models.GetCompanyProductCount(companyId, utils.COMPANY_PRODUCT_RAI_ID)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetCompanyProductCount, Err: " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- if raiCount > 0 {
|
|
|
- sealldetail, e := models.GetRaiSellerByCompanyId(companyId)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- sellerName = sealldetail.RealName
|
|
|
- mobile += "," + sealldetail.Mobile
|
|
|
- }
|
|
|
- }
|
|
|
- var mobiles []string
|
|
|
- mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.RAI_MOBILE_GE_LIN) //葛琳、高亦文、董衡、吴昂迪手机号
|
|
|
- mobile += "," + strings.Join(mobiles, ",")
|
|
|
- openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- if len(openIdList) == 0 {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- var keyword1 string
|
|
|
- var keyword2 string
|
|
|
- var keyword3 string
|
|
|
- var keyword4 string
|
|
|
- var keyword5 string
|
|
|
-
|
|
|
- keyword1 = user.RealName
|
|
|
- keyword2 = utils.TruncateActivityNameString(user.CompanyName)
|
|
|
- keyword3 = sellerName
|
|
|
- keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
|
|
|
- keyword5 = utils.TruncateActivityNameString("活动提问:" + askMsg)
|
|
|
-
|
|
|
- keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
|
|
|
-
|
|
|
- openIdArr := make([]string, 0)
|
|
|
- for _, v := range openIdList {
|
|
|
- openIdArr = append(openIdArr, v.OpenId)
|
|
|
- }
|
|
|
-
|
|
|
- redirectUrl := utils.WX_MSG_PATH_TEMPLATE_MSG + "SourceId=" + strconv.Itoa(askId) + "&SourceType=2"
|
|
|
- //redirectUrl = ""
|
|
|
- sendInfo := new(SendWxCategoryTemplate)
|
|
|
- sendInfo.Keywords = keywords
|
|
|
- sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 4
|
|
|
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
- sendInfo.OpenIdArr = openIdArr
|
|
|
- sendInfo.RedirectUrl = redirectUrl
|
|
|
- err = SendCategoryTemplateMsg(sendInfo)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// 用户报名模板消息推送(研选公众号类目模版消息)
|
|
|
-func SendNeiRongZuActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
|
|
|
- if activityDetail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
|
|
|
- return
|
|
|
- }
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,文章ID:", activityDetail.ActivityId), 2)
|
|
|
- fmt.Println(err)
|
|
|
- }
|
|
|
- }()
|
|
|
- sellerItemQy, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
|
|
|
- if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- return
|
|
|
- }
|
|
|
- var mobile string
|
|
|
- var sellerRealName string
|
|
|
- var mobiles []string
|
|
|
- mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.MobileShenTao, utils.MobileZhangChuanXin) //高亦文、董衡、吴昂迪手机号
|
|
|
- if sellerItemQy != nil {
|
|
|
- mobiles = append(mobiles, sellerItemQy.Mobile)
|
|
|
- sellerRealName = sellerItemQy.RealName
|
|
|
- } else {
|
|
|
- sellerRealName = "__"
|
|
|
- }
|
|
|
- mobile = strings.Join(mobiles, ",")
|
|
|
- openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- if len(openIdList) == 0 {
|
|
|
- err = nil
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- openIdArr := make([]string, 0)
|
|
|
- for _, v := range openIdList {
|
|
|
- openIdArr = append(openIdArr, v.OpenId)
|
|
|
- }
|
|
|
- var keywords []string
|
|
|
- keywords = append(keywords, user.RealName, user.CompanyName, sellerRealName, time.Now().Format(utils.FormatDateTimeMinute2), utils.TruncateActivityNameString("报名:"+activityDetail.ActivityName))
|
|
|
- redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId) //活动详情地址
|
|
|
- sendInfo := new(SendWxCategoryTemplate)
|
|
|
- sendInfo.Keywords = keywords
|
|
|
- sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 4
|
|
|
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
- sendInfo.OpenIdArr = openIdArr
|
|
|
- sendInfo.RedirectUrl = redirectUrl
|
|
|
- err = SendCategoryTemplateMsg(sendInfo)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// 用户取消报名模板消息推送(研选公众号类目模版消息)
|
|
|
-func SendActivitieCancelSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
|
|
|
- if activityDetail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
|
|
|
- return
|
|
|
- }
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- fmt.Println(err)
|
|
|
- go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,活动ID:", activityDetail.ActivityId), 2)
|
|
|
- }
|
|
|
- }()
|
|
|
- sellerItemQy, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
|
|
|
- if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- return
|
|
|
- }
|
|
|
- var mobile string
|
|
|
- var sellerRealName string
|
|
|
- var mobiles []string
|
|
|
- mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.MobileShenTao, utils.MobileZhangChuanXin) //高亦文、董衡、吴昂迪手机号
|
|
|
- if sellerItemQy != nil {
|
|
|
- mobiles = append(mobiles, sellerItemQy.Mobile)
|
|
|
- sellerRealName = sellerItemQy.RealName
|
|
|
- } else {
|
|
|
- sellerRealName = "__"
|
|
|
- }
|
|
|
- mobile = strings.Join(mobiles, ",")
|
|
|
- openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- if len(openIdList) == 0 {
|
|
|
- err = nil
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- openIdArr := make([]string, 0)
|
|
|
- for _, v := range openIdList {
|
|
|
- openIdArr = append(openIdArr, v.OpenId)
|
|
|
- }
|
|
|
- var keywords []string
|
|
|
- keywords = append(keywords, user.RealName, user.CompanyName, sellerRealName, time.Now().Format(utils.FormatDateTimeMinute2), utils.TruncateActivityNameString("取消报名:"+activityDetail.ActivityName))
|
|
|
- redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId) //活动详情地址
|
|
|
- sendInfo := new(SendWxCategoryTemplate)
|
|
|
- sendInfo.Keywords = keywords
|
|
|
- sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 4
|
|
|
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
- sendInfo.OpenIdArr = openIdArr
|
|
|
- sendInfo.RedirectUrl = redirectUrl
|
|
|
- err = SendCategoryTemplateMsg(sendInfo)
|
|
|
- return
|
|
|
-}
|
|
|
+//专栏模块END
|