sale

package
v0.0.0-...-1960156 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2015 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

*

  • Copyright 2014 @ z3q.net.
  • name :
  • author : jarryliu
  • date : 2014-02-04 20:39
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : sale_goods.go
  • author : jarryliu
  • date : -- :
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : goods_rep
  • author : jarryliu
  • date : -- :
  • description :
  • history :

*

  • Copyright 2013 @ z3q.net.
  • name :
  • author : jarryliu
  • date : 2013-02-04 20:13
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : member_price
  • author : jarryliu
  • date : -- :
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : PromFlag
  • author : jarryliu
  • date : -- :
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : sale_tag
  • author : jarryliu
  • date : -- :
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : sale_tag_rep
  • author : jarryliu
  • date : -- :
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : simple_goods.go
  • author : jarryliu
  • date : 2015-08-18 09:24
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : value_sale_goods
  • author : jarryliu
  • date : -- :
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : parse.go
  • author : jarryliu
  • date : -- :
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : value_sale_tag
  • author : jarryliu
  • date : -- :
  • description :
  • history :

Index

Constants

View Source
const (
	// 优惠券
	Coupon = 1 << 0

	// 团购
	Group = 1 << 1
)

Variables

View Source
var (
	ErrNoSuchGoods *domain.DomainError = domain.NewDomainError(
		"no_such_goods", "商品不存在")

	ErrLatestSnapshot *domain.DomainError = domain.NewDomainError(
		"latest_snapshot", "已经是最新的快照")

	ErrNoSuchSnapshot *domain.DomainError = domain.NewDomainError(
		"no_such_snapshot", "商品快照不存在")

	ErrNotOnShelves *domain.DomainError = domain.NewDomainError(
		"not_on_shelves", "商品未上架")

	ErrGoodsNum *domain.DomainError = domain.NewDomainError(
		"err_goods_num", "商品数量错误")

	ErrOutOfSalePrice *domain.DomainError = domain.NewDomainError(
		"out_of_sale_price", "超出商品售价")

	ErrOutOfStock *domain.DomainError = domain.NewDomainError(
		"err_out_of_stock", "库存不足")

	ErrFullOfStock *domain.DomainError = domain.NewDomainError(
		"err_full_of_stock", "商品已经售完")

	ErrInternalDisallow *domain.DomainError = domain.NewDomainError(
		"err_sale_tag_internal_disallow", "不允许删除内置销售标签!")

	ErrCanNotDeleteItem *domain.DomainError = domain.NewDomainError(
		"err_goods_can_not_delete_item", "已售出货品只允许下架。")
)

Functions

This section is empty.

Types

type GoodsSnapshot

type GoodsSnapshot struct {
	Id           int    `db:"id" auto:"yes" pk:"yes"`
	Key          string `db:"snapshot_key"`
	ItemId       int    `db:"item_id"`
	GoodsId      int    `db:"goods_id"`
	GoodsName    string `db:"goods_name"`
	GoodsNo      string `db:"goods_no"`
	SmallTitle   string `db:"small_title"`
	CategoryName string `db:"category_name"`
	Image        string `db:"img"`

	//成本价
	Cost float32 `db:"cost"`

	//定价
	Price float32 `db:"price"`

	//销售价
	SalePrice  float32 `db:"sale_price"`
	CreateTime int64   `db:"create_time"`
}

商品快照

type ICategory

type ICategory interface {
	GetDomainId() int

	GetValue() ValueCategory

	SetValue(*ValueCategory) error

	Save() (int, error)

	// 获取子栏目的编号
	GetChildId() []int
}

type IGoods

type IGoods interface {
	// 获取领域对象编号
	GetDomainId() int

	// 获取货品
	GetItem() IItem

	// 设置值
	GetValue() *ValueGoods

	// 获取包装过的商品信息
	GetPackedValue() *valueobject.Goods

	// 获取促销信息
	GetPromotions() []promotion.IPromotion

	// 获取促销价
	GetPromotionPrice(level int) float32

	// 获取会员价销价,返回是否有会原价及价格
	GetLevelPrice(level int) (bool, float32)

	// 获取促销描述
	GetPromotionDescribe() map[string]string

	// 获取会员价
	GetLevelPrices() []*MemberPrice

	// 保存会员价
	SaveLevelPrice(*MemberPrice) (int, error)

	// 设置值
	SetValue(*ValueGoods) error

	// 保存
	Save() (int, error)

	// 更新销售数量,扣减库存
	AddSaleNum(quantity int) error

	// 取消销售
	CancelSale(quantity int, orderNo string) error

	// 生成快照
	GenerateSnapshot() (int, error)

	// 获取最新的快照
	GetLatestSnapshot() *GoodsSnapshot
}

商品

type IGoodsRep

