| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace utils;
- use think\facade\Config;
- use think\facade\Lang;
- use think\Response;
- /**
- * Json输出类
- * Class Json
- * @package home\utils
- */
- class Json
- {
- private $code = 200;
- public function code (int $code): self
- {
- $this->code = $code;
- return $this;
- }
- public function make (int $code, string $msg, ?array $data = null): Response
- {
- $request = app()->request;
- $res = compact('code', 'msg');
- $res['data'] = $data;
- if ($res['msg'] && !is_numeric($res['msg'])) {
- if (!$range = $request->get('lang')) {
- $range = $request->cookie(Config::get('lang.cookie_var'));
- }
- $res['msg'] = Lang::get($res['msg'], [], $range !== 'deleted' && $range ? $range : 'zh-cn');
- }
- return Response::create($res, 'json', $this->code);
- }
- public function success ($msg = 'ok', ?array $data = null): Response
- {
- if (is_array($msg)) {
- $data = $msg;
- $msg = 'ok';
- }
- return $this->make(200, $msg, $data);
- }
- public function successful (...$args): Response
- {
- return $this->success(...$args);
- }
- public function fail ($msg = 'fail', ?array $data = null): Response
- {
- if (is_array($msg)) {
- $data = $msg;
- $msg = 'ok';
- }
- return $this->make(400, $msg, $data);
- }
- public function status ($code, $msg, $result = [])
- {
- $code = strtoupper($code);
- if (is_array($msg)) {
- $result = $msg;
- $msg = 'ok';
- }
- return $this->success($msg, compact('code', 'result'));
- }
- /**
- * 返回json
- * @param int $code
- * @param string $msg
- * @param array|null $data
- * @return Response
- */
- public function json_success ($msg = 'ok', ?array $data = null, $code = 200): Response
- {
- if (is_array($msg)) {
- $data = !isset($msg['data']) && !isset($msg['msg']) ? $msg : (isset($msg['data']) ? $msg['data'] : null);
- $code = isset($msg['code']) ? $msg['code'] : 200;
- $msg = isset($msg['msg']) ? $msg['msg'] : 'ok';
- }
- return $this->make($code, $msg, $data);
- }
- /**
- * 返回json
- * @param int $code
- * @param string $msg
- * @param array|null $data
- * @return Response
- */
- public function json_error ($msg = 'error', $code = 500, array $data = null): Response
- {
- if (is_array($msg)) {
- $data = !isset($msg['data']) && !isset($msg['msg']) ? $msg : (isset($msg['data']) ? $msg['data'] : null);
- $code = isset($msg['code']) ? $msg['code'] : 500;
- $msg = isset($msg['msg']) ? $msg['msg'] : 'ok';
- }
- return $this->make($code, $msg, $data);
- }
- }
|