Browse Source

Merge branch 'mfyx_wx_tmp_1.1' of http://8.136.199.33:3000/cxzhang/hongze_clpt into debug

xingzai 8 months ago
parent
commit
bc87f78dc7

+ 4 - 0
controllers/activity.go

@@ -1355,6 +1355,7 @@ func (this *ActivityController) SignupCancel() {
 	// 如果是买方研选下的专家沙龙,同时推给内容组四人
 	if activityInfo.ActivityTypeId == 5 {
 		go services.SendActivitieCancelSignTemplateMsg(user, activityInfo)
+		go services.SendActivitieCancelSignCategoryTemplateMsg(user, activityInfo)
 	}
 
 	go services.SendResearchActivitiesTemplateMsg(user, activityInfo, "取消报名") //公司线下调研活动客户报名后给建会人,所属销售推送模板信息
@@ -1907,8 +1908,11 @@ func (this *ActivityController) AskAdd() {
 					//services.SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName, "所属销售:"+sellerItem.RealName, time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, openIpItem, activityInfo)
 					services.SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName+"("+sellerItem.RealName+")", "提问:"+activityInfo.ActivityName, time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, openIpItem, activityInfo, int(msgId))
 				}
+				go services.SendWxCategoryMsgWithAsk(user, activityInfo, content, int(msgId))
 			}
+
 		}
+
 	} else {
 		hasPermission, sellerName, sellerMobile, popupMsg, err := services.GetUserHasPermission(user)
 		if err != nil {

+ 13 - 15
controllers/user.go

@@ -634,21 +634,19 @@ func (this *UserController) ApplyTryOut() {
 		br.ErrMsg = "申请失败,Err:" + err.Error()
 		return
 	}
-	if sellerItem == nil {
-		go services.SendPermissionApplyTemplateMsgAdmin(req, mobile, applyMethod, isResearch)
-		if isResearch {
-			//如果是研选的报告走研选的类目模版消息
-			go services.SendPermissionApplyTemplateMsgAdminByYxCategory(req, mobile, applyMethod, user.CompanyId)
-		}
-	} else {
-		openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
-		if openIpItem != nil && openIpItem.OpenId != "" {
-			go services.SendPermissionApplyTemplateMsg(req.RealName, req.CompanyName, mobile, applyMethod, openIpItem)
-			//if isResearch {
-			//	//如果是研选的报告走研选的类目模版消息
-			//	go services.SendPermissionApplyCategoryTemplateMsg(req.RealName, req.CompanyName, mobile, applyMethod, openIpItem)
-			//}
-		}
+
+	go services.SendPermissionApplyTemplateMsg(req.RealName, req.CompanyName, mobile, applyMethod, user) //权限申请模板消息推送
+	//if sellerItem == nil {
+	//	go services.SendPermissionApplyTemplateMsgAdmin(req, mobile, applyMethod, isResearch)
+	//} else {
+	//	openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
+	//	if openIpItem != nil && openIpItem.OpenId != "" {
+	//
+	//	}
+	//}
+	if isResearch {
+		//如果是研选的报告走研选的类目模版消息
+		go services.SendPermissionApplyTemplateMsgAdminByYxCategory(req, user.CompanyId)
 	}
 
 	//添加成功后,设置5分钟缓存,不允许重复添加

+ 7 - 0
models/company.go

@@ -214,3 +214,10 @@ func GetCompanyPermissionList(companyId int) (items []*PermissionItem, err error
 	_, err = o.Raw(sql, companyId).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
+}

+ 1 - 0
services/activity.go

@@ -1734,6 +1734,7 @@ func ActivityUserRemind(user *models.WxUserItem, activityDetail *models.Activity
 	// 如果是买方研选下的专家沙龙,同时推给内容组四人
 	if activityDetail.ActivityTypeId == 5 {
 		go SendNeiRongZuActivitieSignTemplateMsg(user, activityDetail)
+		go SendNeiRongZuActivitieSignCategoryTemplateMsg(user, activityDetail)
 	}
 	//获取销售手机号
 	sellerItemQy, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)

+ 2 - 12
services/cygx_yanxuan_special_company.go

@@ -77,17 +77,7 @@ func AddSpecialRecord(user *models.WxUserItem, specialId, stopTime int) (err err
 	}()
 	var sellerName string
 	//获取销售信息
-	sellerItem, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetSellerByCompanyIdCheckFicc, Err: " + e.Error())
-		return
-	}
-	if sellerItem == nil {
-		err = nil
-		return
-	}
-	sellerName = sellerItem.RealName
-
+	sellerName, _ = GetSellerName(user)
 	if stopTime >= 3 {
 
 		//判断一个用户是否阅读过 某一篇研选专栏
@@ -169,7 +159,7 @@ func AddSpecialRecord(user *models.WxUserItem, specialId, stopTime int) (err err
 	itemLog.RegisterPlatform = utils.REGISTER_PLATFORM
 	itemLog.YanxuanSpecialId = specialId
 	itemLog.StopTime = stopTime
-	_, e = models.AddCygxYanxuanSpecialRecordLog(itemLog) // 添加历史记录
+	_, e := models.AddCygxYanxuanSpecialRecordLog(itemLog) // 添加历史记录
 	if e != nil {
 		err = errors.New("AddCygxYanxuanSpecialRecordLog, Err: " + e.Error())
 		return

+ 2 - 2
services/tag.go

@@ -257,8 +257,8 @@ func GetConditionInitByTagIds(tagIds string, chartPermissionId int) (conditionIn
 	case 4: // 语音问答
 		conditionInit = "   AND source = '" + utils.CYGX_OBJ_ASKSERIEVIDEO + "'"
 
-	case 5: //固定标签【跟踪】,包含以下系列:医药-趋势观察 ,科技-产业跟踪 ,智造-产业跟踪 ,消费-月度调研
-		condition = " AND sub_category_name  IN ('趋势观察','产业跟踪','月度调研')  AND category_name IN ('医药行业','智造行业','消费行业','科技行业')  AND publish_status = 1 "
+	case 5: //固定标签【跟踪】,包含以下系列:医药-趋势观察 ,科技-产业跟踪 ,智造-产业跟踪 ,消费-月度调研 ,周期-(周度观点,产业跟踪)
+		condition = " AND sub_category_name  IN ('趋势观察','产业跟踪','月度调研')  AND category_name IN ('医药行业','智造行业','消费行业','科技行业') OR  ( sub_category_name IN  ('周度观点','产业跟踪')  AND  category_name  = '周期' )  AND publish_status = 1 "
 		pars = make([]interface{}, 0)
 		articleList, e := models.GetArticleList(condition, pars)
 		if e != nil {

+ 48 - 29
services/user.go

@@ -684,43 +684,62 @@ func GetUserhasPermission(user *models.WxUserItem) (hasPermission int, err error
 }
 
 // SendPermissionApplyTemplateMsgAdmin 处理试用申请给王芳,汪洋发消息
-func SendPermissionApplyTemplateMsgAdmin(req models.ApplyTryReq, usermobile, applyMethod 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.GetWxOpenIdByMobileList(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)
-	}
-	return
-}
+//func SendPermissionApplyTemplateMsgAdmin(req models.ApplyTryReq, usermobile, applyMethod 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.GetWxOpenIdByMobileList(cnf.ConfigValue)
+//	if e != nil && e.Error() != utils.ErrNoRow() {
+//		err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error() + cnf.ConfigValue)
+//		return err
+//	}
+//	//for _, v := range openIdList {
+//	//	go SendPermissionApplyTemplateMsg(req.RealName, req.CompanyName, usermobile, applyMethod, v)
+//	//}
+//	return
+//}
 
 // 研选类目模板消息
-func SendPermissionApplyTemplateMsgAdminByYxCategory(req models.ApplyTryReq, usermobile, applyMethod string, companyId int) (err error) {
+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())

+ 35 - 0
services/user_permission.go

@@ -2,6 +2,7 @@ package services
 
 import (
 	"errors"
+	"fmt"
 	"hongze/hongze_clpt/models"
 	"hongze/hongze_clpt/models/company"
 	"hongze/hongze_clpt/utils"
@@ -200,6 +201,40 @@ func GetUserRaiPermissionYanXuanInfo(user *models.WxUserItem) (hasPermission int
 	return
 }
 
+// 获取权益销售姓名
+func GetSellerName(user *models.WxUserItem) (sellerName string, sellerId int) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("获取权益销售姓名失败 GetSellerName, err:", err.Error()), 2)
+		}
+	}()
+	companyId := user.CompanyId
+	//潜在客户没有销售
+	if user.CompanyId <= 1 {
+		return
+	}
+	//权益客户
+	raiCount, e := models.GetCompanyProductCount(companyId, utils.COMPANY_PRODUCT_RAI_ID)
+	if e != nil {
+		err = errors.New("GetCompanyProductCount, Err: " + e.Error())
+		return
+	}
+	//仅开通FICC的客户不展示销售姓名
+	if raiCount == 0 {
+		return
+	}
+	sealldetail, e := models.GetRaiSellerByCompanyId(companyId)
+	if e != nil {
+		err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
+		return
+	}
+	sellerName = sealldetail.RealName
+	sellerId = sealldetail.AdminId
+	return
+}
+
 // 用户详情页获取用户权限状态  https://hzstatic.hzinsights.com/static/images/202402/20240205/LpE6dspJCLzfQoCoE8SFMDiLuxXk.png(状态码说明)这一期先不改2024-05-24。
 func GetUserDetailPermissionCode(userId, companyId int) (permission int, err error) {
 	// 用户申请记录

+ 155 - 24
services/wechat_send_category_template_msg.go

@@ -215,7 +215,7 @@ func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
 		}
 	}()
 	//王芳、葛琳和沈涛
-	mobile := utils.WxMsgTemplateIdAskMsgMobilePublic + utils.RAI_MOBILE_GE_LIN_WEN
+	mobile := utils.WxMsgTemplateIdAskMsgMobilePublic + utils.RAI_MOBILE_GE_LIN
 	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
 	if e != nil {
 		err = errors.New("GetUserRecordListByMobile, Err: " + e.Error())
@@ -268,49 +268,180 @@ func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
 	return
 }
 
-// 试用申请模板消息
-func SendPermissionApplyCategoryTemplateMsg(realName, companyName, mobile, applyMethod string, itemOpenid *models.OpenIdList) (err error) {
+// 发送活动提问消息提醒(研选公众号类目模版消息)
+func SendWxCategoryMsgWithAsk(user *models.WxUserItem, activityInfo *models.ActivityDetail, askMsg string, askId int) (err error) {
+	if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		return
+	}
 	defer func() {
 		if err != nil {
-			go utils.SendAlarmMsg(fmt.Sprint("权限申请模板消息推送消息失败,SendPermissionApplyCategoryTemplateMsg 手机号", mobile, "公司:", companyName, "手机号:", mobile, ";Err:"+err.Error()), 2)
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("发送活动提问消息提醒类目模版消息失败,用户名", user.RealName, "提问ID:", askId), 2)
 		}
 	}()
+
+	companyId := user.CompanyId
+	var sellerName string
+	//潜在客户、未开权益,已开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 {
+			sealldetail, e := models.GetRaiSellerByCompanyId(companyId)
+			if e != nil {
+				err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
+				return
+			}
+			sellerName = sealldetail.RealName
+			mobile += "," + sealldetail.Mobile
+		}
+	}
+	var mobiles []string
+	mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.RAI_MOBILE_GE_LIN) //葛琳、高亦文、董衡、吴昂迪手机号
+	mobile += "," + strings.Join(mobiles, ",")
+	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
-	var redirectUrl 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)
-	//	}
-	//}
+	keyword1 = user.RealName
+	keyword2 = utils.TruncateActivityNameString(user.CompanyName)
+	keyword3 = sellerName
+	keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
+	keyword5 = utils.TruncateActivityNameString("活动提问:" + askMsg)
+
+	keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
 
 	openIdArr := make([]string, 0)
