Browse Source

temp commit

hsun 1 year ago
parent
commit
cafc83dda7

+ 66 - 55
controllers/smart_report/smart_report.go

@@ -102,8 +102,6 @@ func (this *SmartReportController) Add() {
 	}
 	resp := smart_report.FormatSmartReport2Item(item)
 
-	// TODO:ES操作
-
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"
@@ -200,11 +198,6 @@ func (this *SmartReportController) Edit() {
 	}
 	resp := smart_report.FormatSmartReport2Item(item)
 
-	// TODO:ES操作, 更新保存日志
-	go func() {
-
-	}()
-
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"
@@ -265,9 +258,9 @@ func (this *SmartReportController) Remove() {
 		return
 	}
 
-	// TODO:ES, 报告操作日志
+	// ES更新报告为未发布
 	go func() {
-
+		_ = smartReportService.SmartReportElasticUpsert(item.SmartReportId, 1)
 	}()
 
 	br.Ret = 200
@@ -388,9 +381,9 @@ func (this *SmartReportController) Publish() {
 		go smartReportService.SmartReportBuildVideoAndUpdate(item)
 	}
 
-	// TODO:ES操作, 操作日志
+	// ES更新报告
 	go func() {
-
+		_ = smartReportService.SmartReportElasticUpsert(item.SmartReportId, req.PublishState)
 	}()
 
 	br.Ret = 200
@@ -496,7 +489,7 @@ func (this *SmartReportController) PrePublish() {
 // @Description 消息推送
 // @Param	request	body models.SendTemplateMsgReq true "type json string"
 // @Success 200 Ret=200 推送成功
-// @router /sendMsg [post]
+// @router /send_msg [post]
 func (this *SmartReportController) SendMsg() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
@@ -540,62 +533,32 @@ func (this *SmartReportController) SendMsg() {
 	}
 
 	reportOB := new(smart_report.SmartReport)
-
-	report, e := models.GetReportById(req.ReportId)
+	item, e := reportOB.GetItemById(req.SmartReportId)
 	if e != nil {
-		br.Msg = "报告不存在或已被删除, 请刷新页面"
+		if e.Error() == utils.ErrNoRow() {
+			br.Msg = "报告不存在, 请刷新页面"
+			return
+		}
+		br.Msg = "操作失败"
 		br.ErrMsg = "获取报告失败, Err: " + e.Error()
 		return
 	}
-	if report.MsgIsSend == 1 && report.ThsMsgIsSend == 1 {
+	if item.MsgIsSend == 1 {
 		br.Msg = "消息已推送,请勿重复操作"
-		br.ErrMsg = "消息已推送,请勿重复操作"
-		return
-	}
-
-	// 更新报告发布时间
-	videoNameDate := `(` + time.Now().Format("0102") + `)`
-	if err = models.UpdateReportPublishTime(req.ReportId, videoNameDate); err != nil {
-		br.Msg = "修改报告发布时间失败"
-		br.ErrMsg = "修改发布时间失败,Err:" + err.Error()
-		return
-	}
-	if err = models.UpdateReportChapterPublishTime(req.ReportId, videoNameDate); err != nil {
-		br.Msg = "修改章节发布时间失败"
-		br.ErrMsg = "修改发布时间失败,Err:" + err.Error()
 		return
 	}
 
-	// 可能存在历史数据两个只推了一个所以此处加个判断
-	// 推送模板消息
-	if report.MsgIsSend == 0 {
-		go func() {
-			fmt.Println("推送模板消息:", req.ReportId)
-			_ = services.SendMiniProgramReportWxMsg(req.ReportId)
-		}()
-	}
-	// 推送客群消息
-	if report.ThsMsgIsSend == 0 {
-		go func() {
-			// 周报无客群消息
-			// 2023-3-19 15:19:24 现在开始周报又要推送了
-			//if report.HasChapter == 1 && report.ChapterType == utils.REPORT_TYPE_WEEK {
-			//	return
-			//}
-			_ = services.SendReportMiniToThs(report)
-		}()
-	}
-
-	// 更新推送消息状态
-	if err = models.ModifyReportMsgIsSendV2(req.ReportId); err != nil {
-		br.Msg = "推送失败"
-		br.ErrMsg = "更新报告消息状态失败, Err:" + err.Error()
+	item.MsgIsSend = 1
+	item.ModifyTime = time.Now().Local()
+	if e = item.Update([]string{"MsgIsSend", "ModifyTime"}); e != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "更新报告推送状态失败, Err: " + e.Error()
 		return
 	}
 
 	br.Ret = 200
 	br.Success = true
-	br.Msg = "推送成功"
+	br.Msg = "操作成功"
 	br.IsAddLog = true
 }
 
@@ -942,3 +905,51 @@ func (this *SmartReportController) List() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// DetailImg
+// @Title 生成长图
+// @Description 生成长图
+// @Param   SmartReportId	query	int	true	"智能研报ID"
+// @Success 200 {object} smart_report.SmartReportSaveContentResp
+// @router /detail_img [get]
+func (this *SmartReportController) DetailImg() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	reportId, _ := this.GetInt("SmartReportId", 0)
+	if reportId <= 0 {
+		br.Msg = "参数有误"
+		br.ErrMsg = fmt.Sprintf("参数有误, SmartReportId: %d", reportId)
+		return
+	}
+
+	reportOB := new(smart_report.SmartReport)
+	_, e := reportOB.GetItemById(reportId)
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			br.Msg = "报告不存在, 请刷新页面"
+			return
+		}
+		br.Msg = "操作失败"
+		br.ErrMsg = "获取报告失败, Err: " + e.Error()
+		return
+	}
+
+	// TODO:调用python服务生成长图
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+}

+ 17 - 0
models/smart_report/smart_report.go

