user

package
v0.0.0-...-54787ef Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AppName = "users"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateUserRequest

type CreateUserRequest struct {
	// 用户名
	Username string `json:"username" gorm:"column:username"`
	// 密码(Hash过后的)
	Password string `json:"password" gorm:"column:password"`
	// 用户的角色(写死),
	// @Role("admin")
	// CreateBlog( check user Role  )
	Role Role `json:"role" gorm:"column:role"`
	// 对象标签, Dep:部门A
	// Label 没法存入数据库,不是一个结构化的数据
	// 比如就存储在数据里面 ,存储为Json, 需要ORM来帮我们完成 json的序列化和存储
	// 直接序列化为Json存储到 lable字段
	Label map[string]string `json:"label" gorm:"column:label;serializer:json"`
	// contains filtered or unexported fields
}

VO

func NewCreateUserRequest

func NewCreateUserRequest() *CreateUserRequest

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 string `json:"id"`
}

删除用户的请求

func NewDeleteUserRequest

func NewDeleteUserRequest(id string) *DeleteUserRequest

type DescribeBy

type DescribeBy int
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 QueryUserRequest

type QueryUserRequest struct {
	*request.PageRequest
}

func NewQueryUserRequest

func NewQueryUserRequest() *QueryUserRequest

type Role

type Role string

使用这个ROLE类型来表现枚举类型

const (
	// 普通成员
	ROLE_MEMBER Role = "member"
	// 系统管理员
	ROLE_ADMIN Role = "admin"
)

func (Role) String

func (r Role) String() string

type Service

type Service interface {
	// 创建用户
	CreateUser(context.Context, *CreateUserRequest) (*User, error)
	// 删除用户
	DeleteUser(context.Context, *DeleteUserRequest) (*User, error)

	// 查询用户详情
	DescribeUser(context.Context, *DescribeUserRequest) (*User, error)
	// 查询用户列表
	QueryUser(context.Context, *QueryUserRequest) (*UserSet, error)
}

定义User包的能力 就是接口定义 站在使用放的角度来定义的 userSvc.Create(ctx, req), userSvc.DeleteUser(id) 接口定义好了,不要试图 随意修改接口, 要保证接口的兼容性

type User

type User struct {
	// 在添加数据需要村的定义
	Id int64 `json:"id" gorm:"column:id"`
	// 创建时间
	CreatedAt int64 `json:"created_at" gorm:"column:created_at"`
	// 更新时间
	UpdatedAt int64 `json:"updated_at" gorm:"column:updated_at"`
	// 用户传递过来的请求
	*CreateUserRequest
}

用于存放 存入数据库的对象(PO)

func NewUser

func NewUser(req *CreateUserRequest) *User

func (*User) CheckPassword

func (u *User) CheckPassword(password string) error

判断该用户的密码是否正确

func (*User) String

func (u *User) String() string

func (*User) TableName

func (u *User) TableName() string

声明你这个对象存储在users表里面 orm 负责调用TableName() 来动态获取你这个对象要存储的表的名称

type UserSet

type UserSet struct {
	// 总数量
	Total int64 `json:"total"`
	// 当前页数据
	Items []*User `json:"items"`
}

func NewUserSet

func NewUserSet() *UserSet

Directories

Path Synopsis
api
gin
impl

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL