|
@@ -27,12 +27,32 @@ func (r *ReportController) Search(key string) {
|
|
|
r.FailedResult("分页搜索报告列表失败", result)
|
|
|
return
|
|
|
}
|
|
|
+ detailType := r.Data["detailType"].(string)
|
|
|
+ userInfo := r.Data["user"].(user.User)
|
|
|
pageRes := page.Page{
|
|
|
Current: r.PageInfo.Current,
|
|
|
PageSize: r.PageInfo.PageSize,
|
|
|
}
|
|
|
+ //获取当前可以被搜索的报告原始ID
|
|
|
+ var orgIds map[string][]int
|
|
|
+ //先要限制查询的id范围
|
|
|
+ pageRes.Total, pageRes.LatestId, orgIds = report.RangeSearch(isLogin(detailType), userInfo.Id)
|
|
|
+ reportIds, err := report.GetReportByIdListByOrgIds(orgIds)
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("获取报告原始ID列表失败:%v", err)
|
|
|
+ r.FailedResult("分页搜索报告列表失败", result)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(reportIds) == 0 {
|
|
|
+ reports := new(page.PageResult)
|
|
|
+ reports.Data = []reportService.ReportDTO{}
|
|
|
+ reports.Page = pageRes
|
|
|
+ logger.Info("没有可以查询的报告列表")
|
|
|
+ r.SuccessResult("分页搜索报告列表成功", reports, result)
|
|
|
+ return
|
|
|
+ }
|
|
|
if r.PageInfo.LatestId == 0 {
|
|
|
- pageRes.Total, pageRes.LatestId = report.SearchMaxReportId(key)
|
|
|
+ //pageRes.Total, pageRes.LatestId = report.SearchMaxReportId(key)
|
|
|
r.PageInfo.LatestId = pageRes.LatestId
|
|
|
r.PageInfo.Total = pageRes.Total
|
|
|
} else {
|
|
@@ -42,7 +62,7 @@ func (r *ReportController) Search(key string) {
|
|
|
pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
|
|
|
list := make([]reportService.ReportDTO, 0)
|
|
|
if pageRes.LatestId > 0 {
|
|
|
- list, err = report.SearchReportList(key, r.PageInfo)
|
|
|
+ list, err = report.SearchReportList(key, reportIds, r.PageInfo)
|
|
|
if err != nil {
|
|
|
r.FailedResult("分页搜索报告列表失败", result)
|
|
|
return
|
|
@@ -101,6 +121,7 @@ func (r *ReportController) List(permissionIds string) {
|
|
|
if len(permissionIdList) == 0 && len(reportOrgIds) > 0 {
|
|
|
err = exception.New(exception.UnknownError)
|
|
|
r.FailedResult("查询报告列表失败", result)
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
list, err := report.GetReportPage(r.PageInfo, reportOrgIds, false, isLogin(detailType))
|
|
@@ -136,19 +157,43 @@ func (r *ReportController) HotRanked(permissionIds string, limit int) {
|
|
|
limit = 3
|
|
|
}
|
|
|
result = r.InitWrapData("获取本周最热报告列表失败")
|
|
|
+ detailType := r.Data["detailType"].(string)
|
|
|
+ userInfo := r.Data["user"].(user.User)
|
|
|
+ //
|
|
|
+ permissionIdsWithRisk, err := report.RangePermissionIds(isLogin(detailType), userInfo.Id)
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("获取带有风险等级的品种列表错误:%v", err)
|
|
|
+ r.FailedResult("获取最热报告列表失败", result)
|
|
|
+ err = exception.New(exception.GetHotRandListFailed)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(permissionIdsWithRisk) == 0 {
|
|
|
+ r.SuccessResult("获取本周最热报告列表成功", []report.HotRankedReport{}, result)
|
|
|
+ return
|
|
|
+ }
|
|
|
list, err := report.GetRandedReportByWeeklyHot(limit)
|
|
|
//二级品种
|
|
|
permissionIdList, err := r.TransPermissionIds(permissionIds)
|
|
|
if err != nil {
|
|
|
logger.Error("品种列表解析错误:%v", err)
|
|
|
- r.FailedResult("分页查询报告列表失败", result)
|
|
|
- err = exception.New(exception.QueryReportPageFailed)
|
|
|
+ r.FailedResult("获取最热报告列表失败", result)
|
|
|
+ err = exception.New(exception.GetHotRandListFailed)
|
|
|
return
|
|
|
}
|
|
|
filterList := make([]report.HotRankedReport, 0)
|
|
|
if len(permissionIdList) > 0 {
|
|
|
+ //通过有权限的品种过滤查询品种
|
|
|
+ var filterPermissionIds []int
|
|
|
+ for _, permissionId := range permissionIdList {
|
|
|
+ for _, permissionIdWIthRisk := range permissionIdsWithRisk {
|
|
|
+ if permissionId == permissionIdWIthRisk {
|
|
|
+ filterPermissionIds = append(filterPermissionIds, permissionId)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
for _, item := range list {
|
|
|
- for _, permissionId := range permissionIdList {
|
|
|
+ for _, permissionId := range filterPermissionIds {
|
|
|
if _, ok := item.SecondPermissions[permissionId]; ok {
|
|
|
filterList = append(filterList, item)
|
|
|
break
|
|
@@ -156,7 +201,14 @@ func (r *ReportController) HotRanked(permissionIds string, limit int) {
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- filterList = list
|
|
|
+ for _, item := range list {
|
|
|
+ for _, permissionId := range permissionIdList {
|
|
|
+ if _, ok := item.SecondPermissions[permissionId]; ok {
|
|
|
+ filterList = append(filterList, item)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
if err != nil {
|
|
|
r.FailedResult("获取本周最热报告列表成功", result)
|
|
@@ -177,6 +229,20 @@ func (r *ReportController) PublishRanked(permissionIds string, limit int, week b
|
|
|
if limit <= 0 {
|
|
|
limit = 3
|
|
|
}
|
|
|
+ detailType := r.Data["detailType"].(string)
|
|
|
+ userInfo := r.Data["user"].(user.User)
|
|
|
+ //
|
|
|
+ permissionIdsWithRisk, err := report.RangePermissionIds(isLogin(detailType), userInfo.Id)
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("获取带有风险等级的品种列表错误:%v", err)
|
|
|
+ r.FailedResult("获取最新发布报告列表失败", result)
|
|
|
+ err = exception.New(exception.GetPublishedRandListFailed)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(permissionIdsWithRisk) == 0 {
|
|
|
+ r.SuccessResult("获取最新发布报告列表成功", []report.HotRankedReport{}, result)
|
|
|
+ return
|
|
|
+ }
|
|
|
//获取最新的报告列表
|
|
|
list, err := report.GetRandedReportByPublishTimeWeekly(limit, week)
|
|
|
if err != nil {
|
|
@@ -187,14 +253,25 @@ func (r *ReportController) PublishRanked(permissionIds string, limit int, week b
|
|
|
permissionIdList, err := r.TransPermissionIds(permissionIds)
|
|
|
if err != nil {
|
|
|
logger.Error("品种列表解析错误:%v", err)
|
|
|
- r.FailedResult("分页查询报告列表失败", result)
|
|
|
- err = exception.New(exception.QueryReportPageFailed)
|
|
|
+ r.FailedResult("获取最新发布报告列表失败", result)
|
|
|
+ err = exception.New(exception.GetPublishedRandListFailed)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
filterList := make([]report.PublishRankedReport, 0)
|
|
|
if len(permissionIdList) > 0 {
|
|
|
+ //通过有权限的品种过滤查询品种
|
|
|
+ var filterPermissionIds []int
|
|
|
+ for _, permissionId := range permissionIdList {
|
|
|
+ for _, permissionIdWIthRisk := range permissionIdsWithRisk {
|
|
|
+ if permissionId == permissionIdWIthRisk {
|
|
|
+ filterPermissionIds = append(filterPermissionIds, permissionId)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
for _, item := range list {
|
|
|
- for _, permissionId := range permissionIdList {
|
|
|
+ for _, permissionId := range filterPermissionIds {
|
|
|
if _, ok := item.SecondPermissions[permissionId]; ok {
|
|
|
filterList = append(filterList, item)
|
|
|
break
|
|
@@ -202,7 +279,14 @@ func (r *ReportController) PublishRanked(permissionIds string, limit int, week b
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- filterList = list
|
|
|
+ for _, item := range list {
|
|
|
+ for _, permissionId := range permissionIdList {
|
|
|
+ if _, ok := item.SecondPermissions[permissionId]; ok {
|
|
|
+ filterList = append(filterList, item)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
r.SuccessResult("获取最新发布报告列表成功", filterList, result)
|
|
|
return
|