UserController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Grade;
  4. use App\School;
  5. use App\Sclass;
  6. use App\User;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. use Overtrue\EasySms\Exceptions\NoGatewayAvailableException;
  10. class UserController extends Controller
  11. {
  12. public function bangMobile()
  13. {
  14. $user = Auth::guard('wechat')->user();
  15. $schools = School::pluck('name', 'id');
  16. $classes = $grades = [];
  17. if ($user->school_id) {
  18. $classes = Sclass::where('school_id', $user->school_id)->pluck('name', 'id');
  19. }
  20. $grades = Grade::pluck('name', 'id');
  21. return view('user.bangMobile', compact('user', 'schools', 'classes', 'grades'));
  22. }
  23. public function update(Request $request, User $user)
  24. {
  25. $code = $request->get('code');
  26. $uid = Auth::guard('wechat')->user()->id;
  27. if ((string)$code !== (string)cache()->get('code_' . $uid, false)) {
  28. return response()->json(['status' => 0, 'msg' => '验证码错误']);
  29. }
  30. $user = $user->where('id', $uid)->first();
  31. $user->fill([
  32. 'mobile' => $request->get('mobile'),
  33. 'name' => $request->get('name'),
  34. 'school_id' => $request->get('school_id'),
  35. 'class_id' => $request->get('class_id'),
  36. 'grade_id' => $request->get('grade_id'),
  37. ]);
  38. $user->save();
  39. return redirect('/');
  40. }
  41. public function sendCode(Request $request)
  42. {
  43. $mobile = $request->get('mobile');
  44. $uid = $request->get('uid');
  45. $code = random_int(1000, 9999);
  46. try {
  47. app('easy_sms')->send($mobile, [
  48. 'content' => '您的验证码为: ' . $code,
  49. 'template' => 'SMS_159955215',
  50. 'data' => [
  51. 'code' => $code
  52. ],
  53. ]);
  54. } catch (NoGatewayAvailableException $exception) {
  55. return response()->json(['status' => 0, 'msg' => $exception->getExceptions()]);
  56. }
  57. cache()->put("code_{$uid}", $code, 2);
  58. return response()->json(['status' => 1]);
  59. }
  60. }