/
app.go
94 lines (75 loc) · 2.01 KB
/
app.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// @Author: Ciusyan 2023/1/25
package user
import (
"github.com/go-playground/validator/v10"
kitUtil "github.com/Go-To-Byte/DouSheng/dou-kit/utils"
"github.com/Go-To-Byte/DouSheng/user-service/common/utils"
)
const (
AppName = "user"
)
var (
validate = validator.New()
)
func NewLoginAndRegisterRequest() *LoginAndRegisterRequest {
return &LoginAndRegisterRequest{}
}
// Validate 参数校验
func (r *LoginAndRegisterRequest) Validate() error {
return validate.Struct(r)
}
func (r *UserInfoRequest) Validate() error {
return validate.Struct(r)
}
func (r *UserMapRequest) Validate() error {
return validate.Struct(r)
}
func NewTokenResponse(id int64) *TokenResponse {
return &TokenResponse{
UserId: id,
}
}
func NewDefaultUser() *User {
return &User{}
}
func NewDefaultUserPo() *UserPo {
return &UserPo{}
}
func NewUserPo(req *LoginAndRegisterRequest) *UserPo {
return &UserPo{
Username: req.Username,
Password: req.Password,
}
}
// Hash 将敏感信息做Hash
func (r *LoginAndRegisterRequest) Hash() *LoginAndRegisterRequest {
r.Password = utils.BcryptHash(r.Password)
return r
}
// CheckHash 比对Hash
func (u *UserPo) CheckHash(data any) bool {
return utils.VerifyBcryptHash(data, u.Password)
}
// TableName 指明表名 -> gorm 参数映射
func (*UserPo) TableName() string {
return AppName
}
func (po *UserPo) Po2vo() *User {
return &User{
Id: po.Id,
Name: po.Username,
// TODO: database
Avatar: kitUtil.V2P("https://p3-passport.byteimg.com/img/user-avatar/de432cd6200bc3d3f7d633a3ccd528d8~180x180.awebp"),
Signature: kitUtil.V2P("人生没有白走的路,每一步都算数"),
BackgroundImage: kitUtil.V2P("https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/de73a8b9317a481ea4d488d91c16fe61~tplv-k3u1fbpfcp-zoom-crop-mark:3024:3024:3024:1702.awebp?"),
}
}
func NewUserInfoResponse() *UserInfoResponse {
return &UserInfoResponse{}
}
func NewUserInfoRequest() *UserInfoRequest {
return &UserInfoRequest{}
}
func NewUserMapRequest() *UserMapRequest {
return &UserMapRequest{}
}