Documentation
¶
Overview ¶
这是一个user的领域包
用于定义对象模型, 也可以认为model这个文件,用于存入数据库的对象(po)
Index ¶
Constants ¶
View Source
const (
AppName = "user"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CreateUserRequest ¶
type CreateUserRequest struct { // 创建用户名密码 // 有些时候这个字段的名称和数据库的名称不一样,就可以使用gorm:定义这个结构体里面的对象的这个字段和数据库对应 Username string `json:"username" gorm:"column:username"` Password string `json:"password"` // 用户角色(写死) // 使用方法:CreateBlog(check user Role) Role Role `json:"role"` Label map[string]string `json:"label" gorm:"serializer:json"` // 直接序列化为json存储到lable字段里面去 // contains filtered or unexported fields }
Service这个接口需要用到一个数据结构 这个结构体的数据一般是由用户传递进来的,这个用户可能是管理员
func (*CreateUserRequest) PasswordHash ¶
func (req *CreateUserRequest) PasswordHash()
func (*CreateUserRequest) SetIsHashed ¶
func (req *CreateUserRequest) SetIsHashed()
func (*CreateUserRequest) Validate ¶
func (req *CreateUserRequest) Validate() error
type DeleteUserRequest ¶
type DeleteUserRequest struct {
Id int `json:"id"`
}
删除用户的请求
func (*DeleteUserRequest) IdString ¶
func (req *DeleteUserRequest) IdString() string
type DescribeBy ¶
type DescribeBy int
为DescribeUserRequest定义一个枚举
const ( DESCRIBE_BY_ID DescribeBy = iota DESCRIBE_BY_USERNAME )
type DescribeUserRequest ¶
type DescribeUserRequest struct { DescribeBy DescribeBy `json:"describe_by"` DescribeValue string `json:"describe_value"` }
同时支持通过Id来查询,也要支持通过Username来查询
func NewDescribeUserRequestById ¶
func NewDescribeUserRequestById(id string) *DescribeUserRequest
func NewDescribeUserRequestByUsername ¶
func NewDescribeUserRequestByUsername(username string) *DescribeUserRequest
type Role ¶
type Role int
比如一个系统要给用户一个角色(用于权限划分) 定义用户时,定义一个枚举 Go的语法是没有声明枚举的,我们通常定义一个常量,或者一个类型比如: 定义一个类型type ROLE int 来表示枚举类型
type Service ¶
type Service interface { // 创建用户 // 第一个参数context.Context // 第二个参数,是创建这个用户的具体请求,一般把他命名为*CreateUserRequest结构体(需要自己定义) // 最后返回User对象,这个对象往往是一个模型,一般放到模型库中../model.go中 CreateUser(context.Context, *CreateUserRequest) (*User, error) // 删除用户 DeleteUser(context.Context, *DeleteUserRequest) error // 查询用户 User.Checkpassword(xxx) DescribeUserRequest(context.Context, *DescribeUserRequest) (*User, error) }
定义user这个包的能力,就是接口定义 定义接口有一个关键的点就是站在使用者的角度来定义的,userSvc.Create(ctx, req), usersvc.DeleteUser(id), 接口的兼容性,接口定义好了就不要试图随意修改接口
type User ¶
type User struct { // 通用信息 *common.Meta // 用户传递进来的请求,通过嵌套的方式 *CreateUserRequest }
这个对象后面是要把他丢到数据库里做保存的
Click to show internal directories.
Click to hide internal directories.