dao

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDuplicatedMemberRecord = errors.New("会员记录重复")
	ErrCreateMemberConflict   = errors.New("创建会员主记录冲突")
	ErrUpdateMemberConflict   = errors.New("更新会员主记录冲突")
)

Functions

func InitTables

func InitTables(db *egorm.Component) error

Types

type Member

type Member struct {
	Id      int64 `gorm:"primaryKey;autoIncrement;comment:会员表自增ID"`
	Uid     int64 `gorm:"not null;uniqueIndex:unq_user_id;comment: 用户ID"`
	EndAt   int64 `gorm:"not null;comment: 会员结束日期,UTC Unix毫秒数"`
	Version int64 `gorm:"not null;default:1;comment: 版本号"`
	Ctime   int64
	Utime   int64
}

Member 会员表,每个用户只有一条记录,后续只需要修改开始、结束日期及状态即可

type MemberDAO

type MemberDAO interface {
	FindMemberByUID(ctx context.Context, uid int64) (Member, error)
	FindMemberRecordsByUID(ctx context.Context, uid int64) ([]MemberRecord, error)
	Upsert(ctx context.Context, d Member, r MemberRecord) error
}

func NewMemberGORMDAO

func NewMemberGORMDAO(db *egorm.Component) MemberDAO

type MemberRecord

type MemberRecord struct {
	Id    int64  `gorm:"primaryKey;autoIncrement;comment:会员记录表自增ID"`
	Key   string `gorm:"type:varchar(256);not null;uniqueIndex:unq_key;comment:去重key"`
	Uid   int64  `gorm:"not null;index:idx_user_id;comment:用户ID"`
	Biz   string `gorm:"type:varchar(256);not null;comment:业务类型名,项目中模块目录名小写,user/member"`
	BizId int64  `gorm:"not null;index:idx_biz_id;comment:业务ID"`
	Desc  string `gorm:"type:varchar(256);not null;comment:会员流水描述"`
	Days  uint64 `gorm:"not null;comment:会员天数"`
	Ctime int64
	Utime int64
}

MemberRecord 会员记录表 每次开通、激活、续约的流水记录

Jump to

Keyboard shortcuts

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