Pages.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace app\controller\admin;
  3. use app\extra\basic\Base;
  4. use app\extra\tools\CodeExtend;
  5. use app\middleware\AuthMiddleware;
  6. use app\model\cpa\CpaPage;
  7. use app\service\cpa\PageService;
  8. use DI\Attribute\Inject;
  9. use LinFly\Annotation\Attributes\Route\Controller;
  10. use LinFly\Annotation\Attributes\Route\GetMapping;
  11. use LinFly\Annotation\Attributes\Route\Middleware;
  12. use LinFly\Annotation\Attributes\Route\PostMapping;
  13. use support\Request;
  14. use support\Response;
  15. #[Controller("/api/pages"),Middleware(AuthMiddleware::class)]
  16. class Pages extends Base
  17. {
  18. #[Inject]
  19. protected PageService $service;
  20. #[Inject]
  21. protected CpaPage $model;
  22. #[GetMapping('list')]
  23. public function getDataList(Request $request): Response
  24. {
  25. try {
  26. $param = $request->all();
  27. $data = $this->service->setModel()->getList($param,['product','account'],true,['link'],['link' => function($query,$next){
  28. return "https://www.baidu.com/s/{$next['link_code']}";
  29. }]);
  30. return successTrans("success.data",pageFormat($data),200);
  31. } catch (\Throwable $th) {
  32. return error($th->getMessage());
  33. }
  34. }
  35. #[PostMapping("save")]
  36. public function setDepositData(Request $request): Response
  37. {
  38. try {
  39. $param = $request->post();
  40. if (!isset($param['id'])) {
  41. $param['link_code'] = strtoupper(CodeExtend::random(10,3));
  42. }
  43. $state = $this->model->setAutoData($param);
  44. if (!$state) return errorTrans("error.data");
  45. return successTrans("success.data");
  46. } catch (\Throwable $throwable) {
  47. return error($throwable->getMessage());
  48. }
  49. }
  50. #[PostMapping("status")]
  51. public function setPageData(Request $request): Response
  52. {
  53. try {
  54. $param = $this->_valid([
  55. "id.require" => "参数错误",
  56. "status.require" => "参数错误"
  57. ],$request->method());
  58. if (!is_array($param)) return error($param);
  59. $product = $this->model->where("id",$param['id'])->findOrEmpty();
  60. if ($product->isEmpty()) return error("数据错误");
  61. $product->status = $param['status'] - 1;
  62. $state = $product->save();
  63. if (!$state) return errorTrans("error.data");
  64. return successTrans("success.data");
  65. } catch (\Throwable $throwable) {
  66. return error($throwable->getMessage());
  67. }
  68. }
  69. }