|
@@ -1,13 +1,11 @@
|
|
package media
|
|
package media
|
|
|
|
|
|
import (
|
|
import (
|
|
- "errors"
|
|
|
|
logger "eta/eta_mini_ht_api/common/component/log"
|
|
logger "eta/eta_mini_ht_api/common/component/log"
|
|
"eta/eta_mini_ht_api/common/exception"
|
|
"eta/eta_mini_ht_api/common/exception"
|
|
"eta/eta_mini_ht_api/common/utils/page"
|
|
"eta/eta_mini_ht_api/common/utils/page"
|
|
stringUtils "eta/eta_mini_ht_api/common/utils/string"
|
|
stringUtils "eta/eta_mini_ht_api/common/utils/string"
|
|
configService "eta/eta_mini_ht_api/domian/config"
|
|
configService "eta/eta_mini_ht_api/domian/config"
|
|
- permissionService "eta/eta_mini_ht_api/domian/config"
|
|
|
|
mediaService "eta/eta_mini_ht_api/domian/media"
|
|
mediaService "eta/eta_mini_ht_api/domian/media"
|
|
productService "eta/eta_mini_ht_api/domian/merchant"
|
|
productService "eta/eta_mini_ht_api/domian/merchant"
|
|
userService "eta/eta_mini_ht_api/domian/user"
|
|
userService "eta/eta_mini_ht_api/domian/user"
|
|
@@ -15,8 +13,6 @@ import (
|
|
productDao "eta/eta_mini_ht_api/models/merchant"
|
|
productDao "eta/eta_mini_ht_api/models/merchant"
|
|
"eta/eta_mini_ht_api/service/config"
|
|
"eta/eta_mini_ht_api/service/config"
|
|
"eta/eta_mini_ht_api/service/user"
|
|
"eta/eta_mini_ht_api/service/user"
|
|
- "fmt"
|
|
|
|
- "gorm.io/gorm"
|
|
|
|
"strconv"
|
|
"strconv"
|
|
"strings"
|
|
"strings"
|
|
"sync"
|
|
"sync"
|
|
@@ -90,27 +86,6 @@ func GetTotalPageCountByPermissionIds(mediaType string, permissionIds []int, isL
|
|
return getCount(mediaType, permissionIds, isLogin, userId)
|
|
return getCount(mediaType, permissionIds, isLogin, userId)
|
|
}
|
|
}
|
|
|
|
|
|
-func filterPermissionsByRisk(permissionList []permissionService.PermissionDTO, riskLevel string) (resultList []permissionService.PermissionDTO) {
|
|
|
|
- riskLevelNum, err := config.ParseRiskLevel(riskLevel)
|
|
|
|
- if err != nil {
|
|
|
|
- logger.Error("风险等级解析失败:%v", err)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- for _, permission := range permissionList {
|
|
|
|
- pRiskNum, riskErr := config.ParseRiskLevel(permission.RiskLevel)
|
|
|
|
- if riskErr != nil {
|
|
|
|
- logger.Error("解析品种风险等级失败 permission:%d,risk:%v", permission.PermissionId, permission.RiskLevel)
|
|
|
|
- continue
|
|
|
|
- }
|
|
|
|
- if pRiskNum <= riskLevelNum {
|
|
|
|
- resultList = append(resultList, permission)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return
|
|
|
|
-}
|
|
|
|
-func SearchMaxMediaId(mediaType string, key string) (total int64, latestId int64) {
|
|
|
|
- return mediaService.SearchMaxMediaId(mediaType, key)
|
|
|
|
-}
|
|
|
|
func GetMediaById(mediaType string, mediaId int, isLogin bool, userId int) (media *mediaService.MediaDTO, err error) {
|
|
func GetMediaById(mediaType string, mediaId int, isLogin bool, userId int) (media *mediaService.MediaDTO, err error) {
|
|
_, mappingRiskLevel, err := user.GetRiskLevelPermissionList(nil, isLogin, userId)
|
|
_, mappingRiskLevel, err := user.GetRiskLevelPermissionList(nil, isLogin, userId)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -123,116 +98,8 @@ func GetMediaById(mediaType string, mediaId int, isLogin bool, userId int) (medi
|
|
err = exception.New(exception.MediaFoundFailed)
|
|
err = exception.New(exception.MediaFoundFailed)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- //var status string
|
|
|
|
- //
|
|
|
|
- //status, media.RiskLevel, err = matchRiskLevel(userId, media)
|
|
|
|
- //if err != nil {
|
|
|
|
- // logger.Error("匹配风险等级失败:%v", err)
|
|
|
|
- // err = exception.New(exception.ReportRiskLevelUnSet)
|
|
|
|
- // return
|
|
|
|
- //}
|
|
|
|
- //idStr := strings.Split(media.PermissionIDs, ",")
|
|
|
|
- //var ids []int
|
|
|
|
- //ids, err = stringUtils.StringToIntSlice(idStr)
|
|
|
|
- //if err != nil {
|
|
|
|
- // logger.Error("品种名称列表转换失败:%v", err)
|
|
|
|
- // return
|
|
|
|
- //}
|
|
|
|
- //media.PermissionNames = GetMediaPermissionNames(ids)
|
|
|
|
- //if isLogin {
|
|
|
|
- // media.Login = true
|
|
|
|
- // if status != RiskLevelMatch {
|
|
|
|
- // media.Src = ""
|
|
|
|
- // }
|
|
|
|
- // media.RiskLevelStatus = status
|
|
|
|
- //} else {
|
|
|
|
- // logger.Info("当前用户未登录,展示部分详情")
|
|
|
|
- // media.Src = ""
|
|
|
|
- // media.RiskLevelStatus = RiskLevelUnMatch
|
|
|
|
- // media.Login = false
|
|
|
|
- //}
|
|
|
|
return DealMediaInfo(&mediaInfo, isLogin, userId, mappingRiskLevel, true)
|
|
return DealMediaInfo(&mediaInfo, isLogin, userId, mappingRiskLevel, true)
|
|
}
|
|
}
|
|
-func matchRiskLevel(userId int, media mediaService.MediaDTO) (riskLevelMatch string, productRiskLevel string, err error) {
|
|
|
|
- userProfile, userErr := user.GetUserProfile(userId)
|
|
|
|
- if userErr != nil {
|
|
|
|
- if errors.Is(userErr, gorm.ErrRecordNotFound) {
|
|
|
|
- logger.Error("用户信息不存在,mobile:%d", userProfile.Mobile)
|
|
|
|
- err = exception.New(exception.TemplateUserNotFound)
|
|
|
|
- return
|
|
|
|
- } else {
|
|
|
|
- logger.Error("获取用户信息失败:%v", userErr)
|
|
|
|
- err = exception.New(exception.TemplateUserFoundFailed)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //比较风险等级
|
|
|
|
- if userProfile.RiskLevelStatus == user.RiskUnTest {
|
|
|
|
- logger.Info("客户风险等级未测试,mobile:%v", userProfile.Mobile)
|
|
|
|
- riskLevelMatch = RiskLevelUnTest
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if userProfile.RiskLevelStatus == user.RiskExpired {
|
|
|
|
- logger.Info("客户风险等级已过期,mobile:%v", userProfile.Mobile)
|
|
|
|
- riskLevelMatch = RiskLevelExpired
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- level, err := permissionService.GetRiskMappingByCustomerRiskLevel(userProfile.RiskLevel)
|
|
|
|
- if err != nil {
|
|
|
|
- logger.Error("获取媒体风险等级设置失败:%v", err)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- var permissionIds []int
|
|
|
|
- permissionStrList := strings.Split(media.PermissionIDs, ",")
|
|
|
|
- permissionIds, err = stringUtils.StringToIntSlice(permissionStrList)
|
|
|
|
- if err != nil {
|
|
|
|
- logger.Error("解析媒体品种ID列表失败:%v", err)
|
|
|
|
- }
|
|
|
|
- permissionDTOs, err := permissionService.GetPermissionListByIds(permissionIds)
|
|
|
|
- if err != nil {
|
|
|
|
- logger.Error("获取品种风险等级失败:%v", err)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //能够查看最高等级
|
|
|
|
- matchNum, err := config.ParseRiskLevel(level.ProductRiskLevel)
|
|
|
|
- if err != nil {
|
|
|
|
- logger.Error("解析风险等级失败:%v", err)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if len(permissionDTOs) == 0 {
|
|
|
|
- logger.Error("当前报告对应品种未设置风险等级")
|
|
|
|
- err = exception.New(exception.ReportRiskLevelUnSet)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //能够查看需要的最小等级
|
|
|
|
- num := config.GetHighestRiskLevel(permissionDTOs)
|
|
|
|
- productRiskLevel = fmt.Sprintf("R%d", num)
|
|
|
|
- if num > matchNum {
|
|
|
|
- riskLevelMatch = RiskLevelUnMatch
|
|
|
|
- return
|
|
|
|
- } else {
|
|
|
|
- riskLevelMatch = RiskLevelMatch
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func getLowestRiskLevel(permissions []permissionService.PermissionDTO) (riskLevelNum int) {
|
|
|
|
- for _, permission := range permissions {
|
|
|
|
- pRiskNum, err := config.ParseRiskLevel(permission.RiskLevel)
|
|
|
|
- if err != nil {
|
|
|
|
- logger.Error("解析风险等级失败:%v", err)
|
|
|
|
- continue
|
|
|
|
- }
|
|
|
|
- if riskLevelNum == 0 {
|
|
|
|
- riskLevelNum = pRiskNum
|
|
|
|
- } else {
|
|
|
|
- if riskLevelNum > pRiskNum {
|
|
|
|
- riskLevelNum = pRiskNum
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return
|
|
|
|
-}
|
|
|
|
func GetMediaPageByAnalystId(mediaType string, pageInfo page.PageInfo, analystId int, mediaIds []int, userId int, mappingRiskLevel string) (list []mediaService.MediaDTO, err error) {
|
|
func GetMediaPageByAnalystId(mediaType string, pageInfo page.PageInfo, analystId int, mediaIds []int, userId int, mappingRiskLevel string) (list []mediaService.MediaDTO, err error) {
|
|
list, err = mediaService.GetMediaPageByAnalystId(mediaType, pageInfo, analystId, mediaIds)
|
|
list, err = mediaService.GetMediaPageByAnalystId(mediaType, pageInfo, analystId, mediaIds)
|
|
if err != nil {
|
|
if err != nil {
|