xcoupon

package
v0.3.19 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2024 License: BSD-3-Clause-Clear Imports: 10 Imported by: 0

Documentation

Overview

自建通用优惠券系统

Index

Constants

View Source
const (
	// 1. 全平台通用满减券
	TYPE_ALL_REDUCTION = uint(1)
	// 2. 全平台专用满减券
	TYPE_ALL_REDUCTION_DEDICATED = uint(2)
	// 3. 全平台通用折扣券
	TYPE_ALL_DISCOUNT = uint(3)
	// 4. 全平台专用折扣券
	TYPE_ALL_DISCOUNT_DEDICATED = uint(4)
	// 11. 单平台通用满减券
	TYPE_SINGLE_REDUCTION = uint(11)
	// 12. 单平台专用满减券
	TYPE_SINGLE_REDUCTION_DEDICATED = uint(12)
	// 13. 单平台通用折扣券
	TYPE_SINGLE_DISCOUNT = uint(13)
	// 14. 单平台专用折扣券
	TYPE_SINGLE_DISCOUNT_DEDICATED = uint(14)
)

自建通用优惠券系统,共分为以下几种优惠券 1. 全平台通用满减券 2. 全平台专用满减券 3. 全平台通用折扣券 4. 全平台专用折扣券 11. 单平台通用满减券 12. 单平台专用满减券 13. 单平台通用折扣券 14. 单平台专用折扣券

Variables

This section is empty.

Functions

func Create added in v0.1.30

func Create(c *Coupon) error

创建优惠券详情 PS: 优惠批次Used、优惠券类型Type、优惠券平台Platform不允许修改

c	优惠券详情

func CreateGood added in v0.1.30

func CreateGood(c *CouponGoods) error

创建优惠券所关联的商品

c	优惠券商品信息

func CreateGoods added in v0.1.30

func CreateGoods(c []CouponGoods) error

创建优惠券所关联的商品

c	优惠券商品列表信息

func Creates added in v0.1.30

func Creates(c *Coupon, g []CouponGoods) error

创建/存储优惠券和关联商品

func DeleteGoods added in v0.1.30

func DeleteGoods(id uint) error

删除优惠券关联的商品

id	券ID

func Goods2ids added in v0.1.31

func Goods2ids(goods_id []uint, level uint8, platform uint) ([]uint, error)

根据关联ID获取专属优惠券ID【不含通用券】

goods_id	关联ID
level		关联等级
platform	所属平台

func NsqChildCreate added in v0.1.30

func NsqChildCreate(p []byte) error

NSQ队列,创建优惠券队列

NSQ	xcoupon.child.create	<Coupon>

func Platform2ids added in v0.1.31

func Platform2ids(platform uint) ([]uint, error)

查询平台中所属的全平台券

platform	平台ID

func PlatformCreate added in v0.1.30

func PlatformCreate(p *Platform) error

创建/修改平台信息

p	平台详情信息

func PlatformDelete added in v0.1.30

func PlatformDelete(id uint) error

删除平台标识信息

id	平台ID

func Receive added in v0.1.30

func Receive(uid, coupon_id uint) error

领取优惠券

uid			用户ID
coupon_id	优惠券ID

func ReceiveCode added in v0.1.30

func ReceiveCode(uid uint, coupon_code string) error

激活码兑换优惠券

uid			用户ID
coupon_code	优惠券激活码

func Regedit

func Regedit(c *Config)

入口配置

func UsedCreate added in v0.1.30

func UsedCreate(useds *Used) error

创建/保存优惠券批次信息

useds	批次信息

func UsedDelete added in v0.1.30

func UsedDelete(id uint) error

删除批次信息

id	批次ID

Types

type Config

