mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-08-28 02:19:04 +08:00
70 lines
2.3 KiB
Go
70 lines
2.3 KiB
Go
package adminin
|
|
|
|
import (
|
|
"context"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
"hotgo/utility/simple"
|
|
)
|
|
|
|
// RegisterInp 账号注册
|
|
type RegisterInp struct {
|
|
Username string `json:"username" v:"required#用户名不能为空" dc:"用户名"`
|
|
Password string `json:"password" v:"required#密码不能为空" dc:"密码"`
|
|
Mobile string `json:"mobile" v:"required|phone-loose#手机号不能为空|手机号格式不正确" dc:"手机号"`
|
|
Code string `json:"code" v:"required#验证码不能为空" dc:"验证码"`
|
|
InviteCode string `json:"inviteCode" dc:"邀请码"`
|
|
}
|
|
|
|
func (in *RegisterInp) Filter(ctx context.Context) (err error) {
|
|
// 解密密码
|
|
password, err := simple.DecryptText(in.Password)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if err = g.Validator().Data(password).Rules("password").Messages("密码长度在6~18之间").Run(ctx); err != nil {
|
|
return
|
|
}
|
|
|
|
in.Password = password
|
|
return
|
|
}
|
|
|
|
// LoginModel 统一登录响应
|
|
type LoginModel struct {
|
|
Id int64 `json:"id" dc:"用户ID"`
|
|
Username string `json:"username" dc:"用户名"`
|
|
Token string `json:"token" dc:"登录token"`
|
|
Expires int64 `json:"expires" dc:"登录有效期"`
|
|
}
|
|
|
|
// AccountLoginInp 账号登录
|
|
type AccountLoginInp struct {
|
|
Username string `json:"username" v:"required#用户名不能为空" dc:"用户名"`
|
|
Password string `json:"password" v:"required#密码不能为空" dc:"密码"`
|
|
Cid string `json:"cid" dc:"验证码ID"`
|
|
Code string `json:"code" dc:"验证码"`
|
|
IsLock bool `json:"isLock" dc:"是否为锁屏状态"`
|
|
}
|
|
|
|
// MobileLoginInp 手机号登录
|
|
type MobileLoginInp struct {
|
|
Mobile string `json:"mobile" v:"required|phone-loose#手机号不能为空|手机号格式不正确" dc:"手机号"`
|
|
Code string `json:"code" v:"required#验证码不能为空" dc:"验证码"`
|
|
}
|
|
|
|
// MemberLoginPermissions 登录用户角色信息
|
|
type MemberLoginPermissions []string
|
|
|
|
// MemberLoginStatInp 用户登录统计
|
|
type MemberLoginStatInp struct {
|
|
MemberId int64
|
|
}
|
|
|
|
type MemberLoginStatModel struct {
|
|
LoginCount int `json:"loginCount" dc:"登录次数"`
|
|
LastLoginAt *gtime.Time `json:"lastLoginAt" dc:"最后登录时间"`
|
|
LastLoginIp string `json:"lastLoginIp" dc:"最后登录IP"`
|
|
}
|