ziwen 1 жил өмнө
parent
commit
eeddd0e627

+ 4 - 12
controllers/yanxuan_special.go

@@ -64,18 +64,6 @@ func (this *YanxuanSpecialNoLoginController) List() {
 		return
 	}
 	for _, v := range list {
-		//如果正文中包含图片就拿出来放到图片字段中
-		imgUrls, err := utils.FindArticleImgUrls(v.Content)
-		if err != nil {
-			return
-		}
-		for _, url := range imgUrls {
-			if v.ImgUrl != "" {
-				v.ImgUrl += "," +url
-			} else {
-				v.ImgUrl += url + ","
-			}
-		}
 		hasImg, err := utils.ArticleHasImgUrl(v.Content)
 		if err != nil {
 			return
@@ -407,6 +395,10 @@ func (this *YanxuanSpecialController) Save() {
 		newId = int64(req.Id)
 	}
 
+	if req.DoType == 2 {
+		go services.SendReviewTemplateMsgAdmin(int(newId))
+	}
+
 	br.Ret = 200
 	br.Success = true
 	br.Data = newId

+ 23 - 0
models/cygx_yanxuan_special.go

@@ -194,3 +194,26 @@ type CygxYanxuanSpecialCheckReq struct {
 	Content string   // 内容
 	ImgUrl  []string // 图片
 }
+
+func GetYanxuanSpecialFollowUserById(specialId int) (items []int, err error) {
+	o := orm.NewOrm()
+	sql := ``
+	sql = `SELECT b.user_id
+FROM cygx_yanxuan_special AS a
+JOIN cygx_yanxuan_special_follow AS b ON a.user_id = b.follow_user_id
+ WHERE a.id=? `
+	_, err = o.Raw(sql, specialId).QueryRows(&items)
+	return
+}
+
+func GetYanxuanSpecialItemById(specialId int) (item *CygxYanxuanSpecialItem, err error) {
+	o := orm.NewOrm()
+	sql := ``
+	sql = `SELECT a.*,b.bg_img,b.head_img,b.introduction,b.label,b.mobile,
+b.nick_name,b.real_name,b.special_name
+FROM cygx_yanxuan_special AS a
+JOIN cygx_yanxuan_special_author AS b ON a.user_id = b.user_id 
+ WHERE a.id=? `
+	err = o.Raw(sql, specialId).QueryRow(&item)
+	return
+}

+ 21 - 0
models/user_record.go

@@ -141,3 +141,24 @@ func GetWxOpenIdByMobileSliceList(mobiles []string) (items []*OpenIdList, err er
 	_, err = o.Raw(sql, pars).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,user_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,user_id FROM	user_record  WHERE create_platform =? AND bind_account IN (` + bindAccount + `)`
+	//}
+	sql = `SELECT
+			cr.open_id,
+			cr.cygx_user_id as  user_id 
+		FROM
+		  cygx_user_record  as cr 
+		WHERE 1= 1	AND cygx_bind_account IN (` + bindAccount + `)`
+	_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	return
+}

+ 10 - 0
models/wx_user.go

@@ -194,3 +194,13 @@ func ModifyReportLastViewTime(uid int) (err error) {
 	_, err = o.Raw(sql, uid).Exec()
 	return
 }
+
+// GetWxUserListByUserIds 根据用户ID集合获取用户
+func GetWxUserListByUserIds(userIds string) (list []*WxUserItem, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := ` SELECT u.*, c.company_name FROM wx_user AS u
+			INNER JOIN company AS c ON c.company_id = u.company_id 
+			WHERE user_id IN (` + userIds + `) `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}

+ 154 - 62
services/cygx_yanxuan_special.go

@@ -1,68 +1,160 @@
 package services
 
-// 选专栏有新内容审核通过时,给关注此专栏的客户发送模板消息
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_clpt/models"
+	"hongze/hongze_clpt/utils"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// 研选专栏有新内容审核通过时,给关注此专栏的客户发送模板消息
 func SendWxMsgSpecialFollow(specialId int) (err error) {
-	//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("预报名活动,感兴趣人数满10人时,推送给活动负责人和王芳消息发送失败", activityInfo.ResearchTheme, ", activityId"), 2)
-	//		utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
-	//	}
-	//}()
-	//var first string
-	//var keyword1 string
-	//var keyword2 string
-	//var keyword3 string
-	//var keyword4 string
-	//var remark string
-	//
-	//adminUser, e := models.GetSellerByAdminId(activityInfo.AdminId)
-	//if e != nil {
-	//	err = errors.New("GetSellerByAdminId, Err: " + e.Error())
-	//	return
-	//}
-	//cnf, _ := models.GetConfigByCode("tpl_msg")
-	//mobile := adminUser.Mobile + "," + cnf.ConfigValue
-	//
-	//specialSignupList, e := models.GetActivityListSpecialByActivityId(activityId)
-	//if e != nil {
-	//	err = errors.New("GetActivityListSpecialAll, Err: " + e.Error())
-	//	return
-	//}
-	//for _, v := range specialSignupList {
-	//	keyword1 += "【" + v.RealName + "--" + v.CompanyName + "】"
-	//}
-	//openIdList, e := models.GetWxOpenIdByMobileList(mobile)
-	//if e != nil {
-	//	err = errors.New("GetSellerByAdminId, Err: " + e.Error())
-	//	return
-	//}
-	//first = "【" + activityInfo.ResearchTheme + "】已有10人预报名"
-	//keyword3 = "-"
-	//keyword2 = "-"
+	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("研选专栏有新内容审核通过时,给关注此专栏的客户发送模板消息失败", specialId, ", specialId"), 2)
+			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+		}
+	}()
+	var first string
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var remark string
+
+	followers, e := models.GetYanxuanSpecialFollowUserById(specialId)
+	if e != nil {
+		err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
+		return
+	}
+
+	specialItem, e := models.GetYanxuanSpecialItemById(specialId)
+	if e != nil {
+		err = errors.New("GetYanxuanSpecialFollowUserById, Err: " + e.Error())
+		return
+	}
+	var allInUserId string
+	for _, v := range followers {
+		allInUserId += strconv.Itoa(v) + ","
+	}
+
+	allInUserId = strings.TrimRight(allInUserId, ",")
+
+	userList, err := models.GetWxUserListByUserIds(allInUserId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+
+	mobile := ``
+
+	for _, v := range userList {
+		mobile += v.Mobile + ","
+	}
+
+	mobile = strings.TrimRight(mobile, ",")
+
+
+	openIdList, e := models.GetWxOpenIdByMobileList(mobile)
+	if e != nil {
+		err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+		return
+	}
+
+
+	//first =
+	keyword1 = "研选专栏:" + specialItem.SpecialName
+	keyword2 = "发布了新内容,点击查看详情"
+	keyword3 = "-"
 	//keyword4 = "【" + activityInfo.ResearchTheme + "】已有10人预报名"
-	//openIdArr := make([]string, 0)
-	//for _, v := range openIdList {
-	//	openIdArr = append(openIdArr, v.OpenId)
-	//}
-	//redirectUrl := utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(activityId)
-	//sendInfo := new(SendWxTemplate)
-	//sendInfo.First = first
-	//sendInfo.Keyword1 = keyword1
-	//sendInfo.Keyword2 = keyword2
-	//sendInfo.Keyword3 = keyword3
-	//sendInfo.Keyword4 = keyword4
-	//sendInfo.Remark = remark
-	//sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
-	//sendInfo.RedirectUrl = redirectUrl
-	//sendInfo.RedirectTarget = 3
-	//sendInfo.Resource = strconv.Itoa(activityId)
-	//sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
-	//sendInfo.OpenIdArr = openIdArr
-	//err = PublicSendTemplateMsg(sendInfo)
-	//if err != nil {
-	//	return
-	//}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl := utils.WX_MSG_PATH_YX_SPECIAL_DETAIL + strconv.Itoa(specialId)
+	sendInfo := new(SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(specialId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
+	return
+}
+
+// SendReviewTemplateMsgAdmin 提交审核时给王芳,汪洋发消息
+func SendReviewTemplateMsgAdmin(specialId int) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("处理试用申请给王芳,汪洋发消息失败, ErrMsg: "+err.Error(), 3)
+		}
+	}()
+	var configCode string
+	//如果是研选的就推送给汪洋跟王芳,否则就推送给王芳
+	configCode = utils.TPL_MSG_WANG_FANG_WANG_YANG
+	cnf, e := models.GetConfigByCode(configCode)
+	if e != nil {
+		err = errors.New("GetConfigByCode, Err: " + e.Error() + configCode)
+		return
+	}
+	openIdList, e := models.GetUserRecordListByMobile(4, cnf.ConfigValue)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetUserRecordListByMobile, Err: " + e.Error() + cnf.ConfigValue)
+		return err
+	}
+	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 && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
+		return err
+	}
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var remark string
+	keyword1 = specialItem.RealName + "【" +user.CompanyName+"】"
+	keyword2 = user.Mobile
+	keyword3 = time.Now().Format(utils.FormatDateTime)
+	keyword4 = "研选专栏提交了内容待审核"
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl := utils.WX_MSG_PATH_YX_SPECIAL_DETAIL + strconv.Itoa(specialId)
+	sendInfo := new(SendWxTemplate)
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(specialId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
 	return
 }

+ 8 - 7
utils/constants.go

@@ -173,13 +173,14 @@ const (
 
 // 模板消息地址路由
 const (
-	WX_MSG_PATH_ARTICLE_DETAIL           = "pageMy/reportDetail/reportDetail?id="            //文章详情模板消息地址
-	WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL  = "activityPages/specialDetail/specialDetail?id="   //专项调研活动模板消息地址
-	WX_MSG_PATH_ACTIVITY_INDUSTRYR_EPORT = "reportPages/IndustryReport/IndustryReport?id="   //产业文章列表模板消息地址
-	WX_MSG_PATH_ACTIVITY_DETAIL          = "activityPages/activityDetail/activityDetail?id=" //活动模板消息地址
-	WX_MSG_PATH_APPLY_DETAIL             = "pages-message/applyFor/applyFor?id="             //潜在用户试用权限申请
-	WX_MSG_PATH_YX_SURVEY_DETAIL         = "pages-purchaser/survey/surveyDetail?surveyId="   //用户提交研选调研需求
-	WX_MSG_PATH_APPLY_COLLECTION_DETAIL  = "reportPages/bulletinDetail/bulletinDetail?id="   //精选看板申请详情页
+	WX_MSG_PATH_ARTICLE_DETAIL           = "pageMy/reportDetail/reportDetail?id="                  //文章详情模板消息地址
+	WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL  = "activityPages/specialDetail/specialDetail?id="         //专项调研活动模板消息地址
+	WX_MSG_PATH_ACTIVITY_INDUSTRYR_EPORT = "reportPages/IndustryReport/IndustryReport?id="         //产业文章列表模板消息地址
+	WX_MSG_PATH_ACTIVITY_DETAIL          = "activityPages/activityDetail/activityDetail?id="       //活动模板消息地址
+	WX_MSG_PATH_APPLY_DETAIL             = "pages-message/applyFor/applyFor?id="                   //潜在用户试用权限申请
+	WX_MSG_PATH_YX_SURVEY_DETAIL         = "pages-purchaser/survey/surveyDetail?surveyId="         //用户提交研选调研需求
+	WX_MSG_PATH_APPLY_COLLECTION_DETAIL  = "reportPages/bulletinDetail/bulletinDetail?id="         //精选看板申请详情页
+	WX_MSG_PATH_YX_SPECIAL_DETAIL        = "pages-purchaser/noteAndViewpoint/noteAndViewpoint?id=" //研选专栏详情页
 )
 
 // 微信模板消息推送公共接口的秘钥