Prints.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace app\controller\wap;
  3. use app\extra\basic\Base;
  4. use app\extra\service\saas\PrintService;
  5. use app\middleware\WxMiddleware;
  6. use app\model\saas\SaasPrintClient;
  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: "/wap/prints"),Middleware(WxMiddleware::class)]
  14. class Prints extends Base
  15. {
  16. #[Inject]
  17. protected PrintService $service;
  18. #[Inject]
  19. protected SaasPrintClient $model;
  20. #[Route(path: "list",methods: "get")]
  21. public function getPrintList(Request $request): Response
  22. {
  23. try {
  24. $param = $request->get();
  25. $param['shop'] = $request->user['shop_id'];
  26. $list = $this->service->getList($param);
  27. return successTrans("success.data",pageFormat($list),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 savePrint(Request $request): Response
  39. {
  40. try {
  41. $param = $this->_valid([
  42. "id.require" => trans(20010),
  43. "is_price.require" => trans(20010),
  44. "paper_size.require" => trans(20010),
  45. "color.require" => trans(20010),
  46. "direction.require" => trans(20010),
  47. "duplex.require" => trans(20010),
  48. "package.require" => trans(20010),
  49. "type.require" => trans(20010)
  50. ],"post");
  51. if (!is_array($param)) return error($param);
  52. $printId = $param['id'];
  53. $is_price = $param['is_price'];
  54. unset($param['id'],$param['is_price']);
  55. $print = (new SaasPrintClient)->where("id",$printId)->findOrEmpty();
  56. if ($print->isEmpty()) return errorTrans("empty.data");
  57. $print->is_price = $is_price;
  58. $print->rule = json_encode($param);
  59. $state = $print->save();
  60. if (!$state) return errorTrans("error.data");
  61. return successTrans("success.data");
  62. } catch (\Throwable $throwable) {
  63. return error($throwable->getMessage());
  64. }
  65. }
  66. /**
  67. * 保存配置
  68. * @param Request $request
  69. * @return Response
  70. */
  71. #[Route(path: "single",methods: "post")]
  72. public function savePrintSingle(Request $request): Response
  73. {
  74. try {
  75. $param = $request->post();
  76. if (empty($param['id'])) return errorTrans("empty.require");
  77. $print = (new SaasPrintClient)->where("id",$param['id'])->findOrEmpty();
  78. if ($print->isEmpty()) return errorTrans("empty.data");
  79. if (isset($param['status'])) {
  80. $param['status'] = $print['status'] == 1 ? 2 : 1;
  81. }
  82. $state = $print->save($param);
  83. if (!$state) return errorTrans("error.data");
  84. return successTrans("success.data");
  85. } catch (\Throwable $throwable) {
  86. return error($throwable->getMessage());
  87. }
  88. }
  89. }