member

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: 2 Imported by: 0

Documentation

Overview

*

  • Copyright 2015 @ z3q.net.
  • name : account
  • author : jarryliu
  • date : 2015-07-24 08:48
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : balance_info
  • author : jarryliu
  • date : 2015-07-24 09:42
  • description :
  • history :

*

  • Copyright 2015 @ z3q.net.
  • name : charge_log
  • author : jarryliu
  • date : 2015-07-24 09:19
  • description :
  • history :

*

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

*

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

*

  • Copyright 2014 @ z3q.net.
  • name :
  • author : jarryliu
  • date : 2013-12-09 10:28
  • description :
  • history :

Index

Constants

View Source
const (
	// 退款
	KindBalanceBack = 0
	// 消费
	KindBalanceShopping = 1
	// 充值
	KindBalanceCharge = 2
	// 赠送
	KindBalancePresent = 3

	KindBalanceFlow = 4 // 账户流通
	KindGrow        = 5 // 增利

	KindCommission = 9 // 手续费

	// 提现
	KindBalanceApplyCash = 11
	// 转账
	KindBalanceTransfer = 12
	// 冻结
	KindBalanceFreezes = 13
	// 解冻
	KindBalanceUnfreezes = 14
	// 冻结赠款
	KindBalanceFreezesPresent = 15
	// 解冻赠款
	KindBalanceUnfreezesPresent = 16

	// 系统充值
	TypeBalanceSystemCharge = 1
	// 网银充值
	TypeBalanceNetPayCharge = 2
	// 客服充值
	TypeBalanceServiceCharge = 3

	// 提现并充值到余额
	TypeApplyCashToCharge = 1
	// 提现到银行卡
	TypeApplyCashToBank = 2
	// 提现到第三方服务提供商(如:Paypal,支付宝等)
	TypeApplyCashToServiceProvider = 3

	// 退款到银行卡
	TypeBackToBank = 1
	// 退款到第三方
	TypeBackToServiceProvider = 2

	// 提现请求已提交
	StateApplySubmitted = 0
	// 提现已经确认
	StateApplyConfirmed = 1
	// 提现未通过
	StateApplyNotPass = 2
	// 提现完成
	StateApplyOver = 3

	StatusNormal = 0
	StatusOK     = 1
)

Variables

View Source
var (
	ErrSessionTimeout *domain.DomainError = domain.NewDomainError(
		"member_session_time_out", "会员会话超时")

	ErrInvalidSession *domain.DomainError = domain.NewDomainError(
		"member_invalid_session", "异常会话")

	ErrNoSuchDeliverAddress *domain.DomainError = domain.NewDomainError(
		"member_no_such_deliver_address", "配送地址错误")

	ErrNoSuchMember *domain.DomainError = domain.NewDomainError(
		"member_no_such_member", "会员不存在")

	ErrDeliverAddressLen *domain.DomainError = domain.NewDomainError(
		"err_deliver_address_len", "请填写详细的配送地址")

	ErrDeliverContactPersonName *domain.DomainError = domain.NewDomainError(
		"err_deliver_contact_person_name", "收货人不正确")

	ErrDeliverContactPhone *domain.DomainError = domain.NewDomainError(
		"err_deliver_phone_is_null", "联系人电话有误")

	ErrPwdCannotSame *domain.DomainError = domain.NewDomainError(
		"Err_Pwd_Can_not_Same", "新密码不能与旧密码相同")

	ErrPwdOldPwdNotRight *domain.DomainError = domain.NewDomainError(
		"Err_Pwd_Pld_Pwd_Not_Right", "原密码不正确")

	ErrIncorrectAmount *domain.DomainError = domain.NewDomainError(
		"err_balance_amount", "金额错误")

	ErrOutOfBalance *domain.DomainError = domain.NewDomainError(
		"err_out_of_balance", "超出金额")

	ErrUserLength *domain.DomainError = domain.NewDomainError(
		"err_user_length", "用户名至少6位",
	)

	ErrUserValidErr *domain.DomainError = domain.NewDomainError(
		"err_user_valid_err", "用户名为6位以上字符和数字的组合")

	ErrPersonName *domain.DomainError = domain.NewDomainError(
		"err_person_name", "姓名不正确")

	ErrEmailValidErr *domain.DomainError = domain.NewDomainError(
		"err_email_valid_err", "邮箱不正确")

	ErrPhoneValidErr *domain.DomainError = domain.NewDomainError(
		"err_phone_valid_err", "手机号码不正确")

	ErrPhoneHasBind *domain.DomainError = domain.NewDomainError(
		"err_phone_has_bind", "手机号码已经绑定")

	ErrQqValidErr *domain.DomainError = domain.NewDomainError(
		"err_qq_valid_err", "QQ号码不正确")

	ErrNotSetTradePwd *domain.DomainError = domain.NewDomainError(
		"err_not_set_tarde_pwd", "交易密码未设置")

	ErrIncorrectTradePwd *domain.DomainError = domain.NewDomainError(
		"err_incorrect_tarde_pwd", "交易密码错误")

	ErrNotEnoughAmount *domain.DomainError = domain.NewDomainError(
		"err_not_enough_amount", "金额不足")

	ErrNotSupportTransfer *domain.DomainError = domain.NewDomainError(
		"err_not_support_transfer", "不支持的转账方式")
)

