1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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"
- "time"
- )
- type SubscribeDTO struct {
- Title string `json:"title"`
- Abstract string `json:"abstract"`
- SourceId int `json:"sourceId"`
- SourceTitle string `json:"sourceTitle"`
- SourceAbstract string `json:"sourceAbstract"`
- SourceSrc string `json:"sourceSrc"`
- Type string `json:"type"`
- RiskLevel string `json:"riskLevel"`
- CoverUrl string `json:"coverUrl"`
- PermissionNames []string `json:"permissionNames"`
- CreatedDate string `json:"createdDate"`
- }
- 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)
- if err != nil {
- logger.Error("获取风险等级失败[productId:%d]", product.Id)
- }
- switch product.Type {
- case "audio", "video":
- subscribe.RiskLevel, subscribe.SourceTitle, _, subscribe.CoverUrl, subscribe.SourceSrc, subscribe.PermissionNames, _, err = GetProductRiskLevel(product)
- case "report":
- subscribe.RiskLevel, subscribe.SourceTitle, subscribe.SourceAbstract, subscribe.CoverUrl, _, subscribe.PermissionNames, _, err = GetProductRiskLevel(product)
- case "package":
- subscribe.RiskLevel, _, _, subscribe.CoverUrl, _, subscribe.PermissionNames, _, err = GetProductRiskLevel(product)
- default:
- logger.Error("未知产品类型[productType:%s]", product.Type)
- return
- }
- list = append(list, subscribe)
- }(Subscribe)
- }
- wg.Wait()
- return
- }
- func convertToSubscribeDTO(product merchant.MerchantProductDTO) SubscribeDTO {
- return SubscribeDTO{
- SourceId: product.SourceId,
- Type: product.Type,
- Title: product.Title,
- Abstract: product.Description,
- CoverUrl: product.CoverUrl,
- CreatedDate: product.CreatedTime.Format(time.DateOnly),
- }
- }
- func GetTotalUserPageCountByProductType(productType string, templateUserId int) (int64, int64) {
- return merchant.GetTotalUserPageCountByProductType(productType, templateUserId)
- }
|