product

package
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2021 License: GPL-2.0 Imports: 3 Imported by: 0

README

产品

Documentation

Overview

*

  • Copyright 2015 @ 56x.net.
  • name : item
  • author : jarryliu
  • date : 2016-06-29 09:31
  • description :
  • history :

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrReadonlyCategory = domain.NewError(
		"err_readonly_category", "无权修改系统分类",
	)
	ErrNoSuchCategory = domain.NewError(
		"err_category_not_exist", "分类不存在",
	)

	ErrCategoryCycleReference = domain.NewError(
		"err_category_cycle_reference", "分类上级循环引用")

	ErrHasChildCategories = domain.NewError(
		"err_has_child_categories", "分类包含子分类,无法删除",
	)
	ErrCategoryContainGoods = domain.NewError(
		"err_category_contain_goods", "分类包含商品,无法删除",
	)

	ErrIncorrectCategoryType = domain.NewError(
		"err_category_incorrect_type", "分类类型不允许修改")

	ErrVirtualCatNoUrl = domain.NewError(
		"err_category_virtual_no_url", "虚拟分类必须设置跳转链接")

	ErrCategoryFloorShow = domain.NewError(
		"err_category_floor_show", "非一级分类不能设置首页显示")
)
View Source
var (
	C_OptionViewName = "viewName" //显示的视图名称
	C_OptionDescribe = "describe" //描述
)
View Source
var (
	ErrNoSuchProduct = domain.NewError(
		"err_product_no_such_product", "产品不存在")
	ErrNoSuchAttr = domain.NewError(
		"err_product_no_such_attr", "产品属性不存在")
	ErrNoBrand = domain.NewError(
		"err_product_no_brand", "未设置商品品牌")

	ErrVendor = domain.NewError(
		"err_not_be_review", "商品供应商不正确")

	ErrNotBeReview = domain.NewError(
		"err_not_be_review", "商品还未通过审核")

	ErrItemNameLength = domain.NewError(
		"err_item_name_length", "商品标题至少10个字")

	ErrItemIncorrect = domain.NewError(
		"err_item_incorrect", "商品已被违规下架")

	ErrNotUploadImage = domain.NewError(
		"err_goods_not_upload_image", "请上传商品图片")

	ErrDescribeLength = domain.NewError(
		"err_item_describe_length", "商品描述至少20个字符")

	ErrNilRejectRemark = domain.NewError(
		"err_item_nil_reject_remark", "原因不能为空")
)

Functions

This section is empty.

Types

type AttrValue

type AttrValue struct {
	// 编号
	ID int64 `db:"id" pk:"yes" auto:"yes"`
	// 产品编号
	ProductId int64 `db:"product_id"`
	// 属性名称
	AttrName string `db:"-"`
	// 属性编号
	AttrId int64 `db:"attr_id"`
	// 属性值
	AttrData string `db:"attr_data"`
	// 属性文本
	AttrWord string `db:"attr_word"`
}

产品属性

type Category

type Category struct {
	// 编号
	Id int `db:"id" pk:"yes" auto:"yes"`
	// 上级分类
	ParentId int `db:"parent_id"`
	// 产品模型
	ModelId int `db:"prod_model"`
	// 优先级
	Priority int `db:"priority"`
	// 分类名称
	Name string `db:"name"`
	// 是否为虚拟分类
	VirtualCat int `db:"virtual_cat"`
	// 分类链接地址
	CatUrl string `db:"cat_url"`
	// 虚拟分类跳转地址
	RedirectUrl string `db:"redirect_url"`
	// 图标
	Icon string `db:"icon"`
	// 图标坐标
	IconPoint string `db:"icon_xy"`
	// 分类层级
	Level int `db:"level"`
	// 序号
	SortNum int `db:"sort_num"`
	// 是否楼层显示
	FloorShow int `db:"floor_show"`
	// 是否启用
	Enabled int `db:"enabled"`
	// 创建时间
	CreateTime int64 `db:"create_time"`
	// 子分类
	Children []*Category `db:"-"`
}

分类

type CategoryList

type CategoryList []*Category

func (CategoryList) Len

func (c CategoryList) Len() int

func (CategoryList) Less

func (c CategoryList) Less(i, j int) bool

func (CategoryList) Swap

