|
@@ -362,8 +362,9 @@ func parseRiskLevel(level string) (int, error) {
|
|
|
return number, nil
|
|
|
}
|
|
|
|
|
|
-func SearchReportList(key string, Ids []int, pageInfo page.PageInfo, isLogin bool, userId int) (reports []reportService.ReportDTO, err error) {
|
|
|
+func SearchReportList(key string, Ids []int, pageInfo page.PageInfo, isLogin bool, userId int) (list []reportService.ReportDTO, err error) {
|
|
|
offset := page.StartIndex(pageInfo.Current, pageInfo.PageSize)
|
|
|
+ var reports []reportService.ReportDTO
|
|
|
reports, err = reportService.SearchReportList(key, Ids, offset, pageInfo.PageSize, pageInfo.LatestId)
|
|
|
var wg sync.WaitGroup
|
|
|
wg.Add(len(reports))
|
|
@@ -373,6 +374,9 @@ func SearchReportList(key string, Ids []int, pageInfo page.PageInfo, isLogin boo
|
|
|
report.Login = isLogin
|
|
|
report.PermissionNames = getReportPermissionNames(report.OrgId, report.Source)
|
|
|
permissions := getReportSecondPermissions(report.OrgId, report.Source)
|
|
|
+ if len(permissions) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
riskNum := getHighestRiskLevel(permissions)
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
|
var src string
|
|
@@ -395,27 +399,30 @@ func SearchReportList(key string, Ids []int, pageInfo page.PageInfo, isLogin boo
|
|
|
report.IsFree = false
|
|
|
report.IsSubscribe = false
|
|
|
}
|
|
|
- return
|
|
|
- }
|
|
|
- report.Price = product.Price.String()
|
|
|
- report.IsFree = false
|
|
|
- subscribe, subscribeErr := userService.GetUserSubscribe(product.Id, userId)
|
|
|
- if subscribeErr != nil {
|
|
|
- report.IsSubscribe = false
|
|
|
- return
|
|
|
- }
|
|
|
- report.IsSubscribe = subscribe.Status == userDao.SubscribeValid
|
|
|
- pdRiskNum, parseErr := parseRiskLevel(product.RiskLevel)
|
|
|
- if parseErr != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- rpRiskNum, parseErr := parseRiskLevel(report.RiskLevel)
|
|
|
- if parseErr != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- if rpRiskNum <= pdRiskNum {
|
|
|
- report.RiskLevel = product.RiskLevel
|
|
|
+ } else {
|
|
|
+ report.Price = product.Price.String()
|
|
|
+ report.IsFree = false
|
|
|
+ if isLogin {
|
|
|
+ subscribe, subscribeErr := userService.GetUserSubscribe(product.Id, userId)
|
|
|
+ if subscribeErr != nil {
|
|
|
+ report.IsSubscribe = false
|
|
|
+ } else {
|
|
|
+ report.IsSubscribe = subscribe.Status == userDao.SubscribeValid
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pdRiskNum, parseErr := parseRiskLevel(product.RiskLevel)
|
|
|
+ if parseErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rpRiskNum, parseErr := parseRiskLevel(report.RiskLevel)
|
|
|
+ if parseErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if rpRiskNum <= pdRiskNum {
|
|
|
+ report.RiskLevel = product.RiskLevel
|
|
|
+ }
|
|
|
}
|
|
|
+ list = append(list, *report)
|
|
|
}(&reports[i])
|
|
|
}
|
|
|
wg.Wait()
|
|
@@ -527,7 +534,8 @@ func RangeSearch(isLogin bool, userId int) (total int64, latestId int64, orgIds
|
|
|
}
|
|
|
|
|
|
// GetReportPage 分页获取报告列表
|
|
|
-func GetReportPage(pageInfo page.PageInfo, orgIds map[string][]int, searchAll bool, isLogin bool, userId int) (list []reportService.ReportDTO, err error) {
|
|
|
+func GetReportPage(pageInfo page.PageInfo, orgIds map[string][]int, searchAll bool, isLogin bool, userId int) (reports []reportService.ReportDTO, err error) {
|
|
|
+ var list []reportService.ReportDTO
|
|
|
list, err = reportService.GetReportPageByOrgIds(pageInfo, orgIds, searchAll)
|
|
|
//并发获取研报的标签
|
|
|
var wg sync.WaitGroup
|
|
@@ -538,6 +546,9 @@ func GetReportPage(pageInfo page.PageInfo, orgIds map[string][]int, searchAll bo
|
|
|
report.Login = isLogin
|
|
|
report.PermissionNames = getReportPermissionNames(report.OrgId, report.Source)
|
|
|
permissions := getReportSecondPermissions(report.OrgId, report.Source)
|
|
|
+ if len(permissions) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
riskNum := getHighestRiskLevel(permissions)
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
|
var src string
|
|
@@ -548,7 +559,6 @@ func GetReportPage(pageInfo page.PageInfo, orgIds map[string][]int, searchAll bo
|
|
|
} else {
|
|
|
report.CoverUrl = src
|
|
|
}
|
|
|
-
|
|
|
//下查询产品信息
|
|
|
product, pdErr := productService.GetProductBySourceId(report.ReportID, productDao.Report)
|
|
|
if pdErr != nil {
|
|
@@ -561,27 +571,30 @@ func GetReportPage(pageInfo page.PageInfo, orgIds map[string][]int, searchAll bo
|
|
|
report.IsFree = false
|
|
|
report.IsSubscribe = false
|
|
|
}
|
|
|
- return
|
|
|
- }
|
|
|
- report.Price = product.Price.String()
|
|
|
- report.IsFree = false
|
|
|
- subscribe, subscribeErr := userService.GetUserSubscribe(product.Id, userId)
|
|
|
- if subscribeErr != nil {
|
|
|
- report.IsSubscribe = false
|
|
|
- return
|
|
|
- }
|
|
|
- report.IsSubscribe = subscribe.Status == userDao.SubscribeValid
|
|
|
- pdRiskNum, parseErr := parseRiskLevel(product.RiskLevel)
|
|
|
- if parseErr != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- rpRiskNum, parseErr := parseRiskLevel(report.RiskLevel)
|
|
|
- if parseErr != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- if rpRiskNum <= pdRiskNum {
|
|
|
- report.RiskLevel = product.RiskLevel
|
|
|
+ } else {
|
|
|
+ report.Price = product.Price.String()
|
|
|
+ report.IsFree = false
|
|
|
+ if isLogin {
|
|
|
+ subscribe, subscribeErr := userService.GetUserSubscribe(product.Id, userId)
|
|
|
+ if subscribeErr != nil {
|
|
|
+ report.IsSubscribe = false
|
|
|
+ } else {
|
|
|
+ report.IsSubscribe = subscribe.Status == userDao.SubscribeValid
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pdRiskNum, parseErr := parseRiskLevel(product.RiskLevel)
|
|
|
+ if parseErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rpRiskNum, parseErr := parseRiskLevel(report.RiskLevel)
|
|
|
+ if parseErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if rpRiskNum <= pdRiskNum {
|
|
|
+ report.RiskLevel = product.RiskLevel
|
|
|
+ }
|
|
|
}
|
|
|
+ reports = append(reports, *report)
|
|
|
}(&list[i])
|
|
|
}
|
|
|
wg.Wait()
|
|
@@ -711,7 +724,12 @@ func GetRandedReportByWeeklyHot(limit int, isLogin bool, userId int, pdRiskLevel
|
|
|
report.Permissions = getReportPermissionsMap(report.OrgId, report.Source)
|
|
|
report.SecondPermission = getReportSecondPermissionsMap(report.OrgId, report.Source)
|
|
|
permissions := getReportSecondPermissions(report.OrgId, report.Source)
|
|
|
- riskNum := getHighestRiskLevel(permissions)
|
|
|
+ var riskNum int
|
|
|
+ if len(permissions) == 0 {
|
|
|
+ riskNum = 0
|
|
|
+ } else {
|
|
|
+ riskNum = getHighestRiskLevel(permissions)
|
|
|
+ }
|
|
|
if report.RiskLevel == "" {
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
|
} else {
|
|
@@ -729,13 +747,16 @@ func GetRandedReportByWeeklyHot(limit int, isLogin bool, userId int, pdRiskLevel
|
|
|
for _, permission := range report.Permissions {
|
|
|
label = append(label, permission)
|
|
|
}
|
|
|
-
|
|
|
report.PermissionNames = label
|
|
|
}(&filterList[i])
|
|
|
}
|
|
|
wg.Wait()
|
|
|
reports = make([]HotRankedReport, len(ids))
|
|
|
for i := 0; i < len(filterList); i++ {
|
|
|
+ risk, parseErr := parseRiskLevel(filterList[i].RiskLevel)
|
|
|
+ if parseErr != nil || risk == 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
report := convertToHotRankedReport(filterList[i])
|
|
|
for j := 0; j < len(hotReports); j++ {
|
|
|
if hotReports[j].ReportId == report.Id {
|
|
@@ -837,8 +858,13 @@ func GetRandedReportByPublishTimeWeekly(limit int, week bool, isLogin bool, user
|
|
|
report.Permissions = getReportPermissionsMap(report.OrgId, report.Source)
|
|
|
report.SecondPermission = getReportSecondPermissionsMap(report.OrgId, report.Source)
|
|
|
report.PermissionNames = getReportPermissionNames(report.OrgId, report.Source)
|
|
|
+ var riskNum int
|
|
|
permissions := getReportSecondPermissions(report.OrgId, report.Source)
|
|
|
- riskNum := getHighestRiskLevel(permissions)
|
|
|
+ if len(permissions) == 0 {
|
|
|
+ riskNum = 0
|
|
|
+ } else {
|
|
|
+ riskNum = getHighestRiskLevel(permissions)
|
|
|
+ }
|
|
|
if report.RiskLevel == "" {
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
|
} else {
|
|
@@ -918,6 +944,10 @@ func convertToHotRankedReport(dto reportService.ReportDTO) (report HotRankedRepo
|
|
|
func convertToPublishRankedReportList(dtoList []reportService.ReportDTO) (reports []PublishRankedReport) {
|
|
|
reports = []PublishRankedReport{}
|
|
|
for _, dto := range dtoList {
|
|
|
+ risk, err := parseRiskLevel(dto.RiskLevel)
|
|
|
+ if err != nil || risk == 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
src, err := mediaService.GetImageSrc(dto.CoverSrc)
|
|
|
if err != nil {
|
|
|
logger.Error("获取封面图片失败:%v", err)
|