xiexiaoyuan 2 роки тому
батько
коміт
92c09351fc
3 змінених файлів з 39 додано та 75 видалено
  1. 14 43
      services/wechat_send_msg.go
  2. 13 20
      services/yb/community_question.go
  3. 12 12
      utils/config.go

+ 14 - 43
services/wechat_send_msg.go

@@ -6,7 +6,6 @@ import (
 	"fmt"
 	"hongze/hongze_mobile_admin/models/tables/admin"
 	"hongze/hongze_mobile_admin/models/tables/user_template_record"
-	"hongze/hongze_mobile_admin/models/tables/wx_user"
 	"hongze/hongze_mobile_admin/services/alarm_msg"
 	"hongze/hongze_mobile_admin/utils"
 	"io/ioutil"
@@ -14,7 +13,7 @@ import (
 	"time"
 )
 
-func sendTemplateMsg(sendUrl string, sendMap map[string]interface{}, items []*wx_user.OpenIdList, resource string, sendType int) (err error) {
+func sendTemplateMsg(sendUrl string, sendMap map[string]interface{}, items []*admin.OpenIdList, resource string, sendType int) (err error) {
 	for _, v := range items {
 		sendMap["touser"] = v.OpenId
 		data, err := json.Marshal(sendMap)
@@ -32,7 +31,7 @@ func sendTemplateMsg(sendUrl string, sendMap map[string]interface{}, items []*wx
 	return
 }
 
-func toSendTemplateMsg(sendUrl string, data []byte, resource string, sendType int, dataItem *wx_user.OpenIdList) (err error) {
+func toSendTemplateMsg(sendUrl string, data []byte, resource string, sendType int, dataItem *admin.OpenIdList) (err error) {
 	utils.FileLog.Info("Send:" + string(data))
 	client := http.Client{}
 	resp, err := client.Post(sendUrl, "application/json", bytes.NewBuffer(data))
@@ -60,7 +59,7 @@ func toSendTemplateMsg(sendUrl string, data []byte, resource string, sendType in
 		}
 		tr := &user_template_record.UserTemplateRecord{
 			Id:         0,
-			UserId:     dataItem.UserId,
+		//	UserId:     dataItem.UserId,
 			OpenId:     dataItem.OpenId,
 			Resource:   resource,
 			SendData:   string(data),
@@ -115,17 +114,11 @@ func SendCompanyApplyWxTemplateMsg(mobile, redirectUrl, wxAppPath string, wxMsgM
 
 	//获取openid列表
 	openIdStr := WxAdminOpenIdGet()
-	adminOpenIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
+	openIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
 	if err != nil {
 		msg = "get openIdList err:" + err.Error()
 		return
 	}
-	openIdList := make([]*wx_user.OpenIdList, 0)
-	for _, v := range adminOpenIdList {
-		tmp := new(wx_user.OpenIdList)
-		tmp.OpenId = v.OpenId
-		openIdList = append(openIdList, tmp)
-	}
 	utils.FileLog.Info("openIdListCount:%s", len(openIdList))
 	//fmt.Println("openIdListCount:", len(openIdList))
 	if len(openIdList) > 0 && utils.TemplateIdByCompanyApply != "" {
@@ -202,17 +195,12 @@ func SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, remark, mobile
 
 	//获取openid列表
 	openIdStr := WxAdminOpenIdGet()
-	adminOpenIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
+	openIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
 	if err != nil {
 		msg = "get openIdList err:" + err.Error()
 		return
 	}
-	openIdList := make([]*wx_user.OpenIdList, 0)
-	for _, v := range adminOpenIdList {
-		tmp := new(wx_user.OpenIdList)
-		tmp.OpenId = v.OpenId
-		openIdList = append(openIdList, tmp)
-	}
+
 	utils.FileLog.Info("openIdListCount:%s", len(openIdList))
 	//fmt.Println("openIdListCount:", len(openIdList))
 	if len(openIdList) > 0 && utils.TemplateIdByCompanyApply != "" {
@@ -269,17 +257,11 @@ func SendWxMsgWithRoadshowPending(first, keyword1, keyword2, keyword3, keyword4,
 
 	//获取openid列表
 	openIdStr := WxAdminOpenIdGet()
-	adminOpenIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
+	openIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
 	if err != nil {
 		msg = "get openIdList err:" + err.Error()
 		return
 	}
-	openIdList := make([]*wx_user.OpenIdList, 0)
-	for _, v := range adminOpenIdList {
-		tmp := new(wx_user.OpenIdList)
-		tmp.OpenId = v.OpenId
-		openIdList = append(openIdList, tmp)
-	}
 	utils.FileLog.Info("openIdListCount:%s", len(openIdList))
 	//fmt.Println("openIdListCount:", len(openIdList))
 	if len(openIdList) > 0 && utils.TemplateIdByCompanyApply != "" {
@@ -336,17 +318,11 @@ func SendWxMsgWithRoadshowDeleteNotice(first, keyword1, keyword2, remark, wxAppP
 
 	//获取openid列表
 	openIdStr := WxAdminOpenIdGet()
-	adminOpenIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
+	openIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
 	if err != nil {
 		msg = "get openIdList err:" + err.Error()
 		return
 	}
-	openIdList := make([]*wx_user.OpenIdList, 0)
-	for _, v := range adminOpenIdList {
-		tmp := new(wx_user.OpenIdList)
-		tmp.OpenId = v.OpenId
-		openIdList = append(openIdList, tmp)
-	}
 	utils.FileLog.Info("openIdListCount:%s", len(openIdList))
 	//fmt.Println("openIdListCount:", len(openIdList))
 	if len(openIdList) > 0 && utils.TemplateIdByCompanyApply != "" {
@@ -396,17 +372,12 @@ func SendSealFinishedWxTemplateMsg(mobile string, companyName string, sealId int
 	}
 	utils.FileLog.Info("mobile:%s", mobile)
 	openIdStr := WxAdminOpenIdGet()
-	adminOpenIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
+	openIdList, err := admin.GetOpenIdListByMobile(mobile, openIdStr)
 	if err != nil {
 		msg = "get openIdList err:" + err.Error()
 		return
 	}
-	openIdList := make([]*wx_user.OpenIdList, 0)
-	for _, v := range adminOpenIdList {
-		tmp := new(wx_user.OpenIdList)
-		tmp.OpenId = v.OpenId
-		openIdList = append(openIdList, tmp)
-	}
+
 	utils.FileLog.Info("openIdListCount:%s", len(openIdList))
 
 	if len(openIdList) > 0 && utils.WxMsgTemplateIdWithSealApplyFinished != "" {
@@ -440,7 +411,7 @@ func SendSealFinishedWxTemplateMsg(mobile string, companyName string, sealId int
 }
 
 // SendYbQuestionDistributeWxMsg 推送研报小程序模板消息-问答社区分配
-func SendYbQuestionDistributeWxMsg(questionId, userId int, openid, questionTitle string) (err error) {
+func SendYbQuestionDistributeWxMsg(questionId, adminId int, openid, questionTitle string) (err error) {
 	var errMsg string
 	defer func() {
 		if err != nil {
@@ -459,10 +430,10 @@ func SendYbQuestionDistributeWxMsg(questionId, userId int, openid, questionTitle
 		errMsg = "accessToken is empty"
 		return
 	}
-	openIdList := make([]*wx_user.OpenIdList, 0)
-	openIdList = append(openIdList, &wx_user.OpenIdList{
+	openIdList := make([]*admin.OpenIdList, 0)
+	openIdList = append(openIdList, &admin.OpenIdList{
 		OpenId: openid,
-		UserId: userId,
+		AdminId: adminId,
 	})
 
 	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken

+ 13 - 20
services/yb/community_question.go

@@ -305,28 +305,21 @@ func SendMsgToReplier(questionId int) (errMsg string, err error) {
 	}
 	// 回复人openid为空时查询当前是否已有openid
 	updateCols := make([]string, 0)
-	if item.ReplierOpenid == "" {
-		userRecord, e := user_record.GetUserRecordByUserId(item.ReplierUserId, utils.USER_RECORD_PLATFORM_RDDP)
-		if e != nil && e.Error() != utils.ErrNoRow() {
-			errMsg = "发送失败, 研究员相关的联系人记录有误"
-			err = errors.New("获取手机号所属联系人失败, Err:" + e.Error())
-			return
-		}
-		if userRecord == nil {
-			errMsg = "该研究员未关注公众号,无法发送消息通知"
-			err = errors.New("回复人openid为空, 不可推送")
-			return
-		}
-		if userRecord.Subscribe == 0 {
-			errMsg = "该研究员已取消关注公众号,无法发送消息通知"
-			err = errors.New("回复人取消关注了公众号, 不可推送")
-			return
-		}
-		updateCols = append(updateCols, "ReplierOpenid")
-		item.ReplierOpenid = userRecord.OpenId
+
+	// 找到研究员的手机号,并查到管理员绑定的账号,找到对应的openid
+	adminInfo, e := admin.GetAdminById(item.ReplierAdminId)
+	if e != nil {
+		errMsg = "发送失败, 研究员账号查询失败"
+		err = errors.New("发送失败, 研究员账号查询失败, Err:" + e.Error())
+		return
+	}
+	if adminInfo.OpenId == "" {
+		errMsg = "该研究员未关注公众号,无法发送消息通知"
+		err = errors.New("回复人openid为空, 不可推送")
+		return
 	}
 
-	if e := services.SendYbQuestionDistributeWxMsg(item.CommunityQuestionId, item.ReplierUserId, item.ReplierOpenid, item.QuestionContent); e != nil {
+	if e := services.SendYbQuestionDistributeWxMsg(item.CommunityQuestionId, item.ReplierUserId, adminInfo.OpenId, item.QuestionContent); e != nil {
 		err = errors.New("推送模板消息失败, Err:" + e.Error())
 		return
 	}

+ 12 - 12
utils/config.go

@@ -178,18 +178,18 @@ func wxConfig() {
 		TemplateIdByProduct = "Cp2wF8gvBtxyWV4DeYuI172oqwyYXVRSm3AyJO42d84"
 		TemplateRedirectUrl = "https://ficc.hzinsights.com/reportdtl?id="
 		WxPlatform = 1
-		TemplateIdByCompanyApply = "ZKcOfNIWBpwHJxpptufHIK1mp2nIwkT3cxub-35cFqI"
+		TemplateIdByCompanyApply = "yqaDUavXAKBpsPqTr0zYXAGIQYeCijZtWwFsT07wTbE"
 		TemplateCompanyApplyRedirectUrl = "https://ficc.hzinsights.com/approval/approval/list"
 
 		//路演
-		WxMsgTemplateIdWithRoadshowPending = "PaoDanHGlt1kFw5q-4_ipJSwO3FyZpxSSNg4rwB7YCk"      //路演->研究员收到待处理的申请
-		WxMsgTemplateIdWithRoadshowDetailResult = "dYg6iHooRq74PyCXmw_Ns7qdJZmbtLoKS2p2FKeaXl0" //路演->销售收到处理结果
-		WxMsgTemplateIdWithRoadshowDeleteNotice = "dYg6iHooRq74PyCXmw_Ns7qdJZmbtLoKS2p2FKeaXl0" //路演->研究员收到活动删除通知
+		WxMsgTemplateIdWithRoadshowPending = "1JG9fvKx9o9B-wkZe_gBFQQzMBnp07-hvpZI9QiFcKQ"      //路演->研究员收到待处理的申请
+		WxMsgTemplateIdWithRoadshowDetailResult = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" //路演->销售收到处理结果
+		WxMsgTemplateIdWithRoadshowDeleteNotice = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" //路演->研究员收到活动删除通知
 
-		WxMsgTemplateIdWithSealApplyFinished   = "dYg6iHooRq74PyCXmw_Ns7qdJZmbtLoKS2p2FKeaXl0"   // 用印申请-已签回通知
+		WxMsgTemplateIdWithSealApplyFinished   = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450"   // 用印申请-已签回通知
 
 		// 研报小程序
-		WxMsgTemplateIdWithYbCommunityQuestion = "dYg6iHooRq74PyCXmw_Ns7qdJZmbtLoKS2p2FKeaXl0" // 研报小程序->问答社区回复通知
+		WxMsgTemplateIdWithYbCommunityQuestion = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" // 研报小程序->问答社区回复通知
 
 		//内部员工公众号(弘则部门)
 		AdminWxAppId = "wx1392111da5426e9e"
@@ -202,18 +202,18 @@ func wxConfig() {
 		TemplateIdByProduct = "-YjuPOB7Fqd-S3ilabYa6wvjDY9aXmeEfPN6DCiy-EY"
 		TemplateRedirectUrl = "http://rddpweb.brilliantstart.cn/reportdtl?id="
 		WxPlatform = 1
-		TemplateIdByCompanyApply = "eTalI1LbiT_B0mTaBeDTlfSMITenK8dQIgEB5yqjjvA"
+		TemplateIdByCompanyApply = "yqaDUavXAKBpsPqTr0zYXAGIQYeCijZtWwFsT07wTbE"
 		TemplateCompanyApplyRedirectUrl = "http://advisoryadmin.brilliantstart.cn/approval/approval/list"
 
 		//路演
-		WxMsgTemplateIdWithRoadshowPending = "qfNuops-sKrfIkbA7U97A7gSrX03mUpoEpJksRUdloo"      //路演->研究员收到待处理的申请
-		WxMsgTemplateIdWithRoadshowDetailResult = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM" //路演->销售收到处理结果
-		WxMsgTemplateIdWithRoadshowDeleteNotice = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM" //路演->研究员收到活动删除通知
+		WxMsgTemplateIdWithRoadshowPending = "1JG9fvKx9o9B-wkZe_gBFQQzMBnp07-hvpZI9QiFcKQ"      //路演->研究员收到待处理的申请
+		WxMsgTemplateIdWithRoadshowDetailResult = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" //路演->销售收到处理结果
+		WxMsgTemplateIdWithRoadshowDeleteNotice = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" //路演->研究员收到活动删除通知
 
-		WxMsgTemplateIdWithSealApplyFinished   = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM"   // 用印申请-已签回通知
+		WxMsgTemplateIdWithSealApplyFinished   = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450"   // 用印申请-已签回通知
 		
 		// 研报小程序
-		WxMsgTemplateIdWithYbCommunityQuestion = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM" // 研报小程序->问答社区回复通知
+		WxMsgTemplateIdWithYbCommunityQuestion = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" // 研报小程序->问答社区回复通知
 
 		//内部员工公众号(弘则部门)
 		AdminWxAppId = "wx1392111da5426e9e"