Files
ArmedPolice/app/model/sys_role.go
2021-11-12 11:54:39 +08:00

47 lines
1.1 KiB
Go

package model
import (
"ArmedPolice/app/common/model"
"ArmedPolice/serve/orm"
"fmt"
)
type SysRole struct {
*model.SysRole
}
// SysRoleBasic 基本信息
type SysRoleBasic struct {
ID uint64 `json:"id"`
ParentID uint64 `json:"parent_id"`
Name string `json:"name"`
}
// SysRoleUserInfo 用户角色信息
type SysRoleUserInfo struct {
*SysRoleBasic
UserRoleID uint64 `json:"user_role_id"`
}
// UserRole 用户角色信息
func (m *SysRole) UserRole(uid uint64) ([]*SysRoleUserInfo, error) {
mSysUserRole := NewSysUserRole()
db := orm.GetDB().Table(m.TableName()+" AS r").
Select("r.id", "r.parent_id", "r.name", "u_r.id AS user_role_id").
Joins(fmt.Sprintf("LEFT JOIN %s AS u_r ON r.id = u_r.role_id AND u_r.uid = %d AND u_r.is_deleted = %d",
mSysUserRole.TableName(), uid, model.DeleteStatusForNot)).
Where("r.is_deleted = ?", model.DeleteStatusForNot)
out := make([]*SysRoleUserInfo, 0)
if err := db.Order("r.sort " + model.OrderModeToDesc).Order("r.id " + model.OrderModeToDesc).Scan(&out).Error; err != nil {
return nil, err
}
return out, nil
}
func NewSysRole() *SysRole {
return &SysRole{SysRole: model.NewSysRole()}
}