|
@@ -2,12 +2,16 @@ package report
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
+ logger "eta_mini_ht_api/common/component/log"
|
|
|
"eta_mini_ht_api/common/exception"
|
|
|
"eta_mini_ht_api/common/utils/page"
|
|
|
+ stringUtils "eta_mini_ht_api/common/utils/string"
|
|
|
"eta_mini_ht_api/controllers"
|
|
|
+ reportService "eta_mini_ht_api/domian/report"
|
|
|
"eta_mini_ht_api/service/report"
|
|
|
"eta_mini_ht_api/service/user"
|
|
|
"fmt"
|
|
|
+ "strings"
|
|
|
)
|
|
|
|
|
|
type ReportController struct {
|
|
@@ -26,25 +30,31 @@ func (r *ReportController) Search(key string) {
|
|
|
r.FailedResult("分页搜索报告列表失败", result)
|
|
|
return
|
|
|
}
|
|
|
- pageReq := page.Page{
|
|
|
+ pageRes := page.Page{
|
|
|
Current: r.PageInfo.Current,
|
|
|
PageSize: r.PageInfo.PageSize,
|
|
|
}
|
|
|
if r.PageInfo.LatestId == 0 {
|
|
|
- pageReq.LatestId = report.SearchMaxReportId()
|
|
|
- r.PageInfo.LatestId = pageReq.LatestId
|
|
|
+ pageRes.LatestId = report.SearchMaxReportId()
|
|
|
+ pageRes.Total = pageRes.LatestId
|
|
|
+ r.PageInfo.LatestId = pageRes.LatestId
|
|
|
+ r.PageInfo.Total = pageRes.Total
|
|
|
} else {
|
|
|
- pageReq.LatestId = r.PageInfo.LatestId
|
|
|
+ pageRes.LatestId = r.PageInfo.LatestId
|
|
|
+ pageRes.Total = r.PageInfo.Total
|
|
|
}
|
|
|
- pageReq.Total = pageReq.LatestId
|
|
|
- list, err := report.SearchReportList(key, r.PageInfo)
|
|
|
- if err != nil {
|
|
|
- r.FailedResult("分页搜索报告列表失败", result)
|
|
|
- return
|
|
|
+ pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
|
|
|
+ list := make([]reportService.ReportDTO, 0)
|
|
|
+ if pageRes.LatestId > 0 {
|
|
|
+ list, err = report.SearchReportList(key, r.PageInfo)
|
|
|
+ if err != nil {
|
|
|
+ r.FailedResult("分页搜索报告列表失败", result)
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
reports := new(page.PageResult)
|
|
|
reports.Data = list
|
|
|
- reports.Page = pageReq
|
|
|
+ reports.Page = pageRes
|
|
|
r.SuccessResult("分页搜索报告列表成功", reports, result)
|
|
|
return
|
|
|
})
|
|
@@ -54,50 +64,92 @@ func (r *ReportController) Search(key string) {
|
|
|
// @Description 获取报告列表
|
|
|
// @Success 200 {object}
|
|
|
// @router /list [get]
|
|
|
-func (r *ReportController) List() {
|
|
|
+func (r *ReportController) List(permissionIds string) {
|
|
|
controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
|
|
|
result = r.InitWrapData("分页查询报告列表失败")
|
|
|
- pageReq := page.Page{
|
|
|
+ pageRes := page.Page{
|
|
|
Current: r.PageInfo.Current,
|
|
|
PageSize: r.PageInfo.PageSize,
|
|
|
}
|
|
|
+ permissionIdList, err := transPermissionIds(permissionIds)
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("品种列表解析错误:%v", err)
|
|
|
+ r.FailedResult("分页查询报告列表失败", result)
|
|
|
+ err = exception.New(exception.QueryReportPageFailed)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var reportOrgIds []int
|
|
|
if r.PageInfo.LatestId == 0 {
|
|
|
- pageReq.LatestId = report.GetTotalPageCount()
|
|
|
- r.PageInfo.LatestId = pageReq.LatestId
|
|
|
+ pageRes.Total, pageRes.LatestId, reportOrgIds = report.GetTotalPageCountByPermissionIds(permissionIdList)
|
|
|
+ r.PageInfo.LatestId = pageRes.LatestId
|
|
|
} else {
|
|
|
- pageReq.LatestId = r.PageInfo.LatestId
|
|
|
+ pageRes.LatestId = r.PageInfo.LatestId
|
|
|
+ pageRes.Total = r.PageInfo.Total
|
|
|
}
|
|
|
- pageReq.Total = pageReq.LatestId
|
|
|
- list, err := report.GetReportPage(r.PageInfo)
|
|
|
+ pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
|
|
|
+ list, err := report.GetReportPage(r.PageInfo, reportOrgIds)
|
|
|
if err != nil {
|
|
|
r.FailedResult("分页查询报告列表失败", result)
|
|
|
return
|
|
|
}
|
|
|
reports := new(page.PageResult)
|
|
|
reports.Data = list
|
|
|
- reports.Page = pageReq
|
|
|
+ reports.Page = pageRes
|
|
|
r.SuccessResult("查询报告列表成功", reports, result)
|
|
|
return
|
|
|
})
|
|
|
}
|
|
|
+func transPermissionIds(permissionIds string) (permissionIdList []int, err error) {
|
|
|
+ if strings.HasPrefix(permissionIds, ",") {
|
|
|
+ permissionIds = permissionIds[1:len(permissionIds)]
|
|
|
+ }
|
|
|
+ if strings.HasSuffix(permissionIds, ",") {
|
|
|
+ permissionIds = permissionIds[0 : len(permissionIds)-1]
|
|
|
+ }
|
|
|
+ if permissionIds == "" {
|
|
|
+ permissionIdList = []int{}
|
|
|
+ } else {
|
|
|
+ permissionIdList, err = stringUtils.StringToIntSlice(strings.Split(permissionIds, ","))
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
|
|
|
// HotRanked @Title 获取本周最热的报告列表
|
|
|
// @Description 获取本周最热的报告列表
|
|
|
// @Success 200 {object}
|
|
|
// @router /hotRankedList [get]
|
|
|
-func (r *ReportController) HotRanked() {
|
|
|
+func (r *ReportController) HotRanked(permissionIds string, limit int) {
|
|
|
controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
|
|
|
- limit, _ := r.GetInt("size")
|
|
|
if limit <= 0 {
|
|
|
limit = 3
|
|
|
}
|
|
|
result = r.InitWrapData("获取本周最热报告列表失败")
|
|
|
list, err := report.GetRandedReportByWeeklyHot(limit)
|
|
|
+ permissionIdList, err := transPermissionIds(permissionIds)
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("品种列表解析错误:%v", err)
|
|
|
+ r.FailedResult("分页查询报告列表失败", result)
|
|
|
+ err = exception.New(exception.QueryReportPageFailed)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ filterList := make([]report.HotRankedReport, 0)
|
|
|
+ if len(permissionIdList) > 0 {
|
|
|
+ for _, item := range list {
|
|
|
+ for _, permissionId := range permissionIdList {
|
|
|
+ if _, ok := item.Permissions[permissionId]; ok {
|
|
|
+ filterList = append(filterList, item)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ filterList = list
|
|
|
+ }
|
|
|
if err != nil {
|
|
|
r.FailedResult("获取本周最热报告列表成功", result)
|
|
|
return
|
|
|
}
|
|
|
- r.SuccessResult("获取本周最热报告列表成功", list, result)
|
|
|
+ r.SuccessResult("获取本周最热报告列表成功", filterList, result)
|
|
|
return
|
|
|
})
|
|
|
}
|
|
@@ -106,11 +158,14 @@ func (r *ReportController) HotRanked() {
|
|
|
// @Description 获取最新发布的报告列表
|
|
|
// @Success 200 {object}
|
|
|
// @router /publishRankedList [get]
|
|
|
-func (r *ReportController) PublishRanked() {
|
|
|
+func (r *ReportController) PublishRanked(limit int, week bool) {
|
|
|
controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
|
|
|
result = r.InitWrapData("获取最新发布报告列表失败")
|
|
|
+ if limit <= 0 {
|
|
|
+ limit = 3
|
|
|
+ }
|
|
|
//获取最新的报告列表
|
|
|
- list, err := report.GetRandedReportByPublishTime()
|
|
|
+ list, err := report.GetRandedReportByPublishTimeWeekly(limit, week)
|
|
|
if err != nil {
|
|
|
r.FailedResult("获取最新发布报告列表失败", result)
|
|
|
return
|
|
@@ -121,36 +176,37 @@ func (r *ReportController) PublishRanked() {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-// AnalystReportList @Title 获取最新发布的报告列表
|
|
|
-// @Description 获取最新发布的报告列表
|
|
|
+// AnalystReportList @Title 获取研究员报告列表
|
|
|
+// @Description 获取研究员报告列表
|
|
|
// @Success 200 {object}
|
|
|
// @router /AnalystReportList [get]
|
|
|
-func (r *ReportController) AnalystReportList(authorId int) {
|
|
|
- controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
|
|
|
- result = r.InitWrapData("分页获取研究员报告列表失败")
|
|
|
- pageReq := page.Page{
|
|
|
- Current: r.PageInfo.Current,
|
|
|
- PageSize: r.PageInfo.PageSize,
|
|
|
- }
|
|
|
- if r.PageInfo.LatestId == 0 {
|
|
|
- pageReq.LatestId = report.GetTotalPageCount()
|
|
|
- r.PageInfo.LatestId = pageReq.LatestId
|
|
|
- } else {
|
|
|
- pageReq.LatestId = r.PageInfo.LatestId
|
|
|
- }
|
|
|
- pageReq.Total = pageReq.LatestId
|
|
|
- list, err := report.GetReportPage(r.PageInfo)
|
|
|
- if err != nil {
|
|
|
- r.FailedResult("分页查询报告列表失败", result)
|
|
|
- return
|
|
|
- }
|
|
|
- reports := new(page.PageResult)
|
|
|
- reports.Data = list
|
|
|
- reports.Page = pageReq
|
|
|
- r.SuccessResult("查询报告列表成功", reports, result)
|
|
|
- return
|
|
|
- })
|
|
|
-}
|
|
|
+//func (r *ReportController) AnalystReportList(authorId int) {
|
|
|
+// controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
|
|
|
+// result = r.InitWrapData("分页获取研究员报告列表失败")
|
|
|
+// pageRes := page.Page{
|
|
|
+// Current: r.PageInfo.Current,
|
|
|
+// PageSize: r.PageInfo.PageSize,
|
|
|
+// }
|
|
|
+// if r.PageInfo.LatestId == 0 {
|
|
|
+// pageRes.LatestId, _ = report.GetTotalPageCount([]int{})
|
|
|
+// r.PageInfo.LatestId = pageRes.LatestId
|
|
|
+// } else {
|
|
|
+// pageRes.LatestId = r.PageInfo.LatestId
|
|
|
+// }
|
|
|
+// pageRes.Total = pageRes.LatestId
|
|
|
+// pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
|
|
|
+// list, err := report.GetReportPageByAlayyst(r.PageInfo)
|
|
|
+// if err != nil {
|
|
|
+// r.FailedResult("分页查询报告列表失败", result)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// reports := new(page.PageResult)
|
|
|
+// reports.Data = list
|
|
|
+// reports.Page = pageRes
|
|
|
+// r.SuccessResult("查询报告列表成功", reports, result)
|
|
|
+// return
|
|
|
+// })
|
|
|
+//}
|
|
|
|
|
|
// GetPermissions @Title 获取品种列表
|
|
|
// @Description 获取最新发布的报告列表
|
|
@@ -171,8 +227,8 @@ func (r *ReportController) GetPermissions() {
|
|
|
}
|
|
|
|
|
|
type RecordCountReq struct {
|
|
|
- ReportId int `json:"report_id"`
|
|
|
- IpAddress string `json:"ip_address"`
|
|
|
+ ReportId int `json:"reportId"`
|
|
|
+ IpAddress string `json:"ipAddress"`
|
|
|
Location string `json:"location"`
|
|
|
Referer string `json:"referer"`
|
|
|
Additional interface{} `json:"additional"`
|