Controller.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace App\Http\Controllers\V1;
  3. use Dingo\Api\Routing\Helpers;
  4. use Illuminate\Foundation\Bus\DispatchesJobs;
  5. use Illuminate\Routing\Controller as BaseController;
  6. use Illuminate\Foundation\Validation\ValidatesRequests;
  7. use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  8. use App\Services\Base\ErrorCode;
  9. use Request, Auth, Log;
  10. header("Access-Control-Allow-Origin:*"); // 允许所以请求跨域
  11. class Controller extends BaseController
  12. {
  13. use AuthorizesRequests, DispatchesJobs, ValidatesRequests, Helpers;
  14. //验证器错误信息返回
  15. public function validatorError($arr, $code = 0, $msg = '')
  16. {
  17. //写入日志
  18. Log::info($arr);
  19. //获取返回信息
  20. foreach ($arr as $val){
  21. if($val&&$msg==''){
  22. $msg = $val;
  23. }
  24. }
  25. //组装状态码和返回信息
  26. $res = [
  27. 'code' => $code,
  28. 'msg' => $msg ?? '',
  29. 'data' => null
  30. ];
  31. //json返回数据和状态码
  32. return response()->json($res);
  33. }
  34. //通用输出方法
  35. public function output($data=[], $code = 0, $msg = '')
  36. {
  37. $ret = $this->makeApiData($data, $code, $msg);
  38. return response()->json($ret);
  39. }
  40. //正确返回
  41. public function success($data=[], $code = 0, $msg = '')
  42. {
  43. //是否有成功时返回的信息
  44. if (!$msg) $msg = trans('api.SUCCESS');
  45. //组装状态码返回信息等数据
  46. $ret = $this->makeApiData($data, $code, $msg);
  47. //返回json数据
  48. return response()->json($ret);
  49. }
  50. //错误返回
  51. public function error($msg = '', $code = 1, $data = null)
  52. {
  53. $ret = $this->makeApiData($data, $code, $msg);
  54. return response()->json($ret);
  55. }
  56. //生成返回数据
  57. private function makeApiData($data, $code = 0, $message = '')
  58. {
  59. //判断状态码是否正常和返回信息是否为空
  60. if ($code !== 0 && empty($message)) {
  61. //输出错误码对应的错误信息
  62. $message = ErrorCode::message($code);
  63. } else if ($code == 0 && empty($message)) {
  64. //输出成功信息
  65. $message = 'success';
  66. }
  67. //组装数据
  68. $ret = [
  69. 'code' => $code,
  70. 'msg' => $message,
  71. 'data' => $data
  72. ];
  73. //返回数据
  74. return $ret;
  75. }
  76. // 分页
  77. public function page($list){
  78. return [
  79. 'items' =>$list->items(),
  80. 'total'=>$list->total(), // 总数
  81. 'pageSize'=>$list->perPage(), // 每页数据
  82. 'totalPage'=>$list->lastPage(),// 总页数
  83. 'page'=>$list->currentPage(),//当前页
  84. ];
  85. }
  86. // 特殊处理
  87. public function pages($list){
  88. return [
  89. 'items' => $list->items()['data'],
  90. 'total' => $list->total(), // 总数
  91. 'pageSize' => $list->perPage(), // 每页数据
  92. 'totalPage' => $list->lastPage(),// 总页数
  93. 'page' => $list->currentPage(),//当前页
  94. ];
  95. }
  96. }