Browse Source

增加系统配置接口

kobe6258 3 months ago
parent
commit
04d27a59e2
3 changed files with 127 additions and 120 deletions
  1. 35 32
      service/media/media_service.go
  2. 4 88
      service/report/report_service.go
  3. 88 0
      service/user/user_service.go

+ 35 - 32
service/media/media_service.go

@@ -148,43 +148,46 @@ func filterPermissionsByRisk(permissionList []permissionService.PermissionDTO, r
 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) {
-	media, err = mediaService.GetMediaById(mediaType, mediaId)
+func GetMediaById(mediaType string, mediaId int, isLogin bool, userId int) (media *mediaService.MediaDTO, err error) {
+	_, mappingRiskLevel, err := user.CheckUserRisk(nil, isLogin, userId)
 	if err != nil {
-		logger.Error("获取媒体失败:%v", err)
-		err = exception.New(exception.MediaFoundFailed)
-		return
-	}
-	var status string
-
-	status, media.RiskLevel, err = matchRiskLevel(userId, media)
-	if err != nil {
-		logger.Error("匹配风险等级失败:%v", err)
-		err = exception.New(exception.ReportRiskLevelUnSet)
-		return
+		logger.Error("校验用户风险等级失败:%v", err)
 	}
-	idStr := strings.Split(media.PermissionIDs, ",")
-	var ids []int
-	ids, err = stringUtils.StringToIntSlice(idStr)
+	*media, err = mediaService.GetMediaById(mediaType, mediaId)
 	if err != nil {
-		logger.Error("品种名称列表转换失败:%v", err)
+		logger.Error("获取媒体失败:%v", err)
+		err = exception.New(exception.MediaFoundFailed)
 		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
+	//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(media, isLogin, userId, mappingRiskLevel)
 }
 func matchRiskLevel(userId int, media mediaService.MediaDTO) (riskLevelMatch string, productRiskLevel string, err error) {
 	userProfile, userErr := user.GetUserProfile(userId)

+ 4 - 88
service/report/report_service.go

@@ -228,28 +228,6 @@ func getHTReportDetail(report *reportService.ReportDTO) (url string, err error)
 func GetTotalPageCountByPermissionIds(permissionIds []int, isLogin bool, userId int) (total int64, latestId int64, ids map[string][]int) {
 	return getCount(permissionIds, isLogin, userId)
 }
-func filterPermissionsByRisk(permissionList []permissionService.PermissionDTO, riskLevel string) (resultList []permissionService.PermissionDTO) {
-	if riskLevel != "" {
-		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)
-			}
-		}
-	} else {
-		resultList = permissionList
-	}
-	return
-}
 
 // ParseRiskLevel 解析风险等级字符串,并返回数字部分
 
@@ -640,73 +618,11 @@ func GetReportByIdListByOrgIds(orgIds map[string][]int) (ids []int, err error) {
 }
 
 func RangePermissionIds(isLogin bool, userId int) (filterPermissionIds []int, riskLevel string, err error) {
-	return CheckUserRisk(nil, isLogin, userId)
-}
-func CheckUserRisk(permissionIds []int, isLogin bool, userId int) (filterPermissionIds []int, riskLevel string, 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.RiskLevelStatus == user.RiskUnTest {
-			logger.Warn("客户未做风险等级测评,mobile:%v", userProfile.Mobile)
-		}
-		if userProfile.RiskLevelStatus == user.RiskExpired {
-			logger.Warn("客户风险等级已过期,mobile:%v", userProfile.Mobile)
-		}
-		var mapping permissionService.CustomerProductRiskMappingDTO
-		if userProfile.RiskLevel != "" {
-			mapping, err = permissionService.GetRiskMappingByCustomerRiskLevel(userProfile.RiskLevel)
-			if err != nil {
-				logger.Error("查询产品风险等级映射失败:%v", err)
-				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)
-		riskLevel = mapping.ProductRiskLevel
-		if len(permissionList) == 0 {
-			return
-		}
-		for _, permission := range permissionList {
-			filterPermissionIds = append(filterPermissionIds, permission.PermissionId)
-		}
-		return
-	} 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)
-		}
-		for _, permission := range permissionList {
-			filterPermissionIds = append(filterPermissionIds, permission.PermissionId)
-		}
-		//查询品种
-		return
-	}
+	return user.CheckUserRisk(nil, isLogin, userId)
 }
