CrontabController.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | saiadmin [ saiadmin快速开发框架 ]
  4. // +----------------------------------------------------------------------
  5. // | Author: sai <1430792918@qq.com>
  6. // +----------------------------------------------------------------------
  7. namespace plugin\saiadmin\app\controller\tool;
  8. use plugin\saiadmin\app\logic\tool\CrontabLogic;
  9. use plugin\saiadmin\app\logic\tool\CrontabLogLogic;
  10. use plugin\saiadmin\app\validate\tool\CrontabValidate;
  11. use plugin\saiadmin\basic\BaseController;
  12. use plugin\saiadmin\service\Permission;
  13. use Webman\Channel\Client;
  14. use support\Request;
  15. use support\Response;
  16. /**
  17. * 定时任务控制器
  18. */
  19. class CrontabController extends BaseController
  20. {
  21. /**
  22. * 构造
  23. */
  24. public function __construct()
  25. {
  26. $this->logic = new CrontabLogic();
  27. $this->validate = new CrontabValidate;
  28. parent::__construct();
  29. }
  30. /**
  31. * 数据列表
  32. * @param Request $request
  33. * @return Response
  34. */
  35. #[Permission('定时任务列表', 'tool:crontab:index')]
  36. public function index(Request $request) : Response
  37. {
  38. $where = $request->more([
  39. ['name', ''],
  40. ['type', ''],
  41. ['status', ''],
  42. ['create_time', ''],
  43. ]);
  44. $query = $this->logic->search($where);
  45. $data = $this->logic->getList($query);
  46. return $this->success($data);
  47. }
  48. /**
  49. * 保存数据
  50. * @param Request $request
  51. * @return Response
  52. */
  53. #[Permission('定时任务添加', 'tool:crontab:edit')]
  54. public function save(Request $request): Response
  55. {
  56. $data = $request->post();
  57. $this->validate('save', $data);
  58. $result = $this->logic->add($data);
  59. if ($result) {
  60. return $this->success('添加成功');
  61. } else {
  62. return $this->fail('添加失败');
  63. }
  64. }
  65. /**
  66. * 更新数据
  67. * @param Request $request
  68. * @return Response
  69. */
  70. #[Permission('定时任务修改', 'tool:crontab:edit')]
  71. public function update(Request $request): Response
  72. {
  73. $data = $request->post();
  74. $this->validate('update', $data);
  75. $result = $this->logic->edit($data['id'], $data);
  76. if ($result) {
  77. return $this->success('修改成功');
  78. } else {
  79. return $this->fail('修改失败');
  80. }
  81. }
  82. /**
  83. * 删除数据
  84. * @param Request $request
  85. * @return Response
  86. */
  87. #[Permission('定时任务删除', 'tool:crontab:edit')]
  88. public function destroy(Request $request) : Response
  89. {
  90. $ids = $request->post('ids', '');
  91. if (empty($ids)) {
  92. return $this->fail('请选择要删除的数据');
  93. }
  94. $result = $this->logic->destroy($ids);
  95. if ($result) {
  96. return $this->success('删除成功');
  97. } else {
  98. return $this->fail('删除失败');
  99. }
  100. }
  101. /**
  102. * 修改状态
  103. * @param Request $request
  104. * @return Response
  105. */
  106. #[Permission('定时任务状态修改', 'tool:crontab:edit')]
  107. public function changeStatus(Request $request) : Response
  108. {
  109. $id = $request->input('id', '');
  110. $status = $request->input('status', 1);
  111. if (empty($id)) {
  112. return $this->fail('参数错误,请检查');
  113. }
  114. $result = $this->logic->changeStatus($id, $status);
  115. if ($result) {
  116. return $this->success('操作成功');
  117. } else {
  118. return $this->fail('操作失败');
  119. }
  120. }
  121. /**
  122. * 执行定时任务
  123. * @param Request $request
  124. * @return Response
  125. */
  126. #[Permission('定时任务执行', 'tool:crontab:run')]
  127. public function run(Request $request) : Response
  128. {
  129. $id = $request->input('id', '');
  130. $result = $this->logic->run($id);
  131. if ($result) {
  132. return $this->success('执行成功');
  133. } else {
  134. return $this->fail('执行失败');
  135. }
  136. }
  137. /**
  138. * 定时任务日志
  139. * @param Request $request
  140. * @return Response
  141. */
  142. #[Permission('定时任务日志', 'tool:crontab:index')]
  143. public function logPageList(Request $request) : Response
  144. {
  145. $where = $request->more([
  146. ['crontab_id', ''],
  147. ['create_time', []]
  148. ]);
  149. $logic = new CrontabLogLogic();
  150. $query = $logic->search($where);
  151. $data = $logic->getList($query);
  152. return $this->success($data);
  153. }
  154. /**
  155. * 定时任务日志删除
  156. * @param Request $request
  157. * @return Response
  158. */
  159. #[Permission('定时任务日志删除', 'tool:crontab:edit')]
  160. public function deleteCrontabLog(Request $request) : Response
  161. {
  162. $ids = $request->input('ids', '');
  163. if (!empty($ids)) {
  164. $logic = new CrontabLogLogic();
  165. $logic->destroy($ids);
  166. return $this->success('操作成功');
  167. } else {
  168. return $this->fail('参数错误,请检查');
  169. }
  170. }
  171. }