|
@@ -13,6 +13,7 @@ import (
|
|
|
reportService "eta/eta_mini_ht_api/domian/report"
|
|
|
userService "eta/eta_mini_ht_api/domian/user"
|
|
|
productDao "eta/eta_mini_ht_api/models/merchant"
|
|
|
+ "eta/eta_mini_ht_api/service/config"
|
|
|
user "eta/eta_mini_ht_api/service/user"
|
|
|
"fmt"
|
|
|
"gorm.io/gorm"
|
|
@@ -130,7 +131,7 @@ func matchRiskLevel(userId int, report reportService.ReportDTO) (riskLevelMatch
|
|
|
return
|
|
|
}
|
|
|
//能够查看最高等级
|
|
|
- matchNum, err := parseRiskLevel(level.ProductRiskLevel)
|
|
|
+ matchNum, err := config.ParseRiskLevel(level.ProductRiskLevel)
|
|
|
if err != nil {
|
|
|
logger.Error("解析风险等级失败:%v", err)
|
|
|
return
|
|
@@ -142,7 +143,7 @@ func matchRiskLevel(userId int, report reportService.ReportDTO) (riskLevelMatch
|
|
|
}
|
|
|
//能够查看需要的最小等级
|
|
|
//num := getLowestRiskLevel(permissionDTOs)
|
|
|
- num := getHighestRiskLevel(permissionDTOs)
|
|
|
+ num := config.GetHighestRiskLevel(permissionDTOs)
|
|
|
riskLevel = fmt.Sprintf("R%d", num)
|
|
|
if num > matchNum {
|
|
|
riskLevelMatch = RiskLevelUnMatch
|
|
@@ -152,42 +153,9 @@ func matchRiskLevel(userId int, report reportService.ReportDTO) (riskLevelMatch
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
-func getHighestRiskLevel(permissions []permissionService.PermissionDTO) (riskLevelNum int) {
|
|
|
- for _, permission := range permissions {
|
|
|
- pRiskNum, err := parseRiskLevel(permission.RiskLevel)
|
|
|
- if err != nil {
|
|
|
- logger.Error("解析风险等级失败:%v", err)
|
|
|
- continue
|
|
|
- }
|
|
|
- if riskLevelNum == 0 {
|
|
|
- riskLevelNum = pRiskNum
|
|
|
- } else {
|
|
|
- if riskLevelNum < pRiskNum {
|
|
|
- riskLevelNum = pRiskNum
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-func getLowestRiskLevel(permissions []permissionService.PermissionDTO) (riskLevelNum int) {
|
|
|
- for _, permission := range permissions {
|
|
|
- pRiskNum, err := parseRiskLevel(permission.RiskLevel)
|
|
|
- if err != nil {
|
|
|
- logger.Error("解析风险等级失败:%v", err)
|
|
|
- continue
|
|
|
- }
|
|
|
- if riskLevelNum == 0 {
|
|
|
- riskLevelNum = pRiskNum
|
|
|
- } else {
|
|
|
- if riskLevelNum > pRiskNum {
|
|
|
- riskLevelNum = pRiskNum
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
+
|
|
|
func GetReportById(reportId int, login bool, userId int) (report reportService.ReportDTO, err error) {
|
|
|
- report, err = reportService.GetGetReportById(reportId)
|
|
|
+ report, err = reportService.GetReportById(reportId)
|
|
|
if err != nil {
|
|
|
logger.Error("获取研报失败:%v", err)
|
|
|
err = exception.New(exception.GetReportFailed)
|
|
@@ -267,13 +235,13 @@ func GetTotalPageCountByPermissionIds(permissionIds []int, isLogin bool, userId
|
|
|
}
|
|
|
func filterPermissionsByRisk(permissionList []permissionService.PermissionDTO, riskLevel string) (resultList []permissionService.PermissionDTO) {
|
|
|
if riskLevel != "" {
|
|
|
- riskLevelNum, err := parseRiskLevel(riskLevel)
|
|
|
+ riskLevelNum, err := config.ParseRiskLevel(riskLevel)
|
|
|
if err != nil {
|
|
|
logger.Error("风险等级解析失败:%v", err)
|
|
|
return
|
|
|
}
|
|
|
for _, permission := range permissionList {
|
|
|
- pRiskNum, riskErr := parseRiskLevel(permission.RiskLevel)
|
|
|
+ pRiskNum, riskErr := config.ParseRiskLevel(permission.RiskLevel)
|
|
|
if riskErr != nil {
|
|
|
logger.Error("解析品种风险等级失败 permission:%d,risk:%v", permission.PermissionId, permission.RiskLevel)
|
|
|
continue
|
|
@@ -289,18 +257,6 @@ func filterPermissionsByRisk(permissionList []permissionService.PermissionDTO, r
|
|
|
}
|
|
|
|
|
|
// ParseRiskLevel 解析风险等级字符串,并返回数字部分
|
|
|
-func parseRiskLevel(level string) (int, error) {
|
|
|
- parts := strings.Split(level, "R")
|
|
|
- if len(parts) < 2 {
|
|
|
- return 0, fmt.Errorf("无效的风险等级: %s", level)
|
|
|
- }
|
|
|
- numberStr := parts[1]
|
|
|
- number, err := strconv.Atoi(numberStr)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("无法将风险等级转换为数字: %s", err)
|
|
|
- }
|
|
|
- return number, nil
|
|
|
-}
|
|
|
|
|
|
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)
|
|
@@ -339,7 +295,7 @@ func dealReportInfo(list []reportService.ReportDTO, isLogin bool, userId int) (r
|
|
|
if len(permissions) == 0 {
|
|
|
return
|
|
|
}
|
|
|
- riskNum := getHighestRiskLevel(permissions)
|
|
|
+ riskNum := config.GetHighestRiskLevel(permissions)
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
|
var src string
|
|
|
src, err = mediaService.GetImageSrc(report.CoverSrc)
|
|
@@ -372,11 +328,11 @@ func dealReportInfo(list []reportService.ReportDTO, isLogin bool, userId int) (r
|
|
|
report.IsSubscribe = subscribe.Status == productDao.SubscribeValid
|
|
|
}
|
|
|
}
|
|
|
- pdRiskNum, parseErr := parseRiskLevel(product.RiskLevel)
|
|
|
+ pdRiskNum, parseErr := config.ParseRiskLevel(product.RiskLevel)
|
|
|
if parseErr != nil {
|
|
|
return
|
|
|
}
|
|
|
- rpRiskNum, parseErr := parseRiskLevel(report.RiskLevel)
|
|
|
+ rpRiskNum, parseErr := config.ParseRiskLevel(report.RiskLevel)
|
|
|
if parseErr != nil {
|
|
|
return
|
|
|
}
|
|
@@ -457,12 +413,12 @@ func GetRandedReportByWeeklyHot(limit int, isLogin bool, userId int, pdRiskLevel
|
|
|
}
|
|
|
filterList = append(filterList, report)
|
|
|
} else {
|
|
|
- pdRiskNum, paresErr := parseRiskLevel(product.RiskLevel)
|
|
|
+ pdRiskNum, paresErr := config.ParseRiskLevel(product.RiskLevel)
|
|
|
if paresErr != nil {
|
|
|
logger.Error("解析风险等级失败:%v", err)
|
|
|
continue
|
|
|
}
|
|
|
- reRiskNum, paresErr := parseRiskLevel(pdRiskLevel)
|
|
|
+ reRiskNum, paresErr := config.ParseRiskLevel(pdRiskLevel)
|
|
|
if paresErr != nil {
|
|
|
logger.Error("解析风险等级失败:%v", err)
|
|
|
continue
|
|
@@ -523,12 +479,12 @@ func GetRandedReportByWeeklyHot(limit int, isLogin bool, userId int, pdRiskLevel
|
|
|
if len(permissions) == 0 {
|
|
|
riskNum = 0
|
|
|
} else {
|
|
|
- riskNum = getHighestRiskLevel(permissions)
|
|
|
+ riskNum = config.GetHighestRiskLevel(permissions)
|
|
|
}
|
|
|
if report.RiskLevel == "" {
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
|
} else {
|
|
|
- reRiskNum, paresErr := parseRiskLevel(report.RiskLevel)
|
|
|
+ reRiskNum, paresErr := config.ParseRiskLevel(report.RiskLevel)
|
|
|
if paresErr != nil {
|
|
|
logger.Error("解析风险等级失败:%v", err)
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
@@ -548,7 +504,7 @@ func GetRandedReportByWeeklyHot(limit int, isLogin bool, userId int, pdRiskLevel
|
|
|
wg.Wait()
|
|
|
reports = make([]HotRankedReport, len(ids))
|
|
|
for i := 0; i < len(filterList); i++ {
|
|
|
- risk, parseErr := parseRiskLevel(filterList[i].RiskLevel)
|
|
|
+ risk, parseErr := config.ParseRiskLevel(filterList[i].RiskLevel)
|
|
|
if parseErr != nil || risk == 0 {
|
|
|
continue
|
|
|
}
|
|
@@ -591,12 +547,12 @@ func GetRandedReportByPublishTimeWeekly(limit int, week bool, isLogin bool, user
|
|
|
}
|
|
|
filterList = append(filterList, report)
|
|
|
} else {
|
|
|
- pdRiskNum, paresErr := parseRiskLevel(product.RiskLevel)
|
|
|
+ pdRiskNum, paresErr := config.ParseRiskLevel(product.RiskLevel)
|
|
|
if paresErr != nil {
|
|
|
logger.Error("解析风险等级失败:%v", err)
|
|
|
continue
|
|
|
}
|
|
|
- reRiskNum, paresErr := parseRiskLevel(pdRiskLevel)
|
|
|
+ reRiskNum, paresErr := config.ParseRiskLevel(pdRiskLevel)
|
|
|
if paresErr != nil {
|
|
|
logger.Error("解析风险等级失败:%v", err)
|
|
|
continue
|
|
@@ -658,12 +614,12 @@ func GetRandedReportByPublishTimeWeekly(limit int, week bool, isLogin bool, user
|
|
|
if len(permissions) == 0 {
|
|
|
riskNum = 0
|
|
|
} else {
|
|
|
- riskNum = getHighestRiskLevel(permissions)
|
|
|
+ riskNum = config.GetHighestRiskLevel(permissions)
|
|
|
}
|
|
|
if report.RiskLevel == "" {
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
|
} else {
|
|
|
- reRiskNum, paresErr := parseRiskLevel(report.RiskLevel)
|
|
|
+ reRiskNum, paresErr := config.ParseRiskLevel(report.RiskLevel)
|
|
|
if paresErr != nil {
|
|
|
logger.Error("解析风险等级失败:%v", err)
|
|
|
report.RiskLevel = strings.Join([]string{"R", strconv.Itoa(riskNum)}, "")
|
|
@@ -739,7 +695,7 @@ 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)
|
|
|
+ risk, err := config.ParseRiskLevel(dto.RiskLevel)
|
|
|
if err != nil || risk == 0 {
|
|
|
continue
|
|
|
}
|