Browse Source

权益客户,申请转正或者申请续约,审批通过时,模板消息通知私募组内以下销售人员

xingzai 2 years ago
parent
commit
06db60e32f

+ 19 - 0
models/tables/admin/admin.go

@@ -193,3 +193,22 @@ func GetAdminWxByIdS(adminIdStr string) (items []*custom.AdminWx, err error) {
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+
+// GetSysuserRaiList 获取权益销售
+func GetSysuserRaiList() (items []*AdminItem, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			real_name,
+			mobile,
+			group_name 
+		FROM
+			admin 
+		WHERE
+			role_type_code LIKE '%rai%' 
+			AND group_id NOT IN ( 19, 10, 17 ) 
+			AND enabled = 1 
+			OR real_name IN ( '沈涛', '张传星' )`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 16 - 0
models/wechat_send_msg.go

@@ -2,6 +2,7 @@ package models
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_mobile_admin/utils"
 )
 
 type OpenIdList struct {
@@ -17,3 +18,18 @@ func GetAdminOpenIdByMobile(mobile string) (items []*OpenIdList, err error) {
 	_, err = orm.NewOrm().Raw(sql, mobile).QueryRows(&items)
 	return
 }
+
+// 根据手机号获取用户的openid查研观向小助手专用
+func GetUserRecordListByMobile(platform int, bindAccount string) (items []*OpenIdList, err error) {
+	var sql string
+	if utils.RunMode == "release" {
+		sql = `SELECT cr.open_id FROM user_record  as u 
+			INNER JOIN cygx_user_record AS cr ON cr.union_id = u.union_id 
+			WHERE create_platform=? AND bind_account IN (` + bindAccount + `)`
+	} else {
+		platform = 1
+		sql = `SELECT open_id FROM	user_record  WHERE create_platform =? AND bind_account IN (` + bindAccount + `)`
+	}
+	_, err = orm.NewOrm().Raw(sql, platform).QueryRows(&items)
+	return
+}

+ 3 - 12
services/company_approval/company_approval.go

@@ -311,12 +311,6 @@ func Reject(approvalRecord *contract_approval_record.ContractApprovalRecord, opU
 		//content := contractInfo.CompanyName + " 合同模板已驳回"
 		content := companyInfo.CompanyName + " " + recordInfo.ApproveContent + "审批驳回"
 		approvalSysUser, _ := admin.GetAdminById(approval.ApplyUserId)
-		if approvalSysUser.Enabled == 0 {
-			//权益客户,申请转正或者申请续约,审批通过时,模板消息通知私募组内以下销售人员(状态为启用的) 如果不启用,就把手机号设为空,不做推送
-			if approvalSysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || approvalSysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
-				approvalSysUser.Mobile = ""
-			}
-		}
 		go services.AddCompanyApprovalMessage(opUserId, approval.ApplyUserId, companyInfo.CompanyId, approval.ContractId, 2, sourceType, 3, companyInfo.CompanyName, content, content, approvalSysUser.Mobile, "")
 	}
 	return
@@ -401,13 +395,10 @@ func Approved(approvalRecord *contract_approval_record.ContractApprovalRecord, o
 		//待办通知(通知销售已经审核通过了)
 		{
 			approvalSysUser, _ := admin.GetAdminById(approval.ApplyUserId)
-			if approvalSysUser.Enabled == 0 {
-				//权益客户,申请转正或者申请续约,审批通过时,模板消息通知私募组内以下销售人员(状态为启用的) 如果不启用,就把手机号设为空,不做推送
-				if approvalSysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || approvalSysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
-					approvalSysUser.Mobile = ""
-				}
-			}
 			go services.AddCompanyApprovalMessage(opUserId, approval.ApplyUserId, companyInfo.CompanyId, approval.ContractId, 2, sourceType, 2, companyInfo.CompanyName, content, content, approvalSysUser.Mobile, "")
+
+			//权益销售客户申请转正后,消息群发给所有销售
+			go services.AddCompanyApprovalMessageRai(recordInfo.CompanyId, recordInfo.ApplyRealName, companyInfo.CompanyName, companyInfo.StartDate)
 		}
 
 		// 客户单审批后的异步操作(修改客户单信息、修改合同权限等)

+ 42 - 0
services/company_approval_message.go

@@ -2,9 +2,13 @@ package services
 
 import (
 	"fmt"
+	"hongze/hongze_mobile_admin/models"
+	"hongze/hongze_mobile_admin/models/tables/admin"
 	"hongze/hongze_mobile_admin/models/tables/company_approval_message"
+	"hongze/hongze_mobile_admin/models/tables/company_product"
 	"hongze/hongze_mobile_admin/services/alarm_msg"
 	"hongze/hongze_mobile_admin/utils"
+	"strings"
 	"time"
 )
 
@@ -131,3 +135,41 @@ func AddCompanyApprovalMessage(createUserId, receiveUserId, companyId, companyAp
 	}
 	return
 }
+
+
+// AddCompanyApprovalMessageRai 权益销售客户申请转正后,消息群发给所有销售
+func AddCompanyApprovalMessageRai(companyId int, applyRealName, companyName, startDate string) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err)
+			go alarm_msg.SendAlarmMsg("权益销售客户申请转正后,消息群发给所有销售,Err:"+err.Error(), 3)
+		}
+	}()
+	companyProduct, err := company_product.GetCompanyProductByCompanyIdAndProductId(companyId, 2)
+	if err != nil {
+		return
+	}
+	if companyProduct == nil {
+		return
+	}
+	var first, keyword1, keyword2, keyword3, keyword4 string
+	first = applyRealName + ",已签约" + companyName + ",机构属性为" + companyProduct.IndustryName
+	keyword1 = "-"
+	keyword2 = time.Now().Format(utils.FormatDate)
+	keyword3 = startDate
+	adminList, err := admin.GetSysuserRaiList()
+	if err != nil {
+		return
+	}
+	var mobiles string
+	for _, v := range adminList {
+		mobiles += "'" + v.Mobile + "'" + ","
+	}
+	mobiles = strings.TrimRight(mobiles, ",")
+	openIdList, err := models.GetUserRecordListByMobile(4, mobiles)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	go SendWxMsgWithRaiSell(first, keyword1, keyword2, keyword3, keyword4, openIdList)
+	return
+}

+ 35 - 0
services/wechat_send_msg.go

@@ -3,6 +3,7 @@ package services
 import (
 	"encoding/json"
 	"fmt"
+	"hongze/hongze_mobile_admin/models"
 	"hongze/hongze_mobile_admin/models/tables/admin"
 	"hongze/hongze_mobile_admin/services/alarm_msg"
 	"hongze/hongze_mobile_admin/utils"
@@ -529,4 +530,38 @@ func SendTemplateMsg(sendInfo *SendWxTemplate) (err error) {
 		return err
 	}
 	return
+}
+
+
+// SendWxMsgWithRaiSell 权益销售客户申请转正后,消息群发给所有销售
+func SendWxMsgWithRaiSell(first, keyword1, keyword2, keyword3, keyword4 string, openIdList []*models.OpenIdList) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err)
+			go alarm_msg.SendAlarmMsg("权益销售客户申请转正后,消息群发给所有销售,Err:"+err.Error()+";msg:"+msg, 3)
+		}
+		if msg != "" {
+			utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
+		}
+	}()
+	openIdArr := make([]string, len(openIdList))
+	for i, v := range openIdList {
+		openIdArr[i] = v.OpenId
+	}
+	sendInfo := new(SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.Remark = ""
+	sendInfo.TemplateId = utils.WxMsgTemplateIdCompanyApprovalMessageRai
+	sendInfo.RedirectUrl = ""
+	sendInfo.RedirectTarget = 3
+	sendInfo.SendType = utils.TEMPLATE_MSG_APPLY
+	sendInfo.OpenIdArr = openIdArr
+	fmt.Println(sendInfo)
+	err = SendTemplateMsg(sendInfo)
+	return
 }

+ 15 - 0
utils/config.go

@@ -47,6 +47,9 @@ var (
 	WxMsgTemplateIdWithSealApplyFinished      string // 用印申请-已签回通知
 	WxMsgTemplateIdWithYbCommunityQuestion  string // 研报小程序->问答社区回复通知
 	SendWxTemplateMsgUrl string  //模板消息推送
+
+	//查研观向
+	WxMsgTemplateIdCompanyApprovalMessageRai string //权益销售签约成功通知查研观向小助手模版消息
 )
 
 var (
@@ -192,6 +195,11 @@ func wxConfig() {
 		// 研报小程序
 		WxMsgTemplateIdWithYbCommunityQuestion = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" // 研报小程序->问答社区回复通知
 
+		//查研观向小助手原有的模板ID
+		{
+			WxMsgTemplateIdCompanyApprovalMessageRai = "VznOL445trJmB4dLgVczQ3T5kZNE_AsPfs30xN1nv8s" //权益销售签约成功通知查研观向小助手模版消息-模板ID
+		}
+
 		//内部员工公众号(弘则部门)
 		AdminWxAppId = "wx1392111da5426e9e"
 		AdminWxAppSecret = "30eceb7cf29bf2f046031155ab55d7b4"
@@ -217,11 +225,18 @@ func wxConfig() {
 		// 研报小程序
 		WxMsgTemplateIdWithYbCommunityQuestion = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" // 研报小程序->问答社区回复通知
 
+
+		//查研观向小助手原有的模板ID
+		{
+			WxMsgTemplateIdCompanyApprovalMessageRai = "RcV2uM5nFSiUtOHsq4SdYz2Fhk-OVfg5rutWz2IsSJQ" //权益销售签约成功通知查研观向小助手模版消息-模板ID
+		}
+
 		//内部员工公众号(弘则部门)
 		AdminWxAppId = "wx1392111da5426e9e"
 		AdminWxAppSecret = "30eceb7cf29bf2f046031155ab55d7b4"
 
 		SendWxTemplateMsgUrl = "http://127.0.0.1:8086/v1/wechat/send_template_msg"
+
 	}
 
 }