|
@@ -10,7 +10,6 @@ import (
|
|
|
"hongze/hz_crm_api/models/system"
|
|
|
"hongze/hz_crm_api/services/alarm_msg"
|
|
|
"hongze/hz_crm_api/utils"
|
|
|
- "html"
|
|
|
"io/ioutil"
|
|
|
"net/http"
|
|
|
"strconv"
|
|
@@ -418,250 +417,6 @@ func SendCompanyReceiveWxTemplateMsg(companyName, productName, sellerName, other
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// 活动取消消息通知
|
|
|
-func SendWxMsgWithCygxActivity(activityId int) (err error) {
|
|
|
- var msg string
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- go alarm_msg.SendAlarmMsg("发送模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
|
|
|
- utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
|
|
|
- }
|
|
|
- if msg != "" {
|
|
|
- utils.FileLogCygx.Info("发送模版消息失败,msg:%s", msg)
|
|
|
- }
|
|
|
- }()
|
|
|
- activityInfo, err := cygx.GetAddActivityInfoById(activityId)
|
|
|
- if err != nil {
|
|
|
- msg = "GetReportInfo Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- var openIdList []*cygx.OpenIdList
|
|
|
- openIdList, err = cygx.GetActivityOpenIdList(activityId)
|
|
|
- if err != nil {
|
|
|
- msg = "get GetActivityOpenIdList err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- mapOpenid := make(map[int]string)
|
|
|
- for _, v := range openIdList {
|
|
|
- mapOpenid[v.UserId] = v.OpenId
|
|
|
- }
|
|
|
- //添加预约纪要的openid
|
|
|
- openIdListAppointment, err := cygx.GetActivityAppointmentOpenIdList(activityId)
|
|
|
- if err != nil {
|
|
|
- msg = "GetActivityAppointmentOpenIdList err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if len(openIdListAppointment) > 0 {
|
|
|
- for _, v := range openIdListAppointment {
|
|
|
- if _, ok := mapOpenid[v.UserId]; !ok {
|
|
|
- item := new(cygx.OpenIdList)
|
|
|
- item.UserId = v.UserId
|
|
|
- item.OpenId = v.OpenId
|
|
|
- openIdList = append(openIdList, item)
|
|
|
- }
|
|
|
- mapOpenid[v.UserId] = v.OpenId
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //添加带问的openid
|
|
|
- openIdListActivityHelpAsk, err := cygx.GetActivityHelpAskOpenIdList(activityId)
|
|
|
- if err != nil {
|
|
|
- msg = "openIdListActivityHelpAsk err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if len(openIdListActivityHelpAsk) > 0 {
|
|
|
- for _, v := range openIdListActivityHelpAsk {
|
|
|
- if _, ok := mapOpenid[v.UserId]; !ok {
|
|
|
- item := new(cygx.OpenIdList)
|
|
|
- item.UserId = v.UserId
|
|
|
- item.OpenId = v.OpenId
|
|
|
- openIdList = append(openIdList, item)
|
|
|
- }
|
|
|
- mapOpenid[v.UserId] = v.OpenId
|
|
|
- }
|
|
|
- }
|
|
|
- activityInfo.ActivityTypeName = strings.Replace(activityInfo.ActivityTypeName, "(C类)", "", -1)
|
|
|
- if len(openIdList) == 0 {
|
|
|
- return err
|
|
|
- }
|
|
|
- var keyword1, keyword2, keyword3, keyword4, redirectUrl string
|
|
|
- keyword1 = activityInfo.ActivityName
|
|
|
- keyword2 = "活动已取消"
|
|
|
- openIdArr := make([]string, len(openIdList))
|
|
|
- for i, v := range openIdList {
|
|
|
- openIdArr[i] = v.OpenId
|
|
|
- }
|
|
|
- redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityId) + "&IsSendWx=1"
|
|
|
- sendInfo := new(SendWxTemplate)
|
|
|
- //sendInfo.First = first
|
|
|
- sendInfo.Keyword1 = keyword1
|
|
|
- sendInfo.Keyword2 = keyword2
|
|
|
- sendInfo.Keyword3 = keyword3
|
|
|
- sendInfo.Keyword4 = keyword4
|
|
|
- //sendInfo.Remark = remark
|
|
|
- sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
|
|
|
- sendInfo.RedirectUrl = redirectUrl
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
- sendInfo.Resource = strconv.Itoa(activityId)
|
|
|
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_CACLE
|
|
|
- sendInfo.OpenIdArr = openIdArr
|
|
|
- err = SendTemplateMsg(sendInfo)
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// 活动更改时间消息通知
|
|
|
-func SendWxMsgWithCygxActivityUpdateTime(activityId int, oldStr, newStr, strType string) (err error) {
|
|
|
- var msg string
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- go alarm_msg.SendAlarmMsg("发送模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
|
|
|
- utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
|
|
|
- }
|
|
|
- if msg != "" {
|
|
|
- utils.FileLogCygx.Info("发送模版消息失败,msg:%s", msg)
|
|
|
- }
|
|
|
- }()
|
|
|
-
|
|
|
- activityInfo, err := cygx.GetAddActivityInfoById(activityId)
|
|
|
- if err != nil {
|
|
|
- msg = "GetReportInfo Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if activityInfo == nil {
|
|
|
- utils.FileLogCygx.Info("活动信息不存在")
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //var accessToken string
|
|
|
- //if utils.RunMode == "release" {
|
|
|
- // accessToken, err = models.GetWxAccessTokenByXzs()
|
|
|
- // if err != nil {
|
|
|
- // msg = "GetWxAccessToken Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if accessToken == "" {
|
|
|
- // msg = "accessToken is empty"
|
|
|
- // return
|
|
|
- // }
|
|
|
- //} else {
|
|
|
- // accessToken, err = models.GetWxAccessToken()
|
|
|
- // if err != nil {
|
|
|
- // msg = "GetWxAccessToken Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if accessToken == "" {
|
|
|
- // msg = "accessToken is empty"
|
|
|
- // return
|
|
|
- // }
|
|
|
- //}
|
|
|
- var openIdList []*cygx.OpenIdList
|
|
|
-
|
|
|
- openIdList, err = cygx.GetActivityOpenIdList(activityId)
|
|
|
- if err != nil {
|
|
|
- msg = "get openIdList err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- mapOpenid := make(map[int]string)
|
|
|
- for _, v := range openIdList {
|
|
|
- mapOpenid[v.UserId] = v.OpenId
|
|
|
- }
|
|
|
- //添加预约纪要的openid
|
|
|
- openIdListAppointment, err := cygx.GetActivityAppointmentOpenIdList(activityId)
|
|
|
- if err != nil {
|
|
|
- msg = "GetActivityAppointmentOpenIdList err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if len(openIdListAppointment) > 0 {
|
|
|
- for _, v := range openIdListAppointment {
|
|
|
- if _, ok := mapOpenid[v.UserId]; !ok {
|
|
|
- item := new(cygx.OpenIdList)
|
|
|
- item.UserId = v.UserId
|
|
|
- item.OpenId = v.OpenId
|
|
|
- openIdList = append(openIdList, item)
|
|
|
- }
|
|
|
- mapOpenid[v.UserId] = v.OpenId
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //添加带问的openid
|
|
|
- openIdListActivityHelpAsk, err := cygx.GetActivityHelpAskOpenIdList(activityId)
|
|
|
- if err != nil {
|
|
|
- msg = "openIdListActivityHelpAsk err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if len(openIdListActivityHelpAsk) > 0 {
|
|
|
- for _, v := range openIdListActivityHelpAsk {
|
|
|
- if _, ok := mapOpenid[v.UserId]; !ok {
|
|
|
- item := new(cygx.OpenIdList)
|
|
|
- item.UserId = v.UserId
|
|
|
- item.OpenId = v.OpenId
|
|
|
- openIdList = append(openIdList, item)
|
|
|
- }
|
|
|
- mapOpenid[v.UserId] = v.OpenId
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if len(openIdList) == 0 {
|
|
|
- return err
|
|
|
- }
|
|
|
- //sendMap := make(map[string]interface{})
|
|
|
- //sendData := make(map[string]interface{})
|
|
|
- var first string
|
|
|
- var keyword1, keyword2, keyword3, keyword4, redirectUrl string
|
|
|
-
|
|
|
- activityInfo.ActivityTypeName = strings.Replace(activityInfo.ActivityTypeName, "(C类)", "", -1)
|
|
|
- if strType == "timeType" {
|
|
|
- //first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了时间变更"
|
|
|
- keyword2 = "时间变更为:【 " + newStr + "】"
|
|
|
- } else if strType == "expertType" {
|
|
|
- //first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了专家变更"
|
|
|
- keyword2 = "专家变更为:【" + newStr + "】"
|
|
|
- } else if strType == "addressType" {
|
|
|
- //first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了地址变更"
|
|
|
- keyword2 = "地点变更为:【" + newStr + "】"
|
|
|
- } else if strType == "participationCode" {
|
|
|
- //first = "您有一场【" + activityInfo.ActivityTypeName + "】公布了拨入密码"
|
|
|
- keyword2 = "拨入密码为: " + newStr
|
|
|
- } else if strType == "Theme" {
|
|
|
- //first = "您有一场【" + activityInfo.ActivityTypeName + "】更新了活动主题"
|
|
|
- newStr = strings.Replace(newStr, "</p><p>", "\n", -1)
|
|
|
- newStr = html.EscapeString(newStr)
|
|
|
- newStrHtml, _ := cygx.GetReportContentTextSub(newStr)
|
|
|
- newStr = newStrHtml
|
|
|
- keyword2 = "主题变更为: " + newStr
|
|
|
- }
|
|
|
-
|
|
|
- keyword1 = activityInfo.ActivityName
|
|
|
- openIdArr := make([]string, len(openIdList))
|
|
|
- for i, v := range openIdList {
|
|
|
- openIdArr[i] = v.OpenId
|
|
|
- }
|
|
|
-
|
|
|
- redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityId) + "&IsSendWx=1"
|
|
|
- sendInfo := new(SendWxTemplate)
|
|
|
- sendInfo.First = first
|
|
|
- sendInfo.Keyword1 = keyword1
|
|
|
- sendInfo.Keyword2 = keyword2
|
|
|
- sendInfo.Keyword3 = keyword3
|
|
|
- sendInfo.Keyword4 = keyword4
|
|
|
- //sendInfo.Remark = remark
|
|
|
- sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
|
|
|
- sendInfo.RedirectUrl = redirectUrl
|
|
|
- sendInfo.RedirectTarget = 3
|
|
|
- sendInfo.Resource = strconv.Itoa(activityId)
|
|
|
- sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_UPDATE
|
|
|
- sendInfo.OpenIdArr = openIdArr
|
|
|
- e := SendTemplateMsg(sendInfo)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("推送模板消息失败" + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
func SendArticleWxTemplateMsg(nickName, aticleTiele, publishDate, abstract, industryName, msgType string, articleId, departmentId, industrialManagementId int, isResearch bool) (err error) {
|
|
|
var msg string
|
|
|
defer func() {
|
|
@@ -675,31 +430,7 @@ func SendArticleWxTemplateMsg(nickName, aticleTiele, publishDate, abstract, indu
|
|
|
utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
|
|
|
}
|
|
|
}()
|
|
|
- //var accessToken string
|
|
|
- //if utils.RunMode == "release" {
|
|
|
- // accessToken, err = models.GetWxAccessTokenByXzs()
|
|
|
- // if err != nil {
|
|
|
- // msg = "GetWxAccessToken Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if accessToken == "" {
|
|
|
- // msg = "accessToken is empty"
|
|
|
- // return
|
|
|
- // }
|
|
|
- //} else {
|
|
|
- // accessToken, err = models.GetWxAccessToken()
|
|
|
- // if err != nil {
|
|
|
- // msg = "GetWxAccessToken Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if accessToken == "" {
|
|
|
- // msg = "accessToken is empty"
|
|
|
- // return
|
|
|
- // }
|
|
|
- //}
|
|
|
var openIdList []*cygx.OpenIdList
|
|
|
- //utils.FileLog.Info("mobile:%s", otherSellerMobile)
|
|
|
- //openIdList, err = models.GetOpenIdListByMobile(otherSellerMobile)
|
|
|
var resource string
|
|
|
|
|
|
if msgType == "Department" {
|