@@ -284,3 +284,20 @@ type SmartReportListResp struct {
 	List   []*SmartReportItem
 	Paging *paging.PagingItem `description:"分页数据"`
 }
+
+// ElasticSmartReport 智能研报es
+type ElasticSmartReport struct {
+	SmartReportId      int    `description:"智能研报ID"`
+	Title              string `description:"标题"`
+	Abstract           string `description:"摘要"`
+	BodyContent        string `description:"内容"`
+	PublishTime        string `description:"发布时间"`
+	PublishState       int    `description:"发布状态 1-未发布 2-已发布"`
+	Author             string `description:"作者"`
+	ClassifyIdFirst    int    `description:"一级分类ID"`
+	ClassifyNameFirst  string `description:"一级分类名称"`
+	ClassifyIdSecond   int    `description:"二级分类ID"`
+	ClassifyNameSecond string `description:"二级分类名称"`
+	StageStr           string `description:"报告期数"`
+	Frequency          string `description:"频度"`
+}

+ 62 - 2
services/elastic.go

@@ -2,12 +2,13 @@ package services
 
 import (
 	"context"
-	"fmt"
-	"github.com/olivere/elastic/v7"
 	"eta/eta_api/models"
 	saModel "eta/eta_api/models/semantic_analysis"
+	"eta/eta_api/models/smart_report"
 	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/utils"
+	"fmt"
+	"github.com/olivere/elastic/v7"
 	"strings"
 )
 
@@ -267,3 +268,62 @@ func EsAddOrEditSaDoc(indexName, docId string, item *saModel.ElasticSaDoc) (err
 	fmt.Println("AddData", resp.Status, resp.Result)
 	return
 }
+
+// EsAddOrEditSmartReport 新增编辑es智能研报
+func EsAddOrEditSmartReport(indexName, docId string, item *smart_report.ElasticSmartReport) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("EsAddOrEditSmartReport Err:", err.Error())
+		}
+	}()
+	client, err := NewClient()
+	if err != nil {
+		return
+	}
+	// docId为报告ID
+	searchById, err := client.Get().Index(indexName).Id(docId).Do(context.Background())
+	if err != nil && !strings.Contains(err.Error(), "404") {
+		fmt.Println("Get Err" + err.Error())
+		return
+	}
+	if searchById != nil && searchById.Found {
+		resp, err := client.Update().Index(indexName).Id(docId).Doc(map[string]interface{}{
+			"SmartReportId":      item.SmartReportId,
+			"Title":              item.Title,
+			"Abstract":           item.Abstract,
+			"BodyContent":        item.BodyContent,
+			"PublishTime":        item.PublishTime,
+			"PublishState":       item.PublishState,
+			"Author":             item.Author,
+			"ClassifyIdFirst":    item.ClassifyIdFirst,
+			"ClassifyNameFirst":  item.ClassifyNameFirst,
+			"ClassifyIdSecond":   item.ClassifyIdSecond,
+			"ClassifyNameSecond": item.ClassifyNameSecond,
+			"StageStr":           item.StageStr,
+			"Frequency":          item.Frequency,
+		}).Do(context.Background())
+		if err != nil {
+			return err
+		}
+		//fmt.Println(resp.Status, resp.Result)
+		if resp.Status == 0 {
+			fmt.Println("修改成功" + docId)
+			err = nil
+		} else {
+			fmt.Println("EditData", resp.Status, resp.Result)
+		}
+	} else {
+		resp, err := client.Index().Index(indexName).Id(docId).BodyJson(item).Do(context.Background())
+		if err != nil {
+			fmt.Println("新增失败:", err.Error())
+			return err
+		}
+		if resp.Status == 0 && resp.Result == "created" {
+			fmt.Println("新增成功" + docId)
+			return nil
+		} else {
+			fmt.Println("AddData", resp.Status, resp.Result)
+		}
+	}
+	return
+}

+ 39 - 0
services/smart_report/smart_report.go

@@ -8,6 +8,8 @@ import (
 	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/utils"
 	"fmt"
+	"html"
+	"strconv"
 	"time"
 )
 
@@ -90,3 +92,40 @@ func UpdateSmartReportEditing(reportId, status, thisUserId int, thisUserName str
 	}
 	return
 }
+
+// SmartReportElasticUpsert 新增/编辑报告es
+func SmartReportElasticUpsert(smartReportId int, state int) (err error) {
+	if smartReportId <= 0 {
+		return
+	}
+
+	reportOB := new(smart_report.SmartReport)
+	item, e := reportOB.GetItemById(smartReportId)
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			// 可能被删了就直接忽略掉
+			return
+		}
+		err = fmt.Errorf("获取报告失败, Err: %s", e.Error())
+		return
+	}
+
+	esReport := new(smart_report.ElasticSmartReport)
+	esReport.SmartReportId = item.SmartReportId
+	esReport.Title = item.Title
+	esReport.Abstract = item.Abstract
+	esReport.BodyContent = utils.TrimHtml(html.UnescapeString(item.Content))
+	esReport.PublishTime = item.PublishTime.Format(utils.FormatDateTime)
+	esReport.PublishState = state
+	esReport.Author = item.Author
+	esReport.ClassifyIdFirst = item.ClassifyIdFirst
+	esReport.ClassifyNameFirst = item.ClassifyNameFirst
+	esReport.ClassifyIdSecond = item.ClassifyIdSecond
+	esReport.ClassifyNameSecond = item.ClassifyNameSecond
+	esReport.StageStr = strconv.Itoa(item.Stage)
+	esReport.Frequency = item.Frequency
+	if err = services.EsAddOrEditSmartReport(utils.EsReportIndexName, strconv.Itoa(item.SmartReportId), esReport); err != nil {
+		return
+	}
+	return
+}