2
0

SignUpController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\UserInfo;
  4. use App\Models\Invite;
  5. use App\Models\Channel;
  6. use Illuminate\Support\Str;
  7. use Illuminate\Http\Request;
  8. class SignUpController extends Controller
  9. {
  10. /**
  11. * Display a listing of the resource.
  12. *
  13. * @return \Illuminate\Http\Response
  14. */
  15. public function index()
  16. {
  17. //
  18. }
  19. /**
  20. * Store a newly created resource in storage.
  21. *
  22. * @param \Illuminate\Http\Request $request
  23. * @return \Illuminate\Http\Response
  24. */
  25. public function store(Request $request)
  26. {
  27. //先查询invite核对uuid
  28. if(!Invite::where('id',$request->get('token'))
  29. ->where('email',$request->get('email'))->exists()){
  30. $this->error('error token',[],200);
  31. }
  32. if(UserInfo::where('username',$request->get('name'))->exists()){
  33. $this->error('avoid user name',[],200);
  34. }
  35. $user = new UserInfo;
  36. $user->userid = Str::Uuid();
  37. $user->username = $request->get('username');
  38. $user->nickname = $request->get('nickname');
  39. $user->email = $request->get('email');
  40. $user->password = md5($request->get('password'));
  41. $user->create_time = time()*1000;
  42. $user->modify_time = time()*1000;
  43. $user->save();
  44. //标记invite
  45. Invite::where('id',$request->get('token'))
  46. ->where('email',$request->get('email'))
  47. ->update(['status'=>'sign-up']);
  48. //建立channel
  49. $channel = new Channel;
  50. $channel->id = app('snowflake')->id();
  51. $channel->name = $request->get('username');
  52. $channel->owner_uid = $user->userid;
  53. $channel->type = "translation";
  54. $channel->lang = $request->get('lang');
  55. $channel->editor_id = $user->id;
  56. $channel->status = 30;
  57. $channel->create_time = time()*1000;
  58. $channel->modify_time = time()*1000;
  59. $channel->save();
  60. $channel_draft = new Channel;
  61. $channel_draft->id = app('snowflake')->id();
  62. $channel_draft->name = 'draft';
  63. $channel_draft->owner_uid = $user->userid;
  64. $channel_draft->type = "translation";
  65. $channel_draft->lang = $request->get('lang');
  66. $channel_draft->editor_id = $user->id;
  67. $channel_draft->create_time = time()*1000;
  68. $channel_draft->modify_time = time()*1000;
  69. $channel_draft->save();
  70. return $this->ok('ok');
  71. }
  72. /**
  73. * Display the specified resource.
  74. *
  75. * @param \App\Models\UserInfo $userInfo
  76. * @return \Illuminate\Http\Response
  77. */
  78. public function show(UserInfo $userInfo)
  79. {
  80. //
  81. }
  82. /**
  83. * Update the specified resource in storage.
  84. *
  85. * @param \Illuminate\Http\Request $request
  86. * @param \App\Models\UserInfo $userInfo
  87. * @return \Illuminate\Http\Response
  88. */
  89. public function update(Request $request, UserInfo $userInfo)
  90. {
  91. //
  92. }
  93. /**
  94. * Remove the specified resource from storage.
  95. *
  96. * @param \App\Models\UserInfo $userInfo
  97. * @return \Illuminate\Http\Response
  98. */
  99. public function destroy(UserInfo $userInfo)
  100. {
  101. //
  102. }
  103. }