roleMenuService.go 960 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package service
  2. import (
  3. "iot_manager_service/app/system/dao"
  4. "iot_manager_service/util/common"
  5. )
  6. // 角色菜单管理服务
  7. var RoleMenuService = new(roleMenuService)
  8. type roleMenuService struct{}
  9. func (s *roleMenuService) UpdateRoleMenus(roleIds, menuIds []int64) error {
  10. roleMenu := &dao.RoleMenu{}
  11. err := roleMenu.DeleteRoleIds(roleIds)
  12. if err != nil {
  13. return err
  14. }
  15. var roleMenus []dao.RoleMenu
  16. for _, roleId := range roleIds {
  17. for _, menuId := range menuIds {
  18. roleMenus = append(roleMenus, dao.RoleMenu{
  19. MenuId: menuId,
  20. RoleId: roleId,
  21. })
  22. }
  23. }
  24. return roleMenu.BatchSave(roleMenus)
  25. }
  26. func (s *roleMenuService) GetMenuByRole(roleId int64) []dao.RoleMenu {
  27. roleMenu := &dao.RoleMenu{RoleId: roleId}
  28. if common.IsAdmin(roleId) {
  29. menus, err := roleMenu.GetAll()
  30. if err != nil {
  31. return nil
  32. }
  33. return menus
  34. } else {
  35. menus, err := roleMenu.GetMenusByRole()
  36. if err != nil {
  37. return nil
  38. }
  39. return menus
  40. }
  41. }