Browse Source

no message

xingzai 8 months ago
parent
commit
3f0c98e3d4

+ 0 - 21
models/user_record.go

@@ -163,19 +163,6 @@ func GetUserRecordListByMobile(platform int, bindAccount string) (items []*OpenI
 	return
 }
 
-// 根据手机号获取用户的openid
-func GetMfyxUserRecordListByMobile(platform int, bindAccount string) (items []*OpenIdList, err error) {
-	var sql string
-	sql = `SELECT
-			cr.open_id,
-			cr.cygx_user_id as  user_id 
-		FROM
-		  cygx_mfyx_gzh_user_record  as cr 
-		WHERE 1= 1	AND cygx_bind_account IN (` + bindAccount + `)`
-	_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
-	return
-}
-
 func GetMfyxWxOpenIdByMobileList(mobile string) (items []*OpenIdList, err error) {
 	sliceMobile := strings.Split(mobile, ",")
 	var mobiles []string
@@ -202,14 +189,6 @@ func GetMfyxWxOpenIdByMobileList(mobile string) (items []*OpenIdList, err error)
 	return
 }
 
-// 根据用户id和平台id获取用户关系
-func GetMfyxUserRecordByMobile(platform int, bindAccount string) (item *OpenIdList, err error) {
-	var sql string
-	sql = `SELECT open_id,cygx_user_id AS user_id  FROM	cygx_mfyx_gzh_user_record  WHERE	1 = 1  AND cygx_bind_account = ?`
-	err = orm.NewOrm().Raw(sql, bindAccount).QueryRow(&item)
-	return
-}
-
 func GetMfyxWxOpenIdByMobileSliceList(mobiles []string) (items []*OpenIdList, err error) {
 	o := orm.NewOrm()
 	lenarr := len(mobiles)

+ 12 - 4
services/activity.go

@@ -1850,9 +1850,9 @@ func ActivityUserRemind(user *models.WxUserItem, activityDetail *models.Activity
 		sourceMsg = "活动报名"
 	}
 
-	openIdList, e := models.GetMfyxWxOpenIdByMobileList(sellerItemQy.Mobile)
+	openIdListMfyx, e := models.GetMfyxWxOpenIdByMobileList(sellerItemQy.Mobile)
 	if e != nil {
-		err = errors.New("GetUserRecordListByMobile, Err: " + e.Error())
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
 		return err
 	}
 	var keyword1 string
@@ -1861,13 +1861,21 @@ func ActivityUserRemind(user *models.WxUserItem, activityDetail *models.Activity
 	keyword2 = fmt.Sprint("互动:", sourceMsg, ",", user.RealName, "--", user.CompanyName)
 	//SendWxMsgWithActivityUserRemind(keyword1, keyword2, openIdList, activityDetail.ActivityId)
 
-	// 类目模版
+	// 类目模版买方研选
 	keyword1 = utils.TruncateActivityNameString(user.RealName + "-" + user.CompanyName)
 	keyword2 = fmt.Sprint("互动提醒:", sourceMsg)
 	keyword3 := utils.TruncateActivityNameString(activityDetail.ActivityName)
 	keyword4 := time.Now().Format(utils.FormatDateTimeMinute2)
 	redirectUrl = utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId)
-	SendWxCategoryMsgWithActivityUserRemind(keyword1, keyword2, keyword3, keyword4, redirectUrl, openIdList, activityDetail.ActivityId)
+	SendWxCategoryMsgWithActivityUserRemind(keyword1, keyword2, keyword3, keyword4, redirectUrl, openIdListMfyx, activityDetail.ActivityId)
+
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(sellerItemQy.Mobile)
+	if e != nil {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return err
+	}
+	//查研观向小助手推送
+	SendWxMsgWithActivityUserRemind(keyword1, keyword2, openIdList, activityDetail.ActivityId)
 	return
 }
 

+ 0 - 31
services/user.go

@@ -684,34 +684,3 @@ func GetUserhasPermission(user *models.WxUserItem) (hasPermission int, err error
 	}
 	return
 }
