|
@@ -1,6 +1,7 @@
|
|
|
package services
|
|
|
|
|
|
import (
|
|
|
+ "context"
|
|
|
"encoding/json"
|
|
|
"errors"
|
|
|
"fmt"
|
|
@@ -18,7 +19,7 @@ type SendWxCategoryTemplate struct {
|
|
|
Keywords []string `description:"模板消息keyword字段"`
|
|
|
TemplateId string `description:"模板id"`
|
|
|
RedirectUrl string `description:"跳转地址"`
|
|
|
- RedirectTarget int `description:"小程序跳转目标:1:弘则研报小程序,2:随手办公小程序,3:查研观向"`
|
|
|
+ RedirectTarget int `description:"小程序跳转目标:1:弘则研报小程序,2:随手办公小程序,3:查研观向,4:买方研选"`
|
|
|
Resource string `description:"资源唯一标识"`
|
|
|
SendType int `description:"发送的消息类型:1:报告,2:指标更新提醒,3:审批通知,4:销售领取客户通知,5:活动取消通知,6活动更改时间通知,7:关注的作者发布报告通知,8:发送日报(周报、双周报、月报)模板消息,9:活动预约/报名时间通知"`
|
|
|
OpenIdArr []string `description:"消息接收者openid"`
|
|
@@ -96,7 +97,7 @@ func SendWxCategoryMsgWithActivityUserRemind(keyWord1, keyWord2, keyWord3, keyWo
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxMsgCategoryTemplateIdActivityPublishApply
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
err = SendCategoryTemplateMsg(sendInfo)
|
|
@@ -105,6 +106,7 @@ func SendWxCategoryMsgWithActivityUserRemind(keyWord1, keyWord2, keyWord3, keyWo
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// 试用申请模板消息
|
|
|
func SendPermissionApplyCategoryTemplateMsg(realName, companyName, mobile, applyMethod string, itemOpenid *models.OpenIdList) (err error) {
|
|
|
|
|
|
defer func() {
|
|
@@ -145,7 +147,7 @@ func SendPermissionApplyCategoryTemplateMsg(realName, companyName, mobile, apply
|
|
|
sendInfo.Keywords = []string{keyword1, keyword2, keyword3, keyword4, keyword5}
|
|
|
sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.Resource = mobile
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
@@ -201,7 +203,7 @@ func SendNeiRongZuActivitieSignCategoryTemplateMsg(user *models.WxUserItem, acti
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
err = SendCategoryTemplateMsg(sendInfo)
|
|
@@ -258,7 +260,7 @@ func SendActivitieCancelSignCategoryTemplateMsg(user *models.WxUserItem, activit
|
|
|
sendInfo.WxAppId = utils.WxAppId
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
err = SendCategoryTemplateMsg(sendInfo)
|
|
@@ -315,17 +317,13 @@ func SendCommentWxCategoryTemplateMsg(req models.AddCygxArticleCommentReq, user
|
|
|
for _, v := range openIdList {
|
|
|
openIdArr = append(openIdArr, v.OpenId)
|
|
|
}
|
|
|
- //mapSource留言跳转类型,1:文章、2:活动、3:微路演视频、4:活动视频、5:活动音频
|
|
|
- if utils.RunMode != "release" {
|
|
|
- redirectUrl = utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(articleInfo.ArticleId)
|
|
|
- } else {
|
|
|
- redirectUrl = utils.WX_MSG_PATH_TEMPLATE_MSG + "SourceId=" + strconv.Itoa(msgId) + "&SourceType=1"
|
|
|
- }
|
|
|
+
|
|
|
+ redirectUrl = utils.WX_MSG_PATH_YX_COMMENT_DETAIL + "SourceId=" + strconv.Itoa(msgId) + "&SourceType=1"
|
|
|
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
@@ -370,7 +368,7 @@ func SendWxCategoryMsgWithAsk(companyName, realName, sellerName, askTime, askMsg
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
@@ -418,17 +416,14 @@ func SendActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetai
|
|
|
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)
|
|
|
- }
|
|
|
+
|
|
|
+ redirectUrl = utils.WX_MSG_PATH_YX_SIGNUP_DETAIL + strconv.Itoa(activityDetail.ActivityId)
|
|
|
|
|
|
keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdActivitySign
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
@@ -490,7 +485,7 @@ func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
@@ -550,7 +545,7 @@ func SendWxCategoryMsgSpecialAuthor(specialId, status int) (err error) {
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxMsgCategoryTemplateIdCompanyApprovalMessageRai
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
@@ -630,7 +625,7 @@ func SendWxCategoryMsgSpecialFollow(specialId int) (err error) {
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxMsgCategoryTemplateIdCompanyApprovalMessageRai
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
@@ -705,7 +700,7 @@ func SendWxCategoryMsgInteractive(user *models.WxUserItem, interactive string, a
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxMsgCategoryTemplateIdActivityPublishApply
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
@@ -752,8 +747,8 @@ func SearchKeywordUserRmindCategoryMsg(user *models.WxUserItem, keyWord string)
|
|
|
if len(openIdList) == 0 {
|
|
|
return
|
|
|
}
|
|
|
- keyword1 = user.RealName+ "-"+ user.CompanyName
|
|
|
- keyword2 = fmt.Sprint("互动提醒:搜索" )
|
|
|
+ keyword1 = user.RealName + "-" + user.CompanyName
|
|
|
+ keyword2 = fmt.Sprint("互动提醒:搜索")
|
|
|
keyword3 = keyWord
|
|
|
keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
|
|
|
openIdArr := make([]string, 0)
|
|
@@ -766,7 +761,7 @@ func SearchKeywordUserRmindCategoryMsg(user *models.WxUserItem, keyWord string)
|
|
|
sendInfo := new(SendWxCategoryTemplate)
|
|
|
sendInfo.Keywords = keywords
|
|
|
sendInfo.TemplateId = utils.WxMsgCategoryTemplateIdCompanyApprovalMessageRai
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
+ sendInfo.RedirectTarget = 4
|
|
|
sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
|
|
|
sendInfo.OpenIdArr = openIdArr
|
|
|
sendInfo.RedirectUrl = redirectUrl
|
|
@@ -777,3 +772,123 @@ func SearchKeywordUserRmindCategoryMsg(user *models.WxUserItem, keyWord string)
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// 帮我带问的问题,会前1小时发送
|
|
|
+func SendEmailFileForAskMsgResearch(cont context.Context) (err error) {
|
|
|
+ var msg string
|
|
|
+ //var touser string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg("发送附件模版消息失败", 2)
|
|
|
+ go utils.SendEmail("发送附件模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format(utils.FormatDateTime), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ if msg != "" {
|
|
|
+ go utils.SendAlarmMsg(msg, 2)
|
|
|
+ utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ endDate := time.Now().Add(+time.Minute * 60).Format(utils.FormatDateTime)
|
|
|
+ condition := `AND a.activity_type_id = 1 AND a.chart_permission_id = 31 `
|
|
|
+ total, err := models.GetCountActivityResearchToSendFile(condition, endDate)
|
|
|
+ if total == 0 {
|
|
|
+ fmt.Println("发送附件完成0")
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ if err != nil {
|
|
|
+ msg = "发送附件模版消息失败 Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ listActivity, err := models.GetActivityResearchToSendFile(condition, endDate)
|
|
|
+ if err != nil {
|
|
|
+ msg = "发送附件模版消息失败 Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listActivity {
|
|
|
+ activityInfo, _ := models.GetAddActivityInfoById(v.ActivityId)
|
|
|
+ if activityInfo == nil {
|
|
|
+ msg = "活动不存在,Err:activityId:" + strconv.Itoa(v.ActivityId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, errFile := models.GetActivityMsgExport(v.ActivityId)
|
|
|
+ if errFile != nil {
|
|
|
+ msg = "获取失败,Err:" + errFile.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v2 := range list {
|
|
|
+ user, e := models.GetWxUserItemByUserId(v2.UserId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ //获取销售信息
|
|
|
+ sellerItem, e := models.GetSellerByCompanyIdCheckFicc(v2.CompanyId, 2)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetSellerByCompanyIdCheckFicc, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //给所属销售推送消息
|
|
|
+ if sellerItem != nil {
|
|
|
+ openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
|
|
|
+ openIdList := make([]*models.OpenIdList,0)
|
|
|
+ openIdList = append(openIdList, openIpItem)
|
|
|
+ SendWxCategoryMsgWithActivityAsk(user.CompanyName, user.RealName, sellerItem.RealName, time.Now().Format(utils.FormatDateTimeMinute2), v2.Content, openIdList, v2.AskId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ errFile = models.UPdateActivityMsgToSendFile(v.ActivityId)
|
|
|
+ if errFile != nil {
|
|
|
+ msg = "获取失败,Err:" + errFile.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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
|
|
|
+}
|