|
@@ -8,6 +8,7 @@ import (
|
|
|
"eta/eta_mini_ht_api/common/contants"
|
|
|
"eta/eta_mini_ht_api/common/utils/page"
|
|
|
configDomain "eta/eta_mini_ht_api/domian/config"
|
|
|
+ merchantService "eta/eta_mini_ht_api/domian/merchant"
|
|
|
reportService "eta/eta_mini_ht_api/domian/report"
|
|
|
"eta/eta_mini_ht_api/models"
|
|
|
configDao "eta/eta_mini_ht_api/models/config"
|
|
@@ -128,15 +129,46 @@ func SearchMaxMediaId(mediaType string, key string) (total int64, latestId int64
|
|
|
return
|
|
|
}
|
|
|
func GetMediaPermissionMappingByPermissionIds(mediaType string, permissionIds []int, riskLevel string) (total int64, latestId int64, ids []int, mappingPdRisk string) {
|
|
|
- ids, err := mediaDao.GetMediaPermissionMappingByPermissionId(mediaType, permissionIds)
|
|
|
+ //获取一下下架的报告产品
|
|
|
+ var offSaleProducts []merchantService.MerchantProductDTO
|
|
|
+ offSaleProducts, err := merchantService.GetOffSaleProducts([]string{"report", "package"})
|
|
|
+ var disCardMediaIds []int
|
|
|
+ var disCardPermissionIds []int
|
|
|
+ var filterPermissionIds []int
|
|
|
+ var filterIds []int
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("获取下架的报告产品失败:%v", err)
|
|
|
+ } else {
|
|
|
+ for _, product := range offSaleProducts {
|
|
|
+ if product.Type == "package" {
|
|
|
+ disCardPermissionIds = append(disCardPermissionIds, product.SourceId)
|
|
|
+ }
|
|
|
+ if product.Type == "audio" || product.Type == "video" {
|
|
|
+ disCardMediaIds = append(disCardMediaIds, product.SourceId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, permissionId := range permissionIds {
|
|
|
+ find := false
|
|
|
+ for _, disCardPermissionId := range disCardPermissionIds {
|
|
|
+ if permissionId == disCardPermissionId {
|
|
|
+ find = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if !find {
|
|
|
+ filterPermissionIds = append(filterPermissionIds, permissionId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ids, err = mediaDao.GetMediaPermissionMappingByPermissionId(mediaType, filterPermissionIds)
|
|
|
if err != nil {
|
|
|
logger.Error("获取配置品种的媒体列表信息失败:%v", err)
|
|
|
return 0, 0, ids, riskLevel
|
|
|
}
|
|
|
if riskLevel != "" {
|
|
|
var productList []productDao.MerchantProduct
|
|
|
- //现加入没有产品的报告
|
|
|
- productList, err = productDao.GetProductListBySourceIds(ids, false, productDao.Audio, productDao.Video)
|
|
|
+ //现加入没有产品的媒体
|
|
|
+ productList, err = productDao.GetProductListBySourceIds(ids, true, productDao.Audio, productDao.Video)
|
|
|
for _, mediaId := range ids {
|
|
|
find := false
|
|
|
for _, product := range productList {
|
|
@@ -163,22 +195,34 @@ func GetMediaPermissionMappingByPermissionIds(mediaType string, permissionIds []
|
|
|
logger.Error("解析产品风险等级失败:%v,产品id:%v", pdErr, product.ID)
|
|
|
continue
|
|
|
}
|
|
|
- if pdRiskNum <= riskNum {
|
|
|
+ if pdRiskNum <= riskNum && product.SaleStatus == productDao.OnSale {
|
|
|
ids = append(ids, mediaId)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if len(ids) > 0 {
|
|
|
- sort.Slice(ids, func(i, j int) bool {
|
|
|
- return ids[i] > ids[j]
|
|
|
+ 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]
|
|
|
})
|
|
|
- return int64(len(ids)), int64(ids[0]), ids, riskLevel
|
|
|
+ return int64(len(filterIds)), int64(filterIds[0]), filterIds, riskLevel
|
|
|
}
|
|
|
return 0, 0, []int{}, riskLevel
|
|
|
}
|
|
|
-
|
|
|
func GetAnalystMediaPermissionMappingByPermissionIds(mediaType string, permissionIds []int, analystId int, mappingRiskLevel string) (total int64, latestId int64, ids []int, riskLevel string) {
|
|
|
ids, err := mediaDao.GetMediaPermissionMappingByPermissionId(mediaType, permissionIds)
|
|
|
if err != nil {
|
|
@@ -194,10 +238,40 @@ func GetAnalystMediaPermissionMappingByPermissionIds(mediaType string, permissio
|
|
|
logger.Info("根据研究员过滤媒体列表id为空")
|
|
|
return 0, 0, ids, mappingRiskLevel
|
|
|
}
|
|
|
+ var offSaleProducts []merchantService.MerchantProductDTO
|
|
|
+ offSaleProducts, err = merchantService.GetOffSaleProducts([]string{"report", "package"})
|
|
|
+ var disCardMediaIds []int
|
|
|
+ var disCardPermissionIds []int
|
|
|
+ var filterPermissionIds []int
|
|
|
+ var filterIds []int
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("获取下架的报告产品失败:%v", err)
|
|
|
+ } else {
|
|
|
+ for _, product := range offSaleProducts {
|
|
|
+ if product.Type == "package" {
|
|
|
+ disCardPermissionIds = append(disCardPermissionIds, product.SourceId)
|
|
|
+ }
|
|
|
+ if product.Type == "audio" || product.Type == "video" {
|
|
|
+ disCardMediaIds = append(disCardMediaIds, product.SourceId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, permissionId := range permissionIds {
|
|
|
+ find := false
|
|
|
+ for _, disCardPermissionId := range disCardPermissionIds {
|
|
|
+ if permissionId == disCardPermissionId {
|
|
|
+ find = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if !find {
|
|
|
+ filterPermissionIds = append(filterPermissionIds, permissionId)
|
|
|
+ }
|
|
|
+ }
|
|
|
if mappingRiskLevel != "" {
|
|
|
var productList []productDao.MerchantProduct
|
|
|
//现加入没有产品的报告
|
|
|
- productList, err = productDao.GetProductListBySourceIds(ids, false, productDao.Audio, productDao.Video)
|
|
|
+ productList, err = productDao.GetProductListBySourceIds(ids, true, productDao.Audio, productDao.Video)
|
|
|
for _, mediaId := range ids {
|
|
|
find := false
|
|
|
for _, product := range productList {
|
|
@@ -224,18 +298,31 @@ func GetAnalystMediaPermissionMappingByPermissionIds(mediaType string, permissio
|
|
|
logger.Error("解析产品风险等级失败:%v,产品id:%v", pdErr, product.ID)
|
|
|
continue
|
|
|
}
|
|
|
- if pdRiskNum <= riskNum {
|
|
|
+ if pdRiskNum <= riskNum && product.SaleStatus == productDao.OnSale {
|
|
|
ids = append(ids, mediaId)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if len(ids) > 0 {
|
|
|
- sort.Slice(ids, func(i, j int) bool {
|
|
|
- return ids[i] > ids[j]
|
|
|
+ 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]
|
|
|
})
|
|
|
- return int64(len(ids)), int64(ids[0]), ids, mappingRiskLevel
|
|
|
+ return int64(len(filterIds)), int64(filterIds[0]), filterIds, riskLevel
|
|
|
}
|
|
|
return 0, 0, []int{}, mappingRiskLevel
|
|
|
}
|