fix_step null false

This commit is contained in:
2025-12-10 17:51:28 +08:00
parent 83d0fd6587
commit 09d7a4f076
4 changed files with 16 additions and 21 deletions

View File

@@ -12,6 +12,7 @@ import (
type ProductApplicationService interface {
// 产品管理
CreateProduct(ctx context.Context, cmd *commands.CreateProductCommand) (*responses.ProductAdminInfoResponse, error)
UpdateProduct(ctx context.Context, cmd *commands.UpdateProductCommand) error
DeleteProduct(ctx context.Context, cmd *commands.DeleteProductCommand) error

View File

@@ -20,8 +20,8 @@ type Product struct {
Price decimal.Decimal `gorm:"type:decimal(10,2);not null;default:0" comment:"产品价格"`
CostPrice decimal.Decimal `gorm:"type:decimal(10,2);default:0" comment:"成本价"`
Remark string `gorm:"type:text" comment:"备注"`
IsEnabled bool `gorm:"default:true" comment:"是否启用"`
IsVisible bool `gorm:"default:true" comment:"是否展示"`
IsEnabled bool `gorm:"default:false" comment:"是否启用"`
IsVisible bool `gorm:"default:false" comment:"是否展示"`
IsPackage bool `gorm:"default:false" comment:"是否组合包"`
// 组合包相关关联
PackageItems []*ProductPackageItem `gorm:"foreignKey:PackageID" comment:"组合包项目列表"`
@@ -62,7 +62,6 @@ func (p *Product) CanBeSubscribed() bool {
return p.IsValid()
}
// UpdateSEO 更新SEO信息
func (p *Product) UpdateSEO(title, description, keywords string) {
p.SEOTitle = title

View File

@@ -79,6 +79,7 @@ func (s *ProductManagementService) GetProductByCode(ctx context.Context, product
}
return product, nil
}
// GetProductWithCategory 获取产品及其分类信息
func (s *ProductManagementService) GetProductWithCategory(ctx context.Context, productID string) (*entities.Product, error) {
product, err := s.productRepo.GetByID(ctx, productID)

View File

@@ -34,13 +34,7 @@ func NewGormProductRepository(db *gorm.DB, logger *zap.Logger) repositories.Prod
}
func (r *GormProductRepository) Create(ctx context.Context, entity entities.Product) (entities.Product, error) {
// 使用 Select 明确指定所有字段,确保 false 值也能正确保存
// 这样可以避免 GORM 的 default:true 标签在字段为 false 时使用数据库默认值
err := r.GetDB(ctx).Select(
"id", "old_id", "name", "code", "description", "content", "category_id",
"price", "cost_price", "remark", "is_enabled", "is_visible", "is_package",
"seo_title", "seo_description", "seo_keywords",
).Create(&entity).Error
err := r.CreateEntity(ctx, &entity)
return entity, err
}