瀏覽代碼

过滤下架产品

kobe6258 4 月之前
父節點
當前提交
308c1a782e
共有 3 個文件被更改,包括 8 次插入195 次删除
  1. 7 61
      domian/media/media_service.go
  2. 1 1
      models/media/media.go
  3. 0 133
      service/media/media_service.go

+ 7 - 61
domian/media/media_service.go

@@ -215,12 +215,12 @@ func uniqueArray(arr []int) []int {
 	return result
 }
 func GetAnalystMediaPermissionMappingByPermissionIds(mediaType string, permissionIds []int, analystId int, mappingRiskLevel string) (total int64, latestId int64, ids []int, riskLevel string) {
-	ids, err := mediaDao.GetMediaPermissionMappingByPermissionId(mediaType, permissionIds)
+	meidaIds, err := mediaDao.GetMediaPermissionMappingByPermissionId(mediaType, permissionIds)
 	if err != nil {
 		logger.Error("获取当前最大媒体id失败:%v", err)
 		return 0, 0, ids, mappingRiskLevel
 	}
-	ids, err = mediaDao.GetAnalystMediaRangeReportIds(mediaType, ids, analystId)
+	ids, err = mediaDao.GetAnalystMediaRangeMediaIds(mediaType, ids, analystId)
 	if err != nil {
 		logger.Error("根据研究员过滤媒体列表id失败:%v", err)
 		return 0, 0, ids, mappingRiskLevel
@@ -256,11 +256,7 @@ func GetAnalystMediaPermissionMappingByPermissionIds(mediaType string, permissio
 	}
 	//对数据去重
 	disCardMediaIds = uniqueArray(disCardMediaIds)
-	ids, err = mediaDao.GetMediaPermissionMappingByPermissionId(mediaType, filterPermissionIds)
-	if err != nil {
-		logger.Error("获取配置品种的媒体列表信息失败:%v", err)
-		return 0, 0, ids, riskLevel
-	}
+
 	//获取媒体中还包含上架套餐的id
 	if len(disCardMediaIds) > 0 {
 		reportIdsSalePackage, _ := merchantDao.GetMediaOnSalePackageIds(disCardMediaIds, transProductMap[mediaType])
@@ -281,64 +277,14 @@ func GetAnalystMediaPermissionMappingByPermissionIds(mediaType string, permissio
 			}
 		}
 		disCardMediaIds = filterDisCardReportIds
-		var cardReportIds []int
-		for _, id := range filterIds {
+		for _, id := range meidaIds {
 			if _, ok := disCardMap[id]; !ok {
-				cardReportIds = append(cardReportIds, id)
+				filterIds = append(filterIds, id)
 			}
 		}
-		filterIds = cardReportIds
+	} else {
+		filterIds = meidaIds
 	}
-	//if mappingRiskLevel != "" {
-	//	var productList []productDao.MerchantProduct
-	//	//现加入没有产品的报告
-	//	productList, err = productDao.GetProductListBySourceIds(ids, true, productDao.Audio, productDao.Video)
-	//	for _, mediaId := range ids {
-	//		find := false
-	//		for _, product := range productList {
-	//			if product.SourceId == mediaId {
-	//				find = true
-	//				break
-	//			}
-	//		}
-	//		if !find {
-	//			ids = append(ids, mediaId)
-	//		}
-	//	}
-	//	riskNum, parseErr := configService.ParseRiskLevel(mappingRiskLevel)
-	//	if parseErr != nil {
-	//		logger.Error("解析风险等级失败:%v", err)
-	//		return
-	//	}
-	//	//再把符合风险等级的产品加入
-	//	for _, mediaId := range ids {
-	//		for _, product := range productList {
-	//			if product.SourceId == mediaId {
-	//				pdRiskNum, pdErr := configService.ParseRiskLevel(product.RiskLevel)
-	//				if pdErr != nil {
-	//					logger.Error("解析产品风险等级失败:%v,产品id:%v", pdErr, product.Id)
-	//					continue
-	//				}
-	//				if pdRiskNum <= riskNum && product.SaleStatus == productDao.OnSale {
-	//					ids = append(ids, mediaId)
-	//				}
-	//			}
-	//		}
-	//	}
-	//}
-	//for _, mediaId := range ids {
-	//	find := false
-	//	for _, discardMediaId := range disCardMediaIds {
-	//		if mediaId == discardMediaId {
-	//			find = true
-	//			break
-	//		}
-	//	}
-	//	if !find {
-	//		filterIds = append(filterIds, mediaId)
-	//	}
-	//}
-
 	if len(filterIds) > 0 {
 		sort.Slice(filterIds, func(i, j int) bool {
 			return filterIds[i] > filterIds[j]

+ 1 - 1
models/media/media.go

@@ -106,7 +106,7 @@ func GetMediaPageByIds(latestId int64, limit int, offset int, mediaType string,
 	return
 }
 
-func GetAnalystMediaRangeReportIds(mediaType string, srcIds []int, analystId int) (mediaIds []int, err error) {
+func GetAnalystMediaRangeMediaIds(mediaType string, srcIds []int, analystId int) (mediaIds []int, err error) {
 	if len(srcIds) == 0 {
 		logger.Info("过滤的媒体ID为空")
 		return

+ 0 - 133
service/media/media_service.go

@@ -1,13 +1,11 @@
 package media
 
 import (
-	"errors"
 	logger "eta/eta_mini_ht_api/common/component/log"
 	"eta/eta_mini_ht_api/common/exception"
 	"eta/eta_mini_ht_api/common/utils/page"
 	stringUtils "eta/eta_mini_ht_api/common/utils/string"
 	configService "eta/eta_mini_ht_api/domian/config"
-	permissionService "eta/eta_mini_ht_api/domian/config"
 	mediaService "eta/eta_mini_ht_api/domian/media"
 	productService "eta/eta_mini_ht_api/domian/merchant"
 	userService "eta/eta_mini_ht_api/domian/user"
@@ -15,8 +13,6 @@ import (
 	productDao "eta/eta_mini_ht_api/models/merchant"
 	"eta/eta_mini_ht_api/service/config"
 	"eta/eta_mini_ht_api/service/user"
-	"fmt"
-	"gorm.io/gorm"
 	"strconv"
 	"strings"
 	"sync"
@@ -90,27 +86,6 @@ func GetTotalPageCountByPermissionIds(mediaType string, permissionIds []int, isL
 	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) {
 	_, mappingRiskLevel, err := user.GetRiskLevelPermissionList(nil, isLogin, userId)
 	if err != nil {
@@ -123,116 +98,8 @@ func GetMediaById(mediaType string, mediaId int, isLogin bool, userId int) (medi
 		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
-	//}
-	//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)
 }
-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) {
 	list, err = mediaService.GetMediaPageByAnalystId(mediaType, pageInfo, analystId, mediaIds)
 	if err != nil {