+
 func getCount(permissionIds []int, isLogin bool, userId int) (total int64, latestId int64, ids map[string][]int) {
-	filterPermissionIds, riskLevel, err := CheckUserRisk(permissionIds, isLogin, userId)
+	filterPermissionIds, riskLevel, err := user.CheckUserRisk(permissionIds, isLogin, userId)
 	if err != nil {
 		logger.Error("校验用户风险等级失败:%v", err)
 		return
@@ -715,7 +631,7 @@ func getCount(permissionIds []int, isLogin bool, userId int) (total int64, lates
 }
 
 func getCountByAnalyst(permissionIds []int, isLogin bool, userId int, analystName string) (total int64, latestId int64, ids []int) {
-	filterPermissionIds, riskLevel, err := CheckUserRisk(permissionIds, isLogin, userId)
+	filterPermissionIds, riskLevel, err := user.CheckUserRisk(permissionIds, isLogin, userId)
 	if err != nil {
 		logger.Error("校验用户风险等级失败:%v", err)
 		return

+ 88 - 0
service/user/user_service.go

@@ -4,8 +4,10 @@ import (
 	"errors"
 	logger "eta/eta_mini_ht_api/common/component/log"
 	"eta/eta_mini_ht_api/common/exception"
+	permissionService "eta/eta_mini_ht_api/domian/config"
 	analystService "eta/eta_mini_ht_api/domian/financial_analyst"
 	userService "eta/eta_mini_ht_api/domian/user"
+	"eta/eta_mini_ht_api/service/config"
 	"gorm.io/gorm"
 	"sort"
 	"sync"
@@ -40,6 +42,92 @@ type UserProfile struct {
 	UserName        string `json:"userName"`
 }
 
+func CheckUserRisk(permissionIds []int, isLogin bool, userId int) (filterPermissionIds []int, riskLevel string, err error) {
+	if isLogin {
+		userProfile, userErr := 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.RiskLevelStatus == RiskUnTest {
+			logger.Warn("客户未做风险等级测评,mobile:%v", userProfile.Mobile)
+		}
+		if userProfile.RiskLevelStatus == RiskExpired {
+			logger.Warn("客户风险等级已过期,mobile:%v", userProfile.Mobile)
+		}
+		var mapping permissionService.CustomerProductRiskMappingDTO
+		if userProfile.RiskLevel != "" {
+			mapping, err = permissionService.GetRiskMappingByCustomerRiskLevel(userProfile.RiskLevel)
+			if err != nil {
+				logger.Error("查询产品风险等级映射失败:%v", err)
+				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)
+		riskLevel = mapping.ProductRiskLevel
+		if len(permissionList) == 0 {
+			return
+		}
+		for _, permission := range permissionList {
+			filterPermissionIds = append(filterPermissionIds, permission.PermissionId)
+		}
+		return
+	} 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)
+		}
+		for _, permission := range permissionList {
+			filterPermissionIds = append(filterPermissionIds, permission.PermissionId)
+		}
+		//查询品种
+		return
+	}
+}
+
+func filterPermissionsByRisk(permissionList []permissionService.PermissionDTO, riskLevel string) (resultList []permissionService.PermissionDTO) {
+	if riskLevel != "" {
+		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)
+			}
+		}
+	} else {
+		resultList = permissionList
+	}
+	return
+}
 func convertUserDTOToProfile(dto userService.UserDTO) (profile UserProfile) {
 	profile = UserProfile{
 		Mobile:    dto.Mobile,