package model import ( "ArmedPolice/app/common/model" "ArmedPolice/serve/orm" "fmt" ) type SysUserRole struct { *model.SysUserRole } // SysUserRoleInfo 用户角色信息 type SysUserRoleInfo struct { ID uint64 `json:"id"` Name string `json:"name"` } // Roles 用户角色信息 func (m *SysUserRole) Roles(uid uint64) ([]*SysUserRoleInfo, error) { db := orm.GetDB().Table(m.TableName()+" AS u_r"). Select("r.id", "r.name"). Joins(fmt.Sprintf("LEFT JOIN %s AS r ON u_r.role_id = r.id", model.NewSysRole().TableName())). Where("u_r.uid = ? AND u_r.is_deleted = ?", uid, model.DeleteStatusForNot) out := make([]*SysUserRoleInfo, 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 NewSysUserRole() *SysUserRole { return &SysUserRole{SysUserRole: model.NewSysUserRole()} }