type Config struct {
	DB             *gorm.DB
	PlatformTable  string // 平台表表名
	CouponTable    string // 优惠券主表
	UsedTable      string // 使用批次表
	ChildCoupon    string // 优惠券领取记录表
	WhithCoupon    string // 优惠券关联表
	ChildSerialPre string // 优惠券流水号前缀[后面会追加`年月日时分秒毫秒`的流水号]
}

type Coupon

type Coupon struct {
	Id    uint   `gorm:"column:id;primaryKey;autoIncrement;not null;comment:ID" form:"id" json:"id"` //ID
	Title string ``                                                                                  //优惠券标题(有图片则显示图片):无门槛50元优惠券 | 单品最高减2000元
	/* 167-byte string literal not displayed */
	Icon             uint  `gorm:"column:icon;comment:图片,file表ID" form:"icon" json:"icon"`  //图片
	Used             uint  `gorm:"column:used;comment:叠加批次 0-不可叠加" form:"used" json:"used"` //叠加批次 0-不可叠加
	Type             uint  `gorm:"column:type;comment:券类型" form:"type" json:"type"`         //券类型
	AvtivationStatus uint8 ``                                                               //发放方式 0-直接领取,1-激活码激活
	/* 159-byte string literal not displayed */
	WithAmount float64 `gorm:"column:with_amount;type:decimal(10,2);comment:满多少" form:"with_amount" json:"with_amount"` //满多少
	UsedAmount float64 `gorm:"column:used_amount;type:decimal(10,2);comment:减多少" form:"used_amount" json:"used_amount"` //减多少
	Quota      uint    `gorm:"column:quota;comment:配额:发券数量" form:"quota" json:"quota"`                                  //配额:发券数量
	TakeCount  uint    `gorm:"column:take_count;comment:已领取的优惠券数量" form:"take_count" json:"take_count"`                 //已领取的优惠券数量
	StartType  uint8   ``                                                                                               //发券时间类型 1-立即可领取 2-指定时间内可领取
	/* 154-byte string literal not displayed */
	StartTime string `gorm:"column:start_time;type:datetime;comment:发放开始时间" form:"start_time" json:"start_time"` //发放开始时间
	EndTime   string `gorm:"column:end_time;type:datetime;comment:发放结束时间" form:"end_time" json:"end_time"`       //发放结束时间
	ValidType uint8  ``                                                                                          //时效 1-绝对时效(领取后XXX-XXX时间段有效) 2-相对时效(领取后/激活后N天有效)
	/* 190-byte string literal not displayed */
	ValidStartTime string `gorm:"column:valid_start_time;type:datetime;comment:使用开始时间" form:"valid_start_time" json:"valid_start_time"` //使用开始时间
	ValidEndTime   string `gorm:"column:valid_end_time;type:datetime;comment:使用结束时间" form:"valid_end_time" json:"valid_end_time"`       //使用结束时间
	ValidDays      uint   `gorm:"column:valid_days;type:tinyint unsigned;comment:自领取之日起有效天数" form:"valid_days" json:"valid_days"`       //自领取之日起有效天数
	Status         uint8  ``                                                                                                            //状态 1-正常 2-禁止领取 3-禁止领取且禁止使用
	/* 139-byte string literal not displayed */
	Uid       uint   `gorm:"column:uid;comment:创建人" form:"uid" json:"uid"`                                     //创建人
	CreatedAt string `gorm:"column:created_at;type:datetime;comment:创建时间" form:"created_at" json:"created_at"` //创建时间
	UpdatedAt string `gorm:"column:updated_at;type:datetime;comment:修改时间" form:"updated_at" json:"updated_at"` //修改时间
	ChildOver uint8  ``                                                                                        //子优惠券表数据创建状态:0-未创建,1-创建中(此状态禁止删除),2-创建完成
	/* 190-byte string literal not displayed */
	Examine uint8 `` //审核状态 0-未提交审核 1-未审核 2-审核中 3-审核通过 4-审核拒绝
	/* 166-byte string literal not displayed */
	PeopleCount uint   `gorm:"column:people_count;comment:每人限领取多少张 0-无限制" form:"people_count" json:"people_count"` //每人限领取多少张 0-无限制
	Secret      string ``                                                                                          //批次秘钥(前端随机生成一个随机串,然后前台根据券的批次秘钥进行关联分享/领取)
	/* 189-byte string literal not displayed */
	Memo       string `gorm:"column:memo;type:varchar(64);comment:券备注" form:"memo" json:"memo"`                                //券备注
	Platform   uint   `gorm:"column:platform;comment:该优惠券所属平台" form:"platform" json:"platform"`                                //该优惠券所属平台
	InDetail   uint8  `gorm:"column:in_detail;type:tinyint unsigned;comment:是否在详情页显示" form:"in_detail" json:"in_detail"`       //是否在详情页显示
	InActivity uint8  `gorm:"column:in_activity;type:tinyint unsigned;comment:是否在活动页显示" form:"in_activity" json:"in_activity"` //是否在活动页显示
}

