You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1002 B
Go
42 lines
1002 B
Go
1 month ago
|
package user
|
||
|
|
||
|
// UserDto 用户数据传输对象
|
||
|
type UserDto struct {
|
||
|
Uid uint64 `json:"uid"`
|
||
|
Username string `json:"username" binding:"required"`
|
||
|
Phone string `json:"phone" binding:"required"`
|
||
|
Password bool `json:"password,omitempty"`
|
||
|
GiftCount int8 `json:"giftCount"`
|
||
|
Status int8 `json:"status"`
|
||
|
Remark string `json:"remark"`
|
||
|
}
|
||
|
|
||
|
type userDtoConfiguration func(dto *UserDto)
|
||
|
type userDtoConfigurations []userDtoConfiguration
|
||
|
|
||
|
// WithDtoUsername 设置用户名
|
||
|
func WithDtoUsername(username string) userDtoConfiguration {
|
||
|
return func(dto *UserDto) {
|
||
|
dto.Username = username
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// WithDtoPhone 设置手机号
|
||
|
func WithDtoPhone(phone string) userDtoConfiguration {
|
||
|
return func(dto *UserDto) {
|
||
|
dto.Phone = phone
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func NewUserDto(cfg ...userDtoConfiguration) *UserDto {
|
||
|
userDto := &UserDto{}
|
||
|
userDtoConfigurations(cfg).apply(userDto)
|
||
|
return userDto
|
||
|
}
|
||
|
|
||
|
func (cfg userDtoConfigurations) apply(userDto *UserDto) {
|
||
|
for _, c := range cfg {
|
||
|
c(userDto)
|
||
|
}
|
||
|
}
|