Browse Source

Merge branch 'cygx/mfyx_3.1' of http://8.136.199.33:3000/hongze/hz_crm_api

xingzai 11 months ago
parent
commit
57a1cbf215

+ 2 - 0
controllers/cygx/activity.go

@@ -810,6 +810,7 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 				go cygxService.YiDongSaveRoadshowDetail(v)
 				go cygxService.YanXuanActivityPointsBillActivityPublishAndCancel(v, AdminUser.AdminId, 1) //活动发布以及取消发布处理研选扣
 				go elastic.AddComprehensiveActivity(v)
+				go cygxService.MakeActivityMomentsImg(v) //生成活动分享到朋友圈的图片
 				//}()
 			}
 			go cygxService.MakeActivitySigninImg(v)
@@ -821,6 +822,7 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 			go cygxService.YanXuanActivityPointsBillActivityPublishAndCancel(activityId, AdminUser.AdminId, 1) //活动发布以及取消发布处理研选扣点
 		}
 		cygxService.UpdateActivityResourceData(req.ActivityId) //写入首页最新  cygx_resource_data 表
+		go cygxService.MakeActivityMomentsImg(req.ActivityId)  //生成活动分享到朋友圈的图片
 		//如果二次编辑的时候,取消了易董办会选项,那么就对易董发送取消发布到广场的通知
 		if req.IsYidongConduct == 0 {
 			go cygxService.YiDongUpdateActivityStatus(activityId)

+ 1 - 0
controllers/cygx/summary_manage.go

@@ -318,6 +318,7 @@ func (this *SummaryManage) PreserveAndPublish() {
 	}
 	go elastic.AddComprehensiveArticle(item.ArticleId)       // ES添加文章:报告、纪要
 	go cygxService.UpdateArticleResourceData(item.ArticleId) //写入首页最新  cygx_resource_data 表
+	go cygxService.MakeArticleMomentsImg(item.ArticleId)     //生成文章分享到朋友圈的图片
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"

+ 8 - 0
models/cygx/activity.go

@@ -722,3 +722,11 @@ func UpdateActivityTopTime(activityId, topTime int) (err error) {
 	_, err = o.Raw(sql, topTime, activityId).Exec()
 	return
 }
+
+// 添加朋友圈分享封面图片
+func UpdateCygxActivityMomentsImg(momentsImg string, activityId int) (err error) {
+	sql := `UPDATE cygx_activity SET  moments_img=?  WHERE activity_id=? `
+	o := orm.NewOrmUsingDB("hz_cygx")
+	_, err = o.Raw(sql, momentsImg, activityId).Exec()
+	return
+}

+ 10 - 1
models/cygx/summary_manage.go

@@ -131,6 +131,7 @@ type CygxArticleResp struct {
 	SubCategoryName    string    `description:"主题名称"`
 	LinkArticleId      int       `description:"报告ID链接"`
 	NickName           string    `description:"作者昵称"`
+	HeadImgUrl         string    `description:"作者头像"`
 	SubjectIds         string    `description:"报告所关联的标的"`
 	AdminId            int       `description:"销售/管理员ID"`
 	AdminName          string    `description:"销售/管理员姓名"`
@@ -205,7 +206,7 @@ func GetArticleIdInfoBySummaryManageId(summaryManageId int) (item *CygxArticleRe
 // 通过文章ID获取文章、以及所关联的标的详情
 func GetArticleInfoOtherByArticleId(articleId int) (item *CygxArticleResp, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
-	sql := `SELECT art.* ,dm.nick_name  FROM cygx_article as art 
+	sql := `SELECT art.* ,dm.nick_name ,dm.img_url as head_img_url   FROM cygx_article as art 
 			LEFT JOIN cygx_article_department as dm ON dm.department_id = art.department_id  WHERE article_id=? `
 	err = o.Raw(sql, articleId).QueryRow(&item)
 	return
@@ -592,3 +593,11 @@ func UpdateArticleTopTime(activityId, topTime int) (err error) {
 	_, err = o.Raw(sql, topTime, activityId).Exec()
 	return
 }
+
+// 添加朋友圈分享封面图片
+func UpdateCygxArticleMomentsImg(momentsImg string, articleId int) (err error) {
+	sql := `UPDATE cygx_article SET  moments_img=?  WHERE article_id=? `
+	o := orm.NewOrmUsingDB("hz_cygx")
+	_, err = o.Raw(sql, momentsImg, articleId).Exec()
+	return
+}

+ 77 - 0
services/cygx/activity_poster.go

@@ -328,3 +328,80 @@ func MakeCygxMp4HtmlImg(videoDuration string) (imgUrl string, err error) {
 	imgUrl = res.Data
 	return
 }
+
+//func init() {
+//	//MakeActivityMomentsImg(2850)
+//	var condition string
+//	var pars []interface{}
+//	condition = " AND   chart_permission_id  = 31  AND  publish_status   = 1   AND active_state  = 1  ORDER BY  activity_id DESC   "
+//	list, errList := cygx.GetActivityListAll(condition, pars, 0, 9999)
+//	if errList != nil {
+//		fmt.Println(errList)
+//		return
+//	}
+//	fmt.Println("list", len(list))
+//
+//	//return
+//	for _, v := range list {
+//		MakeActivityMomentsImg(v.ActivityId)
+//	}
+//
+//}
+
+// 生成活动分享到朋友圈的图片
+func MakeActivityMomentsImg(activityId int) {
+	var err error
+	//time.Sleep(3*time.Second) // 有时候同时添加多个活动,延迟三秒
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err)
+			go alarm_msg.SendAlarmMsg("生成活动分享到朋友圈的图片失败,MakeActivityMomentsImg Err:"+err.Error()+"活动ID"+strconv.Itoa(activityId), 3)
+		}
+	}()
+	detail, e := cygx.GetAddActivityInfoById(activityId)
+	if e != nil {
+		err = errors.New("GetCygxReportSelectionInfoById, Err: " + e.Error())
+		return
+	}
+
+	// 不是研选活动不生成图片
+	if detail.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		return
+	}
+	var configCode string
+	if detail.IsResearchPoints == 1 {
+		configCode = "activity_moments_img_points_html" // 扣点活动
+	} else {
+		configCode = "activity_moments_img_html" // 非扣点活动
+	}
+
+	detailConfig, e := cygx.GetCygxConfigDetailByCode(configCode)
+	if e != nil {
+		err = errors.New("GetCygxConfigDetailByCode 获取生成活动分享到朋友圈的图片格式信息失败, Err: " + e.Error())
+		return
+	}
+	configValue := detailConfig.ConfigValue
+	configValue = strings.Replace(configValue, "{{Title}}", detail.ActivityName, -1)
+	configValue = strings.Replace(configValue, "{{ActivityTypeName}}", detail.ActivityTypeName, -1)
+	configValue = strings.Replace(configValue, "{{Label}}", detail.Label, -1)
+	configValue = strings.Replace(configValue, "{{ActivityTimeText}}", detail.ActivityTimeText, -1)
+	htm2ImgReq := make(map[string]interface{})
+	htm2ImgReq["html_content"] = configValue
+	htm2ImgReq["width"] = 2250
+	htm2ImgReq["height"] = 3813
+	res, err := postHtml2Img(htm2ImgReq)
+	if err != nil || res == nil {
+		err = errors.New("html转图片失败: " + res.Msg)
+		return
+	}
+	if res.Code != 200 {
+		err = errors.New("html转图片失败: " + res.Msg)
+		return
+	}
+	imgUrl := res.Data
+	// 记录海报信息
+	err = cygx.UpdateCygxActivityMomentsImg(imgUrl, activityId)
+	if err != nil {
+		return
+	}
+}

+ 70 - 0
services/cygx/research_summary.go

@@ -1,6 +1,7 @@
 package cygx
 
 import (
+	"errors"
 	"fmt"
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/cygx"
@@ -583,3 +584,72 @@ func DoXzsChooseSend(chartPermissionName string) string {
 	}
 	return allIn
 }
+
+//func init() {
+//	//MakeArticleMomentsImg(1000408)
+//	var condition string
+//	var pars []interface{}
+//	condition = " AND   article_type_id  > 0   AND  publish_status   = 1   ORDER BY  article_id  DESC "
+//	list, errList := cygx.GetCygxArticleList(condition, pars, 0, 999)
+//	if errList != nil {
+//		fmt.Println(errList)
+//		return
+//	}
+//	fmt.Println("list", len(list))
+//	//return
+//	for k, v := range list {
+//		fmt.Println(k)
+//		MakeArticleMomentsImg(v.ArticleId)
+//	}
+//}
+
+// 生成文章分享到朋友圈的图片
+func MakeArticleMomentsImg(articleId int) {
+	var err error
+	//time.Sleep(3*time.Second) // 有时候同时添加多个活动,延迟三秒
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err)
+			go alarm_msg.SendAlarmMsg("生成文章分享到朋友圈的图片,MakeArticleMomentsImg Err:"+err.Error()+"文章ID"+strconv.Itoa(articleId), 3)
+		}
+	}()
+	articleInfo, e := cygx.GetArticleInfoOtherByArticleId(articleId)
+	if e != nil {
+		err = errors.New("GetArticleInfoOtherByArticleId, Err: " + e.Error())
+		return
+	}
+
+	configCode := "article_moments_img_html"
+	detailConfig, e := cygx.GetCygxConfigDetailByCode(configCode)
+	if e != nil {
+		err = errors.New("GetCygxConfigDetailByCode 获取生成文章分享到朋友圈的图片格式信息失败, Err: " + e.Error())
+		return
+	}
+	configValue := detailConfig.ConfigValue
+	configValue = strings.Replace(configValue, "{{Title}}", articleInfo.Title, -1)
+	configValue = strings.Replace(configValue, "{{HeadImgUrl}}", articleInfo.HeadImgUrl, -1)
+	configValue = strings.Replace(configValue, "{{NickName}}", articleInfo.NickName, -1)
+	configValue = strings.Replace(configValue, "{{PublishDate}}", articleInfo.PublishDate.Format(utils.FormatDateTime), -1)
+	configValue = strings.Replace(configValue, "{{Abstract}}", articleInfo.Abstract, -1)
+	configValue = strings.Replace(configValue, "{{BodyText}}", articleInfo.BodyText, -1)
+
+	htm2ImgReq := make(map[string]interface{})
+	htm2ImgReq["html_content"] = configValue
+	htm2ImgReq["width"] = 2250
+	htm2ImgReq["height"] = 3813
+	res, err := postHtml2Img(htm2ImgReq)
+	if err != nil || res == nil {
+		err = errors.New("html转图片失败: " + res.Msg)
+		return
+	}
+	if res.Code != 200 {
+		err = errors.New("html转图片失败: " + res.Msg)
+		return
+	}
+	imgUrl := res.Data
+	//fmt.Println(imgUrl)
+	// 记录海报信息
+	err = cygx.UpdateCygxArticleMomentsImg(imgUrl, articleId)
+	return
+
+}