Controller.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace App\Http\Controllers\Api\V1;
  3. use Illuminate\Foundation\Bus\DispatchesJobs;
  4. use Illuminate\Routing\Controller as BaseController;
  5. use Illuminate\Foundation\Validation\ValidatesRequests;
  6. use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  7. use App\Services\Base\ErrorCode;
  8. use Request, Response, Auth, Log;
  9. class Controller extends BaseController
  10. {
  11. use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
  12. // protected $_data = null;
  13. protected $_user = null;
  14. public function __construct()
  15. {
  16. $this->middleware('auth:api', [
  17. 'except' => [
  18. 'upload', 'getCode', 'reset', 'login', 'get', 'register', 'alipayNotify', 'wechatpayNotify', 'get', 'area', 'get_province', 'get_city', 'get_county', 'albumStyle', 'test', 'index', 'companyInfo', 'shop2', 'cardIndex', 'cardUserInfo', 'cardUserProgress', 'cardUserHonor', 'cardUserProject', 'CardUserTrend', 'projectDetail', 'trendDetail', 'albumSetting', 'albumXyxLogin', 'albumCat', 'albumchecklogin', 'albumGoods', 'albumGoodsDetail', 'albumSetPrice', 'albumXcxLogin', 'albumContentList', 'albumSearchGoods','albumContentDetail','albumFavoriteList','albumAddFavorite','albumFavoriteDel','getAttr','getOrder','getProgress','getReviewCount', 'furnitureNewsDetail','furnitureSetting','furnitureXcxLogin','furnitureGoodsList','serviceLogin','getFurnitureAds','getPhoneNumber','getQrcode','orderCount','searchList','printOrder','saveFormId','furnitureNewsList','getMoreComments','addToLike','albumSavePhone','albumGetStatistical','test',
  19. 'albumGetWatchRecord','albumSetWatch','albumGetCartOfWatch','albumSaveFormId','albumAddAgent','albumGetBanner','albumGetDataGoods','newgoods_list','newgoods_index','albumGetAgentAdress','albumSetCustomer','albumGetCustomer','albumGetDataCat','albumCustomerGoods','albumCustomerGoodsDetail','albumGetDataCatSingle','albumGetCountOfFavorite','albumGetUserInfo','albumStatistical','posterInfo','posterDownload','albumAgentPriceSet', 'getTop', 'agentCustomer'
  20. , 'agentStatistical', 'albumOverviewActive', 'albumOverviewLeft', 'albumOverviewFavorite', 'albumOverviewNew', 'agentAnalysis', 'albumOverviewFunnel', 'albumOverviewCall', 'BossInteractive'
  21. ]
  22. ]);
  23. // \DB::connection()->enableQueryLog();
  24. // $queries = \DB::getQueryLog();
  25. // dd($queries);
  26. // $this->_user = Auth::user();
  27. // if ($this->_user !== null) {
  28. // $this->_user->last_ip = Request::ip();
  29. // }
  30. // $data = $this->rawPostData();
  31. // if (!$this->checkSignature($data, env('APP_SECRET'))) {
  32. // $this->rawError(ErrorCode::CLIENT_APP_CHECKSUM_ERROR);
  33. // }
  34. // unset($data['nonce_str'], $data['timestamp'], $data['sig']);
  35. // $this->_data = $data;
  36. }
  37. // public function saveLastIp() {
  38. // if ($this->_user !== null) {
  39. // $this->_user->save();
  40. // }
  41. // }
  42. public function rawPostData()
  43. {
  44. $request = Request::instance();
  45. $data = $request->getContent();
  46. return json_decode($data, true);
  47. }
  48. public function rawApi($data, $code = 0, $message = '')
  49. {
  50. $ret = $this->genApiData($data, $code, $message);
  51. return json_encode($ret);
  52. }
  53. public function api($data, $code = 0, $message = '')
  54. {
  55. $ret = $this->genApiData($data, $code, $message);
  56. $status = $code === 0 ? 200 : 400;
  57. return Response::json($ret, $status);
  58. }
  59. public function validatorError($arr, $code = 0, $message = '')
  60. {
  61. Log::info($arr);
  62. foreach ($arr as $val) {
  63. if ($val && $message == '') {
  64. $message = $val;
  65. }
  66. }
  67. $ret = $this->genApiData(null, $code, $message);
  68. $status = $code === 0 ? 200 : 400;
  69. return Response::json($ret, $status);
  70. }
  71. public function error($code, $message = '', $data = null)
  72. {
  73. return $this->api($data, $code, $message);
  74. }
  75. public function rawError($code, $message = '')
  76. {
  77. echo $this->rawApi(null, $code, $message);
  78. exit;
  79. }
  80. private function genApiData($data, $code = 0, $message = '')
  81. {
  82. if ($code !== 0 && ErrorCode::CLIENT_WRONG_PARAMS && empty($message)) {
  83. $message = ErrorCode::message($code);
  84. }
  85. $ret = [
  86. 'status' => $code == 0,
  87. 'status_code' => $code,
  88. 'message' => $message,
  89. 'data' => $data
  90. ];
  91. return $ret;
  92. }
  93. }