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.

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)
}