package product import ( logger "eta/eta_mini_ht_api/common/component/log" "eta/eta_mini_ht_api/common/utils/page" "eta/eta_mini_ht_api/domian/merchant" "sync" ) type SubscribeDTO struct { Title string Abstract string RiskLevel string CoverSrc string } func SubscribeList(templateUserId int, productType string, pageInfo page.PageInfo) (list []SubscribeDTO, err error) { var subscribeList []merchant.UserAccessDTO subscribeList, err = merchant.SubscribeList(templateUserId, productType, pageInfo) var wg sync.WaitGroup wg.Add(len(subscribeList)) for _, Subscribe := range subscribeList { go func(Subscribe merchant.UserAccessDTO) { defer wg.Done() product, _ := merchant.GetMerchantProductById(Subscribe.ProductID) subscribe := convertToSubscribeDTO(product) subscribe.RiskLevel, err = GetProductRiskLevel(product) if err != nil { logger.Error("获取风险等级失败[productId:%d]", product.Id) } list = append(list, subscribe) }(Subscribe) } wg.Wait() return } func convertToSubscribeDTO(product merchant.MerchantProductDTO) SubscribeDTO { return SubscribeDTO{ Title: product.Title, Abstract: product.Description, CoverSrc: product.CoverSrc, } } func GetTotalPageCountByProductType(productType string, templateUserId int) (int64, int64) { return merchant.GetTotalPageCountByProductType(productType, templateUserId) }