type IGoodsRep interface {

	// 获取商品
	GetValueGoods(itemId int, sku int) *ValueGoods

	// 获取商品
	GetValueGoodsById(goodsId int) *ValueGoods

	// 根据SKU获取商品
	GetValueGoodsBySku(itemId, sku int) *ValueGoods

	// 保存商品
	SaveValueGoods(*ValueGoods) (int, error)

	// 获取在货架上的商品
	GetPagedOnShelvesGoods(partnerId int, catIds []int, start, end int,
		where, orderBy string) (total int, goods []*valueobject.Goods)

	// 根据编号获取商品
	GetGoodsByIds(ids ...int) ([]*valueobject.Goods, error)

	// 获取会员价
	GetGoodsLevelPrice(goodsId int) []*MemberPrice

	// 保存会员价
	SaveGoodsLevelPrice(*MemberPrice) (int, error)

	// 移除会员价
	RemoveGoodsLevelPrice(id int) error
}

商品仓储

type IItem

type IItem interface {
	GetDomainId() int

	// 获取商品的值
	GetValue() ValueItem

	// 是否上架
	IsOnShelves() bool

	// 获取销售标签
	GetSaleTags() []*ValueSaleTag

	// 保存销售标签
	SaveSaleTags([]int) error

	// 设置商品值
	SetValue(*ValueItem) error

	// 保存
	Save() (int, error)
}

商品

type ISale

type ISale interface {
	GetAggregateRootId() int

	// 创建产品
	CreateItem(*ValueItem) IItem

	// 根据产品编号获取货品
	GetItem(int) IItem

	// 删除货品
	DeleteItem(int) error

	// 创建商品
	CreateGoods(IItem, *ValueGoods) IGoods

	// 根据产品编号获取商品
	GetGoods(int) IGoods

	// 根据产品SKU获取商品
	GetGoodsBySku(itemId, sku int) IGoods

	// 创建分类
	CreateCategory(*ValueCategory) ICategory

	// 获取分类
	GetCategory(int) ICategory

	// 获取所有分类
	GetCategories() []ICategory

	// 删除分类
	DeleteCategory(int) error

	// 获取所有的销售标签
	GetAllSaleTags() []ISaleTag

	// 初始化销售标签
	InitSaleTags() error

	// 获取销售标签
	GetSaleTag(id int) ISaleTag

	// 根据Code获取销售标签
	GetSaleTagByCode(code string) ISaleTag

	// 创建销售标签
	CreateSaleTag(v *ValueSaleTag) ISaleTag

	// 删除销售标签
	DeleteSaleTag(id int) error

	// 删除商品
	DeleteGoods(int) error

	// 获取指定的商品快照
	GetGoodsSnapshot(id int) *GoodsSnapshot

	// 根据Key获取商品快照
	GetGoodsSnapshotByKey(key string) *GoodsSnapshot
}

type ISaleRep

type ISaleRep interface {
	GetSale(partnerId int) ISale

	// 获取货品
	GetValueItem(partnerId, itemId int) *ValueItem

	// 根据id获取货品
	GetItemByIds(ids ...int) ([]*ValueItem, error)

	SaveValueItem(*ValueItem) (int, error)

	// 获取在货架上的商品
	GetPagedOnShelvesItem(partnerId int, catIds []int, start, end int) (total int, goods []*ValueItem)

	// 获取货品销售总数
	GetItemSaleNum(partnerId int, id int) int

	// 删除货品
	DeleteItem(partnerId, goodsId int) error

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

	DeleteCategory(partnerId, id int) error

	GetCategory(partnerId, id int) *ValueCategory

	GetCategories(partnerId int) []*ValueCategory

	// 获取与栏目相关的栏目
	GetRelationCategories(partnerId, categoryId int) []*ValueCategory

	// 获取子栏目
	GetChildCategories(partnerId, categoryId int) []*ValueCategory

	// 保存快照
	SaveSnapshot(*GoodsSnapshot) (int, error)

	// 获取最新的商品快照
	GetLatestGoodsSnapshot(goodsId int) *GoodsSnapshot

	// 获取指定的商品快照
	GetGoodsSnapshot(id int) *GoodsSnapshot

	// 根据Key获取商品快照
	GetGoodsSnapshotByKey(key string) *GoodsSnapshot
}

销售仓库

type ISaleTag

type ISaleTag interface {
	GetDomainId() int

	// 获取值
	GetValue() *ValueSaleTag

	// 设置值
	SetValue(v *ValueSaleTag) error

	// 保存
	Save() (int, error)

	// 是否为系统内置
	System() bool

	// 获取标签下的商品
	GetValueGoods(begin, end int) []*valueobject.Goods

	// 获取标签下的分页商品
	GetPagedValueGoods(begin, end int) (total int, goods []*valueobject.Goods)
}