func (c CategoryList) Swap(i, j int)

type ICategory

type ICategory interface {
	// 获取领域编号
	GetDomainId() int
	// 获取值
	GetValue() *Category
	// 设置值
	SetValue(*Category) error
	//todo: 做成界面,同时可后台管理项
	// 获取扩展数据
	GetOption() domain.IOptionStore
	// 保存
	Save() (int, error)
	// 获取子栏目的编号
	GetChildes() []int
}

type ICategoryRepo

type ICategoryRepo interface {
	// 获取系统的栏目服务
	GlobCatService() IGlobCatService

	// 保存分类
	SaveCategory(*Category) (int, error)

	// 检查分类是否关联商品
	CheckContainGoods(vendorId int64, catId int) bool

	// 删除分类
	DeleteCategory(vendorId int64, catId int) error

	// 获取分类
	GetCategory(mchId, id int) *Category

	// 获取所有分类
	GetCategories(mchId int) []*Category
	// 获取关联的品牌
	GetRelationBrands(idArr []int) []*promodel.ProductBrand
}

type IGlobCatService

type IGlobCatService interface {
	// 是否只读,当商户共享系统的分类时,
	// 没有修改的权限,即只读!
	ReadOnly() bool
	// 创建分类
	CreateCategory(*Category) ICategory
	// 获取分类
	GetCategory(id int) ICategory
	// 获取所有分类
	GetCategories() []ICategory
	// 删除分类
	DeleteCategory(id int) error
	// 递归获取下级分类
	CategoryTree(parentId int) *Category
	// 获取分类关联的品牌
	RelationBrands(catId int) []*promodel.ProductBrand
}

公共分类服务

type IProduct

type IProduct interface {
	// 获取聚合根编号
	GetAggregateRootId() int64
	// 获取商品的值
	GetValue() Product
	// 设置产品的值
	SetValue(v *Product) error
	// 设置产品属性
	SetAttr(attr []*AttrValue) error
	// 获取属性
	Attr() []*AttrValue

	// 设置商品描述
	SetDescribe(describe string) error
	// 保存
	Save() (int64, error)

	// 销毁产品
	Destroy() error
}

type IProductRepo

type IProductRepo interface {
	// 创建产品
	CreateProduct(*Product) IProduct
	// 根据产品编号获取货品
	GetProduct(id int64) IProduct
	// 获取货品
	GetProductValue(itemId int64) *Product
	// 根据id获取货品
	GetProductsById(ids ...int32) ([]*Product, error)
	SaveProduct(*Product) (int, error)
	//todo:  到商品
	// 获取在货架上的商品
	GetPagedOnShelvesProduct(supplierId int64, catIds []int, start, end int) (total int, goods []*Product)
	//todo:  到商品
	// 获取货品销售总数
	GetProductSaleNum(productId int64) int
	// 删除货品
	DeleteProduct(productId int64) error
	// Get AttrValue
	GetAttr(primary interface{}) *AttrValue
	// Select AttrValue
	SelectAttr(where string, v ...interface{}) []*AttrValue
	// Save AttrValue
	SaveAttr(v *AttrValue) (int, error)
	// Delete AttrValue
	DeleteAttr(primary interface{}) error
	// Batch Delete AttrValue
	BatchDeleteAttr(where string, v ...interface{}) (int64, error)
}

type Product

type Product struct {
	// 编号
	Id int64 `db:"id" auto:"yes" pk:"yes"`
	// 分类
	CatId int32 `db:"cat_id"`
	// 名称
	Name string `db:"name"`
	//供应商编号(暂时同mch_id)
	VendorId int64 `db:"supplier_id"`
	// 品牌编号
	BrandId int32 `db:"brand_id"`
	// 商家编码
	Code string `db:"code"`
	// 图片
	Image string `db:"img"`
	// 描述
	Description string `db:"description"`
	// 备注
	Remark string `db:"remark"`
	// 状态
	State int32 `db:"state"`
	// 创建时间
	CreateTime int64 `db:"create_time"`
	// 更新时间
	UpdateTime int64 `db:"update_time"`
	// 排序编号
	SortNum int32 `db:"sort_num"`
	// 产品属性
	Attrs []*AttrValue `db:"-"`
}

产品

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL