mirror of https://gitee.com/answerdev/answer.git
35 lines
926 B
Go
35 lines
926 B
Go
package role
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/answerdev/answer/internal/base/data"
|
|
"github.com/answerdev/answer/internal/base/reason"
|
|
"github.com/answerdev/answer/internal/service/role"
|
|
"github.com/segmentfault/pacman/errors"
|
|
"xorm.io/builder"
|
|
)
|
|
|
|
// rolePowerRelRepo rolePowerRel repository
|
|
type rolePowerRelRepo struct {
|
|
data *data.Data
|
|
}
|
|
|
|
// NewRolePowerRelRepo new repository
|
|
func NewRolePowerRelRepo(data *data.Data) role.RolePowerRelRepo {
|
|
return &rolePowerRelRepo{
|
|
data: data,
|
|
}
|
|
}
|
|
|
|
// GetRolePowerTypeList get role power type list
|
|
func (rr *rolePowerRelRepo) GetRolePowerTypeList(ctx context.Context, roleID int) (powers []string, err error) {
|
|
powers = make([]string, 0)
|
|
err = rr.data.DB.Context(ctx).Table("role_power_rel").
|
|
Cols("power_type").Where(builder.Eq{"role_id": roleID}).Find(&powers)
|
|
if err != nil {
|
|
err = errors.InternalServer(reason.DatabaseError).WithError(err).WithStack()
|
|
}
|
|
return
|
|
}
|