-
-// SendPermissionApplyTemplateMsgAdmin 处理试用申请给王芳,汪洋发消息
-func SendPermissionApplyTemplateMsgAdmin(req models.ApplyTryReq, usermobile, applyMethod, categoryApplyMethod ,redirectUrl string, isResearch bool) (err error) {
-	defer func() {
-		if err != nil {
-			go utils.SendAlarmMsg("处理试用申请给王芳,汪洋发消息失败, ErrMsg: "+err.Error(), 3)
-		}
-	}()
-	var configCode string
-	//如果是研选的就推送给汪洋跟王芳,否则就推送给王芳
-	if isResearch {
-		configCode = utils.TPL_MSG_WANG_FANG_WANG_YANG
-	} else {
-		configCode = utils.TPL_MSG
-	}
-	cnf, e := models.GetConfigByCode(configCode)
-	if e != nil {
-		err = errors.New("GetConfigByCode, Err: " + e.Error() + configCode)
-		return
-	}
-	openIdList, e := models.GetMfyxWxOpenIdByMobileList(cnf.ConfigValue)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetUserRecordListByMobile, Err: " + e.Error() + cnf.ConfigValue)
-		return err
-	}
-	for _, v := range openIdList {
-		//go SendPermissionApplyTemplateMsg(req.RealName, req.CompanyName, usermobile, applyMethod, v)
-		go SendPermissionApplyCategoryTemplateMsg(req.RealName, req.CompanyName, usermobile, categoryApplyMethod, v, redirectUrl)
-	}
-	return
-}

+ 20 - 144
services/wechat_send_category_template_msg.go

@@ -78,7 +78,7 @@ func SendWxCategoryMsgSpecialAuthor(specialId, status int) (err error) {
 
 	specialItem, e := models.GetYanxuanSpecialItemById(specialId)
 	if e != nil {
-		err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
+		err = errors.New("GetYanxuanSpecialItemById, Err: " + e.Error())
 		return
 	}
 	user, e := models.GetWxUserItemByUserId(specialItem.UserId)
@@ -87,8 +87,9 @@ func SendWxCategoryMsgSpecialAuthor(specialId, status int) (err error) {
 		return err
 	}
 
-	openIdList, err := models.GetMfyxUserRecordListByMobile(12, user.Mobile)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(user.Mobile)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetMfyxUserRecordListByMobile, Err: " + e.Error())
 		return err
 	}
 
@@ -145,7 +146,7 @@ func SendWxCategoryMsgSpecialFollow(specialId int) (err error) {
 	}
 	specialItem, e := models.GetYanxuanSpecialItemById(specialId)
 	if e != nil {
-		err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
+		err = errors.New("GetYanxuanSpecialItemById, Err: " + e.Error())
 		return
 	}
 	var allInUserId string
@@ -160,17 +161,14 @@ func SendWxCategoryMsgSpecialFollow(specialId int) (err error) {
 		return err
 	}
 
-	mobile := ``
-
+	var mobiles []string
 	for _, v := range userList {
-		mobile += v.Mobile + ","
+		mobiles = append(mobiles, v.Mobile)
 	}
 
-	mobile = strings.TrimRight(mobile, ",")
-
-	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
+	openIdList, e := models.GetMfyxWxOpenIdByMobileSliceList(mobiles)
 	if e != nil {
-		err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+		err = errors.New("GetMfyxWxOpenIdByMobileSliceList, Err: " + e.Error())
 		return
 	}
 	if len(openIdList) == 0 {
@@ -203,7 +201,7 @@ func SendWxCategoryMsgSpecialFollow(specialId int) (err error) {
 	return
 }
 
-// SendReviewCategoryTemplateMsgAdmin 提交审核时给王芳,汪洋发消息
+// SendReviewCategoryTemplateMsgAdmin 提交审核时给王芳,葛琳和沈涛发消息
 func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
 	defer func() {
 		if err != nil {
@@ -211,14 +209,14 @@ func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
 		}
 	}()
 	//王芳、葛琳和沈涛
-	openIdList, e := models.GetMfyxUserRecordListByMobile(12, utils.WxMsgTemplateIdYXSpecialReview)
+	openIdList, e := models.GetWxOpenIdByMobileList(utils.WxMsgTemplateIdAskMsgMobilePublic + "," + utils.RAI_MOBILE_GE_LIN)
 	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetUserRecordListByMobile, Err: " + e.Error())
+		err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
 		return err
 	}
 	specialItem, e := models.GetYanxuanSpecialItemById(specialId)
 	if e != nil {
-		err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
+		err = errors.New("GetYanxuanSpecialItemById, Err: " + e.Error())
 		return
 	}
 	user, e := models.GetWxUserItemByUserId(specialItem.UserId)