-	openIdArr = append(openIdArr, itemOpenid.OpenId)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+
+	redirectUrl := utils.WX_MSG_PATH_TEMPLATE_MSG + "SourceId=" + strconv.Itoa(askId) + "&SourceType=2"
+	//redirectUrl = ""
 	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
+}
 
-	keyword1 = realName
-	keyword2 = companyName
-	keyword3 = "权限申请"
-	keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
-	keyword5 = applyMethod
+// 用户报名模板消息推送(研选公众号类目模版消息)
+func SendNeiRongZuActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,文章ID:", activityDetail.ActivityId), 2)
+			fmt.Println(err)
+		}
+	}()
+	sellerItemQy, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		return
+	}
+	var mobile string
+	var sellerRealName string
+	var mobiles []string
+	mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.MobileShenTao, utils.MobileZhangChuanXin) //高亦文、董衡、吴昂迪手机号
+	if sellerItemQy != nil {
+		mobiles = append(mobiles, sellerItemQy.Mobile)
+		sellerRealName = sellerItemQy.RealName
+	} else {
+		sellerRealName = "__"
+	}
+	mobile = strings.Join(mobiles, ",")
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
+	if e != nil {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return err
+	}
+	if len(openIdList) == 0 {
+		err = nil
+		return
+	}
 