优惠券主表 优惠券无删除功能,其以状态来进行区分

func Info added in v0.1.30

func Info(id uint) (*Coupon, error)

获取优惠券详情信息

id	优惠券ID

func (*Coupon) TableName

func (c *Coupon) TableName() string

返回所属表名信息

type CouponChild added in v0.1.30

type CouponChild struct {
	Id       uint64 `gorm:"column:id;type:bigint unsigned;primaryKey;autoIncrement;not null" form:"id" json:"id"`
	CouponId uint   `gorm:"column:coupon_id;comment:优惠券编号,关联coupon表" form:"coupon_id" json:"coupon_id"` //优惠券编号,关联coupon表
	SerialNo string ``                                                                                  //优惠券码,类似CP20220303144538202字样
	/* 129-byte string literal not displayed */
	ActivationCode string `` //激活码,类似TDUPY22XYAJ55XK7的随机字符串
	/* 170-byte string literal not displayed */
	IsActivation uint8 `` //是否激活
	/* 129-byte string literal not displayed */
	UsedUid        uint   `gorm:"column:used_uid;comment:激活/领取人ID" form:"used_uid" json:"used_uid"`                                   //激活/领取人ID
	ActivationTime string `gorm:"column:activation_time;type:datetime;comment:领取/激活时间" form:"activation_time" json:"activation_time"` //领取/激活时间
	UsedTime       string `gorm:"column:used_time;type:datetime;comment:使用时间" form:"used_time" json:"used_time"`                      //使用时间
	ExpirationTime string `gorm:"column:expiration_time;type:datetime;comment:过期时间" form:"expiration_time" json:"expiration_time"`    //过期时间
	IsUsed         uint8  ``                                                                                                          //使用状态,0-未使用 1-锁定中 2-已使用
	/* 132-byte string literal not displayed */
	CreatedAt string `gorm:"column:created_at;type:datetime" form:"created_at" json:"created_at"`
	UpdatedAt string `gorm:"column:updated_at;type:datetime" form:"updated_at" json:"updated_at"`
}

优惠券子表

func (*CouponChild) TableName added in v0.1.30

func (c *CouponChild) TableName() string

返回所属表名信息

type CouponGoods added in v0.1.30

type CouponGoods struct {
	Id       uint64 `gorm:"column:id;type:bigint unsigned;primaryKey;autoIncrement;not null" form:"id" json:"id"`
	WithId   uint   `gorm:"column:with_id;not null;comment:关联商品ID/店铺ID" form:"with_id" json:"with_id"`    //关联商品ID/店铺ID
	CouponId uint   `gorm:"column:coupon_id;comment:关联优惠券主表ID" form:"coupon_id" json:"coupon_id"`         //关联优惠券主表ID
	Levels   uint8  `gorm:"column:levels;type:tinyint unsigned;comment:关联等级" form:"levels" json:"levels"` //关联等级
	Platform uint   `gorm:"column:platform;not null;comment:所属平台" form:"platform" json:"platform"`        //所属平台
}

