SystemPostController.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | saiadmin [ saiadmin快速开发框架 ]
  4. // +----------------------------------------------------------------------
  5. // | Author: sai <1430792918@qq.com>
  6. // +----------------------------------------------------------------------
  7. namespace plugin\saiadmin\app\controller\system;
  8. use plugin\saiadmin\basic\BaseController;
  9. use plugin\saiadmin\app\logic\system\SystemPostLogic;
  10. use plugin\saiadmin\app\validate\system\SystemPostValidate;
  11. use plugin\saiadmin\service\Permission;
  12. use support\Request;
  13. use support\Response;
  14. /**
  15. * 岗位信息控制器
  16. */
  17. class SystemPostController extends BaseController
  18. {
  19. /**
  20. * 构造
  21. */
  22. public function __construct()
  23. {
  24. $this->logic = new SystemPostLogic();
  25. $this->validate = new SystemPostValidate;
  26. parent::__construct();
  27. }
  28. /**
  29. * 数据列表
  30. * @param Request $request
  31. * @return Response
  32. */
  33. #[Permission('岗位数据列表', 'core:post:index')]
  34. public function index(Request $request): Response
  35. {
  36. $where = $request->more([
  37. ['name', ''],
  38. ['code', ''],
  39. ['status', ''],
  40. ]);
  41. $query = $this->logic->search($where);
  42. $data = $this->logic->getList($query);
  43. return $this->success($data);
  44. }
  45. /**
  46. * 读取数据
  47. * @param Request $request
  48. * @return Response
  49. */
  50. #[Permission('岗位数据读取', 'core:post:read')]
  51. public function read(Request $request): Response
  52. {
  53. $id = $request->input('id', '');
  54. $model = $this->logic->read($id);
  55. if ($model) {
  56. $data = is_array($model) ? $model : $model->toArray();
  57. return $this->success($data);
  58. } else {
  59. return $this->fail('未查找到信息');
  60. }
  61. }
  62. /**
  63. * 保存数据
  64. * @param Request $request
  65. * @return Response
  66. */
  67. #[Permission('岗位数据添加', 'core:post:save')]
  68. public function save(Request $request): Response
  69. {
  70. $data = $request->post();
  71. $this->validate('save', $data);
  72. $result = $this->logic->add($data);
  73. if ($result) {
  74. return $this->success('添加成功');
  75. } else {
  76. return $this->fail('添加失败');
  77. }
  78. }
  79. /**
  80. * 更新数据
  81. * @param Request $request
  82. * @return Response
  83. */
  84. #[Permission('岗位数据修改', 'core:post:update')]
  85. public function update(Request $request): Response
  86. {
  87. $data = $request->post();
  88. $this->validate('update', $data);
  89. $result = $this->logic->edit($data['id'], $data);
  90. if ($result) {
  91. return $this->success('修改成功');
  92. } else {
  93. return $this->fail('修改失败');
  94. }
  95. }
  96. /**
  97. * 删除数据
  98. * @param Request $request
  99. * @return Response
  100. */
  101. #[Permission('岗位数据删除', 'core:post:destroy')]
  102. public function destroy(Request $request): Response
  103. {
  104. $ids = $request->post('ids', '');
  105. if (empty($ids)) {
  106. return $this->fail('请选择要删除的数据');
  107. }
  108. $result = $this->logic->destroy($ids);
  109. if ($result) {
  110. return $this->success('删除成功');
  111. } else {
  112. return $this->fail('删除失败');
  113. }
  114. }
  115. /**
  116. * 导入数据
  117. * @param Request $request
  118. * @return Response
  119. */
  120. #[Permission('岗位数据导入', 'core:post:import')]
  121. public function import(Request $request): Response
  122. {
  123. $file = current($request->file());
  124. if (!$file || !$file->isValid()) {
  125. return $this->fail('未找到上传文件');
  126. }
  127. $this->logic->import($file);
  128. return $this->success('导入成功');
  129. }
  130. /**
  131. * 导出数据
  132. * @param Request $request
  133. * @return Response
  134. */
  135. #[Permission('岗位数据导出', 'core:post:export')]
  136. public function export(Request $request): Response
  137. {
  138. $where = $request->more([
  139. ['name', ''],
  140. ['code', ''],
  141. ['status', ''],
  142. ]);
  143. return $this->logic->export($where);
  144. }
  145. /**
  146. * 下载导入模板
  147. * @return Response
  148. */
  149. public function downloadTemplate(): Response
  150. {
  151. $file_name = "template.xlsx";
  152. return downloadFile($file_name);
  153. }
  154. /**
  155. * 可操作岗位
  156. * @param Request $request
  157. * @return Response
  158. */
  159. public function accessPost(Request $request): Response
  160. {
  161. $where = ['status' => 1];
  162. $data = $this->logic->accessPost($where);
  163. return $this->success($data);
  164. }
  165. }