|
@@ -12,6 +12,7 @@ import (
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
|
+
|
|
|
type SendWxCategoryTemplate struct {
|
|
|
WxAppId string `description:"公众号appId"`
|
|
|
Keywords []string `description:"模板消息keyword字段"`
|
|
@@ -62,7 +63,6 @@ func SendCategoryTemplateMsg(sendInfo *SendWxCategoryTemplate) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 发送用户操作活动消息提醒
|
|
|
func SendWxCategoryMsgWithActivityUserRemind(keyWord1, keyWord2 string, openIdList []*models.OpenIdList, activityId int) (err error) {
|
|
|
if len(openIdList) == 0 {
|
|
@@ -147,3 +147,106 @@ func SendPermissionApplyCategoryTemplateMsg(realName, companyName, mobile, apply
|
|
|
err = SendCategoryTemplateMsg(sendInfo)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// 发送用户操作活动消息提醒
|
|
|
+func SendNeiRongZuActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
|
|
|
+ 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("发送用户操作活动消息提醒,文章ID:", activityDetail.ActivityId), 2)
|
|
|
+ utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ accessToken, err := models.GetWxAccessTokenByXzs()
|
|
|
+ if err != nil {
|
|
|
+ msg = "GetWxAccessToken Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if accessToken == "" {
|
|
|
+ msg = "accessToken is empty"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ 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+utils.MobileShenTao)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetUserRecordListByMobile, Err: " + e.Error() + cnf.ConfigValue)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var keywords []string
|
|
|
+ keywords = append(keywords, user.RealName, user.CompanyName,
|
|
|
+ sellerItemQy.RealName, time.Now().Format(utils.FormatDateTimeMinute2),
|
|
|
+ "报名"+"【"+activityDetail.ActivityName+"】")
|
|
|
+
|
|
|
+ sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
|
|
|
+ templateId := utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
+ sendMap := make(map[string]interface{})
|
|
|
+ sendData := make(map[string]interface{})
|
|
|
+ sendMap["template_id"] = templateId
|
|
|
+ sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": "activityPages/activityDetail/activityDetail?id=" + strconv.Itoa(activityDetail.ActivityId)}
|
|
|
+ sendData["keywords"] = map[string]interface{}{"value": keywords, "color": "#173177"}
|
|
|
+ sendMap["data"] = sendData
|
|
|
+ WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(activityDetail.ActivityId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func SendActivitieCancelSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
|
|
|
+ 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("发送用户操作活动消息提醒,文章ID:", activityDetail.ActivityId), 2)
|
|
|
+ utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ accessToken, err := models.GetWxAccessTokenByXzs()
|
|
|
+ if err != nil {
|
|
|
+ msg = "GetWxAccessToken Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if accessToken == "" {
|
|
|
+ msg = "accessToken is empty"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ 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+utils.MobileShenTao)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetUserRecordListByMobile, Err: " + e.Error() + cnf.ConfigValue)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var keywords []string
|
|
|
+ keywords = append(keywords, user.RealName, user.CompanyName,
|
|
|
+ sellerItemQy.RealName, time.Now().Format(utils.FormatDateTimeMinute2),
|
|
|
+ "取消报名"+"【"+activityDetail.ActivityName+"】")
|
|
|
+
|
|
|
+ sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
|
|
|
+ templateId := utils.WxCategoryMsgTemplateIdApplyXzs
|
|
|
+ sendMap := make(map[string]interface{})
|
|
|
+ sendData := make(map[string]interface{})
|
|
|
+ sendMap["template_id"] = templateId
|
|
|
+ sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId}
|
|
|
+ sendData["keywords"] = map[string]interface{}{"value": keywords, "color": "#173177"}
|
|
|
+ sendMap["data"] = sendData
|
|
|
+ WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(activityDetail.ActivityId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
|
|
|
+ return
|
|
|
+}
|