优惠券商品/店铺关联表 1级关联 -> 2级关联 -> 3级关联 对应:店铺->SPU->SKU

func ListGoods added in v0.1.30

func ListGoods(id uint) ([]CouponGoods, error)

获取优惠券关联商品信息

id	优惠券ID

func (*CouponGoods) TableName added in v0.1.30

func (c *CouponGoods) TableName() string

返回所属表名信息

type Platform

type Platform struct {
	Id     uint   `gorm:"column:id;primaryKey;not null" form:"id" json:"id"`
	Uid    uint   `gorm:"column:uid;comment:创建人" form:"uid" json:"uid"`                       //创建人
	Name   string `gorm:"column:name;type:varchar(200);comment:平台名称" form:"name" json:"name"` //平台名称
	Desc   string `gorm:"column:desc;type:varchar(500);comment:平台描述" form:"desc" json:"desc"` //平台描述
	Status uint8  ``                                                                          //状态 0-待审核 1-审核通过 2-审核拒绝
	/* 127-byte string literal not displayed */
	IsDeleted uint8  `gorm:"column:is_deleted;type:tinyint unsigned;comment:是否删除 1-已删除" form:"is_deleted" json:"is_deleted"` //是否删除 1-已删除
	CreatedAt string `gorm:"column:created_at;type:datetime;comment:添加时间" form:"created_at" json:"created_at"`               //添加时间
	UpdatedAt string `gorm:"column:updated_at;type:datetime;comment:修改时间" form:"updated_at" json:"updated_at"`               //修改时间
}

平台所属表模型

func PlatformInfo added in v0.1.30

func PlatformInfo(id uint) (*Platform, error)

获取平台详情信息

id	平台ID

func PlatformList added in v0.1.30

func PlatformList(uid uint, offset, limit int) (int64, []Platform, error)

获取平台列表服务

uid		用户ID[0表示查询全部]
offset	跳过条数
limit	查询条数

func (*Platform) TableName

func (c *Platform) TableName() string

返回所属表名信息

type Used

type Used struct {
	Id     uint   `gorm:"column:id;primaryKey;not null" form:"id" json:"id"`
	Uid    uint   `gorm:"column:uid;comment:创建人" form:"uid" json:"uid"`                       //创建人
	Name   string `gorm:"column:name;type:varchar(200);comment:批次名称" form:"name" json:"name"` //平台名称
	Desc   string `gorm:"column:desc;type:varchar(500);comment:批次描述" form:"desc" json:"desc"` //平台描述
	Status uint8  ``                                                                          //状态 0-待审核 1-审核通过 2-审核拒绝
	/* 127-byte string literal not displayed */
	IsDeleted uint8  `gorm:"column:is_deleted;type:tinyint unsigned;comment:是否删除 1-已删除" form:"is_deleted" json:"is_deleted"` //是否删除 1-已删除
	Platform  uint   `gorm:"column:platform;comment:该优惠券所属平台" form:"platform" json:"platform"`                               //该优惠券所属平台
	CreatedAt string `gorm:"column:created_at;type:datetime;comment:添加时间" form:"created_at" json:"created_at"`               //添加时间
	UpdatedAt string `gorm:"column:updated_at;type:datetime;comment:修改时间" form:"updated_at" json:"updated_at"`               //修改时间
}

批次存储表模型【仅同一批次的优惠券可叠加使用】

func UsedInfo added in v0.1.30

func UsedInfo(id uint) (*Used, error)

批次详情查看

id	批次ID

func UsedList added in v0.1.30

func UsedList(uid uint, offset, limit int) (int64, []Used, error)

获取批次列表服务

uid		用户ID
offset	跳过条数
limit	查询条数

func (*Used) TableName

func (c *Used) TableName() string

返回所属表名信息

Jump to

Keyboard shortcuts

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