Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrEmptyAttrArray = domain.NewError( "err_empty_attr_array", "模型至少包含一个属性") ErrEmptySpecArray = domain.NewError( "err_empty_spec_array", "模型至少包含一个规格") ErrEmptyBrandArray = domain.NewError( "err_empty_brand_array", "模型至少包含一个品牌") ErrExistsBrand = domain.NewError( "err_exists_brand", "已存在相同名称的品牌") ErrModelIsUsed = domain.NewError( "err_product_model_is_used", "模型已被分类\"%s\"使用") )
Functions ¶
This section is empty.
Types ¶
type Attr ¶
type Attr struct { // 编号 Id int `db:"id" pk:"yes" auto:"yes"` // 产品模型 ModelId int `db:"prod_model"` // 属性名称 Name string `db:"name"` // 是否作为筛选条件 IsFilter int `db:"is_filter"` // 是否多选 MultiCheck int `db:"multi_check"` // 属性项值 ItemValues string `db:"item_values"` // 排列序号 SortNum int `db:"sort_num"` // 属性项 Items []*AttrItem `db:"-"` }
属性
type AttrItem ¶
type AttrItem struct { // 编号 Id int `db:"id" pk:"yes" auto:"yes"` // 属性编号 AttrId int `db:"attr_id"` // 产品模型 ModelId int `db:"prod_model"` // 属性值 Value string `db:"value"` // 排列序号 SortNum int `db:"sort_num"` }
属性项
type IAttrService ¶
type IAttrService interface { // 获取属性 GetAttr(attrId int) *Attr // 保存属性 SaveAttr(*Attr) (int, error) // 保存属性项 SaveItem(*AttrItem) (int, error) // 删除属性 DeleteAttr(attrId int) error // 删除属性项 DeleteItem(itemId int) error // 获取属性的属性项 GetItems(attrId int) []*AttrItem // 获取产品模型的属性 GetModelAttrs(proModel int) []*Attr }
属性服务
type IBrandService ¶
type IBrandService interface { // 获取品牌 Get(brandId int) *ProductBrand // 保存品牌 SaveBrand(*ProductBrand) (int, error) // 删除品牌 DeleteBrand(id int) error // 获取所有(已审核的)品牌 AllBrands() []*ProductBrand // 获取关联的品牌编号 Brands(proModel int) []*ProductBrand }
品牌服务
type IProductModel ¶
type IProductModel interface { // 获取聚合根编号 GetAggregateRootId() int // 获取值 Value() *ProductModel // 是否启用 SetValue(model *ProductModel) error // 获取属性 Attrs() []*Attr // 获取规格 Specs() []*Spec // 设置属性 SetAttrs([]*Attr) error // 设置规格 SetSpecs([]*Spec) error // 获取关联的品牌编号 Brands() []*ProductBrand // 设置关联品牌 SetBrands(brandId []int) error // 保存 Save() (int, error) // 删除模型 Destroy() error }
产品模型
type IProductModelRepo ¶
type IProductModelRepo interface { // 创建商品模型 CreateModel(v *ProductModel) IProductModel // 获取商品模型 GetModel(id int) IProductModel // 属性服务 AttrService() IAttrService // 规格服务 SpecService() ISpecService //获取品牌服务 BrandService() IBrandService // 获取模型的商品品牌 GetModelBrands(proModel int) []*ProductBrand // 检查模块是否关联分类 CheckModelIsUsed(modelId int) (bool, string) // Select ProductModel SelectProModel(where string, v ...interface{}) []*ProductModel // Save ProductModel SaveProModel(v *ProductModel) (int, error) // Delete ProductModel DeleteProModel(primary interface{}) error // Get Attr GetAttr(primary interface{}) *Attr // Select Attr SelectAttr(where string, v ...interface{}) []*Attr // Save Attr SaveAttr(v *Attr) (int, error) // Delete Attr DeleteAttr(primary interface{}) error // Batch Delete Attr BatchDeleteAttr(where string, v ...interface{}) (int64, error) // Get AttrItem GetAttrItem(primary interface{}) *AttrItem // Select AttrItem SelectAttrItem(where string, v ...interface{}) []*AttrItem // Save AttrItem SaveAttrItem(v *AttrItem) (int, error) // Delete AttrItem DeleteAttrItem(primary interface{}) error // Batch Delete AttrItem BatchDeleteAttrItem(where string, v ...interface{}) (int64, error) // Get Spec GetSpec(primary interface{}) *Spec // Select Spec SelectSpec(where string, v ...interface{}) []*Spec // Save Spec SaveSpec(v *Spec) (int, error) // Delete Spec DeleteSpec(primary interface{}) error // Batch Delete Spec BatchDeleteSpec(where string, v ...interface{}) (int64, error) // Get SpecItem GetSpecItem(primary interface{}) *SpecItem // Select SpecItem SelectSpecItem(where string, v ...interface{}) []*SpecItem // Save SpecItem SaveSpecItem(v *SpecItem) (int, error) // Delete SpecItem DeleteSpecItem(primary interface{}) error // Batch Delete SpecItem BatchDeleteSpecItem(where string, v ...interface{}) (int64, error) // Get ProductBrand GetProBrand(primary interface{}) *ProductBrand // Save ProductBrand SaveProBrand(v *ProductBrand) (int, error) // Delete ProductBrand DeleteProBrand(primary interface{}) error // Select ProductBrand SelectProBrand(where string, v ...interface{}) []*ProductBrand // IsExistsBrand 是否存在相同名称的品牌 IsExistsBrand(name string, id int) bool // Batch Delete ProductBrand BatchDeleteProBrand(where string, v ...interface{}) (int64, error) // Get ProModelBrand GetProModelBrand(primary interface{}) *ProModelBrand // Save ProModelBrand SaveProModelBrand(v *ProModelBrand) (int, error) // Delete ProModelBrand DeleteProModelBrand(primary interface{}) error // Select ProModelBrand SelectProModelBrand(where string, v ...interface{}) []*ProModelBrand // Batch Delete ProModelBrand BatchDeleteProModelBrand(where string, v ...interface{}) (int64, error) }
type ISpecService ¶
type ISpecService interface { // 获取规格 GetSpec(specId int) *Spec // 保存规格 SaveSpec(*Spec) (int, error) // 保存规格项 SaveItem(*SpecItem) (int, error) // 删除规格 DeleteSpec(specId int) error // 删除规格项 DeleteItem(itemId int) error // 获取规格的规格项 GetItems(specId int) SpecItemList // 获取产品模型的规格 GetModelSpecs(proModel int) SpecList }
规格服务
type ProModelBrand ¶
type ProModelBrand struct { // 关联编号 Id int `db:"id" pk:"yes" auto:"yes"` // 品牌编号 BrandId int `db:"brand_id"` // 模型编号 ModelId int `db:"prod_model"` }
产品模型与品牌关联
type ProductBrand ¶
type ProductBrand struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 品牌名称 Name string `db:"name"` // 品牌图片 Image string `db:"image"` // 品牌网址 SiteUrl string `db:"site_url"` // 介绍 Introduce string `db:"introduce"` // 是否审核 ReviewState int32 `db:"review_state"` // 审核意见 ReviewRemark string `db:"review_remark"` // 是否启用 Enabled int `db:"enabled"` // 加入时间 CreateTime int64 `db:"create_time"` }
产品品牌
type ProductModel ¶
type ProductModel struct { // 编号 Id int `db:"id" pk:"yes" auto:"yes"` // 名称 Name string `db:"name"` // 是否启用 Enabled int `db:"enabled"` // 属性字符 AttrStr string `db:"attr_str"` // 规格字符 SpecStr string `db:"spec_str"` // 属性 Attrs []*Attr `db:"-"` // 规格 Specs []*Spec `db:"-"` // 关联品牌 BrandArray []int `db:"-"` }
type Spec ¶
type Spec struct { // 编号 Id int `db:"id" pk:"yes" auto:"yes"` // 产品模型 ModelId int `db:"prod_model"` // 规格名称 Name string `db:"name"` // 规格项值 ItemValues string `db:"item_values"` // 排列序号 SortNum int `db:"sort_num"` // 规格项 Items SpecItemList `db:"-"` }
规格
type SpecItem ¶
type SpecItem struct { // 编号 Id int `db:"id" pk:"yes" auto:"yes"` // 规格编号 SpecId int `db:"spec_id"` // 产品模型(冗余) ModelId int `db:"prod_model"` // 规格项值 Value string `db:"value"` // 规格项颜色 Color string `db:"color"` // 排列序号 SortNum int `db:"sort_num"` }
规格项
type SpecItemList ¶
type SpecItemList []*SpecItem
func (SpecItemList) Len ¶
func (s SpecItemList) Len() int
func (SpecItemList) Less ¶
func (s SpecItemList) Less(i, j int) bool
Less reports whether the element with index i should sort before the element with index j.
func (SpecItemList) Swap ¶
func (s SpecItemList) Swap(i, j int)
Swap swaps the elements with indexes i and j.
Click to show internal directories.
Click to hide internal directories.