|
@@ -1,6 +1,7 @@
|
|
|
package report
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"hongze/hongze_yb/global"
|
|
@@ -13,9 +14,13 @@ import (
|
|
|
"hongze/hongze_yb/models/tables/rddp/report"
|
|
|
"hongze/hongze_yb/models/tables/rddp/report_chapter"
|
|
|
"hongze/hongze_yb/models/tables/report_chapter_type"
|
|
|
+ "hongze/hongze_yb/models/tables/report_chapter_type_permission"
|
|
|
"hongze/hongze_yb/services/company"
|
|
|
+ elasticService "hongze/hongze_yb/services/elastic"
|
|
|
"hongze/hongze_yb/services/user"
|
|
|
"hongze/hongze_yb/utils"
|
|
|
+ "html"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
func GetLatestClassReport(permissionIds []int, userId uint64) (purchaseList []*purchase.PurchaseListItem, err error) {
|
|
@@ -482,7 +487,7 @@ func GetCollectReportList(user user.UserInfo, chartPermissionId, pageIndex, page
|
|
|
}
|
|
|
|
|
|
// 查询晨报和周报相对应的章节ID
|
|
|
- reportChapterTypeIds, err := report_chapter_type.GetTypeIDByReportChapterTypeName(permissionInfo.PermissionName)
|
|
|
+ reportChapterTypeIds, err := report_chapter_type_permission.GetTypeIdsByChartPermissionId(chartPermissionId)
|
|
|
if err != nil {
|
|
|
errMsg = err.Error()
|
|
|
err = errors.New("查询权限对应的章节出错")
|
|
@@ -510,4 +515,66 @@ func GetCollectReportList(user user.UserInfo, chartPermissionId, pageIndex, page
|
|
|
ret.List = reportList
|
|
|
ret.Paging = response.GetPaging(pageIndex, pageSize, int(total))
|
|
|
return
|
|
|
+}
|
|
|
+
|
|
|
+func SearchReport(user user.UserInfo, keyWord string, pageIndex, pageSize int)(ret *response.ReportCollectResp, err error) {
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ global.LOG.Critical(fmt.Sprintf("SearchReport: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ searchResp, total, err := elasticService.SearchReport(keyWord, pageIndex, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("查询失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var reportList []*response.ReportCollectListItem
|
|
|
+ if searchResp.Hits != nil {
|
|
|
+ for _, v := range searchResp.Hits.Hits {
|
|
|
+ temp := new(response.ReportCollectListItem)
|
|
|
+ itemJson, tmpErr := v.Source.MarshalJSON()
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = tmpErr.Error()
|
|
|
+ err = errors.New("解析出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ reportItem := new(response.EsReportItem)
|
|
|
+ tmpErr = json.Unmarshal(itemJson, &reportItem)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = tmpErr.Error()
|
|
|
+ err = errors.New("解析json出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ temp.ReportId = reportItem.ReportId
|
|
|
+ temp.ClassifyIdFirst = reportItem.ClassifyIdFirst
|
|
|
+ temp.ClassifyNameFirst = reportItem.ClassifyNameFirst
|
|
|
+ temp.ClassifyIdSecond = reportItem.ClassifyIdSecond
|
|
|
+ temp.ClassifyNameSecond = reportItem.ClassifyNameSecond
|
|
|
+ temp.Title = reportItem.Title
|
|
|
+ temp.ContentSub = reportItem.BodyContent
|
|
|
+ temp.PublishTime, err = time.Parse("2006-01-02 15:04:05", reportItem.PublishTime)
|
|
|
+ fmt.Println(*reportItem)
|
|
|
+ if len(v.Highlight["Title"]) > 0 {
|
|
|
+ temp.Title = v.Highlight["Title"][0]
|
|
|
+ }
|
|
|
+ if len(v.Highlight["BodyContent"]) > 0 {
|
|
|
+ temp.ContentSub = v.Highlight["BodyContent"][0]
|
|
|
+ }
|
|
|
+ if len(v.Highlight["Categories"]) > 0 {
|
|
|
+ if temp.ClassifyNameSecond != "" {
|
|
|
+ temp.ClassifyNameSecond = html.EscapeString("<font size='4.5' color='#473BFF'>"+temp.ClassifyNameSecond+"</font>")
|
|
|
+ }
|
|
|
+ if temp.ClassifyNameFirst != "" {
|
|
|
+ temp.ClassifyNameFirst = html.EscapeString("<font size='4.5' color='#473BFF'>"+temp.ClassifyNameFirst+"</font>")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ reportList = append(reportList, temp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ret = new(response.ReportCollectResp)
|
|
|
+ ret.List = reportList
|
|
|
+ ret.Paging = response.GetPaging(pageIndex, pageSize, int(total))
|
|
|
+ return
|
|
|
}
|