Functions

This section is empty.

Types

type AccountValue

type AccountValue struct {
	MemberId int `db:"member_id" pk:"yes" json:"memberId"`
	// 积分
	Integral int `db:"integral"`
	// 账户余额
	Balance float32 `db:"balance" json:"balance"`
	// 冻结金额
	FreezesFee float32 `db:"freezes_fee" json:"freezesFee"`
	// 奖金账户余额
	PresentBalance float32 `db:"present_balance" json:"presentBalance"`
	FlowBalance    float32 `db:"flow_balance" json:"flowBalance"` // 流动账户余额
	GrowAmount     float32 `db:"grow_amount" json:"growAmount"`   // 增利账户金额

	// 冻结赠送额
	FreezesPresent float32 `db:"freezes_present" json:"freezesPresent"`
	// 总赠送金额
	TotalPresentFee float32 `db:"total_present_fee" json:"totalPresentFee"`
	// 总消费额
	TotalFee float32 `db:"total_fee" json:"totalFee"`
	// 总充值额
	TotalCharge float32 `db:"total_charge" json:"totalCharge"`
	// 总支付额
	TotalPay float32 `db:"total_pay" json:"totalPay"`
	// 更新时间
	UpdateTime int64 `db:"update_time" json:"updateTime"`
}

账户值对象

type BalanceInfoValue

type BalanceInfoValue struct {
	Id         int     `db:"id" auto:"yes" pk:"yes"`
	MemberId   int     `db:"member_id"`
	TradeNo    string  `db:"trade_no"`
	Kind       int     `db:"kind"`
	Type       int     `db:"type"`
	Title      string  `db:"title"`
	Amount     float32 `db:"amount"`     // 金额
	CsnAmount  float32 `db:"csn_amount"` // 手续费
	RefId      int     `db:"ref_id"`     // 引用编号
	State      int     `db:"state"`
	CreateTime int64   `db:"create_time"`
	UpdateTime int64   `db:"update_time"`
}

余额变动信息

type BankInfo

type BankInfo struct {
	MemberId    int    `db:"member_id" pk:"yes"`
	Name        string `db:"name"`
	Account     string `db:"account"`
	AccountName string `db:"account_name"`
	Network     string `db:"network"`
	State       int    `db:"state"`
	UpdateTime  int64  `db:"update_time"`
}

type DeliverAddress

type DeliverAddress struct {
	Id        int    `db:"id" pk:"yes" auto:"yes"`
	MemberId  int    `db:"member_id"`
	RealName  string `db:"real_name"`
	Phone     string `db:"phone"`
	Address   string `db:"address"`
	IsDefault int    `db:"is_default"`
}

会员收货地址

