Role.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. namespace app\controller\adminapi\admin;
  3. use app\extra\basic\Base;
  4. use app\extra\service\system\SystemRoleService;
  5. use app\extra\tools\DataExtend;
  6. use app\middleware\AuthMiddleware;
  7. use app\model\system\SystemMenu;
  8. use crmeb\services\CacheService;
  9. use DI\Attribute\Inject;
  10. use LinFly\Annotation\Route\Controller;
  11. use LinFly\Annotation\Route\Middleware;
  12. use LinFly\Annotation\Route\Route;
  13. use support\Request;
  14. use support\Response;
  15. #[Controller(prefix: "/adminapi/role/"),Middleware(AuthMiddleware::class)]
  16. class Role extends Base
  17. {
  18. #[Inject]
  19. protected SystemRoleService $service;
  20. /**
  21. * 获取菜单
  22. */
  23. #[Route(path: "",methods: "get")]
  24. public function index(Request $request): Response
  25. {
  26. try {
  27. $param = $request->get();
  28. $role = $this->service->getList($param);
  29. return successTrans("success.data",$role);
  30. } catch (\Throwable $throwable) {
  31. echo $throwable->getFile()."\n";
  32. echo $throwable->getLine()."\n";
  33. return error($throwable->getMessage());
  34. }
  35. }
  36. /**
  37. * 显示创建资源表单页.
  38. */
  39. #[Route(path: "create",methods: "get")]
  40. public function create(Request $request): Response
  41. {
  42. try {
  43. $menus = $this->service->getmenus([]);
  44. return successTrans("success.data",$menus);
  45. } catch (\Throwable $throwable) {
  46. echo $throwable->getFile()."\n";
  47. echo $throwable->getLine()."\n";
  48. return error($throwable->getMessage());
  49. }
  50. }
  51. /**
  52. * 更新/保存
  53. * @param Request $request
  54. * @return Response
  55. */
  56. #[Route(path: "save[/{id}]",methods: "post")]
  57. public function save(Request $request,$id = 0): Response
  58. {
  59. try {
  60. $data = $this->_valid([
  61. "role_name.require" => '请输入身份名称',
  62. "status.default" => '1',
  63. "rules.default" => '1',
  64. ],"post");
  65. if (!is_array($data)) return error($data);
  66. if (!is_array($data['rules']) || !count($data['rules']))
  67. return errorTrans('请选择最少一个权限');
  68. $data['rules'] = implode(',', $data['rules']);
  69. if ($id) {
  70. if (!$this->service->update($id, $data))
  71. return errorTrans('修改失败!');
  72. } else {
  73. if (!$this->service->save($data))
  74. return errorTrans('添加身份失败!');
  75. }
  76. return successTrans("success.data");
  77. } catch (\Throwable $throwable) {
  78. return error($throwable->getMessage());
  79. }
  80. }
  81. /**
  82. * 编辑.
  83. */
  84. #[Route(path: "edit/{id}",methods: "get")]
  85. public function edit(Request $request,$id): Response
  86. {
  87. try {
  88. $role = $this->service->getOne(['id'=>$id]);
  89. if (!$role) {
  90. return $this->fail('修改的角色不存在');
  91. }
  92. $menus = $this->service->getmenus([]);
  93. return successTrans("success.data",['role' => $role->toArray(), 'menus' => $menus]);
  94. } catch (\Throwable $throwable) {
  95. echo $throwable->getFile()."\n";
  96. echo $throwable->getLine()."\n";
  97. return error($throwable->getMessage());
  98. }
  99. }
  100. /**
  101. * 删除.
  102. */
  103. #[Route(path: "del/{id}",methods: "delete")]
  104. public function del(Request $request,$id): Response
  105. {
  106. try {
  107. if (!$this->service->delete($id))
  108. return errorTrans('删除失败,请稍候再试!');
  109. else {
  110. return successTrans('删除成功!');
  111. }
  112. } catch (\Throwable $throwable) {
  113. echo $throwable->getFile()."\n";
  114. echo $throwable->getLine()."\n";
  115. return error($throwable->getMessage());
  116. }
  117. }
  118. #[Route(path: "set_status/{id}/{status}",methods: "get")]
  119. public function set_status($id,$status): Response
  120. {
  121. try {
  122. $state = $this->service->update($id,['status'=>$status]);
  123. if (!$state) return errorTrans("empty.error");
  124. return successTrans($status?'显示成功':'关闭成功');
  125. } catch (\Throwable $throwable) {
  126. return error($throwable->getMessage());
  127. }
  128. }
  129. }