Documentation
¶
Index ¶
- func ConvertTimeFromGorm(t gorm.DeletedAt) lang.Time
- func ConvertTimeToGorm(t lang.Time) gorm.DeletedAt
- func CopyBaseFieldsFromDtoToEntity(src *rbac.BaseDTO, dst *BaseEntity)
- func CopyBaseFieldsFromEntityToDTO(src *BaseEntity, dst *rbac.BaseDTO)
- func Prototypes() []any
- type BaseEntity
- type EmailAddressConvertor
- type EmailAddressDAO
- type EmailAddressEntity
- type Entity
- type Finder
- type GroupConvertor
- type GroupDAO
- type GroupEntity
- type PermissionConvertor
- type PermissionDAO
- type PermissionEntity
- type PhoneNumberConvertor
- type PhoneNumberDAO
- type PhoneNumberEntity
- type RegionConvertor
- type RegionDAO
- type RegionEntity
- type RoleConvertor
- type RoleDAO
- type RoleEntity
- type UserConvertor
- type UserDAO
- type UserEntity
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertTimeFromGorm ¶
ConvertTimeFromGorm ...
func CopyBaseFieldsFromDtoToEntity ¶
func CopyBaseFieldsFromDtoToEntity(src *rbac.BaseDTO, dst *BaseEntity)
CopyBaseFieldsFromDtoToEntity ...
func CopyBaseFieldsFromEntityToDTO ¶
func CopyBaseFieldsFromEntityToDTO(src *BaseEntity, dst *rbac.BaseDTO)
CopyBaseFieldsFromEntityToDTO ...
func Prototypes ¶
func Prototypes() []any
Types ¶
type BaseEntity ¶
type BaseEntity struct {
UUID lang.UUID `gorm:"unique"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"index"`
Group rbac.GroupID
Owner rbac.UserID
Creator rbac.UserID
Updater rbac.UserID
}
BaseEntity 是基本的数据库实体
type EmailAddressConvertor ¶
type EmailAddressConvertor interface {
ConvertE2D(c context.Context, entity *EmailAddressEntity) (*rbac.EmailAddressDTO, error)
ConvertD2E(c context.Context, dto *rbac.EmailAddressDTO) (*EmailAddressEntity, error)
ConvertListE2D(c context.Context, entity []*EmailAddressEntity) ([]*rbac.EmailAddressDTO, error)
}
EmailAddressConvertor ...
type EmailAddressDAO ¶
type EmailAddressDAO interface {
Insert(db *gorm.DB, o *EmailAddressEntity) (*EmailAddressEntity, error)
Update(db *gorm.DB, id rbac.EmailAddressID, updater func(*EmailAddressEntity)) (*EmailAddressEntity, error)
Delete(db *gorm.DB, id rbac.EmailAddressID) error
Find(db *gorm.DB, id rbac.EmailAddressID) (*EmailAddressEntity, error)
List(db *gorm.DB, q *rbac.EmailAddressQuery) ([]*EmailAddressEntity, error)
FindByAddress(db *gorm.DB, address rbac.EmailAddress) (*EmailAddressEntity, error)
}
EmailAddressDAO ...
type EmailAddressEntity ¶
type EmailAddressEntity struct {
ID rbac.EmailAddressID `gorm:"primaryKey"`
BaseEntity
Address rbac.EmailAddress `gorm:"unique"`
Verified bool
}
EmailAddressEntity ...
type Finder ¶
type Finder interface {
Init(db *gorm.DB) Finder
AsList(list any) Finder
AsEntity(entity any) Finder
All(all bool) Finder
WithPagination(page *rbac.Pagination) Finder
WithConditions(cond *rbac.Conditions) Finder
Find() error
}
Finder 提供一套通用的查询工具
type GroupConvertor ¶
type GroupConvertor interface {
ConvertE2D(c context.Context, entity *GroupEntity) (*rbac.GroupDTO, error)
ConvertD2E(c context.Context, dto *rbac.GroupDTO) (*GroupEntity, error)
ConvertListE2D(c context.Context, entity []*GroupEntity) ([]*rbac.GroupDTO, error)
}
GroupConvertor 负责 dto <==> entity 的转换
type GroupDAO ¶
type GroupDAO interface {
Insert(db *gorm.DB, o *GroupEntity) (*GroupEntity, error)
Update(db *gorm.DB, id rbac.GroupID, updater func(o *GroupEntity)) (*GroupEntity, error)
Delete(db *gorm.DB, id rbac.GroupID) error
Find(db *gorm.DB, id rbac.GroupID) (*GroupEntity, error)
List(db *gorm.DB, q *rbac.GroupQuery) ([]*GroupEntity, error)
}
GroupDAO 是数据库访问对象
type GroupEntity ¶
type GroupEntity struct {
ID rbac.GroupID `gorm:"primaryKey"`
BaseEntity
Name rbac.GroupName `gorm:"unique"` // 用户分组名称
Label string // 昵称
Description string // 头像 (HTTP-URL)
Roles rbac.RoleNameList // 用户的角色
Enabled bool // 启用该项
}
GroupEntity 表示 Group 的数据库实体
type PermissionConvertor ¶
type PermissionConvertor interface {
ConvertE2D(c context.Context, entity *PermissionEntity) (*rbac.PermissionDTO, error)
ConvertD2E(c context.Context, dto *rbac.PermissionDTO) (*PermissionEntity, error)
ConvertListE2D(c context.Context, entity []*PermissionEntity) ([]*rbac.PermissionDTO, error)
}
PermissionConvertor 负责 dto <==> entity 的转换
type PermissionDAO ¶
type PermissionDAO interface {
Insert(db *gorm.DB, o *PermissionEntity) (*PermissionEntity, error)
Update(db *gorm.DB, id rbac.PermissionID, updater func(*PermissionEntity)) (*PermissionEntity, error)
Delete(db *gorm.DB, id rbac.PermissionID) error
Find(db *gorm.DB, id rbac.PermissionID) (*PermissionEntity, error)
List(db *gorm.DB, q *rbac.PermissionQuery) ([]*PermissionEntity, error)
ListAll(db *gorm.DB) ([]*PermissionEntity, error)
}
PermissionDAO 是数据库访问对象
type PermissionEntity ¶
type PermissionEntity struct {
ID rbac.PermissionID `gorm:"primaryKey"`
BaseEntity
Method string
Path string
Resource string `gorm:"unique"` // like 'method + ":" + path'
AcceptRoles rbac.RoleNameList `gorm:"column:roles"`
Enabled bool // 启用该项
}
PermissionEntity 表示 Permission 的数据库实体
type PhoneNumberConvertor ¶
type PhoneNumberConvertor interface {
ConvertE2D(c context.Context, entity *PhoneNumberEntity) (*rbac.PhoneNumberDTO, error)
ConvertD2E(c context.Context, dto *rbac.PhoneNumberDTO) (*PhoneNumberEntity, error)
ConvertListE2D(c context.Context, entity []*PhoneNumberEntity) ([]*rbac.PhoneNumberDTO, error)
}
PhoneNumberConvertor ...
type PhoneNumberDAO ¶
type PhoneNumberDAO interface {
Insert(db *gorm.DB, o *PhoneNumberEntity) (*PhoneNumberEntity, error)
Update(db *gorm.DB, id rbac.PhoneNumberID, updater func(*PhoneNumberEntity)) (*PhoneNumberEntity, error)
Delete(db *gorm.DB, id rbac.PhoneNumberID) error
Find(db *gorm.DB, id rbac.PhoneNumberID) (*PhoneNumberEntity, error)
FindByNumber(db *gorm.DB, num rbac.FullPhoneNumber) (*PhoneNumberEntity, error)
List(db *gorm.DB, q *rbac.PhoneNumberQuery) ([]*PhoneNumberEntity, error)
}
PhoneNumberDAO ...
type PhoneNumberEntity ¶
type PhoneNumberEntity struct {
ID rbac.PhoneNumberID `gorm:"primaryKey"`
BaseEntity
FullNumber rbac.PurePhoneNumber `gorm:"unique"`
Region rbac.RegionPhoneCode
SimpleNumber rbac.SimplePhoneNumber
Verified bool
}
PhoneNumberEntity ...
type RegionConvertor ¶
type RegionConvertor interface {
ConvertE2D(c context.Context, entity *RegionEntity) (*rbac.RegionDTO, error)
ConvertD2E(c context.Context, dto *rbac.RegionDTO) (*RegionEntity, error)
ConvertListE2D(c context.Context, entity []*RegionEntity) ([]*rbac.RegionDTO, error)
}
RegionConvertor 负责 dto <==> entity 的转换
type RegionDAO ¶
type RegionDAO interface {
Insert(db *gorm.DB, o *RegionEntity) (*RegionEntity, error)
Update(db *gorm.DB, id rbac.RegionID, updater func(*RegionEntity)) (*RegionEntity, error)
Delete(db *gorm.DB, id rbac.RegionID) error
Find(db *gorm.DB, id rbac.RegionID) (*RegionEntity, error)
List(db *gorm.DB, q *rbac.RegionQuery) ([]*RegionEntity, error)
ListAll(db *gorm.DB) ([]*RegionEntity, error)
}
RegionDAO 是数据库访问对象
type RegionEntity ¶
type RegionEntity struct {
ID rbac.RegionID
BaseEntity
DisplayName string
SimpleName string
FullName string
FlagURL string
Code2 rbac.RegionCode2 `gorm:"unique"`
Code3 rbac.RegionCode3 `gorm:"unique"`
PhoneCode rbac.RegionPhoneCode `gorm:"unique"`
}
RegionEntity 表示区域的实体
type RoleConvertor ¶
type RoleConvertor interface {
ConvertE2D(c context.Context, entity *RoleEntity) (*rbac.RoleDTO, error)
ConvertD2E(c context.Context, dto *rbac.RoleDTO) (*RoleEntity, error)
ConvertListE2D(c context.Context, entity []*RoleEntity) ([]*rbac.RoleDTO, error)
}
RoleConvertor 负责 dto <==> entity 的转换
type RoleDAO ¶
type RoleDAO interface {
Insert(db *gorm.DB, o *RoleEntity) (*RoleEntity, error)
Update(db *gorm.DB, id rbac.RoleID, updater func(*RoleEntity)) (*RoleEntity, error)
Delete(db *gorm.DB, id rbac.RoleID) error
Find(db *gorm.DB, id rbac.RoleID) (*RoleEntity, error)
List(db *gorm.DB, q *rbac.RoleQuery) ([]*RoleEntity, error)
ListAll(db *gorm.DB) ([]*RoleEntity, error)
}
RoleDAO 是数据库访问对象
type RoleEntity ¶
type RoleEntity struct {
ID rbac.RoleID `gorm:"primaryKey"`
BaseEntity
Name rbac.RoleName `gorm:"unique"`
Description string
}
RoleEntity 表示 Role 的数据库实体
type UserConvertor ¶
type UserConvertor interface {
ConvertE2D(c context.Context, entity *UserEntity) (*rbac.UserDTO, error)
ConvertD2E(c context.Context, dto *rbac.UserDTO) (*UserEntity, error)
ConvertListE2D(c context.Context, entity []*UserEntity) ([]*rbac.UserDTO, error)
}
UserConvertor 负责 dto <==> entity 的转换
type UserDAO ¶
type UserDAO interface {
Insert(db *gorm.DB, o *UserEntity) (*UserEntity, error)
Update(db *gorm.DB, id rbac.UserID, updater func(o *UserEntity)) (*UserEntity, error)
Delete(db *gorm.DB, id rbac.UserID) error
FindByAny(db *gorm.DB, text string) (*UserEntity, error)
FindByName(db *gorm.DB, name rbac.UserName) (*UserEntity, error)
FindByPhone(db *gorm.DB, phone rbac.FullPhoneNumber) (*UserEntity, error)
FindByEmail(db *gorm.DB, email rbac.EmailAddress) (*UserEntity, error)
Find(db *gorm.DB, id rbac.UserID) (*UserEntity, error)
List(db *gorm.DB, q *rbac.UserQuery) ([]*UserEntity, error)
}
UserDAO 是数据库访问对象
type UserEntity ¶
type UserEntity struct {
ID rbac.UserID `gorm:"primaryKey"`
BaseEntity
Name rbac.UserName `gorm:"unique"` // 用户名
Nickname string // 昵称
Avatar string // 头像 (HTTP-URL)
Language string // i18n 语言
Phone rbac.PhoneNumberID // 主要的手机号
Email rbac.EmailAddressID // 主要的 e-mail 地址
Roles rbac.RoleNameList // 用户的角色
Enabled bool // 启用该项
Password lang.Hex // 用户当前的密码
Salt lang.Hex // 跟密码相关的盐
}
UserEntity 表示 User 的数据库实体