Json.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace crmeb\utils;
  12. use think\Response;
  13. /**
  14. * Json输出类
  15. * Class Json
  16. * @package crmeb\utils
  17. */
  18. class Json
  19. {
  20. private $code = 200;
  21. public function code(int $code): self
  22. {
  23. $this->code = $code;
  24. return $this;
  25. }
  26. public function make(int $status, string $msg, ?array $data = null, ?array $replace = []): Response
  27. {
  28. $res = compact('status', 'msg');
  29. if (!is_null($data))
  30. $res['data'] = $data;
  31. if (is_numeric($res['msg'])) {
  32. $res['code'] = $res['msg'];
  33. $res['msg'] = getLang($res['msg'], $replace);
  34. }
  35. return Response::create($res, 'json', $this->code);
  36. }
  37. public function success($msg = 'success', ?array $data = null, ?array $replace = []): Response
  38. {
  39. if (is_array($msg)) {
  40. $data = $msg;
  41. $msg = 'success';
  42. }
  43. return $this->make(200, $msg, $data, $replace);
  44. }
  45. public function fail($msg = 'fail', ?array $data = null, ?array $replace = []): Response
  46. {
  47. if (is_array($msg)) {
  48. $data = $msg;
  49. $msg = 'fail';
  50. }
  51. return $this->make(400, $msg, $data, $replace);
  52. }
  53. public function status($status, $msg, $result = [])
  54. {
  55. $status = strtoupper($status);
  56. if (is_array($msg)) {
  57. $result = $msg;
  58. $msg = 'success';
  59. }
  60. return $this->success($msg, compact('status', 'result'));
  61. }
  62. }