-	sendInfo.Keywords = []string{keyword1, keyword2, keyword3, keyword4, keyword5}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	var keywords []string
+	keywords = append(keywords, user.RealName, user.CompanyName, sellerRealName, time.Now().Format(utils.FormatDateTimeMinute2), utils.TruncateActivityNameString("报名:"+activityDetail.ActivityName))
+	redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId) //活动详情地址
+	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
+}
+
+// 用户取消报名模板消息推送(研选公众号类目模版消息)
+func SendActivitieCancelSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,活动ID:", activityDetail.ActivityId), 2)
+		}
+	}()
+	sellerItemQy, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		return
+	}
+	var mobile string
+	var sellerRealName string
+	var mobiles []string
+	mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.MobileShenTao, utils.MobileZhangChuanXin) //高亦文、董衡、吴昂迪手机号
+	if sellerItemQy != nil {
+		mobiles = append(mobiles, sellerItemQy.Mobile)
+		sellerRealName = sellerItemQy.RealName
+	} else {
+		sellerRealName = "__"
+	}
+	mobile = strings.Join(mobiles, ",")
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
+	if e != nil {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return err
+	}
+	if len(openIdList) == 0 {
+		err = nil
+		return
+	}
+
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	var keywords []string
+	keywords = append(keywords, user.RealName, user.CompanyName, sellerRealName, time.Now().Format(utils.FormatDateTimeMinute2), utils.TruncateActivityNameString("取消报名:"+activityDetail.ActivityName))
+	redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId) //活动详情地址
+	sendInfo := new(SendWxCategoryTemplate)
+	sendInfo.Keywords = keywords
+	sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs
 	sendInfo.RedirectTarget = 4
-	sendInfo.Resource = mobile
 	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
 	sendInfo.OpenIdArr = openIdArr
+	sendInfo.RedirectUrl = redirectUrl
 	err = SendCategoryTemplateMsg(sendInfo)
 	return
 }

+ 33 - 56
services/wechat_send_msg.go

@@ -104,66 +104,44 @@ func SendInterviewApplyCancelTemplateMsg(realName, companyName, mobile, articleT
 }
 
 // 权限申请
-func SendPermissionApplyTemplateMsg(realName, companyName, mobile, applyMethod string, itemOpenid *models.OpenIdList) (err error) {
-	var msg string
+func SendPermissionApplyTemplateMsg(realName, companyName, mobile, applyMethod string, user *models.WxUserItem) (err error) {
 	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)
-		}
 	}()
+	companyId := user.CompanyId
+	//权益客户
+	raiCount, e := models.GetCompanyProductCount(companyId, utils.COMPANY_PRODUCT_RAI_ID)
+	if e != nil {
+		err = errors.New("GetCompanyProductCount, Err: " + e.Error())
+		return
+	}
+	var mobileOpenid string
+	if raiCount == 0 {
+		mobileOpenid = utils.WxMsgTemplateIdAskMsgMobilePublic
+	} else {
+		sealldetail, e := models.GetRaiSellerByCompanyId(companyId)
+		if e != nil {
+			err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
+			return
+		}
+		mobileOpenid = sealldetail.Mobile
+	}
 
-	//var accessToken string
-	//if utils.RunMode == "release" {
-	//	accessToken, err = models.GetWxAccessTokenByXzs()
-	//	if err != nil {
-	//		msg = "GetWxAccessToken Err:" + err.Error()
-	//		return
-	//	}
-	//	if accessToken == "" {
-	//		msg = "accessToken is empty"
-	//		return
-	//	}
-	//} else {
-	//	accessToken, err = models.GetWxAccessToken()
-	//	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 := applyMethod
-	//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}
-	//if utils.RunMode == "release" {
-	//	sendMap["template_id"] = utils.WxMsgTemplateIdApplyXzs
-	//} else {
-	//	sendMap["template_id"] = utils.WxMsgTemplateIdApply
-	//}
-	//sendMap["data"] = sendData
-	//sendTemplateMsg(sendUrl, sendMap, itemOpenid, mobile, utils.TEMPLATE_MSG_CYGX_APPLY)
-	//fmt.Println("send end")
+	openIdList, e := models.GetWxOpenIdByMobileList(mobileOpenid)
+	if e != nil {
+		err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
+		return
+	}
+	if len(openIdList) == 0 {
+		return
+	}
+	openIdArr := make([]string, 0)
 
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
 	var first string
 	var keyword1 string
 	var keyword2 string