@@ -265,24 +263,13 @@ func SendWxCategoryMsgWithActivityUserRemind(keyWord1, keyWord2, keyWord3, keyWo
 	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("发送用户操作活动消息提醒,文章ID:", activityId), 2)
-			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,SendWxCategoryMsgWithActivityUserRemind 文章ID:", activityId), 2)
 		}
 	}()
 	keyWord1 = utils.TruncateActivityNameString(keyWord1)
-	accessToken, err := models.GetWxAccessTokenByXzs()
-	if err != nil {
-		msg = "GetWxAccessToken Err:" + err.Error()
-		return
-	}
-	if accessToken == "" {
-		msg = "accessToken is empty"
-		return
-	}
+
 	openIdArr := make([]string, 0)
 	for _, v := range openIdList {
 		openIdArr = append(openIdArr, v.OpenId)
@@ -303,58 +290,11 @@ func SendWxCategoryMsgWithActivityUserRemind(keyWord1, keyWord2, keyWord3, keyWo
 	return
 }
 
-// 试用申请模板消息
-func SendPermissionApplyCategoryTemplateMsg(realName, companyName, mobile, applyMethod string, itemOpenid *models.OpenIdList, redirectUrl string) (err error) {
-
-	defer func() {
-		if err != nil {
-			go utils.SendAlarmMsg(fmt.Sprint("权限申请模板消息推送消息失败,手机号", mobile, "公司:", companyName, "手机号:", mobile, ";Err:"+err.Error()), 2)
-		}
-	}()
-	var keyword1 string
-	var keyword2 string
-	var keyword3 string
-	var keyword4 string
-	var keyword5 string
-
-	detail, e := models.GetCygxApplyRecordByMobile(mobile)
-	if e != nil {
-		err = errors.New("GetActivitySignupNomeetingCountList" + e.Error())
-		return
-	}
-	//如果是潜在客户就推送可查看详情的模版消息
-	if utils.RunMode == "release" {
-		if detail.ApplyMethod == 2 {
-			redirectUrl = utils.WX_MSG_PATH_APPLY_DETAIL + strconv.Itoa(detail.ApplyRecordId)
-		}
-	}
-
-	openIdArr := make([]string, 0)
-	openIdArr = append(openIdArr, itemOpenid.OpenId)
-	sendInfo := new(SendWxCategoryTemplate)
-
-	keyword1 = realName
-	keyword2 = companyName
-	keyword3 = "权限申请"
-	keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
-	keyword5 = applyMethod
-
-	sendInfo.Keywords = []string{keyword1, keyword2, keyword3, keyword4, keyword5}
-	sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
-	sendInfo.RedirectUrl = redirectUrl
-	sendInfo.RedirectTarget = 4
-	sendInfo.Resource = mobile
-	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
-	sendInfo.OpenIdArr = openIdArr
-	err = SendCategoryTemplateMsg(sendInfo)
-	return
-}
-
 // 用户报名模板消息推送(研选公众号类目模版消息)
 func SendNeiRongZuActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
 	defer func() {
 		if err != nil {
-			go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,文章ID:", activityDetail.ActivityId), 2)
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,ActivityId:", activityDetail.ActivityId), 2)
 			fmt.Println(err)
 		}
 	}()
@@ -454,22 +394,18 @@ func SendActivitieCancelSignCategoryTemplateMsg(user *models.WxUserItem, activit
 
 // 发送用户留言提醒
 func SendCommentWxCategoryTemplateMsg(req models.AddCygxArticleCommentReq, user *models.WxUserItem, articleInfo *models.ArticleDetail, msgId int) (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:", req.ArticleId), 2)
-			utils.FileLog.Info("发送类目模版消息失败,Err:%s", err.Error())
 		}
 	}()
 
 	companyItem, e := models.GetSellerDetailAllByCompanyId(user.CompanyId)
 	if e != nil {
+		err = errors.New("GetSellerDetailAllByCompanyId, Err: " + e.Error())
 		return
 	}
-	if companyItem == nil {
-		msg = "获取客户所属销售信息失败,UserID:" + strconv.Itoa(user.UserId)
-	}
+
 	var keyword1 string
 	var keyword2 string
 	var keyword3 string
@@ -495,7 +431,7 @@ func SendCommentWxCategoryTemplateMsg(req models.AddCygxArticleCommentReq, user
 	}
 	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
 	if e != nil {
-		err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
 		return
 	}
 	openIdArr := make([]string, 0)
@@ -530,6 +466,7 @@ func SendWxCategoryMsgWithAsk(user *models.WxUserItem, activityInfo *models.Acti
 
 	companyId := user.CompanyId
 	var sellerName string
+	sellerName = "--"
 	//潜在客户、未开权益,已开FICC的客户推给王芳,开通权益的客户推给对应销售
 	mobile := utils.WxMsgTemplateIdAskMsgMobilePublic
 	if companyId > 1 {
@@ -592,64 +529,6 @@ func SendWxCategoryMsgWithAsk(user *models.WxUserItem, activityInfo *models.Acti
 	return
 }
 
-// 线下调研活动扫码签到给对应销售发类目模班消息
-func SendActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
-	defer func() {
-		if err != nil {
-			go utils.SendAlarmMsg(fmt.Sprint("线下调研活动扫码签到给对应销售发模班消息推送失败Err:", err.Error(), "活动ID:", activityDetail.ActivityId, "手机号:", user.Mobile), 2)
-		}
-	}()
-	var mobiles []string
-	//获取销售信息
-	sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		return
-	}
-	if sellerItem != nil {
-		mobiles = append(mobiles, sellerItem.Mobile, utils.MobileWuAngDi, utils.MobileDongHeng, utils.MobileShenTao)
-	}
-
-	var keyword1 string
-	var keyword2 string
-	var keyword3 string
-	var keyword4 string
-	var keyword5 string
-
-	var redirectUrl string
-
-	keyword1 = user.RealName
-	keyword2 = user.CompanyName
-	keyword3 = sellerItem.RealName
-	keyword4 = utils.TruncateActivityNameString(activityDetail.ActivityName)
-	keyword5 = time.Now().Format(utils.FormatDateTimeMinute2)
-
-	openIdList, e := models.GetMfyxWxOpenIdByMobileSliceList(mobiles)
-	if e != nil {
-		err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
-		return
-	}
-	openIdArr := make([]string, 0)
-	for _, v := range openIdList {
-		openIdArr = append(openIdArr, v.OpenId)
-	}
-
-	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 = 4
-	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
-	sendInfo.OpenIdArr = openIdArr
-	sendInfo.RedirectUrl = redirectUrl
-	err = SendCategoryTemplateMsg(sendInfo)
-	if err != nil {
-		return
-	}
-	return
-}
-
 // 文章互动相关类目模版消息
 func SendWxCategoryMsgInteractive(user *models.WxUserItem, interactive string, articleId int, title string) (err error) {
 	if interactive == "阅读报告" {
@@ -787,14 +666,11 @@ func SendWxCategoryMsgWithActivityAsk(companyName, realName, sellerName, askTime
 	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

+ 53 - 50
services/wechat_send_msg.go

@@ -16,48 +16,35 @@ import (
 
 // 访谈申请
 func SendInterviewApplyTemplateMsg(realName, companyName, mobile, articleTitle string, itemOpenid *models.OpenIdList) (err error) {
-	var msg string
 	defer func() {
 		if err != nil {
-			go utils.SendEmail("发送模版消息失败"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
 			go utils.SendAlarmMsg(fmt.Sprint("访谈申请模板消息推送消息失败,手机号", mobile, "公司:", companyName, "手机号:", mobile), 2)
 		}
-		if msg != "" {
-			utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
-		}
 	}()
 
-	accessToken, err := models.GetWxAccessTokenByXzs()
-	if err != nil {
-		msg = "GetWxAccessToken Err:" + err.Error()
-		return
-	}
-	if accessToken == "" {
-		msg = "accessToken is empty"
-		return
-	}
-
-	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
-
-	sendMap := make(map[string]interface{})
-	sendData := make(map[string]interface{})
-
 	keyword1 := realName + "【" + companyName + "】"
 	first := "您有一条新的访谈申请,请及时处理。"
 	keyword2 := mobile
 	keyword3 := time.Now().Format(utils.FormatDateTime)
 	keyword4 := articleTitle
-	fontColor := "#D9001B"
-	sendData["first"] = map[string]interface{}{"value": first, "color": fontColor}
-	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": fontColor}
-	sendData["keyword2"] = map[string]interface{}{"value": keyword2, "color": fontColor}
-	sendData["keyword3"] = map[string]interface{}{"value": keyword3, "color": fontColor}
-	sendData["keyword4"] = map[string]interface{}{"value": keyword4, "color": fontColor}
+	redirectUrl := ""
 
-	sendMap["template_id"] = utils.WxMsgTemplateIdApplyXzs
-	sendMap["data"] = sendData
-	sendTemplateMsg(sendUrl, sendMap, itemOpenid, mobile, utils.TEMPLATE_MSG_CYGX_APPLY)
-	fmt.Println("send end")
+	openIdArr := make([]string, 0)
+	openIdArr = append(openIdArr, itemOpenid.OpenId)
+
+	sendInfo := new(SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.TemplateId = utils.WxMsgTemplateIdApplyXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	//sendInfo.Resource =
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
 	return
 }
 
@@ -73,32 +60,48 @@ func SendInterviewApplyCancelTemplateMsg(realName, companyName, mobile, articleT
 			utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
 		}
 	}()
-	accessToken, err := models.GetWxAccessTokenByXzs()
-	if err != nil {
-		msg = "GetWxAccessToken Err:" + err.Error()
-		return
-	}
-	if accessToken == "" {
-		msg = "accessToken is empty"
-		return
-	}
-
-	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+	//accessToken, err := models.GetWxAccessTokenByXzs()
+	//if err != nil {
+	//	msg = "GetWxAccessToken Err:" + err.Error()
+	//	return
+	//}
+	//if accessToken == "" {
+	//	msg = "accessToken is empty"
+	//	return
+	//}
 
-	sendMap := make(map[string]interface{})
-	sendData := make(map[string]interface{})
+	//sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+	//
+	//sendMap := make(map[string]interface{})
+	//sendData := make(map[string]interface{})
 
 	first := realName + "-" + mobile + "【" + companyName + "】的访谈申请已取消,请留意。"
 	keyword1 := articleTitle
 	keyword2 := time.Now().Format(utils.FormatDateTime)
-	fontColor := "#D9001B"
-	sendData["first"] = map[string]interface{}{"value": first, "color": fontColor}
-	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": fontColor}
-	sendData["keyword2"] = map[string]interface{}{"value": keyword2, "color": fontColor}
+	//fontColor := "#D9001B"
+	//sendData["first"] = map[string]interface{}{"value": first, "color": fontColor}
+	//sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": fontColor}
+	//sendData["keyword2"] = map[string]interface{}{"value": keyword2, "color": fontColor}
+	//
+	//sendMap["template_id"] = utils.WxMsgTemplateIdApplyCancelXzs
+	//sendMap["data"] = sendData
+	//sendTemplateMsg(sendUrl, sendMap, itemOpenid, mobile, utils.TEMPLATE_MSG_CYGX_APPLY)
 
-	sendMap["template_id"] = utils.WxMsgTemplateIdApplyCancelXzs
-	sendMap["data"] = sendData
-	sendTemplateMsg(sendUrl, sendMap, itemOpenid, mobile, utils.TEMPLATE_MSG_CYGX_APPLY)
+	openIdArr := make([]string, 0)
+	openIdArr = append(openIdArr, itemOpenid.OpenId)
+
+	redirectUrl := ""
+	sendInfo := new(SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.TemplateId = utils.WxMsgTemplateIdApplyCancelXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	//sendInfo.Resource =
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
 	fmt.Println("send end")
 	return
 }

+ 103 - 81
services/wx_template_msg.go

@@ -15,28 +15,25 @@ import (
 
 // 发送报告提问消息提醒
 func SendWxMsgWithAsk(name, askTime, askMsg, title string, openIdList []*models.OpenIdList, articleId int) (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("发送报告提问消息提醒模版消息失败,用户名", name, "文章ID:", articleId), 2)
-			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
 		}
-		fmt.Println("line 21", err, msg)
 	}()
-	utils.FileLog.Info("%s", "services SendMsg")
-	//accessToken, err := models.GetWxAccessToken()
-	accessToken, err := models.GetWxAccessTokenByXzs()
-	if err != nil {
-		msg = "GetWxAccessToken Err:" + err.Error()
-		return
-	}
-	if accessToken == "" {
-		msg = "accessToken is empty"
-		return
-	}
+	//utils.FileLog.Info("%s", "services SendMsg")
+	////accessToken, err := models.GetWxAccessToken()
+	//accessToken, err := models.GetWxAccessTokenByXzs()
+	//if err != nil {
+	//	msg = "GetWxAccessToken Err:" + err.Error()
+	//	return
+	//}
+	//if accessToken == "" {
+	//	msg = "accessToken is empty"
+	//	return
+	//}
 	var first string
 	var keyword1 string
+	var keyword2 string
 	var keyword3 string
 	var keyword4 string
 	var remark string
@@ -45,22 +42,42 @@ func SendWxMsgWithAsk(name, askTime, askMsg, title string, openIdList []*models.
 	keyword3 = askTime
 	keyword4 = askMsg
 	remark = title
-	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+
 	//templateId := utils.WxMsgTemplateIdAskMsg
-	templateId := utils.WxMsgTemplateIdAskMsgXzs
-	sendMap := make(map[string]interface{})
-	sendData := make(map[string]interface{})
-	sendMap["template_id"] = templateId
-	sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": "pages/reportDetail/reportDetail?id=" + strconv.Itoa(articleId)}
-	//sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "path": "article/detail?ArticleId=1000001"}
-	sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
-	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": "#173177"}
-	sendData["keyword2"] = map[string]interface{}{"value": "", "color": "#173177"}
-	sendData["keyword3"] = map[string]interface{}{"value": keyword3, "color": "#173177"}
-	sendData["keyword4"] = map[string]interface{}{"value": keyword4, "color": "#173177"}
-	sendData["remark"] = map[string]interface{}{"value": remark, "color": "#173177"}
-	sendMap["data"] = sendData
-	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(articleId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
+	//templateId := utils.WxMsgTemplateIdAskMsgXzs
+	//sendMap := make(map[string]interface{})
+	//sendData := make(map[string]interface{})
+	//sendMap["template_id"] = templateId
+	//sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": "pages/reportDetail/reportDetail?id=" + strconv.Itoa(articleId)}
+	////sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "path": "article/detail?ArticleId=1000001"}
+	//sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
+	//sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": "#173177"}
+	//sendData["keyword2"] = map[string]interface{}{"value": "", "color": "#173177"}
+	//sendData["keyword3"] = map[string]interface{}{"value": keyword3, "color": "#173177"}
+	//sendData["keyword4"] = map[string]interface{}{"value": keyword4, "color": "#173177"}
+	//sendData["remark"] = map[string]interface{}{"value": remark, "color": "#173177"}
+	//sendMap["data"] = sendData
+	//WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(articleId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
+
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl := ""
+	sendInfo := new(SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(articleId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
 	return
 }
 
@@ -332,75 +349,80 @@ func SendCommentWxTemplateMsg(req models.AddCygxArticleCommentReq, user *models.
 
 // 发送用户操作活动消息提醒
 func SendWxMsgWithActivityUserRemind(keyWord1, keyWord2 string, openIdList []*models.OpenIdList, activityId int) (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:", activityId), 2)
-			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,SendWxMsgWithActivityUserRemind activityId:", activityId), 2)
+
 		}
 	}()
-	accessToken, err := models.GetWxAccessTokenByXzs()
-	if err != nil {
-		msg = "GetWxAccessToken Err:" + err.Error()
-		return
+	//accessToken, err := models.GetWxAccessTokenByXzs()
+	//if err != nil {
+	//	msg = "GetWxAccessToken Err:" + err.Error()
+	//	return
+	//}
+	//if accessToken == "" {
+	//	msg = "accessToken is empty"
+	//	return
+	//}
+	////var first string
+	////first = keyWord1
+	////keyword1 := keyWord2
+	//sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+	//templateId := utils.WxMsgTemplateIdArticleUserRemind
+	//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(activityId)}
+	////sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
+	//sendData["keyword1"] = map[string]interface{}{"value": keyWord1, "color": "#173177"}
+	//sendData["keyword2"] = map[string]interface{}{"value": keyWord2, "color": "#173177"}
+	//sendMap["data"] = sendData
+	//WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(activityId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
+
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
 	}
-	if accessToken == "" {
-		msg = "accessToken is empty"
+	redirectUrl := utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityId)
+	sendInfo := new(SendWxTemplate)
+	sendInfo.Keyword1 = keyWord1
+	sendInfo.Keyword2 = keyWord2
+	sendInfo.TemplateId = utils.WxMsgTemplateIdArticleUserRemind
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(activityId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
+	if err != nil {
 		return
 	}
-	//var first string
-	//first = keyWord1
-	//keyword1 := keyWord2
-	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
-	templateId := utils.WxMsgTemplateIdArticleUserRemind
-	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(activityId)}
-	//sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
-	sendData["keyword1"] = map[string]interface{}{"value": keyWord1, "color": "#173177"}
-	sendData["keyword2"] = map[string]interface{}{"value": keyWord2, "color": "#173177"}
-	sendMap["data"] = sendData
-	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(activityId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
 	return
 }
 
 // 发送用户阅读报告消息提醒
 func SendWxMsgWithArticleUserRemind(keyWord1, keyWord2 string, openIdList []*models.OpenIdList, articleId int) (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:", articleId), 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
+
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
 	}
-	//var first string
-	//first = keyWord1
-	//keyword1 := keyWord2
-	remark := "点击查看报告详情"
-	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
-	templateId := utils.WxMsgTemplateIdArticleUserRemind
-	sendMap := make(map[string]interface{})
-	sendData := make(map[string]interface{})
-	sendMap["template_id"] = templateId
-	sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(articleId)}
-	//sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
-	sendData["keyword1"] = map[string]interface{}{"value": keyWord1, "color": "#173177"}
-	sendData["keyword2"] = map[string]interface{}{"value": keyWord2, "color": "#173177"}
-	sendData["remark"] = map[string]interface{}{"value": remark, "color": "#173177"}
-	sendMap["data"] = sendData
-	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(articleId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
+	redirectUrl := utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(articleId)
+	sendInfo := new(SendWxTemplate)
+	sendInfo.Keyword1 = keyWord1
+	sendInfo.Keyword2 = keyWord2
+	sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(articleId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
 	return
 }
 

+ 3 - 3
utils/config.go

@@ -115,8 +115,8 @@ func init() {
 	WxAppId = "wxcc32b61f96720d2f"
 	WxAppSecret = "06894933fafb24dafead7eaae09c08e0"
 	WxMsgTemplateIdAskMsgMobileAll = "15557270714,18767183922,18621268829"
-	WxMsgTemplateIdAskMsgMobilePublic = "15557270714,18767183922,18621268829"
-	WxMsgTemplateIdYXSpecialReview = "18621268829,18258485832,18767183922" // 王芳、葛琳和沈涛
+	WxMsgTemplateIdAskMsgMobilePublic = "15557270714,18767183922,18621268829" // 王芳沈涛张传星
+	WxMsgTemplateIdYXSpecialReview = "18621268829,18258485832,18767183922"    // 王芳、葛琳和沈涛
 
 	WxAppIdMfyx = "wx5e3240ab90c247ac"
 	if RunMode == "release" {
@@ -134,7 +134,7 @@ func init() {
 
 		IndexName = "cygx_article_v03_23"
 		IndexNameComprehensive = "cygx_comprehensive"
-		ActSendMsgMobile = "15618524605"
+		ActSendMsgMobile = "15557270714"
 		WxPayJsapiNotifyUrl = "https://mfyx.hzinsights.com/api/wechat/wxpay/notify"
 		SendWxTemplateMsgUrl = "http://127.0.0.1:8086/v1/wechat/send_template_msg"
 		SendWxCategoryTemplateMsgUrl = "http://127.0.0.1:8086/v1/wechat/send_category_template_msg"