Files
mayfly-go/server/internal/sys/application/role_app.go

101 lines
2.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package application
import (
"mayfly-go/internal/sys/domain/entity"
"mayfly-go/internal/sys/domain/repository"
"mayfly-go/internal/sys/infrastructure/persistence"
"mayfly-go/pkg/model"
"strings"
)
type Role interface {
GetPageList(condition *entity.Role, pageParam *model.PageParam, toEntity interface{}, orderBy ...string) *model.PageResult
SaveRole(role *entity.Role)
DeleteRole(id uint64)
GetRoleResourceIds(roleId uint64) []uint64
GetRoleResources(roleId uint64, toEntity interface{})
// 保存角色资源关联记录
SaveRoleResource(rr *entity.RoleResource)
// 删除角色资源关联记录
DeleteRoleResource(roleId uint64, resourceId uint64)
// 获取账号角色id列表
GetAccountRoleIds(accountId uint64) []uint64
// 保存账号角色关联信息
SaveAccountRole(rr *entity.AccountRole)
DeleteAccountRole(accountId, roleId uint64)
GetAccountRoles(accountId uint64, toEntity interface{})
}
type roleAppImpl struct {
roleRepo repository.Role
}
// 实现类单例
var RoleApp Role = &roleAppImpl{
roleRepo: persistence.RoleDao,
}
func (m *roleAppImpl) GetPageList(condition *entity.Role, pageParam *model.PageParam, toEntity interface{}, orderBy ...string) *model.PageResult {
return m.roleRepo.GetPageList(condition, pageParam, toEntity, orderBy...)
}
func (m *roleAppImpl) SaveRole(role *entity.Role) {
role.Code = strings.ToUpper(role.Code)
if role.Id != 0 {
// code不可更改防止误传
role.Code = ""
model.UpdateById(role)
} else {
role.Status = 1
model.Insert(role)
}
}
func (m *roleAppImpl) DeleteRole(id uint64) {
m.roleRepo.Delete(id)
// 删除角色与资源的关联关系
model.DeleteByCondition(&entity.RoleResource{RoleId: id})
}
func (m *roleAppImpl) GetRoleResourceIds(roleId uint64) []uint64 {
return m.roleRepo.GetRoleResourceIds(roleId)
}
func (m *roleAppImpl) GetRoleResources(roleId uint64, toEntity interface{}) {
m.roleRepo.GetRoleResources(roleId, toEntity)
}
func (m *roleAppImpl) SaveRoleResource(rr *entity.RoleResource) {
m.roleRepo.SaveRoleResource(rr)
}
func (m *roleAppImpl) DeleteRoleResource(roleId uint64, resourceId uint64) {
m.roleRepo.DeleteRoleResource(roleId, resourceId)
}
func (m *roleAppImpl) GetAccountRoleIds(accountId uint64) []uint64 {
return m.roleRepo.GetAccountRoleIds(accountId)
}
func (m *roleAppImpl) SaveAccountRole(rr *entity.AccountRole) {
m.roleRepo.SaveAccountRole(rr)
}
func (m *roleAppImpl) DeleteAccountRole(accountId, roleId uint64) {
m.roleRepo.DeleteAccountRole(accountId, roleId)
}
func (m *roleAppImpl) GetAccountRoles(accountId uint64, toEntity interface{}) {
m.roleRepo.GetAccountRoles(accountId, toEntity)
}