type IAccount

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

	// 获取账户值
	GetValue() *AccountValue

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

	// 根据编号获取余额变动信息
	GetBalanceInfo(id int) *BalanceInfoValue

	// 根据号码获取余额变动信息
	GetBalanceInfoByNo(no string) *BalanceInfoValue

	// 保存余额变动信息
	SaveBalanceInfo(*BalanceInfoValue) (int, error)

	// 充值
	// @title 充值标题说明
	// @no    充值订单编号
	// @amount 金额
	ChargeBalance(chargeType int, title string, tradeNo string, amount float32) error

	// 赠送金额
	PresentBalance(title string, tradeNo string, amount float32) error

	// 流通账户余额变动,如扣除,amount传入负数金额
	ChargeFlowBalance(title string, tradeNo string, amount float32) error

	// 订单抵扣消费
	OrderDiscount(tradeNo string, amount float32) error

	// 退款
	RequestBackBalance(backType int, title string, amount float32) error

	// 完成退款
	FinishBackBalance(id int, tradeNo string) error

	// 请求提现,applyType:提现方式
	RequestApplyCash(applyType int, title string, amount float32, commission float32) error

	// 确认提现
	ConfirmApplyCash(id int, pass bool, remark string) error

	// 完成提现
	FinishApplyCash(id int, tradeNo string) error

	// 冻结余额
	Freezes(title string, tradeNo string, amount float32, referId int) error

	// 解冻金额
	Unfreezes(title string, tradeNo string, amount float32, referId int) error

	// 冻结赠送金额
	FreezesPresent(title string, tradeNo string, amount float32, referId int) error

	// 解冻赠送金额
	UnfreezesPresent(title string, tradeNo string, amount float32, referId int) error

	// 转账余额到其他账户
	TransferBalance(kind int, amount float32, tradeNo string, toTitle, fromTitle string) error

	// 转账返利账户,kind为转账类型,如 KindBalanceTransfer等
	// commission手续费
	TransferPresent(kind int, amount float32, commission float32, tradeNo string,
		toTitle string, fromTitle string) error

	// 转账活动账户,kind为转账类型,如 KindBalanceTransfer等
	// commission手续费
	TransferFlow(kind int, amount float32, commission float32, tradeNo string,
		toTitle string, fromTitle string) error

	// 将活动金转给其他人
	TransferFlowTo(memberId int, kind int, amount float32, commission float32,
		tradeNo string, toTitle string, fromTitle string) error
}

type IBalanceInfo

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

	// 获取值
	GetValue() *BalanceInfoValue

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

账户余额变动信息

type IDeliver

type IDeliver interface {
	GetDomainId() int

	GetValue() DeliverAddress

	SetValue(*DeliverAddress) error

	Save() (int, error)
}

type IInvitationManager

type IInvitationManager interface {
	// 判断是否由会员邀请
	InvitationBy(memberId int) bool

	// 获取我邀请的会员
	GetMyInvitationMembers() []*ValueMember

	// 获取我的邀请码
	GetMyInvitationCode() string

	// 获取邀请会员下级邀请数量
	GetSubInvitationNum() map[int]int

	// 获取邀请要的会员
	GetInvitationMeMember() *ValueMember
}

type IMember

type IMember interface {
	// 获取聚合根编号
	GetAggregateRootId() int

	// 获取值
	GetValue() ValueMember

	// 邀请管理
	Invitation() IInvitationManager

	// 设置值
	SetValue(*ValueMember) error

	// 获取账户
	GetAccount() IAccount

	// 锁定会员
	Lock() error

	// 解锁会员
	Unlock() error

	// 获取提现银行信息
	GetBank() BankInfo

	// 保存提现银行信息
	SaveBank(*BankInfo) error

	// 保存积分记录
	SaveIntegralLog(*IntegralLog) error

	// 增加经验值
	AddExp(exp int) error

	// 获取等级
	GetLevel() *valueobject.MemberLevel

	// 增加积分
	// todo:partnerId 不需要
	AddIntegral(partnerId int, backType int, integral int, log string) error

	// 获取关联的会员
	GetRelation() *MemberRelation

	// 更新会员绑定
	SaveRelation(r *MemberRelation) error

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

	// 修改密码,旧密码可为空
	ModifyPassword(newPwd, oldPwd string) error

	// 修改交易密码,旧密码可为空
	ModifyTradePassword(newPwd, oldPwd string) error

	// 用户是否已经存在
	UsrIsExist() bool

	// 创建配送地址
	CreateDeliver(*DeliverAddress) (IDeliver, error)

	// 获取配送地址
	GetDeliverAddress() []IDeliver

	// 获取配送地址
	GetDeliver(int) IDeliver

	// 删除配送地址
	DeleteDeliver(int) error
}

type IMemberRep

