fix
This commit is contained in:
@@ -21,6 +21,7 @@ type ProductApplicationServiceImpl struct {
|
||||
productManagementService *product_service.ProductManagementService
|
||||
productSubscriptionService *product_service.ProductSubscriptionService
|
||||
productApiConfigAppService ProductApiConfigApplicationService
|
||||
documentationAppService DocumentationApplicationServiceInterface
|
||||
logger *zap.Logger
|
||||
}
|
||||
|
||||
@@ -29,12 +30,14 @@ func NewProductApplicationService(
|
||||
productManagementService *product_service.ProductManagementService,
|
||||
productSubscriptionService *product_service.ProductSubscriptionService,
|
||||
productApiConfigAppService ProductApiConfigApplicationService,
|
||||
documentationAppService DocumentationApplicationServiceInterface,
|
||||
logger *zap.Logger,
|
||||
) ProductApplicationService {
|
||||
return &ProductApplicationServiceImpl{
|
||||
productManagementService: productManagementService,
|
||||
productSubscriptionService: productSubscriptionService,
|
||||
productApiConfigAppService: productApiConfigAppService,
|
||||
documentationAppService: documentationAppService,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
@@ -411,18 +414,28 @@ func (s *ProductApplicationServiceImpl) ListProductsForAdmin(ctx context.Context
|
||||
|
||||
// GetProductByIDForAdmin 根据ID获取产品(管理员专用)
|
||||
// 业务流程:1. 获取产品信息 2. 构建管理员响应数据
|
||||
func (s *ProductApplicationServiceImpl) GetProductByIDForAdmin(ctx context.Context, query *appQueries.GetProductQuery) (*responses.ProductAdminInfoResponse, error) {
|
||||
func (s *ProductApplicationServiceImpl) GetProductByIDForAdmin(ctx context.Context, query *appQueries.GetProductDetailQuery) (*responses.ProductAdminInfoResponse, error) {
|
||||
product, err := s.productManagementService.GetProductWithCategory(ctx, query.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return s.convertToProductAdminInfoResponse(product), nil
|
||||
response := s.convertToProductAdminInfoResponse(product)
|
||||
|
||||
// 如果需要包含文档信息
|
||||
if query.WithDocument != nil && *query.WithDocument {
|
||||
doc, err := s.documentationAppService.GetDocumentationByProductID(ctx, query.ID)
|
||||
if err == nil && doc != nil {
|
||||
response.Documentation = doc
|
||||
}
|
||||
}
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
// GetProductByIDForUser 根据ID获取产品(用户端专用)
|
||||
// 业务流程:1. 获取产品信息 2. 验证产品可见性 3. 构建用户响应数据
|
||||
func (s *ProductApplicationServiceImpl) GetProductByIDForUser(ctx context.Context, query *appQueries.GetProductQuery) (*responses.ProductInfoResponse, error) {
|
||||
func (s *ProductApplicationServiceImpl) GetProductByIDForUser(ctx context.Context, query *appQueries.GetProductDetailQuery) (*responses.ProductInfoWithDocumentResponse, error) {
|
||||
product, err := s.productManagementService.GetProductWithCategory(ctx, query.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -433,7 +446,19 @@ func (s *ProductApplicationServiceImpl) GetProductByIDForUser(ctx context.Contex
|
||||
return nil, fmt.Errorf("产品不存在或不可见")
|
||||
}
|
||||
|
||||
return s.convertToProductInfoResponse(product), nil
|
||||
response := &responses.ProductInfoWithDocumentResponse{
|
||||
ProductInfoResponse: *s.convertToProductInfoResponse(product),
|
||||
}
|
||||
|
||||
// 如果需要包含文档信息
|
||||
if query.WithDocument != nil && *query.WithDocument {
|
||||
doc, err := s.documentationAppService.GetDocumentationByProductID(ctx, query.ID)
|
||||
if err == nil && doc != nil {
|
||||
response.Documentation = doc
|
||||
}
|
||||
}
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
// convertToProductInfoResponse 转换为产品信息响应
|
||||
|
||||
Reference in New Issue
Block a user