Browse Source

no message

xingzai 10 months ago
parent
commit
3b315f2bf3
6 changed files with 171 additions and 1 deletions
  1. 2 1
      controllers/report.go
  2. 4 0
      controllers/user.go
  3. 7 0
      models/company.go
  4. 17 0
      models/seller.go
  5. 76 0
      services/user.go
  6. 65 0
      services/wx_template_msg.go

+ 2 - 1
controllers/report.go

@@ -3693,7 +3693,8 @@ func (this *ReportController) CommentAdd() {
 		return
 	}
 
-	services.SendCommentWxTemplateMsg(req, user, articleInfo, int(msgId))
+	go services.SendCommentWxTemplateMsg(req, user, articleInfo, int(msgId))
+	go services.SendCommentWxTemplateMsgByYxCategory(req, user, articleInfo, int(msgId)) // 发送用户留言提醒(研选公众号类目模版消息)
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "提交成功"

+ 4 - 0
controllers/user.go

@@ -1246,6 +1246,10 @@ func (this *UserController) ApplyTryOut() {
 			go services.SendPermissionApplyTemplateMsg(req.RealName, req.CompanyName, mobile, applyMethod, openIpItem)
 		}
 	}
+	if isResearch {
+		//如果是研选的报告走研选的类目模版消息
+		go services.SendPermissionApplyTemplateMsgAdminByYxCategory(req, user.CompanyId)
+	}
 	//添加成功后,设置5分钟缓存,不允许重复添加
 	//utils.Rc.SetNX(cacheKey, user.Mobile, time.Second*60)
 

+ 7 - 0
models/company.go

@@ -283,3 +283,10 @@ func GetCompanyInteractionNumList() (items []*Company, err error) {
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+func GetCompanyProductCount(companyId, productId int) (count int, err error) {
+	sql := ` SELECT COUNT(1) AS count FROM  company_product WHERE company_id = ? AND product_id = ? `
+	o := orm.NewOrmUsingDB("weekly_report")
+	err = o.Raw(sql, companyId, productId).QueryRow(&count)
+	return
+}

+ 17 - 0
models/seller.go

@@ -90,3 +90,20 @@ func GetAdminListByGroupId(groupId int) (items []*Admin, err error) {
 	_, err = o.Raw(sql, groupId).QueryRows(&items)
 	return
 }
+
+// 获取权益销售信息
+func GetRaiSellerByCompanyId(companyId int) (item *AdminItem, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := ` SELECT
+     		b.admin_id,
+			b.real_name,
+			b.mobile 
+		FROM
+			company_product AS a
+			INNER JOIN admin AS b ON a.seller_id = b.admin_id 
+		WHERE
+			a.product_id = 2 
+			AND a.company_id = ?`
+	err = o.Raw(sql, companyId).QueryRow(&item)
+	return
+}

+ 76 - 0
services/user.go

@@ -1131,3 +1131,79 @@ func SendPermissionApplyTemplateMsgAdmin(req models.ApplyTryReq, usermobile, app
 
 	return
 }
+
+// 研选类目模板消息
+func SendPermissionApplyTemplateMsgAdminByYxCategory(req models.ApplyTryReq, companyId int) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("研选类目模板消息消息失败, SendPermissionApplyTemplateMsgAdminByYxCategoryErrMsg: "+err.Error(), 3)
+		}
+	}()
+
+	//潜在客户、未开权益,已开FICC的客户推给王芳,开通权益的客户推给对应销售
+	mobile := utils.WxMsgTemplateIdAskMsgMobilePublic
+	if companyId > 1 {
+		raiCount, e := models.GetCompanyProductCount(companyId, utils.COMPANY_PRODUCT_RAI_ID)
+		if e != nil {
+			err = errors.New("GetCompanyProductCount, Err: " + e.Error())
+			return
+		}
+		if raiCount == 0 {
+			return
+		}
+		sealldetail, e := models.GetRaiSellerByCompanyId(companyId)
+		if e != nil {
+			err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
+			return
+		}
+		mobile = sealldetail.Mobile
+	}
+
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
+	if e != nil {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return err
+	}
+	if len(openIdList) == 0 {
+		return
+	}
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var keyword5 string
+	keyword1 = req.RealName
+	keyword2 = utils.TruncateActivityNameString(req.CompanyName)
+	keyword3 = "权限申请"
+	keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
+	if companyId == 1 {
+		keyword5 = "潜在客户"
+	} else {
+		keyword5 = "FICC客户"
+	}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	detail, e := models.GetCygxApplyRecordByMobile(mobile)
+	if e != nil {
+		err = errors.New("GetActivitySignupNomeetingCountList" + e.Error())
+		return
+	}
+	redirectUrl := ""
+	//如果是潜在客户就推送可查看详情的模版消息
+	if detail.ApplyMethod == 2 {
+		redirectUrl = utils.WX_MSG_PATH_APPLY_DETAIL + strconv.Itoa(detail.ApplyRecordId)
+	}
+
+	keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
+	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)
+	return
+}

+ 65 - 0
services/wx_template_msg.go

@@ -10,6 +10,7 @@ import (
 	"io/ioutil"
 	"net/http"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -855,3 +856,67 @@ func SendWxMsgWithMicroRoadshowAsk(req models.AddVideoCommnetReq, user *models.W
 	}
 	return
 }
+
+// 发送用户留言提醒(研选公众号类目模版消息)
+func SendCommentWxTemplateMsgByYxCategory(req models.AddCygxArticleCommentReq, user *models.WxUserItem, articleInfo *models.ArticleDetail, msgId int) (err error) {
+	if articleInfo.ArticleTypeId == 0 {
+		return // 非研选的文章不做推送
+	}
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户用户留言提醒失败,文章ID:", req.ArticleId, "err", err.Error()), 2)
+		}
+	}()
+
+	companyItem, e := models.GetSellerDetailAllByCompanyId(user.CompanyId)
+	if e != nil {
+		return
+	}
+	if companyItem == nil {
+		err = errors.New("获取客户所属销售信息失败")
+		return
+	}
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var keyword5 string
+	var redirectUrl string
+	var mobile string
+
+	var keywords []string
+	keyword1 = user.RealName
+	keyword2 = utils.TruncateActivityNameString(companyItem.CompanyName)
+	keyword3 = companyItem.SellerName
+	keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
+	keyword5 = "报告留言:" + req.Content
+	keyword5 = utils.TruncateActivityNameString(keyword5)
+	keywords = append(keywords, keyword1, keyword2, keyword3, keyword4, keyword5)
+
+	var mobiles []string
+	mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI_WEN, utils.RAI_MOBILE_GE_LIN_WEN) //葛琳、高亦文、董衡、吴昂迪手机号
+	mobile = companyItem.Mobile + "," + utils.WxMsgTemplateIdAskMsgMobilePublic + "," + strings.Join(mobiles, ",")
+	//mobile =
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
+	if e != nil {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	if len(openIdList) == 0 {
+		return
+	}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl = utils.WX_MSG_PATH_TEMPLATE_MSG + "SourceId=" + strconv.Itoa(msgId) + "&SourceType=1"
+	sendInfo := new(SendWxCategoryTemplate)
+	sendInfo.Keywords = keywords
+	sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
+	sendInfo.RedirectTarget = 4
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
+	sendInfo.OpenIdArr = openIdArr
+	sendInfo.RedirectUrl = redirectUrl
+	err = SendCategoryTemplateMsg(sendInfo)
+	return
+}