2025-11-24 18:44:06 +08:00
|
|
|
|
package models
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"platform/web/core"
|
|
|
|
|
|
"platform/web/globals/orm"
|
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/shopspring/decimal"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// User 用户表
|
|
|
|
|
|
type User struct {
|
|
|
|
|
|
core.Model
|
2025-12-15 14:48:30 +08:00
|
|
|
|
AdminID *int32 `json:"admin_id,omitempty" gorm:"column:admin_id"` // 管理员ID
|
2026-03-27 16:16:55 +08:00
|
|
|
|
DiscountID *int32 `json:"discount_id,omitempty" gorm:"column:discount_id"` // 折扣ID
|
2025-12-15 14:48:30 +08:00
|
|
|
|
Phone string `json:"phone" gorm:"column:phone"` // 手机号码
|
|
|
|
|
|
Username *string `json:"username,omitempty" gorm:"column:username"` // 用户名
|
|
|
|
|
|
Email *string `json:"email,omitempty" gorm:"column:email"` // 邮箱
|
2026-04-11 09:51:25 +08:00
|
|
|
|
Password *string `json:"-" gorm:"column:password"` // 用户密码
|
2026-03-27 16:16:55 +08:00
|
|
|
|
Source *UserSource `json:"source,omitempty" gorm:"column:source"` // 用户来源:0-官网注册,1-管理员添加,2-代理商注册,3-代理商添加
|
2025-12-15 14:48:30 +08:00
|
|
|
|
Name *string `json:"name,omitempty" gorm:"column:name"` // 真实姓名
|
|
|
|
|
|
Avatar *string `json:"avatar,omitempty" gorm:"column:avatar"` // 头像URL
|
|
|
|
|
|
Status UserStatus `json:"status" gorm:"column:status"` // 用户状态:0-禁用,1-正常
|
|
|
|
|
|
Balance decimal.Decimal `json:"balance" gorm:"column:balance"` // 账户余额
|
|
|
|
|
|
IDType UserIDType `json:"id_type" gorm:"column:id_type"` // 认证类型:0-未认证,1-个人认证,2-企业认证
|
|
|
|
|
|
IDNo *string `json:"id_no,omitempty" gorm:"column:id_no"` // 身份证号或营业执照号
|
|
|
|
|
|
IDToken *string `json:"id_token,omitempty" gorm:"column:id_token"` // 身份验证标识
|
|
|
|
|
|
ContactQQ *string `json:"contact_qq,omitempty" gorm:"column:contact_qq"` // QQ联系方式
|
|
|
|
|
|
ContactWechat *string `json:"contact_wechat,omitempty" gorm:"column:contact_wechat"` // 微信联系方式
|
|
|
|
|
|
LastLogin *time.Time `json:"last_login,omitempty" gorm:"column:last_login"` // 最后登录时间
|
|
|
|
|
|
LastLoginIP *orm.Inet `json:"last_login_ip,omitempty" gorm:"column:last_login_ip"` // 最后登录地址
|
|
|
|
|
|
LastLoginUA *string `json:"last_login_ua,omitempty" gorm:"column:last_login_ua"` // 最后登录代理
|
2025-11-24 18:44:06 +08:00
|
|
|
|
|
2026-03-27 16:16:55 +08:00
|
|
|
|
Admin *Admin `json:"admin,omitempty" gorm:"foreignKey:AdminID"`
|
|
|
|
|
|
Roles []*UserRole `json:"roles" gorm:"many2many:link_user_role"`
|
|
|
|
|
|
Discount *ProductDiscount `json:"discount,omitempty" gorm:"foreignKey:DiscountID"`
|
2025-11-24 18:44:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// UserStatus 用户状态枚举
|
|
|
|
|
|
type UserStatus int
|
|
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
|
UserStatusDisabled UserStatus = 0 // 禁用
|
|
|
|
|
|
UserStatusEnabled UserStatus = 1 // 正常
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// UserIDType 用户认证类型枚举
|
|
|
|
|
|
type UserIDType int
|
|
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
|
UserIDTypeUnverified UserIDType = 0 // 未认证
|
|
|
|
|
|
UserIDTypePersonal UserIDType = 1 // 个人认证
|
|
|
|
|
|
UserIDTypeEnterprise UserIDType = 2 // 企业认证
|
|
|
|
|
|
)
|
2026-03-27 16:16:55 +08:00
|
|
|
|
|
|
|
|
|
|
// UserSource 用户来源枚举
|
|
|
|
|
|
type UserSource int
|
|
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
|
UserSourceReg UserSource = 0 // 官网注册
|
|
|
|
|
|
UserSourceAdd UserSource = 1 // 管理员添加
|
|
|
|
|
|
UserSourceAgentReg UserSource = 2 // 代理商注册
|
|
|
|
|
|
UserSourceAgentAdd UserSource = 3 // 代理商添加
|
|
|
|
|
|
)
|