Files
2021-09-28 11:51:15 +08:00

46 lines
1.0 KiB
Go

package model
import (
"SciencesServer/app/common/model"
"SciencesServer/serve/orm"
"fmt"
)
type SysRole struct {
*model.SysRole
}
// SysRoleBasic 基本信息
type SysRoleBasic struct {
ID uint64 `json:"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.is, 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.id " + model.OrderModeToDesc).Scan(&out).Error; err != nil {
return nil, err
}
return out, nil
}
func NewSysRole() *SysRole {
return &SysRole{SysRole: model.NewSysRole()}
}