新版订单消耗系统

Controller.php 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller as BaseController;
  4. use Dingo\Api\Routing\Helpers;
  5. class Controller extends BaseController
  6. {
  7. use Helpers;
  8. /**
  9. * 统一接口返回json格式
  10. * @param $data
  11. * @param int $errorNo
  12. * @return array
  13. */
  14. public static function returnValue($data, $errorNo = 0, $err_msg = '')
  15. {
  16. $err = config('errors.ERR_CODES')[$errorNo];
  17. if($errorNo == 1102) $err_msg = self::errorMessage($data);
  18. return [
  19. "rst" => $data,
  20. "errno" => $errorNo . '',
  21. "err" => $err . (!empty($err_msg) ? ':'.$err_msg : ''),
  22. "timestamp" => intval(microtime(true)) . '',
  23. ];
  24. }
  25. /**
  26. * 统一分页响应格式
  27. * @param $data
  28. * @param $total
  29. * @param $pageSize
  30. * @param $page
  31. * @return array
  32. */
  33. public static function returnPageValue($data, $total, $pageSize, $page = 1, $extra = null)
  34. {
  35. $pages = ceil($total / $pageSize);
  36. $result = [
  37. 'data' => $data,
  38. 'pageInfo' => [
  39. 'total' => $total,
  40. 'pages' => $pages,
  41. 'size' => $pageSize,
  42. 'page' => $page
  43. ]
  44. ];
  45. if( $extra !== null && is_array($extra) ){
  46. $result = array_merge( $result, $extra );
  47. }
  48. return self::returnValue($result);
  49. }
  50. /*
  51. * 验证数据信息拼接
  52. */
  53. public static function errorMessage($errors)
  54. {
  55. $errorArr = json_decode(json_encode($errors),1);
  56. $message = null;
  57. if(isset($errorArr['error'])) {
  58. if(is_array($errorArr['error'])) {
  59. foreach($errorArr['error'] as $value) {
  60. $num = count($value);
  61. for($i=0;$i<$num;$i++) {
  62. $message .= $value[$i].' ';
  63. }
  64. }
  65. } else {
  66. $message = $errorArr['error'];
  67. }
  68. }
  69. return $message;
  70. }
  71. }