瀏覽代碼

no message

xingzai 10 月之前
父節點
當前提交
ff1cd2a3ec
共有 3 個文件被更改,包括 411 次插入404 次删除
  1. 0 76
      services/user.go
  2. 411 263
      services/wx_category_template_msg.go
  3. 0 65
      services/wx_template_msg.go

+ 0 - 76
services/user.go

@@ -1093,79 +1093,3 @@ func UpdateCygxSubscribe(uid int, unionId string) (err error) {
 	}
 	return
 }
-
-// 研选类目模板消息
-func SendPermissionApplyTemplateMsgAdminByYxCategory(req models.ApplyTryReq, companyId int, usermobile, redirectUrl string) (err error) {
-	defer func() {
-		if err != nil {
-			go utils.SendAlarmMsg("研选类目模板消息消息失败, SendPermissionApplyTemplateMsgAdminByYxCategoryErrMsg: "+err.Error(), 3)
-		}
-	}()
-
-	//潜在客户、未开权益,已开FICC的客户推给王芳,开通权益的客户推给对应销售
-	mobileOpneid := 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
-		}
-		mobileOpneid = sealldetail.Mobile
-	}
-
-	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobileOpneid)
-	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(usermobile)
-	if e != nil {
-		err = errors.New("GetCygxApplyRecordByMobile" + 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
-}

+ 411 - 263
services/wx_category_template_msg.go

@@ -68,6 +68,197 @@ func SendCategoryTemplateMsg(sendInfo *SendWxCategoryTemplate) (err error) {
 	return
 }
 
+// 用户模块
+// 研选类目模板消息
+func SendPermissionApplyTemplateMsgAdminByYxCategory(req models.ApplyTryReq, companyId int, usermobile, redirectUrl string) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("研选类目模板消息消息失败, SendPermissionApplyTemplateMsgAdminByYxCategoryErrMsg: "+err.Error(), 3)
+		}
+	}()
+
+	//潜在客户、未开权益,已开FICC的客户推给王芳,开通权益的客户推给对应销售
+	mobileOpneid := 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
+		}
+		mobileOpneid = sealldetail.Mobile
+	}
+
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobileOpneid)
+	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(usermobile)
+	if e != nil {
+		err = errors.New("GetCygxApplyRecordByMobile" + 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
+}
+
+// 用户模块End
+
+// 报告模块
+// 发送用户留言提醒(研选公众号类目模版消息)
+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, utils.RAI_MOBILE_GE_LIN) //葛琳、高亦文、董衡、吴昂迪手机号
+	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
+}
+
+// 发送报告提问消息提醒
+func SendWxCategoryMsgWithActivityAsk(companyName, realName, sellerName, askTime, askMsg string, openIdList []*models.OpenIdList, msgId int) (err error) {
+	if len(openIdList) == 0 {
+		return
+	}
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("发送报告提问消息提醒类目模版消息失败,用户名", realName, "留言ID:", msgId), 2)
+		}
+	}()
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var keyword5 string
+
+	keyword1 = realName
+	keyword2 = companyName
+	keyword3 = sellerName
+	keyword4 = askTime
+	keyword5 = utils.TruncateActivityNameString("活动提问:" + askMsg)
+
+	keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
+
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(msgId)
+
+	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)
+	if err != nil {
+		return
+	}
+	return
+}
+
+//报告模块END
+
+// 活动模块
 // 帮我带问的问题,会前1小时发送
 func SendMfyxEmailFileForAskMsgResearch(cont context.Context) (err error) {
 	var msg string
@@ -140,54 +331,6 @@ func SendMfyxEmailFileForAskMsgResearch(cont context.Context) (err error) {
 	return
 }
 
-// 发送报告提问消息提醒
-func SendWxCategoryMsgWithActivityAsk(companyName, realName, sellerName, askTime, askMsg string, openIdList []*models.OpenIdList, msgId int) (err error) {
-	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
-	var keyword3 string
-	var keyword4 string
-	var keyword5 string
-
-	keyword1 = realName
-	keyword2 = companyName
-	keyword3 = sellerName
-	keyword4 = askTime
-	keyword5 = utils.TruncateActivityNameString("活动提问:" + askMsg)
-
-	keywords := []string{keyword1, keyword2, keyword3, keyword4, keyword5}
-
-	openIdArr := make([]string, 0)
-	for _, v := range openIdList {
-		openIdArr = append(openIdArr, v.OpenId)
-	}
-	redirectUrl := utils.WX_MSG_PATH_YX_ACTIVITY_DETAIL + strconv.Itoa(msgId)
-
-	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)
-	if err != nil {
-		return
-	}
-	return
-}
-
 // 推送会议开始消息提醒60分钟前
 func SendMfyxActivityBeginMsg(cont context.Context) (err error) {
 	//func SendActivityBeginMsg() (err error) {
@@ -401,50 +544,237 @@ func SendActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetai
 	return
 }
 
