AuthController.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827
  1. <?php
  2. namespace App\Http\Controllers\Api\V1;
  3. use App\Models\Merchant;
  4. use App\Models\MemberMerchant;
  5. use App\Models\UserBanks;
  6. use App\Models\Setting;
  7. use Illuminate\Http\Request;
  8. //use App\Http\HelperTraits\AttachmentHelper;
  9. use App\Services\Base\ErrorCode;
  10. use App\User;
  11. use Illuminate\Support\Facades\Hash;
  12. use Validator, Auth, Cache;
  13. class AuthController extends Controller
  14. {
  15. private $expireTime = 1;
  16. private $keySmsCode = 'auth:sms:';
  17. private $keySmsCodeExist = 'auth:sms:exist';
  18. private $expireTimeExist = 24*60;
  19. public function test(){
  20. // return $this->error(ErrorCode::SAVE_USER_FAILED);
  21. return $this->api(['test' => 'test']);
  22. }
  23. // /**
  24. // * @api {post} /api/auth/login 登陆(login)
  25. // * @apiDescription 登陆(login)
  26. // * @apiGroup Auth
  27. // * @apiPermission none
  28. // * @apiVersion 0.1.0
  29. // * @apiParam {string} phone 手机号码
  30. // * @apiParam {int} type 类型-1.用户,2.商户
  31. // * @apiParam {string} password password
  32. // * @apiSuccessExample {json} Success-Response:
  33. // * HTTP/1.1 200 OK
  34. // * {
  35. // * "state": true,
  36. // * "code": 0,
  37. // * "message": "",
  38. // * "data": {
  39. // * "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjdjYWUyYzFmYTUwMTIyZDI0ZTRiYTZhZGZhNmQxYmZlOWNiMzIxMTBmYWJlZjNjYzIyNmViZjRmNGExNWM3NjllNmU2ZTNiYWE5OGNhOWUzIn0.eyJhdWQiOiIxIiwianRpIjoiN2NhZTJjMWZhNTAxMjJkMjRlNGJhNmFkZmE2ZDFiZmU5Y2IzMjExMGZhYmVmM2NjMjI2ZWJmNGY0YTE1Yzc2OWU2ZTZlM2JhYTk4Y2E5ZTMiLCJpYXQiOjE0NzU0MTE1NTgsIm5iZiI6MTQ3NTQxMTU1OCwiZXhwIjo0NjMxMDg1MTU4LCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.E9YGEzuRUOk02aV1EiWLJ_pD0hKoCyW0k_sGy63hM3u5X8K_HI1kVhaU6JNLqLZeszIAroTEDB8XMgZKAqTLlwtL8PLCJcuDoxfk1BRHbfjhDheTsahBysKGalvNEpzRCrGlao0mS0Cg9qDpEsndtypPFS8sfaflToOzbJjiSK2DvQiHSH8xZI3zHJTezgZMz-pB_hPTxp8ajdv0ve1gWtWjs3vERr0Y91X4hngO8X7LuXtAYtfxGZRIye12YE7TuLBMYzj8CCfiRt7Smhyf4palNW5mzKlZpa2l87n6NQ14Iy4oMzQ2PON1j_swrosuE2yZohGOn6fDdSCBRdJ6dLD_emjBdQCQOoB63R7BbhFZgvFX25TjzFJ7r9AdVMiGmebuRKEVSZV_JCGu1C71OIbQk-UK35s00gSr2fmJGBbN2cZTXBRTJpfuMZ_ihFYEZrvVq_Ih2X0xkd36JUuxaUld1BXRgPZvH-9jBuhe0YW2OOlgwpdm6ZB8BMcuS4ftLoi6FipgzFqfIuy-0ZqPMDnJaG7Gycrdpxza00mgOFxYxJtqwZNsUWFRZEVU881l6VC_cy294YXSPQxUwEoyKg-G5Pm8AEB9bqv5z4EU4B8-XTd3zKNqtNba_snHbc711i4EytCiZfYSjNB1hwenq45YYOAhPTwOpFI0kxyRazc",
  40. // * "user": {
  41. // * "id": 1,
  42. // * "name": "15888888888",
  43. // * "email": "abcdefg@gmail.com",
  44. // * "type": 2,
  45. // * "phone": "15888888888",
  46. // * "avatar": null,
  47. // * "last_ip": null,
  48. // * "created_at": "2016-09-30 00:45:13",
  49. // * "updated_at": "2016-09-29 16:43:36"
  50. // * }
  51. // * }
  52. // * }
  53. // * @apiErrorExample {json} Error-Response:
  54. // * HTTP/1.1 400 Bad Request
  55. // * {
  56. // * "state": false,
  57. // * "code": 1000,
  58. // * "message": "传入参数不正确",
  59. // * "data": null or []
  60. // * }
  61. // * 可能出现的错误代码:
  62. // * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
  63. // * 1102 INCORRECT_USER_OR_PASS 用户名或密码不正确
  64. // */
  65. // public function login(Request $request) {
  66. // $validator = Validator::make($request->all(),
  67. // [
  68. // 'phone' => 'required|regex:/^1[34578]\d{9}$/',
  69. // 'password' => 'required|between:6,16',
  70. // ],
  71. // [
  72. // 'phone.required' => '手机号码必填',
  73. // 'phone.regex' => '手机号码格式不正确',
  74. // 'type.required' => '用户类型必填',
  75. // 'password.between' => '密码长度6~16位',
  76. // ]
  77. // );
  78. //
  79. // if ($validator->fails()) {
  80. // return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
  81. // }
  82. //
  83. // $credentials = $request->only('phone', 'type', 'password');
  84. //
  85. // if (Auth::attempt($credentials)) {
  86. // $user = Auth::user();
  87. // if($request->type == 2){
  88. // $merchant = Merchant::where('user_id',$user->id)->first();
  89. // $data = MemberMerchant::where('merchant_id',$merchant->id);
  90. // $user['member_count'] = count($data->get());
  91. // $user['ref_count'] = count($data->where('ref_merchant_id','<>','')->get());
  92. // if($merchant->status!=1){
  93. // return $this->error(ErrorCode::MERCHANT_STATUS_NOT_OK);
  94. // }
  95. // }
  96. // $token = $user->createToken($user->phone . '-' . $user->type)->accessToken;
  97. // $banners = Setting::where('category', '=', 'banner')->select('value')->get()->toArray();
  98. // return $this->api(compact('token', 'user', 'banners'));
  99. // } else {
  100. // return $this->error(ErrorCode::INCORRECT_USER_OR_PASS);
  101. // }
  102. // }
  103. //
  104. // /**
  105. // * @api {get} /api/auth/logout 退出(logout)
  106. // * @apiDescription 退出(logout)
  107. // * @apiGroup Auth
  108. // * @apiPermission Passport
  109. // * @apiVersion 0.1.0
  110. // * @apiSuccessExample {json} Success-Response:
  111. // * HTTP/1.1 200 OK
  112. // * {
  113. // * "state": true,
  114. // * "code": 0,
  115. // * "message": "",
  116. // * "data": {
  117. // * "result": true/false
  118. // * }
  119. // * }
  120. // * @apiErrorExample {json} Error-Response:
  121. // * HTTP/1.1 400 Bad Request
  122. // * {
  123. // * "state": false,
  124. // * "code": 1104,
  125. // * "message": "退出失败",
  126. // * "data": null
  127. // * }
  128. // * 可能出现的错误代码:
  129. // * 1104 LOGOUT_FAILED 退出失败
  130. // */
  131. // public function logout() {
  132. // if (Auth::user()->token()->delete()) {
  133. // return $this->api(['result' => true]);
  134. // }
  135. // return $this->error(ErrorCode::LOGOUT_FAILED);
  136. // }
  137. //
  138. // /**
  139. // * @api {post} /api/auth/code 获取验证码(get code)
  140. // * @apiDescription 获取验证码(get code),验证码有效期暂定为15分钟
  141. // * @apiGroup Auth
  142. // * @apiPermission none
  143. // * @apiVersion 0.1.0
  144. // * @apiParam {string} phone 手机
  145. // * @apiParam {int} type 用户类型:1.个人,2.商户,3.注册
  146. // * @apiSuccessExample {json} Success-Response:
  147. // * HTTP/1.1 200 OK
  148. // * {
  149. // * "state": true,
  150. // * "code": 0,
  151. // * "message": "",
  152. // * "data": {
  153. // * "verify_code": "1234"//该值调试时使用,sms调通后取消
  154. // * }
  155. // * }
  156. // * @apiErrorExample {json} Error-Response:
  157. // * HTTP/1.1 400 Bad Request
  158. // * {
  159. // * "state": false,
  160. // * "code": 1000,
  161. // * "message": "传入参数不正确",
  162. // * "data": null or []
  163. // * }
  164. // * 可能出现的错误代码:
  165. // * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
  166. // * 1100 PHONE_NUMBER_ALREADY_REGISTERED 该手机号已注册
  167. // */
  168. // public function getCode(Request $request)
  169. // {
  170. //
  171. //
  172. // $validator = Validator::make($request->all(),
  173. // [
  174. // 'phone' => 'required|regex:/^1[34578]\d{9}$/',
  175. //// 'type' => 'required|in:' . User::TYPE_CONSUMER . ',' . User::TYPE_MERCHANT,'3'
  176. // ],
  177. // [
  178. // 'phone.required' => '手机号码必填',
  179. // 'phone.regex' => '手机号码格式不正确',
  180. //// 'type.required' => '用户类型必填',
  181. //// 'type.in' => '用户类型不正确',
  182. // ]
  183. // );
  184. //
  185. // if($request->type == 3){
  186. // $user = User::where('phone',$request->phone)->first();
  187. // if($user){
  188. // $merchant = Merchant::where('user_id', '=', $user->id)->first();//模型支持单用户多商户,业务只设计单商户
  189. // if($user&&$merchant) return $this->error(ErrorCode::USER_DOES_EXIST);
  190. // }
  191. // }else{
  192. // if(!User::where('phone',$request->phone)->first()) return $this->error(ErrorCode::USER_DOES_NOT_EXIST);
  193. // }
  194. //
  195. // if ($validator->fails()) {
  196. // return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
  197. // }
  198. //
  199. // $phone = $request->get('phone');
  200. //// $type = $request->get('type');
  201. //
  202. // $keyexist = $this->keySmsCodeExist . $phone;
  203. // $times = Cache::store('file')->get($keyexist);
  204. // if($times>5) {
  205. // return $this->error(ErrorCode::VERIFY_CODE_TOO_MUCH);
  206. // }else{
  207. // $times++;
  208. // Cache::store('file')->put($keyexist, $times, $this->expireTimeExist);
  209. // }
  210. //
  211. // $verify_code = (string) mt_rand(1000, 9999);
  212. // \Log::info('verify_code:'.$verify_code);
  213. // $key = $this->keySmsCode . $phone;
  214. //
  215. // Cache::store('file')->put($key, $verify_code, $this->expireTime);
  216. //// Redis::set($key, $verify_code);
  217. //// Redis::expire($key, $this->expireTime);
  218. //
  219. // $msg = '您好,您的验证码是:' . $verify_code;
  220. // $result = $this->sendSms($msg, $phone);
  221. // if (!$result) {
  222. // $this->logger->Error("Send sms failed.");
  223. // }
  224. //
  225. // return $this->api(['verify_code' => $verify_code]);
  226. // }
  227. //
  228. // /**
  229. // * @api {post} /api/auth/register 注册(register)
  230. // * @apiDescription 注册(register)
  231. // * @apiGroup Auth
  232. // * @apiPermission none
  233. // * @apiVersion 0.1.0
  234. // * @apiParam {String} phone 手机号码
  235. // * @apiParam {String} verify_code 手机验证码
  236. // * @apiParam {int} type 帐户类型:1.个人,2.商户
  237. // * @apiParam {String} [name=手机号码] 用户帐号名称
  238. // * @apiParam {String} [email] 邮件地址
  239. // * @apiParam {String} [password=123456] 密码
  240. // * @apiParam {File} [avatar] 用户头像
  241. // * @apiSuccessExample {json} Success-Response:
  242. // * HTTP/1.1 200 OK
  243. // * {
  244. // * "state": true,
  245. // * "code": 0,
  246. // * "message": "",
  247. // * "data": {
  248. // * "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjdjYWUyYzFmYTUwMTIyZDI0ZTRiYTZhZGZhNmQxYmZlOWNiMzIxMTBmYWJlZjNjYzIyNmViZjRmNGExNWM3NjllNmU2ZTNiYWE5OGNhOWUzIn0.eyJhdWQiOiIxIiwianRpIjoiN2NhZTJjMWZhNTAxMjJkMjRlNGJhNmFkZmE2ZDFiZmU5Y2IzMjExMGZhYmVmM2NjMjI2ZWJmNGY0YTE1Yzc2OWU2ZTZlM2JhYTk4Y2E5ZTMiLCJpYXQiOjE0NzU0MTE1NTgsIm5iZiI6MTQ3NTQxMTU1OCwiZXhwIjo0NjMxMDg1MTU4LCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.E9YGEzuRUOk02aV1EiWLJ_pD0hKoCyW0k_sGy63hM3u5X8K_HI1kVhaU6JNLqLZeszIAroTEDB8XMgZKAqTLlwtL8PLCJcuDoxfk1BRHbfjhDheTsahBysKGalvNEpzRCrGlao0mS0Cg9qDpEsndtypPFS8sfaflToOzbJjiSK2DvQiHSH8xZI3zHJTezgZMz-pB_hPTxp8ajdv0ve1gWtWjs3vERr0Y91X4hngO8X7LuXtAYtfxGZRIye12YE7TuLBMYzj8CCfiRt7Smhyf4palNW5mzKlZpa2l87n6NQ14Iy4oMzQ2PON1j_swrosuE2yZohGOn6fDdSCBRdJ6dLD_emjBdQCQOoB63R7BbhFZgvFX25TjzFJ7r9AdVMiGmebuRKEVSZV_JCGu1C71OIbQk-UK35s00gSr2fmJGBbN2cZTXBRTJpfuMZ_ihFYEZrvVq_Ih2X0xkd36JUuxaUld1BXRgPZvH-9jBuhe0YW2OOlgwpdm6ZB8BMcuS4ftLoi6FipgzFqfIuy-0ZqPMDnJaG7Gycrdpxza00mgOFxYxJtqwZNsUWFRZEVU881l6VC_cy294YXSPQxUwEoyKg-G5Pm8AEB9bqv5z4EU4B8-XTd3zKNqtNba_snHbc711i4EytCiZfYSjNB1hwenq45YYOAhPTwOpFI0kxyRazc",
  249. // * "user": {
  250. // * "type": "2",
  251. // * "phone": "15881082737",
  252. // * "name": "15881082737",
  253. // * "updated_at": "2016-10-03 20:52:21",
  254. // * "created_at": "2016-10-03 20:52:21",
  255. // * "id": 6
  256. // * }
  257. // * }
  258. // * }
  259. // * @apiErrorExample {json} Error-Response:
  260. // * HTTP/1.1 400 Bad Request
  261. // * {
  262. // * "state": false,
  263. // * "code": 1000,
  264. // * "message": "传入参数不正确",
  265. // * "data": null or []
  266. // * }
  267. // * 可能出现的错误代码:
  268. // * 200 SAVE_USER_FAILED 保存用户数据失败
  269. // * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
  270. // * 1101 INCORRECT_VERIFY_CODE 输入验证码错误
  271. // */
  272. // public function register(Request $request) {
  273. // $validator = Validator::make($request->input(),
  274. // [
  275. // 'phone' => 'required|regex:/^1[34578]\d{9}$/',
  276. // 'verify_code' => 'required',
  277. // 'name' => 'alpha_dash|between:2,50',
  278. // 'email' => 'email',
  279. // 'password' => 'between:6,16',
  280. // 'avatar' => 'image',
  281. // ],
  282. // [
  283. // 'phone.required' => '手机号码必填',
  284. // 'phone.regex' => '手机号码格式不正确',
  285. // 'verify_code.required' => '请输入校验码',
  286. // 'name.alpha_dash' => '用户名称只能字母数字中下划线',
  287. // 'name.between' => '用户名称只能为2~50字符',
  288. // 'email.email' => '邮件格式不正确',
  289. // 'password.between' => '密码必须在6~16字符之内',
  290. // 'avatar.image' => '用户头像必须为有效的图片',
  291. // ]
  292. // );
  293. //
  294. // if ($validator->fails()) {
  295. // return $this->error($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS, '');
  296. // }
  297. //
  298. // $phone = $request->get('phone');
  299. // $type = $request->get('type');
  300. // $verify_code = $request->get('verify_code');
  301. // $name = $request->get('name');
  302. //
  303. // //先绑定会员 ,后绑定商户
  304. //// if (User::where('phone', '=', $phone)->where('type', '=', $type)->exists()) {
  305. //// return $this->error(ErrorCode::PHONE_NUMBER_ALREADY_REGISTERED);
  306. //// }
  307. //
  308. // $email = $request->get('email');
  309. // $password = $request->get('password');
  310. // //如果有头像,上传
  311. // if ($request->hasFile('avatar')) {
  312. // $md5 = $this->uploadAttachment($request, 'avatar', 'avatar');
  313. // }
  314. //
  315. // $key = $this->keySmsCode . $phone;
  316. //// if (Redis::exists($key)) {
  317. // if (Cache::store('file')->has($key)) {
  318. //// $code = Redis::get($key);
  319. // $code = Cache::store('file')->get($key);
  320. // if ($code == $verify_code) {
  321. // if(!$user = User::where('phone', '=', $phone)->first()){
  322. // $user = new User();
  323. // }
  324. // $user->type = $type;
  325. // $user->phone = $phone;
  326. // $user->name = $name;
  327. // $user->email = $email;
  328. // if (!empty($password)) {
  329. // $user->password = bcrypt($password);
  330. // }
  331. // if (isset($md5) && is_string($md5) && !empty($md5)) {
  332. // $user->avatar = $md5;
  333. // }
  334. // if ($user->save()) {
  335. //// Redis::del($key);
  336. // Cache::store('file')->forget($key);
  337. //
  338. // //发token
  339. // $token = $user->createToken($phone . '-' . $type);
  340. // return $this->api([
  341. // 'token' => $token->accessToken,
  342. // 'user' => $user->toArray(),
  343. // ]);
  344. // } else {
  345. // return $this->error(ErrorCode::SAVE_USER_FAILED);
  346. // }
  347. // }
  348. // }
  349. // return $this->error(ErrorCode::INCORRECT_VERIFY_CODE);
  350. // }
  351. //
  352. // public function refreshToken() {
  353. // $token = '';//TODO
  354. //
  355. // return $this->api([
  356. // 'token' => $token,
  357. // ]);
  358. // }
  359. //
  360. // /**
  361. // * @api {post} /api/auth/password 设置密码(password)
  362. // * @apiDescription 上传头像(password)
  363. // * @apiGroup Auth
  364. // * @apiPermission Passport
  365. // * @apiVersion 0.1.0
  366. // * @apiParam {String} password 密码
  367. // * @apiSuccessExample {json} Success-Response:
  368. // * HTTP/1.1 200 OK
  369. // * {
  370. // * "state": true,
  371. // * "code": 0,
  372. // * "message": "",
  373. // * "data": {
  374. // * "result": true,
  375. // * }
  376. // * }
  377. // * @apiErrorExample {json} Error-Response:
  378. // * HTTP/1.1 400 Bad Request
  379. // * {
  380. // * "state": false,
  381. // * "code": 1000,
  382. // * "message": "传入参数不正确",
  383. // * "data": null or []
  384. // * }
  385. // * 可能出现的错误代码:
  386. // * 200 SAVE_USER_FAILED 保存用户数据失败
  387. // * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
  388. // */
  389. // public function setPassword(Request $request) {
  390. // $validator = Validator::make($request->input(),
  391. // [
  392. // 'password' => 'required|between:6,16',
  393. // ],
  394. // [
  395. // 'password.required' => '请输入密码',
  396. // 'password.between' => '密码长度6~16位',
  397. // ]
  398. // );
  399. //
  400. // if ($validator->fails()) {
  401. // return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
  402. // }
  403. //
  404. // $pass = $request->get('password');
  405. //
  406. // $user = Auth::user();
  407. // $user->password = bcrypt($pass);
  408. // if (!$user->save()) {
  409. // return $this->error(ErrorCode::SAVE_USER_FAILED);
  410. // }
  411. //
  412. // return $this->api([
  413. // 'result' => true,
  414. // ]);
  415. // }
  416. //
  417. // public function isLogin()
  418. // {
  419. // $user = Auth::user();
  420. // $res = true;
  421. // if(!$user) $res = false;
  422. // return $this->api([
  423. // 'result' => $res,
  424. // ]);
  425. // }
  426. //
  427. // public function check_password(Request $request)
  428. // {
  429. // $password = Auth::user()->password;
  430. //
  431. // if(!Hash::check($request->oldpassword,$password)) return $this->error(ErrorCode::CHECK_OLDPASSWORD_FAILED);
  432. //
  433. // return $this->api(null,0,'验证通过');
  434. // }
  435. //
  436. // /**
  437. // * @api {post} /api/auth/reset 找回密码(reset)
  438. // * @apiDescription 找回密码(reset)
  439. // * @apiGroup Auth
  440. // * @apiPermission none
  441. // * @apiVersion 0.1.0
  442. // * @apiParam {Phone} phone 手机
  443. // * @apiParam {int} type 帐户类型:1.个人,2.商户
  444. // * @apiParam {String} verify_code 手机验证码
  445. // * @apiParam {String} password password
  446. // * @apiSuccessExample {json} Success-Response:
  447. // * HTTP/1.1 200 OK
  448. // * {
  449. // * "state": true,
  450. // * "code": 0,
  451. // * "message": "",
  452. // * "data": {
  453. // * "result": true,
  454. // * }
  455. // * }
  456. // * @apiErrorExample {json} Error-Response:
  457. // * HTTP/1.1 400 Bad Request
  458. // * {
  459. // * "state": false,
  460. // * "code": 1000,
  461. // * "message": "传入参数不正确",
  462. // * "data": null or []
  463. // * }
  464. // * 可能出现的错误代码:
  465. // * 200 SAVE_USER_FAILED 保存用户数据失败
  466. // * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
  467. // * 1101 INCORRECT_VERIFY_CODE 输入验证码错误
  468. // * 1105 USER_DOES_NOT_EXIST 用户不存在
  469. // */
  470. // public function reset(Request $request) {
  471. // $validator = Validator::make($request->all(),
  472. // [
  473. // 'phone' => 'required|regex:/^1[34578]\d{9}$/',
  474. // 'verify_code' => 'required',
  475. // 'password' => 'required|between:6,16',
  476. // ],
  477. // [
  478. // 'phone.required' => '手机号码必填',
  479. // 'phone.regex' => '手机号码格式不正确',
  480. // 'verify_code.required' => '请输入校验码',
  481. // 'password.required' => '请输入密码',
  482. // 'password.between' => '密码长度6~16位',
  483. // ]
  484. // );
  485. //
  486. // if ($validator->fails()) {
  487. // return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '', $validator->messages());
  488. // }
  489. //
  490. // $phone = $request->get('phone');
  491. // $verify_code = $request->get('verify_code');
  492. // $pass = $request->get('password');
  493. //
  494. // $key = $this->keySmsCode . $phone;
  495. //// if (Redis::exists($key)) {
  496. // if (Cache::store('file')->has($key)) {
  497. //// $code = Redis::get($key);
  498. // $code = Cache::store('file')->get($key);
  499. // if ($code == $verify_code) {
  500. // $user = User::where([
  501. // 'phone' => $phone,
  502. // ])->first();
  503. //
  504. // if (!$user) {
  505. // return $this->error(ErrorCode::USER_DOES_NOT_EXIST);
  506. // }
  507. //
  508. // //$password = app('hash')->make($request->get('password'));
  509. // $user->password = bcrypt($pass);
  510. // if (!$user->save()) {
  511. // return $this->error(ErrorCode::SAVE_USER_FAILED);
  512. // }
  513. // Cache::store('file')->forget($key);
  514. //
  515. // return $this->api(['result' => true]);
  516. // }
  517. // }
  518. // return $this->error(ErrorCode::INCORRECT_VERIFY_CODE);
  519. // }
  520. //
  521. // /**
  522. // * @api {post} /api/auth/avatar 上传头像(avatar)
  523. // * @apiDescription 上传头像(reset)
  524. // * @apiGroup Auth
  525. // * @apiPermission Passport
  526. // * @apiVersion 0.1.0
  527. // * @apiParam {File} avatar 头像图片
  528. // * @apiSuccessExample {json} Success-Response:
  529. // * HTTP/1.1 200 OK
  530. // * {
  531. // * "state": true,
  532. // * "code": 0,
  533. // * "message": "",
  534. // * "data": {
  535. // * "md5": "fdf8dd78eb383b8acf6d94d4752c1424",
  536. // * }
  537. // * }
  538. // * @apiErrorExample {json} Error-Response:
  539. // * HTTP/1.1 400 Bad Request
  540. // * {
  541. // * "state": false,
  542. // * "code": 1000,
  543. // * "message": "传入参数不正确",
  544. // * "data": null or []
  545. // * }
  546. // * 可能出现的错误代码:
  547. // * 200 SAVE_USER_FAILED 保存用户数据失败
  548. // * 201 ATTACHMENT_MKDIR_FAILED 创建附件目录失败
  549. // * 202 ATTACHMENT_UPLOAD_INVALID 上传附件文件无效
  550. // * 203 ATTACHMENT_SAVE_FAILED 保存附件失败
  551. // * 204 ATTACHMENT_MOVE_FAILED 移动附件失败
  552. // * 205 ATTACHMENT_DELETE_FAILED 删除附件文件失败
  553. // * 206 ATTACHMENT_RECORD_DELETE_FAILED 删除附件记录失败
  554. // * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
  555. // * 1101 INCORRECT_VERIFY_CODE 输入验证码错误
  556. // * 1105 USER_DOES_NOT_EXIST 用户不存在
  557. // * 1200 ATTACHMENT_UPLOAD_FAILED 附件上传失败
  558. // * 1201 ATTACHMENT_SIZE_EXCEEDED 附件大小超过限制
  559. // * 1202 ATTACHMENT_MIME_NOT_ALLOWED 附件类型不允许
  560. // * 1203 ATTACHMENT_NOT_EXIST 附件不存在
  561. // */
  562. // public function avatar(Request $request) {
  563. // $user = Auth::user();
  564. // $old_avatar = $user->avatar;
  565. // $result = $this->uploadAttachment($request, 'avatar', 'avatar', 4 * 1024 * 1024, [
  566. // 'image/jpeg',
  567. // 'image/png',
  568. // 'image/gif',
  569. // ]);
  570. // if (is_array($result)) {
  571. // $result = array_shift($result);
  572. // }
  573. // if (is_string($result)) {
  574. // $user->avatar = $result;
  575. // if (!$user->save()) {
  576. // return $this->error(ErrorCode::SAVE_USER_FAILED);
  577. // }
  578. // $this->deleteAttachment($old_avatar);
  579. // return $this->api(['md5' => $result]);
  580. // }
  581. // return $this->error($result);
  582. // }
  583. //
  584. //
  585. // /**
  586. // * @api {post} /api/auth/bank_card/create 添加银行卡
  587. // * @apiDescription 添加银行卡
  588. // * @apiGroup Auth
  589. // * @apiPermission Passport
  590. // * @apiVersion 0.1.0
  591. // * @apiParam {string} bank_name 银行名称
  592. // * @apiParam {string} bank_number 银行卡号
  593. // * @apiParam {string} bank_phone 银行预留手机号
  594. // * @apiParam {string} bank_user 银行卡用户姓名
  595. // * @apiSuccessExample {json} Success-Response:
  596. // * HTTP/1.1 200 OK
  597. // * {
  598. // * "state": true,
  599. // * "code": 0,
  600. // * "message": "",
  601. // * "data": {
  602. // * ....
  603. // * }
  604. // * }
  605. // * @apiErrorExample {json} Error-Response:
  606. // * HTTP/1.1 400 Bad Request
  607. // * {
  608. // * "state": false,
  609. // * "code": 1000,
  610. // * "message": "传入参数不正确",
  611. // * "data": null or []
  612. // * }
  613. // * 可能出现的错误代码:
  614. // * 2003 BANK_CARD_ADD_FAILED 添加银行卡失败
  615. // */
  616. // public function create_bank_card(Request $request)
  617. // {
  618. // $validator = Validator::make($request->all(),
  619. // [
  620. // 'bank_name' => 'required',
  621. //// 'bank_number' => 'required',
  622. //// 'bank_phone' => 'required',
  623. //// 'bank_user' => 'required',
  624. // ],
  625. // [
  626. // 'bank_name.required' => '银行名称必填',
  627. //// 'bank_number.required' => '银行卡号必填',
  628. //// 'bank_phone.required' => '联系电话必填',
  629. //// 'bank_user.required' => '持卡人姓名必填',
  630. // ]
  631. // );
  632. //
  633. // if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
  634. //
  635. // $data = $request->all();
  636. // $data['user_id'] = Auth::id();
  637. //
  638. // if(!UserBanks::create($data)) return $this->error(ErrorCode::BANK_CARD_ADD_FAILED,'');
  639. //
  640. // }
  641. //
  642. // /**
  643. // * @api {post} /api/auth/bank_card/index 获取银行卡列表
  644. // * @apiDescription 获取银行卡信息
  645. // * @apiGroup Auth
  646. // * @apiPermission Passport
  647. // * @apiVersion 0.1.0
  648. // * @apiSuccessExample {json} Success-Response:
  649. // * HTTP/1.1 200 OK
  650. // * {
  651. // * "state": true,
  652. // * "code": 0,
  653. // * "message": "",
  654. // * "data": [
  655. // * {
  656. // * "id": 1,
  657. // * "user_id": 27,
  658. // * "bank_name": "测试银行",
  659. // * "bank_number": "12345678987654321",
  660. // * "bank_phone": "12345678987"
  661. // * }
  662. // * ]
  663. // * }
  664. // * @apiErrorExample {json} Error-Response:
  665. // * HTTP/1.1 500
  666. // * {
  667. // * "state": false,
  668. // * "code": 2002,
  669. // * "message": "获取银行卡列表失败",
  670. // * "data": null or []
  671. // * }
  672. // */
  673. // public function index_bank_card()
  674. // {
  675. //
  676. // $user_id = Auth::id();
  677. // if(!$user_id)return $this->error(ErrorCode::USER_DOES_NOT_EXIST,'');
  678. // if(!$data = UserBanks::where('user_id', $user_id)->get()) return $this->error(ErrorCode::BANK_CARD_INDEX_FAILED,'');
  679. //
  680. // return $this->api($data->toArray());
  681. //
  682. // }
  683. //
  684. // /**
  685. // * @api {post} /api/auth/bank_card/edit 修改银行卡
  686. // * @apiDescription 修改银行卡
  687. // * @apiGroup Auth
  688. // * @apiPermission Passport
  689. // * @apiVersion 0.1.0
  690. // * @apiParam {string} bank_number 银行卡号
  691. // * @apiSuccessExample {json} Success-Response:
  692. // * HTTP/1.1 200 OK
  693. // * {
  694. // * "state": true,
  695. // * "code": 0,
  696. // * "message": "",
  697. // * "data": {
  698. // * ....
  699. // * }
  700. // * }
  701. // * @apiErrorExample {json} Error-Response:
  702. // * HTTP/1.1 500
  703. // * {
  704. // * "state": false,
  705. // * "code": 2004,
  706. // * "message": "修改银行卡失败",
  707. // * "data": null or []
  708. // * }
  709. // * 可能出现的错误代码:
  710. // * 2001 BANK_CARD_NOT_EXIST 银行卡不存在
  711. // */
  712. //
  713. // public function edit_bank_card(Request $request)
  714. // {
  715. //
  716. // if(!$request->all()) return $this->error(ErrorCode::BANK_CARD_NOT_EXIST,'');
  717. //
  718. // if(!$data = UserBanks::where('bank_number',$request->bank_number)->get()) return $this->error(ErrorCode::BANK_CARD_NOT_EXIST,'');
  719. //
  720. // return $this->api($data->toArray());
  721. //
  722. // }
  723. //
  724. // /**
  725. // * @api {post} /api/auth/bank_card/update 更新银行卡
  726. // * @apiDescription 更新银行卡
  727. // * @apiGroup Auth
  728. // * @apiPermission Passport
  729. // * @apiVersion 0.1.0
  730. // * @apiParam {int} id 银行卡id
  731. // * @apiParam {string} bank_name 银行名称
  732. // * @apiParam {string} bank_number 银行卡号
  733. // * @apiParam {string} bank_phone 银行预留手机号
  734. // * @apiSuccessExample {json} Success-Response:
  735. // * HTTP/1.1 200 OK
  736. // * {
  737. // * "state": true,
  738. // * "code": 0,
  739. // * "message": "success",
  740. // * "data": {
  741. // * ....
  742. // * }
  743. // * }
  744. // * @apiErrorExample {json} Error-Response:
  745. // *HTTP/1.1 400 Bad Request
  746. // * {
  747. // * "state": false,
  748. // * "code": 1000,
  749. // * "message": "传入参数不正确",
  750. // * "data": null or []
  751. // * }
  752. // * 可能出现的错误代码:
  753. // * 2001 BANK_CARD_NOT_EXIST 银行卡不存在
  754. // * 2005 BANK_CARD_UPDATE_FAILED 更新银行卡失败
  755. // */
  756. // public function update_bank_card(Request $request)
  757. // {
  758. // $validator = Validator::make($request->all(),
  759. // [
  760. // 'id' => 'required',
  761. // 'bank_name' => 'required',
  762. // 'bank_number' => 'required',
  763. // 'bank_phone' => 'required',
  764. // 'bank_user' => 'required',
  765. // ],
  766. // [
  767. // 'id.required' => '未能获取当前卡ID',
  768. // 'bank_name.required' => '银行名称必填',
  769. // 'bank_number.required' => '银行卡号必填',
  770. // 'bank_phone.required' => '联系电话必填',
  771. // 'bank_user.required' => '持卡人姓名必填',
  772. // ]
  773. // );
  774. // if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
  775. //
  776. // if(!$data = UserBanks::find($request->id)) return $this->error(ErrorCode::BANK_CARD_NOT_EXIST,'');
  777. //
  778. // if(! $data->update($request->except('id'))) return $this->error(ErrorCode::BANK_CARD_UPDATE_FAILED,'');
  779. //
  780. // return $this->api('',0,'success');
  781. //
  782. // }
  783. //
  784. // /**
  785. // * @api {post} /api/auth/bank_card/delete/{id} 删除银行卡
  786. // * @apiDescription 删除银行卡
  787. // * @apiGroup Auth
  788. // * @apiPermission Passport
  789. // * @apiVersion 0.1.0
  790. // * @apiSuccessExample {json} Success-Response:
  791. // * HTTP/1.1 200 OK
  792. // * {
  793. // * "state": true,
  794. // * "code": 0,
  795. // * "message": "success",
  796. // * "data": {
  797. // * ....
  798. // * }
  799. // * }
  800. // * @apiErrorExample {json} Error-Response:
  801. // *HTTP/1.1 400 Bad Request
  802. // * {
  803. // * "state": false,
  804. // * "code": 2008,
  805. // * "message": "删除银行卡失败",
  806. // * "data": null or []
  807. // * }
  808. // * 2001 没有此银行卡
  809. // */
  810. // public function delete_bank_card($id)
  811. // {
  812. //
  813. // if(!$bank = UserBanks::find($id)) return $this->api(ErrorCode::BANK_CARD_NOT_EXIST.'');
  814. //
  815. // if(!$bank->delete()) return $this->api(ErrorCode::BANK_CARD_DELETE_FAILED,'');
  816. //
  817. // return $this->api('',0,'success');
  818. //
  819. // }
  820. }