type ISaleTagRep

type ISaleTagRep interface {
	// 创建销售标签
	CreateSaleTag(v *ValueSaleTag) ISaleTag

	// 获取所有的销售标签
	GetAllValueSaleTags(partnerId int) []*ValueSaleTag

	// 获取销售标签值
	GetValueSaleTag(partnerId int, tagId int) *ValueSaleTag

	// 根据Code获取销售标签
	GetSaleTagByCode(partnerId int, code string) *ValueSaleTag

	// 删除销售标签
	DeleteSaleTag(partnerId int, id int) error

	// 获取销售标签
	GetSaleTag(partnerId int, tagId int) ISaleTag

	// 保存销售标签
	SaveSaleTag(partnerId int, v *ValueSaleTag) (int, error)

	// 获取商品
	GetValueGoodsBySaleTag(partnerId, tagId, begin, end int) []*valueobject.Goods

	// 获取分页商品
	GetPagedValueGoodsBySaleTag(partnerId, tagId, begin, end int) (int, []*valueobject.Goods)

	// 获取商品的销售标签
	GetItemSaleTags(itemId int) []*ValueSaleTag

	// 清理商品的销售标签
	CleanItemSaleTags(itemId int) error

	// 保存商品的销售标签
	SaveItemSaleTags(itemId int, tagIds []int) error
}

type MemberPrice

type MemberPrice struct {
	Id      int     `db:"id" pk:"yes" auto:"yes"`
	GoodsId int     `db:"goods_id"`
	Level   int     `db:"level"`
	Price   float32 `db:"price"`
	Enabled int     `db:"enabled"`
}

会员价

type SimpleGoods

type SimpleGoods struct {
	GoodsId    int    `json:"id"`
	GoodsImage string `json:"img"`
	Name       string `json:"name"`
	Quantity   string `json:"qty"`
}

简单商品信息

type ValueCategory

type ValueCategory struct {
	Id int `db:"id" auto:"yes" pk:"yes"`
	//父分类
	ParentId int `db:"parent_id"`
	//供应商编号
	PartnerId int `db:"partner_id"`
	//名称
	Name        string `db:"name"`
	OrderIndex  int    `db:"order_index"`
	Url         string `db:"url"`
	CreateTime  int64  `db:"create_time"`
	Enabled     int    `db:"enabled`
	Description string `db:"description"`
}

分类

type ValueGoods

type ValueGoods struct {
	Id int `db:"id" pk:"yes" auto:"yes"`

	// 货品编号
	ItemId int `db:"item_id"`

	// 是否为赠品
	IsPresent int `db:"is_present"`

	// 规格
	SkuId int `db:"sku_id"`

	// 促销标志
	PromotionFlag int `db:"prom_flag"`

	// 库存
	StockNum int `db:"stock_num"`

	// 已售件数
	SaleNum int `db:"sale_num"`

	// 销售价
	SalePrice float32 `db:"-"`

	// 促销价
	PromPrice float32 `db:"-"`

	// 实际价
	Price float32 `db:"-"`
}

func ParseToValueGoods

func ParseToValueGoods(v *valueobject.Goods) *ValueGoods

转换为商品值对象

type ValueItem

type ValueItem struct {
	Id         int    `db:"id" auto:"yes" pk:"yes"`
	CategoryId int    `db:"category_id"`
	Name       string `db:"name"`

	// 货号
	GoodsNo    string `db:"goods_no"`
	SmallTitle string `db:"small_title"`
	Image      string `db:"img"`
	//成本价
	Cost float32 `db:"cost"`
	//定价
	Price float32 `db:"price"`
	//销售价
	SalePrice float32 `db:"sale_price"`
	ApplySubs string  `db:"apply_subs"`

	//简单备注,如:(限时促销)
	Note        string `db:"note"`
	Description string `db:"description"`

	// 是否上架,1为上架
	OnShelves int `db:"on_shelves"`

	State      int   `db:"state"`
	CreateTime int64 `db:"create_time"`
	UpdateTime int64 `db:"update_time"`
}

商品值

func ParseToPartialValueItem

func ParseToPartialValueItem(v *valueobject.Goods) *ValueItem

转换包含部分数据的产品值对象

type ValueSaleTag

type ValueSaleTag struct {
	Id int `db:"id" auto:"yes" pk:"yes"`

	// 商户编号
	PartnerId int `db:"partner_id"`

	// 标签代码
	TagCode string `db:"tag_code"`

	// 标签名
	TagName string `db:"tag_name"`

	// 商品的遮盖图
	GoodsImage string `db:"goods_image"`

	// 是否内部
	IsInternal int `db:"is_internal"`

	// 是否启用
	Enabled int `db:"enabled"`
}

销售标签

Jump to

Keyboard shortcuts

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