-// 研选专栏审核完成时,给提交人发送类目模板消息
-func SendWxCategoryMsgSpecialAuthor(specialId, status int) (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("研选专栏审核完成时,给提交人发送模板消息 SendWxCategoryMsgSpecialAuthor ", specialId, ", specialId", err.Error()), 2)
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("发送活动提问消息提醒类目模版消息失败,用户名", user.RealName, "提问ID:", askId), 2)
 		}
 	}()
-	var keyword1 string
-	var keyword2 string
-	var keyword3 string
-	var keyword4 string
-	var redirectUrl string
 
-	specialItem, e := models.GetYanxuanSpecialItemById(specialId)
-	if e != nil {
-		err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
-		return
+	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
+		}
 	}
-	user, e := models.GetWxUserItemByUserId(specialItem.UserId)
+	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("GetWxUserItemByUserId, Err: " + e.Error())
-		return err
-	}
-
-	openIdList, err := models.GetMfyxWxOpenIdByMobileList(user.Mobile)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
 		return err
 	}
-
 	if len(openIdList) == 0 {
 		return
 	}
 
-	keyword1 = utils.TruncateActivityNameString(specialItem.Title)
-	keyword2 = specialItem.NickName
-	if status == 1 {
-		keyword3 = "文章已通过审核,点击查看详情"
-		redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_DETAIL + strconv.Itoa(specialId)
-	} else {
-		keyword3 = "文章未通过审核,点击查看驳回原因"
-		redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_CENTER
-	}
-	keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
-	openIdArr := make([]string, 0)
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var keyword5 string
+
+	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)
+	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
+}
+
+// 用户报名模板消息推送(研选公众号类目模版消息)
+func SendNeiRongZuActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
+	if activityDetail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		return
+	}
+	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
+	}
+
+	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) {
+	if activityDetail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		return
+	}
+	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.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
+	sendInfo.OpenIdArr = openIdArr
+	sendInfo.RedirectUrl = redirectUrl
+	err = SendCategoryTemplateMsg(sendInfo)
+	return
+}
+
+// 活动模块END
+
+// 专栏模块
+// 研选专栏审核完成时,给提交人发送类目模板消息
+func SendWxCategoryMsgSpecialAuthor(specialId, status int) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("研选专栏审核完成时,给提交人发送模板消息 SendWxCategoryMsgSpecialAuthor ", specialId, ", specialId", err.Error()), 2)
+		}
+	}()
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var redirectUrl string
+
+	specialItem, e := models.GetYanxuanSpecialItemById(specialId)
+	if e != nil {
+		err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
+		return
+	}
+	user, e := models.GetWxUserItemByUserId(specialItem.UserId)
+	if e != nil {
+		err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
+		return err
+	}
+
+	openIdList, err := models.GetMfyxWxOpenIdByMobileList(user.Mobile)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+
+	if len(openIdList) == 0 {
+		return
+	}
+
+	keyword1 = utils.TruncateActivityNameString(specialItem.Title)
+	keyword2 = specialItem.NickName
+	if status == 1 {
+		keyword3 = "文章已通过审核,点击查看详情"
+		redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_DETAIL + strconv.Itoa(specialId)
+	} else {
+		keyword3 = "文章未通过审核,点击查看驳回原因"
+		redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_CENTER
+	}
+	keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
+	openIdArr := make([]string, 0)
 	for _, v := range openIdList {
 		openIdArr = append(openIdArr, v.OpenId)
 	}
@@ -544,7 +874,7 @@ func SendWxCategoryMsgSpecialFollow(specialId int) (err error) {
 	return
 }
 
-// SendReviewCategoryTemplateMsgAdmin 提交审核时给王芳、葛琳和沈涛发研选类目模板消息
+// SendReviewCategoryTemplateMsgAdmin 专栏提交审核时给王芳、葛琳和沈涛发研选类目模板消息
 func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
 	defer func() {
 		if err != nil {
@@ -605,186 +935,4 @@ func SendReviewCategoryTemplateMsgAdmin(specialId int) (err error) {
 	return
 }
 
-// 发送活动提问消息提醒(研选公众号类目模版消息)
-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 {
-			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
-
-	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)
-	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
-}
-
-// 用户报名模板消息推送(研选公众号类目模版消息)
-func SendNeiRongZuActivitieSignCategoryTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail) (err error) {
-	if activityDetail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
-		return
-	}
-	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
-	}
-
-	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) {
-	if activityDetail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
-		return
-	}
-	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.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
-	sendInfo.OpenIdArr = openIdArr
-	sendInfo.RedirectUrl = redirectUrl
-	err = SendCategoryTemplateMsg(sendInfo)
-	return
-}
+//专栏模块END

+ 0 - 65
services/wx_template_msg.go

@@ -10,7 +10,6 @@ import (
 	"io/ioutil"
 	"net/http"
 	"strconv"
-	"strings"
 	"time"
 )
 
@@ -856,67 +855,3 @@ 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, utils.RAI_MOBILE_GE_LIN) //葛琳、高亦文、董衡、吴昂迪手机号
-	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
-}