89 lines
1.9 KiB
Go
89 lines
1.9 KiB
Go
package constant
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// UserStatus 用户状态
|
|
type UserStatus string
|
|
|
|
const (
|
|
UserStatusActive UserStatus = "NORMAL" // 用户状态正常
|
|
UserStatusDisabled UserStatus = "DISABLE" // 已禁用用户
|
|
)
|
|
|
|
// 状态对应的描述
|
|
var userStatusMap = map[UserStatus]string{
|
|
UserStatusActive: "正常",
|
|
UserStatusDisabled: "已禁用",
|
|
}
|
|
|
|
// 处理为看得懂的状态
|
|
func (s UserStatus) String() string {
|
|
if str, ok := userStatusMap[s]; ok {
|
|
return str
|
|
}
|
|
return string(s)
|
|
}
|
|
|
|
// =====================================================================================================================
|
|
|
|
// UserSex 性别
|
|
type UserSex int
|
|
|
|
const (
|
|
UserSexNone UserSex = iota // 不知道是啥
|
|
UserSexMale // 男
|
|
UserSexFemale // 女
|
|
UserSexOther // 其他性别
|
|
)
|
|
|
|
// 状态对应的描述
|
|
var userSexMap = map[UserSex]string{
|
|
UserSexNone: "无性别",
|
|
UserSexMale: "男",
|
|
UserSexFemale: "女",
|
|
UserSexOther: "其他",
|
|
}
|
|
|
|
// FromString 中文取性别
|
|
func (s UserSex) FromString(sex string) UserSex {
|
|
result := UserSexNone
|
|
for key, value := range userSexMap {
|
|
if sex == value {
|
|
result = key
|
|
break
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
|
|
// 处理为看得懂的状态
|
|
func (s UserSex) String() string {
|
|
if str, ok := userSexMap[s]; ok {
|
|
return str
|
|
}
|
|
//return strconv.Itoa(int(s))
|
|
return fmt.Sprintf("UserSex(%d)", int(s))
|
|
}
|
|
|
|
// MarshalJSON JSON序列化的时候转换为中文
|
|
func (s UserSex) MarshalJSON() ([]byte, error) {
|
|
return []byte(`"` + s.String() + `"`), nil
|
|
}
|
|
|
|
// =====================================================================================================================
|
|
|
|
// UserIdentity 用户身份
|
|
type UserIdentity string
|
|
|
|
const (
|
|
UserIdentityAdmin UserIdentity = "admin" // 管理员
|
|
UserIdentityUser UserIdentity = "user" // 普通用户
|
|
)
|
|
|
|
// String implements the Stringer interface.
|
|
func (t UserIdentity) String() string {
|
|
return string(t)
|
|
}
|