123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package system
-
- import (
- "errors"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/models/system"
- "spaceofcheng/services/service"
- "spaceofcheng/services/utils"
- )
-
- // RoleServ 系统处理
- type RoleServ struct {
- ctx *utils.Context
- dao *system.RoleDAO
- }
-
- // NewRoleServ 初始化
- func NewRoleServ(ctx *utils.Context) *RoleServ {
- return &RoleServ{
- ctx: ctx,
- dao: system.NewRoleDAO(ctx),
- }
- }
-
- // GetRoleList 获取Role列表
- func (s *RoleServ) GetRoleList(name string, page, pageSize int) (map[string]interface{}, error) {
- if pageSize == 0 {
- pageSize = service.PAGENUM
- }
- if page == 0 {
- page = 1
- }
- roles, err := s.dao.GetRoleList(name, page, pageSize)
- if err != nil {
- utils.LogError("获取角色列表失败: " + err.Error())
- return nil, errors.New("获取角色列表失败")
- }
- total, err := s.dao.GetRoleCount(name)
- if err != nil {
- utils.LogError("获取角色列表失败: " + err.Error())
- return nil, errors.New("获取角色列表失败")
- }
-
- return map[string]interface{}{
- "list": roles,
- "pagesize": pageSize,
- "pagenum": total,
- "page": page,
- }, nil
- }
-
- // GetRoleByID 根据ID获取角色
- func (s *RoleServ) GetRoleByID(roleid string) (*model.SysRole, error) {
- role, err := s.dao.GetRoleByID(roleid)
- if err != nil {
- utils.LogError("获取角色信息失败: " + err.Error())
- return nil, errors.New("获取角色信息失败")
- }
- // if role != nil {
- // menus, err := s.dao.GetRoleMenuByRoleID(roleid)
- // if err != nil {
- // beego.Error(err)
- // return nil, err
- // }
- // role.RoleMenu = menus
- // }
- return role, nil
- }
-
- // GetRoleMeneByID 根据ID获取角色菜单
- func (s *RoleServ) GetRoleMeneByID(roleid string) ([]model.SysMenu, error) {
- menus, err := s.dao.GetRoleMenuByRoleID(roleid)
- if err != nil {
- utils.LogError("获取角色菜单失败: " + err.Error())
- return nil, errors.New("获取角色菜单失败")
- }
- return menus, nil
- }
-
- // SaveRole 保存角色
- func (s *RoleServ) SaveRole(role model.SysRole) (*model.SysRole, error) {
- if role.RoleName == "" {
- return nil, utils.LogError("角色名称不允许为空!")
- }
- var newInfo *model.SysRole
- var err error
- if role.RoleId == "" {
- newInfo, err = s.dao.AddRole(role)
- } else {
- err = s.dao.UpdateRole(role)
- newInfo = &role
- }
- if err != nil {
- utils.LogError("保存角色信息失败: " + err.Error())
- return nil, errors.New("保存角色信息失败")
- }
-
- return newInfo, err
- }
-
- // SaveRoleMenu 保存角色菜单
- func (s *RoleServ) SaveRoleMenu(roleid, menuids string) error {
- var err error
- err = s.dao.DelRoleMenu(roleid)
- if err != nil {
- utils.LogError("保存角色菜单失败: " + err.Error())
- return errors.New("保存角色菜单失败")
- }
- err = s.dao.SaveRoleMenu(roleid, menuids)
- if err != nil {
- utils.LogError("保存角色菜单失败: " + err.Error())
- return errors.New("保存角色菜单失败")
- }
- err = s.dao.DelUserMenusByRole(roleid)
- if err != nil {
- utils.LogError("保存角色菜单失败: " + err.Error())
- return errors.New("保存角色菜单失败")
- }
- err = s.dao.SaveUserMenus(roleid)
- if err != nil {
- utils.LogError("保存角色菜单失败: " + err.Error())
- return errors.New("保存角色菜单失败")
- }
- return nil
- }
-
- // DelRole 删除角色
- func (s *RoleServ) DelRole(Roleid string) error {
- err := s.dao.DeleteRole(Roleid)
- if err != nil {
- utils.LogError("删除角色信息失败: " + err.Error())
- return errors.New("删除角色信息失败")
- }
- return err
- }
|