Category.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. namespace app\controller\admin;
  3. use app\extra\basic\Base;
  4. use app\extra\service\blue\CategoryService;
  5. use app\extra\tools\DataExtend;
  6. use app\middleware\AuthMiddleware;
  7. use app\model\blue\BlueCategory;
  8. use DI\Attribute\Inject;
  9. use LinFly\Annotation\Route\Controller;
  10. use LinFly\Annotation\Route\Middleware;
  11. use LinFly\Annotation\Route\Route;
  12. use support\Request;
  13. use support\Response;
  14. #[Controller(prefix: "/api/category"),Middleware(AuthMiddleware::class)]
  15. class Category extends Base
  16. {
  17. #[Inject]
  18. protected BlueCategory $model;
  19. #[Inject]
  20. protected CategoryService $service;
  21. #[Route(path: "list",methods: "get")]
  22. public function getCategoryData(Request $request): Response
  23. {
  24. try {
  25. $data = $this->service->getList($request->all());
  26. $tree = DataExtend::arr2tree($data,"id","parent_id");
  27. return successTrans(100010,$tree,200);
  28. } catch (\Throwable $throwable) {
  29. return error($throwable->getMessage());
  30. }
  31. }
  32. /**
  33. * 编辑信息
  34. * @param Request $request
  35. * @return Response
  36. */
  37. #[Route(path: "save",methods: "post")]
  38. public function setListData(Request $request): Response
  39. {
  40. try {
  41. $param = $request->post();
  42. if (isset($param['id'])) {
  43. $factory = $this->model->where("id",$param['id'])->findOrEmpty();
  44. if ($factory->isEmpty()) return errorTrans("error.data");
  45. }
  46. $param['attribute'] = empty($param['attribute']) ? [] : json_encode($param['attribute']);
  47. $state = $this->model->setAutoData($param);
  48. if (!$state) return errorTrans("error.data");
  49. return successTrans("success.data");
  50. } catch (\Throwable $throwable) {
  51. return error($throwable->getMessage());
  52. }
  53. }
  54. /**
  55. * 批量操作
  56. * @param Request $request
  57. * @return Response
  58. */
  59. #[Route(path: "batch",methods: "post")]
  60. public function setGoodsBatch(Request $request): Response
  61. {
  62. try {
  63. $param = $this->_valid([
  64. "id.require" => "参数错误",
  65. "value.require" => "参数错误",
  66. "field.require" => "参数错误",
  67. "type.require" => "参数错误"
  68. ],"post");
  69. if (!is_array($param)) return error($param);
  70. if ($param['type'] == "batch") {
  71. $state = $this->model->where("id","in",$param['id'])->save([$param['field'] => $param['value']]);
  72. } else {
  73. $state = $this->model->where("id",$param['id'])->save([$param['field'] => $param['value']]);
  74. }
  75. if (!$state) return errorTrans("error.data");
  76. return successTrans("success.data");
  77. } catch (\Throwable $throwable) {
  78. return error($throwable->getMessage());
  79. }
  80. }
  81. /**
  82. * 删除
  83. * @param Request $request
  84. * @return Response
  85. */
  86. #[Route(path: "del",methods: "post")]
  87. public function delData(Request $request): Response
  88. {
  89. try {
  90. $param = $this->_valid([
  91. "id.require" => "参数错误",
  92. ],"post");
  93. if (!is_array($param)) return error($param);
  94. $data = $this->model->where("id",$param['id'])->findOrEmpty();
  95. if ($data->isEmpty()) return errorTrans("empty.data");
  96. $state = $data->delete();
  97. if (!$state) return errorTrans("error.data");
  98. return successTrans("success.data");
  99. } catch (\Throwable $throwable) {
  100. return error($throwable->getMessage());
  101. }
  102. }
  103. }