type IMemberRep interface {

	// 根据用户名获取会员
	GetMemberValueByUsr(usr string) *ValueMember

	// 根据手机号码获取会员
	GetMemberValueByPhone(phone string) *ValueMember

	// 获取会员
	GetMember(memberId int) IMember

	// 创建会员
	CreateMember(*ValueMember) IMember

	// 保存
	SaveMember(v *ValueMember) (int, error)

	// 获取会员最后更新时间
	GetMemberLatestUpdateTime(int) int64

	// 锁定会员
	LockMember(id int, state int) error

	// 根据邀请码获取会员编号
	GetMemberIdByInvitationCode(string) int

	// 获取会员编号
	GetMemberIdByUser(string string) int

	// 用户名是否存在
	CheckUsrExist(usr string, memberId int) bool

	// 手机号码是否使用
	CheckPhoneBind(phone string, memberId int) bool

	// 保存绑定
	SaveRelation(*MemberRelation) error

	// 获取等级
	GetLevel(partnerId, levelValue int) *valueobject.MemberLevel

	// 获取下一个等级
	GetNextLevel(partnerId, levelVal int) *valueobject.MemberLevel

	// 获取会员等级
	GetMemberLevels(partnerId int) []*valueobject.MemberLevel

	// 删除会员等级
	DeleteMemberLevel(partnerId, id int) error

	// 保存等级
	SaveMemberLevel(partnerId int, v *valueobject.MemberLevel) (int, error)

	// 获取账户
	GetAccount(memberId int) *AccountValue

	// 保存账户,传入会员编号
	SaveAccount(*AccountValue) (int, error)

	// 获取银行信息
	GetBankInfo(int) *BankInfo

	// 保存银行信息
	SaveBankInfo(*BankInfo) error

	// 保存积分记录
	SaveIntegralLog(*IntegralLog) error

	// 获取会员关联
	GetRelation(memberId int) *MemberRelation

	// 获取经验值对应的等级
	GetLevelValueByExp(partnerId int, exp int) int

	// 保存地址
	SaveDeliver(*DeliverAddress) (int, error)

	// 获取全部配送地址
	GetDeliverAddress(memberId int) []*DeliverAddress

	// 获取配送地址
	GetSingleDeliverAddress(memberId, deliverId int) *DeliverAddress

	// 删除配送地址
	DeleteDeliver(memberId, deliverId int) error

	// 邀请
	GetMyInvitationMembers(memberId int) []*ValueMember

	// 获取下级会员数量
	GetSubInvitationNum(memberIds string) map[int]int

	// 获取推荐我的人
	GetInvitationMeMember(memberId int) *ValueMember

	// 根据编号获取余额变动信息
	GetBalanceInfo(id int) *BalanceInfoValue

	// 根据号码获取余额变动信息
	GetBalanceInfoByNo(tradeNo string) *BalanceInfoValue

	// 保存余额变动信息
	SaveBalanceInfo(v *BalanceInfoValue) (int, error)
}

type IntegralLog

type IntegralLog struct {
	Id         int    `db:"id" pk:"yes" auto:"yes"`
	PartnerId  int    `db:"partner_id"`
	MemberId   int    `db:"member_id"`
	Type       int    `db:"type"`
	Integral   int    `db:"integral"`
	Log        string `db:"log"`
	RecordTime int64  `db:"record_time"`
}

type MemberRelation

type MemberRelation struct {
	MemberId int `db:"member_id" pk:"yes"`
	//会员卡号
	CardId string `db:"card_id"`
	//推荐人(会员)
	RefereesId int `db:"invi_member_id"`
	//注册关联商家编号
	RegisterPartnerId int `db:"reg_partner_id"`
}

会员关联表

type ValueMember

type ValueMember struct {
	Id  int    `db:"id" auto:"yes" pk:"yes"`
	Usr string `db:"usr"`
	Pwd string `db:"Pwd"`
	// 交易密码
	TradePwd string `db:"trade_pwd"`
	// 姓名
	Name string `db:"name"`
	// 经验值
	Exp int `db:"exp"`
	// 等级
	Level int `db:"level"`

	Sex      int    `db:"sex"`
	Avatar   string `db:"avatar"`
	BirthDay string `db:"birthday"`
	Phone    string `db:"phone"`
	Address  string `db:"address"`
	Qq       string `db:"qq"`
	Email    string `db:"email"`
	// 邀请码
	InvitationCode string `db:"invitation_code"`
	RegFrom        string `db:"reg_from"`
	RegIp          string `db:"reg_ip"`
	State          int    `db:"state"`
	RegTime        int64  `db:"reg_time"`
	LastLoginTime  int64  `db:"last_login_time"`
	UpdateTime     int64  `db:"update_time"`

	// 动态令牌,用于登陆或API调用
	DynamicToken string `db:"-"`

	// 超时时间
	TimeoutTime int64 `db:"-"`
}

Jump to

Keyboard shortcuts

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