|
@@ -115,7 +115,7 @@ func RangeSearchByAnalyst(mediaType string, analystId int, userId int) (total in
|
|
|
return mediaService.GetAnalystMediaPermissionMappingByPermissionIds(mediaType, filterPermissionIds, analystId)
|
|
|
}
|
|
|
|
|
|
-func getCount(mediaType string, permissionIds []int, isLogin bool, userId int) (total int64, latestId int64, orgIds []int) {
|
|
|
+func getCount(mediaType string, permissionIds []int, isLogin bool, userId int) (total int64, latestId int64, orgIds []int, mappingPdRisk string) {
|
|
|
filterPermissionIds, riskLevel, err := report.CheckUserRisk(permissionIds, isLogin, userId)
|
|
|
if err != nil {
|
|
|
logger.Error("校验用户风险等级失败:%v", err)
|
|
@@ -123,131 +123,14 @@ func getCount(mediaType string, permissionIds []int, isLogin bool, userId int) (
|
|
|
}
|
|
|
return mediaService.GetMediaPermissionMappingByPermissionIds(mediaType, filterPermissionIds, riskLevel)
|
|
|
}
|
|
|
-func RangeSearch(mediaType string, isLogin bool, userId int) (total int64, latestId int64, ids []int) {
|
|
|
+func RangeSearch(mediaType string, isLogin bool, userId int) (total int64, latestId int64, ids []int, mappingPdRisk string) {
|
|
|
return getCount(mediaType, nil, isLogin, userId)
|
|
|
- //var err error
|
|
|
- ////登录了需要校验风险等级,如果风险等级没做或者过期直接返回空,做了就筛选风险等级
|
|
|
- //if isLogin {
|
|
|
- // userProfile, userErr := user.GetUserProfile(userId)
|
|
|
- // if userErr != nil {
|
|
|
- // if errors.Is(userErr, gorm.ErrRecordNotFound) {
|
|
|
- // err = exception.New(exception.TemplateUserNotFound)
|
|
|
- // } else {
|
|
|
- // err = exception.New(exception.TemplateUserFoundFailed)
|
|
|
- // }
|
|
|
- // logger.Error("分页查询报告列表失败:%v", err)
|
|
|
- // return
|
|
|
- // }
|
|
|
- // //获取产品风险等级
|
|
|
- // if userProfile.RiskLevel == user.RiskUnTest {
|
|
|
- // logger.Error("客户未做风险等级测评,mobile:%v", userProfile.Mobile)
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if userProfile.RiskLevelStatus == user.RiskExpired {
|
|
|
- // logger.Error("客户风险等级已过期,mobile:%v", userProfile.Mobile)
|
|
|
- // return
|
|
|
- // }
|
|
|
- // mapping, mappingErr := permissionService.GetRiskMappingByCustomerRiskLevel(userProfile.RiskLevel)
|
|
|
- // if mappingErr != nil {
|
|
|
- // logger.Error("查询产品风险等级映射失败:%v", mappingErr)
|
|
|
- // return
|
|
|
- // }
|
|
|
- // var permissionList []permissionService.PermissionDTO
|
|
|
- // //获取所有设置风险等级的品种
|
|
|
- // permissionList, err = permissionService.GetPermissionListWithRisk()
|
|
|
- // permissionList = filterPermissionsByRisk(permissionList, mapping.ProductRiskLevel)
|
|
|
- // if len(permissionList) == 0 {
|
|
|
- // return
|
|
|
- // }
|
|
|
- // var filterPermissionIds []int
|
|
|
- // for _, permission := range permissionList {
|
|
|
- // filterPermissionIds = append(filterPermissionIds, permission.PermissionId)
|
|
|
- // }
|
|
|
- // return mediaService.GetMediaPermissionMappingByPermissionIds(mediaType, filterPermissionIds, mapping.ProductRiskLevel)
|
|
|
- //} else { //没有登录的时候展示所有设置了风险等级的品种报告,筛选的时候过滤传入ID中没有设置风险等级的品种
|
|
|
- // var permissionList []permissionService.PermissionDTO
|
|
|
- // //获取所有设置风险等级的品种
|
|
|
- // permissionList, err = permissionService.GetPermissionListWithRisk()
|
|
|
- // if err != nil {
|
|
|
- // logger.Error("根据ID查询品种列表失败:%v", err)
|
|
|
- // }
|
|
|
- // var filterPermissionIds []int
|
|
|
- // for _, permission := range permissionList {
|
|
|
- // filterPermissionIds = append(filterPermissionIds, permission.PermissionId)
|
|
|
- // }
|
|
|
- // //查询品种
|
|
|
- // return mediaService.GetMediaPermissionMappingByPermissionIds(mediaType, filterPermissionIds, "")
|
|
|
- //}
|
|
|
}
|
|
|
-func GetTotalPageCountByPermissionIds(mediaType string, permissionIds []int, isLogin bool, userId int) (total int64, latestId int64, ids []int) {
|
|
|
+func GetTotalPageCountByPermissionIds(mediaType string, permissionIds []int, isLogin bool, userId int) (total int64, latestId int64, ids []int, mappingPdRisk string) {
|
|
|
if mediaType == "" {
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
return getCount(mediaType, permissionIds, isLogin, userId)
|
|
|
- //var err error
|
|
|
- ////登录了需要校验风险等级,如果风险等级没做或者过期直接返回空,做了就筛选风险等级
|
|
|
- //if isLogin {
|
|
|
- // userProfile, userErr := user.GetUserProfile(userId)
|
|
|
- // if userErr != nil {
|
|
|
- // if errors.Is(userErr, gorm.ErrRecordNotFound) {
|
|
|
- // err = exception.New(exception.TemplateUserNotFound)
|
|
|
- // } else {
|
|
|
- // err = exception.New(exception.TemplateUserFoundFailed)
|
|
|
- // }
|
|
|
- // logger.Error("分页查询媒体列表失败:%v", err)
|
|
|
- // return
|
|
|
- // }
|
|
|
- // //获取产品风险等级
|
|
|
- // if userProfile.RiskLevel == user.RiskUnTest {
|
|
|
- // logger.Error("客户未做风险等级测评,mobile:%v", userProfile.Mobile)
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if userProfile.RiskLevelStatus == user.RiskExpired {
|
|
|
- // logger.Error("客户风险等级已过期,mobile:%v", userProfile.Mobile)
|
|
|
- // return
|
|
|
- // }
|
|
|
- // mapping, mappingErr := permissionService.GetRiskMappingByCustomerRiskLevel(userProfile.RiskLevel)
|
|
|
- // if mappingErr != nil {
|
|
|
- // logger.Error("查询产品风险等级映射失败:%v", mappingErr)
|
|
|
- // return
|
|
|
- // }
|
|
|
- // var permissionList []permissionService.PermissionDTO
|
|
|
- // if len(permissionIds) == 0 {
|
|
|
- // //获取所有设置风险等级的品种
|
|
|
- // permissionList, err = permissionService.GetPermissionListWithRisk()
|
|
|
- // } else {
|
|
|
- // //更具id过滤设置了风险等级的品种
|
|
|
- // permissionList, err = permissionService.GetPermissionListByIds(permissionIds)
|
|
|
- // }
|
|
|
- // permissionList = filterPermissionsByRisk(permissionList, mapping.ProductRiskLevel)
|
|
|
- // if len(permissionList) == 0 {
|
|
|
- // return
|
|
|
- // }
|
|
|
- // var filterPermissionIds []int
|
|
|
- // for _, permission := range permissionList {
|
|
|
- // filterPermissionIds = append(filterPermissionIds, permission.PermissionId)
|
|
|
- // }
|
|
|
- // return mediaService.GetMediaPermissionMappingByPermissionIds(mediaType, filterPermissionIds, mapping.ProductRiskLevel)
|
|
|
- //} else { //没有登录的时候展示所有设置了风险等级的品种报告,筛选的时候过滤传入ID中没有设置风险等级的品种
|
|
|
- // var permissionList []permissionService.PermissionDTO
|
|
|
- // if len(permissionIds) == 0 {
|
|
|
- // //获取所有设置风险等级的品种
|
|
|
- // permissionList, err = permissionService.GetPermissionListWithRisk()
|
|
|
- // } else {
|
|
|
- // //更具id过滤设置了风险等级的品种
|
|
|
- // permissionList, err = permissionService.GetPermissionListByIds(permissionIds)
|
|
|
- // }
|
|
|
- // if err != nil {
|
|
|
- // logger.Error("根据ID查询品种列表失败:%v", err)
|
|
|
- // }
|
|
|
- // var filterPermissionIds []int
|
|
|
- // for _, permission := range permissionList {
|
|
|
- // filterPermissionIds = append(filterPermissionIds, permission.PermissionId)
|
|
|
- // }
|
|
|
- // //查询品种
|
|
|
- // return mediaService.GetMediaPermissionMappingByPermissionIds(mediaType, filterPermissionIds, "")
|
|
|
- //}
|
|
|
}
|
|
|
func parseRiskLevel(level string) (int, error) {
|
|
|
parts := strings.Split(level, "R")
|
|
@@ -451,7 +334,7 @@ func GetMediaPageByAnalystId(mediaType string, pageInfo page.PageInfo, analystId
|
|
|
func getMediaSecondPermissions(ids []int) (permissionDTOs []configService.PermissionDTO, err error) {
|
|
|
return mediaService.GetSecondPermissionsByIds(ids)
|
|
|
}
|
|
|
-func GetMediaPageByIds(mediaType string, pageInfo page.PageInfo, mediaIds []int, isLogin bool, userId int) (list []mediaService.MediaDTO, err error) {
|
|
|
+func GetMediaPageByIds(mediaType string, pageInfo page.PageInfo, mediaIds []int, isLogin bool, userId int, mappingRiskLevel string) (list []mediaService.MediaDTO, err error) {
|
|
|
list, err = mediaService.GetMediaPageByIds(mediaType, pageInfo, mediaIds)
|
|
|
if err != nil {
|
|
|
err = exception.New(exception.GetMediaListFailed)
|
|
@@ -513,16 +396,31 @@ func GetMediaPageByIds(mediaType string, pageInfo page.PageInfo, mediaIds []int,
|
|
|
media.IsSubscribe = subscribe.Status == userDao.SubscribeValid
|
|
|
}
|
|
|
}
|
|
|
+ media.RiskLevelStatus = RiskLevelMatch
|
|
|
pdRiskNum, parseErr := parseRiskLevel(product.RiskLevel)
|
|
|
if parseErr != nil {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
return
|
|
|
}
|
|
|
rpRiskNum, parseErr := parseRiskLevel(media.RiskLevel)
|
|
|
if parseErr != nil {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mappingRiskNum, parseErr := parseRiskLevel(mappingRiskLevel)
|
|
|
+ if parseErr != nil {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
return
|
|
|
}
|
|
|
if rpRiskNum <= pdRiskNum {
|
|
|
media.RiskLevel = product.RiskLevel
|
|
|
+ if mappingRiskNum < pdRiskNum {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if mappingRiskNum < rpRiskNum {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
+ }
|
|
|
}
|
|
|
}(&list[i])
|
|
|
}
|
|
@@ -547,7 +445,7 @@ func getMediaPermissionNames(id []int) (labels []string) {
|
|
|
|
|
|
// stringToIntSlice 将一个包含数字字符串的切片转换为整数切片
|
|
|
|
|
|
-func SearchMediaList(mediaType string, key string, mediaIds []int, pageInfo page.PageInfo, isLogin bool, userId int) (medias []mediaService.MediaDTO, err error) {
|
|
|
+func SearchMediaList(mediaType string, key string, mediaIds []int, pageInfo page.PageInfo, isLogin bool, userId int, mappingRiskLevel string) (medias []mediaService.MediaDTO, err error) {
|
|
|
offset := page.StartIndex(pageInfo.Current, pageInfo.PageSize)
|
|
|
medias, err = mediaService.SearchMediaList(mediaType, key, mediaIds, offset, pageInfo.PageSize, pageInfo.LatestId)
|
|
|
var wg sync.WaitGroup
|
|
@@ -605,17 +503,33 @@ func SearchMediaList(mediaType string, key string, mediaIds []int, pageInfo page
|
|
|
media.IsSubscribe = subscribe.Status == userDao.SubscribeValid
|
|
|
}
|
|
|
}
|
|
|
+ media.RiskLevelStatus = RiskLevelMatch
|
|
|
pdRiskNum, parseErr := parseRiskLevel(product.RiskLevel)
|
|
|
if parseErr != nil {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
return
|
|
|
}
|
|
|
rpRiskNum, parseErr := parseRiskLevel(media.RiskLevel)
|
|
|
if parseErr != nil {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mappingRiskNum, parseErr := parseRiskLevel(mappingRiskLevel)
|
|
|
+ if parseErr != nil {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
return
|
|
|
}
|
|
|
if rpRiskNum <= pdRiskNum {
|
|
|
media.RiskLevel = product.RiskLevel
|
|
|
+ if mappingRiskNum < pdRiskNum {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if mappingRiskNum < rpRiskNum {
|
|
|
+ media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}(&medias[i])
|
|
|
}
|
|
|
wg.Wait()
|