Dic.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. namespace app\controller\admin;
  3. use app\extra\basic\Base;
  4. use app\extra\service\system\DicService;
  5. use app\middleware\AuthMiddleware;
  6. use app\model\system\SystemData;
  7. use DI\Attribute\Inject;
  8. use LinFly\Annotation\Route\Controller;
  9. use LinFly\Annotation\Route\Middleware;
  10. use LinFly\Annotation\Route\Route;
  11. use support\Request;
  12. use support\Response;
  13. #[Controller(prefix: "/api/dic"),Middleware(AuthMiddleware::class)]
  14. class Dic extends Base
  15. {
  16. #[Inject]
  17. protected DicService $service;
  18. #[Inject]
  19. protected SystemData $model;
  20. /**
  21. * @param Request $request
  22. * @return Response
  23. */
  24. #[Route(path: "list",methods: "get")]
  25. public function getDicList(Request $request): Response
  26. {
  27. try {
  28. $param = $this->_valid([
  29. "dicId.default" => 0,
  30. ]);
  31. $data = $this->service->getMenuList($param);
  32. return success("ok",$data);
  33. } catch (\Throwable $throwable) {
  34. return error($throwable->getMessage());
  35. }
  36. }
  37. /**
  38. * 更新
  39. * @param Request $request
  40. * @return Response
  41. */
  42. #[Route(path: "save",methods: "post")]
  43. public function saveMenuData(Request $request): Response
  44. {
  45. try {
  46. $param = $request->post();
  47. $param['content'] = json_encode([]);
  48. $state = $this->model->setAutoData($param);
  49. if(!$state) return errorTrans("error.data");
  50. return successTrans("success.data");
  51. } catch (\Throwable $throwable) {
  52. return error($throwable->getMessage());
  53. }
  54. }
  55. /**
  56. * 更新
  57. * @param Request $request
  58. * @return Response
  59. */
  60. #[Route(path: "sub",methods: "post")]
  61. public function saveSubData(Request $request): Response
  62. {
  63. try {
  64. $param = $this->_valid([
  65. "id.require" => trans("empty.require"),
  66. "name.require" => trans("empty.require"),
  67. "code.require" => trans("empty.require"),
  68. ],'post');
  69. if (!is_array($param)) return error($param);
  70. $data = $this->model->where("id",$param['id'])->findOrEmpty();
  71. if ($data->isEmpty()) return errorTrans("empty.data");
  72. $content = !empty($data['content']) ? $data['content'] : [];
  73. $dataId = $param['id'];
  74. foreach ($content as $val) {
  75. if ($val['code'] == $param['code']) {
  76. return error("数据字段重复");
  77. }
  78. }
  79. unset($param['id']);
  80. $content[] = $param;
  81. $state = $this->model->setAutoData(['id' => $dataId,'content' => json_encode($content)]);
  82. if(!$state) return errorTrans("error.data");
  83. return successTrans("success.data");
  84. } catch (\Throwable $throwable) {
  85. return error($throwable->getMessage());
  86. }
  87. }
  88. #[Route(path: "sub_del",methods: "post")]
  89. public function subDataDel(Request $request): Response
  90. {
  91. try {
  92. $param = $this->_valid([
  93. "id.require" => trans("empty.require"),
  94. "key.require" => trans("empty.require"),
  95. ],'post');
  96. if (!is_array($param)) return error($param);
  97. $data = $this->model->where("id",$param['id'])->findOrEmpty();
  98. if ($data->isEmpty()) return errorTrans("empty.data");
  99. $content = !empty($data['content']) ? $data['content'] : [];
  100. if (empty($content)) return errorTrans("empty.data");
  101. unset($content[$param['key']]);
  102. $state = $this->model->setAutoData(['id' => $param['id'],'content' => json_encode($content)]);
  103. if(!$state) return errorTrans("error.data");
  104. return successTrans("success.data");
  105. } catch (\Throwable $throwable) {
  106. return error($throwable->getMessage());
  107. }
  108. }
  109. #[Route(path: "del",methods: "post")]
  110. public function DataDel(Request $request): Response
  111. {
  112. try {
  113. $param = $this->_valid([
  114. "id.require" => trans("empty.require"),
  115. ],'post');
  116. if (!is_array($param)) return error($param);
  117. $data = $this->model->where("id",$param['id'])->findOrEmpty();
  118. if ($data->isEmpty()) return errorTrans("empty.data");
  119. $state = $this->model->where("id",$param['id'])->delete();
  120. if(!$state) return errorTrans("error.data");
  121. return successTrans("success.data");
  122. } catch (\Throwable $throwable) {
  123. return error($throwable->getMessage());
  124. }
  125. }
  126. }