@@ -173,7 +151,7 @@ func SendPermissionApplyTemplateMsg(realName, companyName, mobile, applyMethod s
 	var redirectUrl string
 	detail, e := models.GetCygxApplyRecordByMobile(mobile)
 	if e != nil {
-		err = errors.New("GetActivitySignupNomeetingCountList" + e.Error())
+		err = errors.New("GetCygxApplyRecordByMobile" + e.Error())
 		return
 	}
 	//如果是潜在客户就推送可查看详情的模版消息
@@ -184,8 +162,7 @@ func SendPermissionApplyTemplateMsg(realName, companyName, mobile, applyMethod s
 	keyword2 = mobile
 	keyword3 = time.Now().Format(utils.FormatDateTime)
 	keyword4 = applyMethod
-	openIdArr := make([]string, 0)
-	openIdArr = append(openIdArr, itemOpenid.OpenId)
+
 	sendInfo := new(SendWxTemplate)
 	sendInfo.First = first
 	sendInfo.Keyword1 = keyword1

+ 1 - 2
services/wx_template_msg.go

@@ -364,7 +364,7 @@ func SendCommentWxTemplateMsgByYxCategory(req models.AddCygxArticleCommentReq, u
 	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) //葛琳、高亦文、董衡、吴昂迪手机号
+	mobiles = append(mobiles, utils.RAI_MOBILE_GAO_YI_WEN, utils.RAI_MOBILE_DONG_HENG, utils.RAI_MOBILE_WU_ANG_DI, utils.RAI_MOBILE_GE_LIN) //葛琳、高亦文、董衡、吴昂迪手机号
 	mobile = companyItem.Mobile + "," + utils.WxMsgTemplateIdAskMsgMobilePublic + "," + strings.Join(mobiles, ",")
 	//mobile =
 	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
@@ -380,7 +380,6 @@ func SendCommentWxTemplateMsgByYxCategory(req models.AddCygxArticleCommentReq, u
 		openIdArr = append(openIdArr, v.OpenId)
 	}
 	redirectUrl = utils.WX_MSG_PATH_TEMPLATE_MSG + "SourceId=" + strconv.Itoa(msgId) + "&SourceType=1"
-	//redirectUrl = utils.WX_MSG_PATH_YX_COMMENT_DETAIL + strconv.Itoa(msgId) + "&type=文章"  // 子文老表定义的错误地址,等前端来,再联调看看
 	sendInfo := new(SendWxCategoryTemplate)
 	sendInfo.Keywords = keywords
 	sendInfo.TemplateId = utils.WxCategoryMsgTemplateIdApplyXzs

+ 14 - 14
utils/config.go

@@ -51,10 +51,10 @@ var (
 	YiDonggetOriginalLink    string //易董 短连接转为长链接
 
 	//权益内容组手机号
-	RAI_MOBILE_GAO_YI_WEN    string // 权益高亦文手机号
-	RAI_MOBILE_DONG_HENG     string // 权益董衡手机号
-	RAI_MOBILE_WU_ANG_DI_WEN string // 权益吴昂迪手机号
-	RAI_MOBILE_GE_LIN_WEN    string // 权益葛琳手机号
+	RAI_MOBILE_GAO_YI_WEN string // 权益高亦文手机号
+	RAI_MOBILE_DONG_HENG  string // 权益董衡手机号
+	RAI_MOBILE_WU_ANG_DI  string // 权益吴昂迪手机号
+	RAI_MOBILE_GE_LIN     string // 权益葛琳手机号
 
 )
 
@@ -111,7 +111,7 @@ func init() {
 	WxAppId = "wxcc32b61f96720d2f"
 	WxAppSecret = "06894933fafb24dafead7eaae09c08e0"
 	WxMsgTemplateIdAskMsgMobileAll = "15557270714,18767183922,18621268829"
-	WxMsgTemplateIdAskMsgMobilePublic = "15557270714,18767183922,18621268829" // 王芳沈涛张传星
+	WxMsgTemplateIdAskMsgMobilePublic = "15557270714,18767183922,18621268829" // 王芳沈涛张传星(类目模板消息都接收的人)
 	WxMsgTemplateIdYXSpecialReview = "18621268829,18258485832,18767183922"    // 王芳、葛琳和沈涛
 	if RunMode == "release" {
 		WxPublicAppId = "wxb7cb8a15abad5b8e"                                          //查研观向小助手
@@ -128,7 +128,7 @@ func init() {
 
 		IndexName = "cygx_article_v03_23"
 		IndexNameComprehensive = "cygx_comprehensive"
-		ActSendMsgMobile = "15618524605"
+		ActSendMsgMobile = "15557270714"
 		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"
 
@@ -139,10 +139,10 @@ func init() {
 		WxMsgCategoryTemplateIdActivityPublishApply = "IBMqiE61lVgUfFM4rsH0XCH57R_G3PbWvRbnzg9JHPI"
 
 		//权益内容组手机号
-		RAI_MOBILE_GAO_YI_WEN = "15000123056"    //权益高亦文手机号
-		RAI_MOBILE_DONG_HENG = "15216736473"     // 权益董衡手机号
-		RAI_MOBILE_WU_ANG_DI_WEN = "18701809782" // 权益吴昂迪手机号
-		RAI_MOBILE_GE_LIN_WEN = "18258485832"    // 权益葛琳手机号
+		RAI_MOBILE_GAO_YI_WEN = "15000123056" //权益高亦文手机号
+		RAI_MOBILE_DONG_HENG = "15216736473"  // 权益董衡手机号
+		RAI_MOBILE_WU_ANG_DI = "18701809782"  // 权益吴昂迪手机号
+		RAI_MOBILE_GE_LIN = "18258485832"     // 权益葛琳手机号
 
 	} else {
 		WxPublicAppId = "wx9b5d7291e581233a"                                          //弘则投研公众号 开发者ID(AppID)
@@ -171,10 +171,10 @@ func init() {
 		WxMsgCategoryTemplateIdActivityPublishApply = "wLeV7tVK4ZJBoAvsmfXkHveVW8yefGAkwnVKQWRi8uQ"
 
 		//权益内容组手机号测试环境没什么用,配合测试切换他们的手机号
-		RAI_MOBILE_GAO_YI_WEN = "17706316791"    //权益高亦文手机号
-		RAI_MOBILE_DONG_HENG = "15557270714"     // 权益董衡手机号
-		RAI_MOBILE_WU_ANG_DI_WEN = "15557270714" // 权益吴昂迪手机号
-		RAI_MOBILE_GE_LIN_WEN = "15557270714"    // 权益葛琳手机号
+		RAI_MOBILE_GAO_YI_WEN = "17706316791" //权益高亦文手机号
+		RAI_MOBILE_DONG_HENG = "15557270714"  // 权益董衡手机号
+		RAI_MOBILE_WU_ANG_DI = "15557270714"  // 权益吴昂迪手机号
+		RAI_MOBILE_GE_LIN = "15557270714"     // 权益葛琳手机号
 	}
 	HeadimgurlDefault = "https://hongze.oss-cn-shanghai.aliyuncs.com/static/images/202202/20220225/XFBBOUmDC5AXkfxnHiuqKpPtoofH.png"
 

+ 2 - 1
utils/constants.go

@@ -199,7 +199,8 @@ const (
 
 // 研选公账号跳转地址
 const (
-	WX_MSG_PATH_YX_COMMENT_DETAIL = "pages-activity/generationAsk/generationAsk?id=" //研选报告留言详情
+	WX_MSG_PATH_YX_COMMENT_DETAIL  = "pages-activity/generationAsk/generationAsk?id="              //研选报告留言详情
+	WX_MSG_PATH_YX_ACTIVITY_DETAIL = "pages-activity/activityDetail/activityDetail?IsSendWx=1&id=" //研选活动详情
 )
 
 // 微信模板消息推送公共接口的秘钥