Преглед на файлове

报告增加产品信息筛选

kobe6258 преди 4 месеца
родител
ревизия
0bdcb1d016

+ 1 - 0
controllers/product/product_controller.go

@@ -57,6 +57,7 @@ func (p *ProductController) RelatePackage(productId int) {
 			err = exception.New(exception.ProductTypeError)
 		}
 		productList, err := productService.GetRelatePackage(productInfo)
+		productList = append(productList, productInfo)
 		if err != nil {
 			p.FailedResult("获取关联套餐信息失败", result)
 			return

+ 2 - 2
domian/media/media_service.go

@@ -131,7 +131,7 @@ func GetMediaPermissionMappingByPermissionIds(mediaType string, permissionIds []
 	if riskLevel != "" {
 		var productList []productDao.MerchantProduct
 		//现加入没有产品的报告
-		productList, err = productDao.GetProductListBySourceIds(ids, productDao.Audio, productDao.Video)
+		productList, err = productDao.GetProductListBySourceIds(ids, false, productDao.Audio, productDao.Video)
 		for _, mediaId := range ids {
 			find := false
 			for _, product := range productList {
@@ -205,7 +205,7 @@ func GetAnalystMediaPermissionMappingByPermissionIds(mediaType string, permissio
 	if mappingRiskLevel != "" {
 		var productList []productDao.MerchantProduct
 		//现加入没有产品的报告
-		productList, err = productDao.GetProductListBySourceIds(ids, productDao.Audio, productDao.Video)
+		productList, err = productDao.GetProductListBySourceIds(ids, false, productDao.Audio, productDao.Video)
 		for _, mediaId := range ids {
 			find := false
 			for _, product := range productList {

+ 1 - 1
domian/merchant/merchant_product.go

@@ -86,7 +86,7 @@ func GetProductBySourceId(id int, productType merchantDao.MerchantProductType) (
 }
 
 func GetProductListBySourceIds(ids []int, productType string) (productDTOS []MerchantProductDTO, err error) {
-	productList, err := merchantDao.GetProductListBySourceIds(ids, typeKindTransfer[productType])
+	productList, err := merchantDao.GetProductListBySourceIds(ids, true, typeKindTransfer[productType])
 	if err != nil {
 		logger.Error("获取商品列表失败[sourceIds:%v,type:%v],err:%v", ids, productType, err)
 		return

+ 1 - 1
domian/report/eta_report_service.go

@@ -82,7 +82,7 @@ func GetETAReportIdsByPermissionIdsWithRiskLevel(permissionIds []int, riskLevel
 	}
 	var productList []productDao.MerchantProduct
 	//现加入没有产品的报告
-	productList, err = productDao.GetProductListBySourceIds(ids, productDao.Report)
+	productList, err = productDao.GetProductListBySourceIds(ids, false, productDao.Report)
 	for _, report := range reports {
 		find := false
 		for _, product := range productList {

+ 1 - 1
domian/report/ht_report_service.go

@@ -49,7 +49,7 @@ func GetHTReportIdsByPermissionIdsWithRiskLevel(permissionIds []int, riskLevel s
 	}
 	var productList []productDao.MerchantProduct
 	//现加入没有产品的报告
-	productList, err = productDao.GetProductListBySourceIds(ids, productDao.Report)
+	productList, err = productDao.GetProductListBySourceIds(ids, false, productDao.Report)
 	for _, report := range reports {
 		find := false
 		for _, product := range productList {

+ 10 - 4
models/merchant/merchant_product.go

@@ -76,21 +76,27 @@ func GetMerchantProductBySourceId(sourceId int, productType ...MerchantProductTy
 	return
 }
 
-func GetProductListBySourceIds(ids []int, productType ...MerchantProductType) (productList []MerchantProduct, err error) {
+func GetProductListBySourceIds(ids []int, detail bool, productType ...MerchantProductType) (productList []MerchantProduct, err error) {
 	db := models.Main()
+	var columns string
 	if productType == nil {
 		err = errors.New("productType参数不能为空")
 		return
 	}
+	if detail {
+		columns = detailColumns
+	} else {
+		columns = sourceIdColumn
+	}
 	if len(productType) > 0 {
 		if len(productType) == 1 {
-			err = db.Select(sourceIdColumn).Where("source_id in ? and type = ? and deleted =? order by created_time desc", ids, productType[0], false).Find(&productList).Error
+			err = db.Select(columns).Where("source_id in ? and type = ? and deleted =? order by created_time desc", ids, productType[0], false).Find(&productList).Error
 		} else {
-			err = db.Select(sourceIdColumn).Where("source_id in ? and type in (?) and deleted =? by created_time desc", ids, productType, false).Find(&productList).Error
+			err = db.Select(columns).Where("source_id in ? and type in (?) and deleted =? by created_time desc", ids, productType, false).Find(&productList).Error
 		}
 
 	} else {
-		err = db.Select(sourceIdColumn).Where("source_id in ?  and deleted =? by created_time desc", ids, productType, false).Find(&productList).Error
+		err = db.Select(columns).Where("source_id in ?  and deleted =? by created_time desc", ids, productType, false).Find(&productList).Error
 	}
 
 	return

+ 31 - 13
service/product/product_service.go

@@ -19,15 +19,19 @@ import (
 )
 
 type ProductDTO struct {
-	Title       string
-	Description string
-	Price       decimal.Decimal
-	CoverSrc    string
-	RiskLevel   string
-	Type        string
-	BeginDate   string
-	EndDate     string
-	SourceId    int
+	Title           string
+	SourceTile      string
+	SourceAbstract  string
+	SourceSrc       string
+	PermissionNames string
+	Description     string
+	Price           decimal.Decimal
+	CoverSrc        string
+	RiskLevel       string
+	Type            string
+	BeginDate       string
+	EndDate         string
+	SourceId        int
 }
 
 func GetProductRiskLevel(product merchantService.MerchantProductDTO) (riskLevel, sourceTitle, sourceAbsract, sourceSrc, permissionNames string, err error) {
@@ -98,7 +102,7 @@ func GetProductInfoById(productId int) (product ProductDTO, err error) {
 		return
 	}
 	product = convertToProductDTO(merchantProduct)
-	product.RiskLevel, _, _, _, _, err = GetProductRiskLevel(merchantProduct)
+	product.RiskLevel, product.SourceTile, product.SourceAbstract, product.SourceSrc, product.PermissionNames, err = GetProductRiskLevel(merchantProduct)
 	if err != nil {
 		logger.Error("获取风险等级失败[productId:%d]", productId)
 	}
@@ -154,7 +158,7 @@ func CloseProduct(templateUserId int, productOrderNo string) (err error) {
 //过期产品(套餐)
 
 // 退款关闭套餐
-func GetRelatePackage(info ProductDTO) (prodList []merchantService.MerchantProductDTO, err error) {
+func GetRelatePackage(info ProductDTO) (prodList []ProductDTO, err error) {
 	switch info.Type {
 	case "audio", "video":
 		permissionIds, permissionErr := media.GetMediaPermissionMappingByMedia(info.Type, info.SourceId)
@@ -162,7 +166,14 @@ func GetRelatePackage(info ProductDTO) (prodList []merchantService.MerchantProdu
 			logger.Error("获取媒体品种信息失败:%v", err)
 			return
 		}
-		return merchantService.GetProductListBySourceIds(permissionIds, "package")
+		merchantProduct, pdErr := merchantService.GetProductListBySourceIds(permissionIds, "package")
+		if pdErr != nil {
+			return
+		}
+		for _, product := range merchantProduct {
+			prodList = append(prodList, convertToProductDTO(product))
+		}
+		return
 	case "report":
 		reportInfo, reportErr := reportDomain.GetReportById(info.SourceId)
 		if reportErr != nil {
@@ -177,7 +188,14 @@ func GetRelatePackage(info ProductDTO) (prodList []merchantService.MerchantProdu
 			}
 			permissionIds = append(permissionIds, permissions[0].PermissionId)
 		}
-		return merchantService.GetProductListBySourceIds(permissionIds, "package")
+		merchantProduct, pdErr := merchantService.GetProductListBySourceIds(permissionIds, "package")
+		if pdErr != nil {
+			return
+		}
+		for _, product := range merchantProduct {
+			prodList = append(prodList, convertToProductDTO(product))
+		}
+		return
 	default:
 		err = exception.New(exception.ProductTypeError)
 		return