user

package
v0.0.0-...-8e0b234 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: OSL-3.0 Imports: 5 Imported by: 0

README

用户管理模块

业务定义层(对业务的抽象), 由impl模块来完成具体的功能实现

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" validate:"required" gorm:"column:username"`
	Password string            `json:"password" validate:"required" gorm:"column:password"`
	Role     Role              `json:"role" gorm:"column:role"`
	Label    map[string]string `json:"label" gorm:"column:label;serializer:json"` // 用json序列化填充到label
}

用户创建的参数

func NewCreateUserRequest

func NewCreateUserRequest() *CreateUserRequest

为了避免对象内部出现很多空指针, 指针对象为初始化, 为该对象提供一个构造函数 还能做一些相关兼容,补充默认值的功能, New+对象名称()

func (*CreateUserRequest) CheckPassword

func (c *CreateUserRequest) CheckPassword(pass string) error

校验密码

func (*CreateUserRequest) Validate

func (req *CreateUserRequest) Validate() error

type DeleteUserRequest

type DeleteUserRequest struct {
	UserId int
}

删除用户,根据id进行删除

func NewDeleteUserRequest

func NewDeleteUserRequest(uid int) *DeleteUserRequest

DeleteUserRequest构造函数

type DescribeUserRequest

type DescribeUserRequest struct {
	UserId string
}

func NewDescribeUserRequest

func NewDescribeUserRequest(uid string) *DescribeUserRequest

DescribeUserRequest构造函数

type QueryUserRequest

type QueryUserRequest struct {
	// 分页大小, 一个多少个
	PageSize int
	// 当前页, 查询哪一页的数据
	PageNumber int
	// 更加用户name查找用户
	Username string
}

查询用户列表

func NewQueryUserRequest

func NewQueryUserRequest() *QueryUserRequest

QueryUserRequest构造函数

func (*QueryUserRequest) Limit

func (req *QueryUserRequest) Limit() int

func (*QueryUserRequest) Offset

func (req *QueryUserRequest) Offset() int

1, 0 2, 20, 3, 20 * 2 4, 20 * 3

type Role

type Role int

通过声明一种自定义类型来声明一种类型

const (
	// 当 值为0的时候, 就是默认值
	// 枚举命名风格:
	ROLE_VISITOR Role = iota
	ROLE_ADMIN
)

通过定义满足类型的常量,来定义满足这个类型的列表 ROLE_MEMBER/ROLE_ADMIN

func (Role) String

func (r Role) String() string

定义 ChipType 类型的方法 String(), 返回字符串。

type Service

type Service interface {
	// 用户创建
	// CreateUser(username, password, role string, lable map[string]string)
	// 设计CreateUserRequest, 可以扩展对象, 而不影响接口的定义
	// 1. 这个接口支持取消吗? 要支持取消应该怎么办?
	// 2. 这个接口支持Trace, TraceId怎么传递?
	// 中间件参数,取消/Trace/... 怎么产生怎么传递,用context传递
	CreateUser(context.Context, *CreateUserRequest) (*User, error)
	// 查询用户列表, 对象列表 [{}]
	QueryUser(context.Context, *QueryUserRequest) (*UserSet, error)
	// 查询用户详情, 通过Id查询,
	DescribeUser(context.Context, *DescribeUserRequest) (*User, error)
	// 用户修改
	UpdateUser(context.Context, *UpdateUserRequest) (*User, error)
	// 用户删除
	DeleteUser(context.Context, *DeleteUserRequest) (*User, error)
}

面向对象 user.Service, 设计user模块提供的接口 接口定义, 一定要考虑兼容性, 接口的参数不能变

type UpdateUserRequest

type UpdateUserRequest struct {
	UserId   int
	Username string `json:"username" validate:"required" gorm:"column:username"`
	Password string `json:"password" validate:"required" gorm:"column:password"`
	Role     Role   `json:"role" validate:"required" gorm:"column:role"`
}

修改用户,支持修改用户名,密码,角色,根据id进行修改

func NewUpdateUserRequest

func NewUpdateUserRequest(uid int, username, password string, role Role) *UpdateUserRequest

UpdateUserRequest构造函数

func (*UpdateUserRequest) HashPassword

func (c *UpdateUserRequest) HashPassword()

带盐加密

type User

type User struct {
	// 用户Id
	Id int `json:"id" gorm:"column:id"`
	// 创建时间, 时间戳 10位, 秒
	CreatedAt int64 `json:"created_at" gorm:"column:created_at"`
	// 更新时间, 时间戳 10位, 秒
	UpdatedAt int64 `json:"updated_at" gorm:"column:updated_at"`
	// 用户参数
	*CreateUserRequest
}

用户创建成功后返回一个User对象 CreatedAt 为啥没用time.Time, int64(TimeStamp), 统一标准化, 避免时区你的程序产生影响 在需要对时间进行展示的时候,由前端根据具体展示那个时区的时间

func NewUser

func NewUser(req *CreateUserRequest) *User

构造User对象的时候 就需要把明文密码转化为hash后的密码

func (*User) String

func (u *User) String() string

func (*User) TableName

func (u *User) TableName() string

定义对象存储的表的名称没有按照gorm默认设置,可以自行配置

type UserSet

type UserSet struct {
	// 总共有多少个
	Total int64 `json:"total"`
	// 当前查询的数据清单
	Items []*User `json:"items"`
}

func NewUserSet

func NewUserSet() *UserSet

UserSet的构造函数

func (*UserSet) String

func (u *UserSet) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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