浏览代码

报告增加产品信息筛选

kobe6258 5 月之前
父节点
当前提交
b7f7de065d

+ 2 - 1
domian/media/media_service.go

@@ -10,6 +10,7 @@ import (
 	configService "eta/eta_mini_ht_api/domian/config"
 	reportService "eta/eta_mini_ht_api/domian/report"
 	"eta/eta_mini_ht_api/models"
+	"eta/eta_mini_ht_api/models/image"
 	mediaDao "eta/eta_mini_ht_api/models/media"
 	productDao "eta/eta_mini_ht_api/models/merchant"
 	"fmt"
@@ -344,5 +345,5 @@ func matchRangeWithDocIds(key string, from int, to int, max int64, sorts []strin
 	return req.CreateESQueryRequest(htConfig.GetMediaIndex(), ESColumn, key, from, to, sorts, es.Range).Range(0, max, ESRangeColumn).WithDocs(docIds)
 }
 func GetImageSrc(id int) (src string, err error) {
-	return mediaDao.GetImageSrc(id)
+	return image.GetImageSrc(id)
 }

+ 2 - 1
domian/merchant/merchant_product.go

@@ -27,7 +27,8 @@ var (
 type MerchantProductDTO struct {
 	Id          int
 	Title       string
-	CoverSrc    string
+	CoverSrc    int
+	CoverUrl    string
 	Description string
 	Price       decimal.Decimal
 	ProductTile string

+ 1 - 1
domian/report/report_service.go

@@ -16,7 +16,7 @@ import (
 	"eta/eta_mini_ht_api/models/eta"
 	etaDao "eta/eta_mini_ht_api/models/eta"
 	"eta/eta_mini_ht_api/models/ht"
-	mediaDao "eta/eta_mini_ht_api/models/media"
+	mediaDao "eta/eta_mini_ht_api/models/image"
 	reportDao "eta/eta_mini_ht_api/models/report"
 	userDao "eta/eta_mini_ht_api/models/user"
 	"math/rand"

+ 1 - 1
models/media/images_sources.go → models/image/images_sources.go

@@ -1,4 +1,4 @@
-package media
+package image
 
 import (
 	"eta/eta_mini_ht_api/models"

+ 3 - 2
models/merchant/merchant_product.go

@@ -12,7 +12,7 @@ type SaleStatus string
 type MerchantProductType string
 
 const (
-	detailColumns  = "id,title,price,is_permanent,valid_days,type,sale_status,cover_src,description,source_id,created_time,updated_time"
+	detailColumns  = "id,title,price,is_permanent,valid_days,type,sale_status,cover_src,cover_url,description,source_id,created_time,updated_time"
 	sourceIdColumn = "id,source_id"
 )
 const (
@@ -29,7 +29,8 @@ type MerchantProduct struct {
 	ID          int                 `gorm:"column:id;primary_key;autoIncrement;comment:主键"`
 	SourceID    int                 `gorm:"column:source_id;type:int(11);comment:单品或者套餐对应的主键"`
 	Title       string              `gorm:"column:title;type:varchar(255);comment:标题"`
-	CoverSrc    string              `gorm:"column:cover_src;type:varchar(255);comment:封面图片"`
+	CoverSrc    int                 `gorm:"column:cover_src;type:int(11);comment:封面图片资源库id"`
+	CoverUrl    string              `gorm:"column:cover_url;type:varchar(255);comment:封面图片url"`
 	Description string              `gorm:"column:description;type:varchar(255);comment:描述"`
 	Price       decimal.Decimal     `gorm:"column:price;type:decimal(10,2);comment:价格"`
 	RiskLevel   string              `gorm:"-"`

+ 45 - 26
service/product/product_service.go

@@ -7,39 +7,40 @@ import (
 	merchantService "eta/eta_mini_ht_api/domian/merchant"
 	reportDomain "eta/eta_mini_ht_api/domian/report"
 	"eta/eta_mini_ht_api/models/config"
+	"eta/eta_mini_ht_api/models/image"
 	"eta/eta_mini_ht_api/models/media"
 	configService "eta/eta_mini_ht_api/service/config"
 	mediaService "eta/eta_mini_ht_api/service/media"
 	"eta/eta_mini_ht_api/service/order"
 	reportService "eta/eta_mini_ht_api/service/report"
 	"fmt"
-	"strings"
 	"time"
 )
 
 type ProductDTO struct {
-	Title           string `json:"title"`
-	SourceTile      string `json:"sourceTile"`
-	Abstract        string `json:"abstract"`
-	Src             string `json:"src"`
-	PermissionNames string `json:"permissionNames"`
-	Description     string `json:"description"`
-	Price           string `json:"price"`
-	CoverSrc        string `json:"coverSrc"`
-	RiskLevel       string `json:"riskLevel"`
-	Type            string `json:"type"`
-	BeginDate       string `json:"beginDate"`
-	EndDate         string `json:"endDate"`
-	SourceId        int    `json:"sourceId"`
-	ReportId        int    `json:"reportId"`
-	MediaId         int    `json:"mediaId"`
+	Title           string   `json:"title"`
+	SourceTile      string   `json:"sourceTile"`
+	Abstract        string   `json:"abstract"`
+	Src             string   `json:"src"`
+	PermissionNames []string `json:"permissionNames"`
+	Description     string   `json:"description"`
+	Price           string   `json:"price"`
+	CoverSrc        int      `json:"coverSrc"`
+	CoverUrl        string   `json:"coverUrl"`
+	RiskLevel       string   `json:"riskLevel"`
+	Type            string   `json:"type"`
+	BeginDate       string   `json:"beginDate"`
+	EndDate         string   `json:"endDate"`
+	SourceId        int      `json:"sourceId"`
+	ReportId        int      `json:"reportId"`
+	MediaId         int      `json:"mediaId"`
 }
 
-func GetProductRiskLevel(product merchantService.MerchantProductDTO) (riskLevel, sourceTitle, sourceAbsract, sourceSrc, permissionNames string, err error) {
+func GetProductRiskLevel(product merchantService.MerchantProductDTO) (riskLevel, sourceTitle, sourceAbsract, coverSrc, sourceSrc string, permissionNames []string, err error) {
 	switch product.Type {
 	case "package":
 		permissionRisk, permissionErr := config.PermissionsByPermissionId(product.SourceId)
-		permissionNames = permissionRisk.Name
+		permissionNames = []string{permissionRisk.Name}
 		if permissionErr != nil {
 			logger.Error("获取权限信息失败[permissionId:%d]", product.SourceId)
 		} else {
@@ -47,7 +48,7 @@ func GetProductRiskLevel(product merchantService.MerchantProductDTO) (riskLevel,
 		}
 	case "audio", "video":
 		mediaInfo, mediaErr := media.GetMediaById(product.Type, product.SourceId)
-		sourceTitle, sourceSrc = mediaInfo.MediaName, mediaInfo.Src
+		sourceTitle, coverSrc, sourceSrc = mediaInfo.MediaName, mediaInfo.CoverSrc, mediaInfo.Src
 		if mediaErr != nil {
 			logger.Error("获取媒体信息失败[mediaType:%s,mediaId:%d]", product.Type, product.SourceId)
 		}
@@ -59,14 +60,24 @@ func GetProductRiskLevel(product merchantService.MerchantProductDTO) (riskLevel,
 			if permissionErr != nil {
 				logger.Error("获取权限信息失败[permissionIds:%v]", permissionIds)
 			}
-			permissionNamesList := mediaService.GetMediaPermissionNames(permissionIds)
-			permissionNames = strings.Join(permissionNamesList, ",")
+			permissionNames = mediaService.GetMediaPermissionNames(permissionIds)
+			//permissionNames = strings.Join(permissionNamesList, ",")
 			riskNum := configService.GetHighestRiskLevel(permissions)
 			riskLevel = fmt.Sprintf("R%d", riskNum)
 		}
 	case "report":
 		report, reportErr := reportDomain.GetReportById(product.SourceId)
-		sourceAbsract, sourceTitle = report.Abstract, report.Title
+		var coverSrcId int
+		sourceAbsract, sourceTitle, coverSrcId = report.Abstract, report.Title, report.CoverSrc
+		if coverSrcId > 0 {
+			var imageSrc string
+			imageSrc, coverSrcErr := image.GetImageSrc(coverSrcId)
+			if coverSrcErr != nil {
+				logger.Error("获取图片资源失败:%v,资源ID:%d", err, coverSrcId)
+			} else {
+				coverSrc = imageSrc
+			}
+		}
 		if reportErr != nil {
 			logger.Error("获取研报信息失败[reportId:%d]", product.SourceId)
 		} else {
@@ -87,9 +98,8 @@ func GetProductRiskLevel(product merchantService.MerchantProductDTO) (riskLevel,
 					riskLevel = fmt.Sprintf("R%d", riskNum)
 				}
 			}
-			var permissionNamesList []string
-			_, permissionNamesList = reportService.GetReportPermissionNames(report.OrgId, report.Source)
-			permissionNames = strings.Join(permissionNamesList, ",")
+			_, permissionNames = reportService.GetReportPermissionNames(report.OrgId, report.Source)
+			//permissionNames = strings.Join(permissionNamesList, ",")
 		}
 	default:
 		logger.Warn("不支持的产品类型[%s]", product.Type)
@@ -103,7 +113,7 @@ func GetProductInfoById(productId int) (product ProductDTO, err error) {
 		return
 	}
 	product = convertToProductDTO(merchantProduct)
-	product.RiskLevel, product.SourceTile, product.Abstract, product.Src, product.PermissionNames, err = GetProductRiskLevel(merchantProduct)
+	product.RiskLevel, product.SourceTile, product.Abstract, product.CoverUrl, product.Src, product.PermissionNames, err = GetProductRiskLevel(merchantProduct)
 	if err != nil {
 		logger.Error("获取风险等级失败[productId:%d]", productId)
 	}
@@ -118,11 +128,20 @@ func convertToProductDTO(product merchantService.MerchantProductDTO) (productDTO
 		Price:       product.Price.String(),
 		RiskLevel:   product.RiskLevel,
 		CoverSrc:    product.CoverSrc,
+		CoverUrl:    product.CoverUrl,
 		Type:        product.Type,
 		BeginDate:   beginDate.Format(time.DateOnly),
 		EndDate:     endDate.Format(time.DateOnly),
 		SourceId:    product.SourceId,
 	}
+	if product.CoverUrl == "" && product.CoverSrc > 0 {
+		imageSrc, err := image.GetImageSrc(product.CoverSrc)
+		if err != nil {
+			logger.Error("获取图片地址失败:%v,资源Id:%d", err, product.CoverSrc)
+		} else {
+			productDTO.CoverUrl = imageSrc
+		}
+	}
 	return
 }
 

+ 6 - 6
service/product/subscribe_servcie.go

@@ -17,8 +17,8 @@ type SubscribeDTO struct {
 	SourceSrc       string
 	Type            string
 	RiskLevel       string
-	CoverSrc        string
-	PermissionNames string
+	CoverUrl        string
+	PermissionNames []string
 	CreatedDate     string
 }
 
@@ -37,11 +37,11 @@ func SubscribeList(templateUserId int, productType string, pageInfo page.PageInf
 			}
 			switch product.Type {
 			case "audio", "video":
-				subscribe.RiskLevel, subscribe.SourceTitle, _, subscribe.SourceSrc, subscribe.PermissionNames, err = GetProductRiskLevel(product)
+				subscribe.RiskLevel, subscribe.SourceTitle, _, subscribe.CoverUrl, subscribe.SourceSrc, subscribe.PermissionNames, err = GetProductRiskLevel(product)
 			case "report":
-				subscribe.RiskLevel, subscribe.SourceTitle, subscribe.SourceAbstract, _, subscribe.PermissionNames, err = GetProductRiskLevel(product)
+				subscribe.RiskLevel, subscribe.SourceTitle, subscribe.SourceAbstract, subscribe.CoverUrl, _, subscribe.PermissionNames, err = GetProductRiskLevel(product)
 			case "package":
-				subscribe.RiskLevel, _, _, _, subscribe.PermissionNames, err = GetProductRiskLevel(product)
+				subscribe.RiskLevel, _, _, subscribe.CoverUrl, _, subscribe.PermissionNames, err = GetProductRiskLevel(product)
 			default:
 				logger.Error("未知产品类型[productType:%s]", product.Type)
 				return
@@ -59,7 +59,7 @@ func convertToSubscribeDTO(product merchant.MerchantProductDTO) SubscribeDTO {
 		Type:        product.Type,
 		Title:       product.Title,
 		Abstract:    product.Description,
-		CoverSrc:    product.CoverSrc,
+		CoverUrl:    product.CoverUrl,
 		CreatedDate: product.CreatedTime.Format(time.DateOnly),
 	}
 }