UserController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. namespace App\Http\Controllers\Sys;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use Illuminate\Support\Facades\DB;
  6. use Illuminate\Support\Facades\Redis;
  7. use \Exception;
  8. class UserController extends Controller
  9. {
  10. //游客注册登录 133
  11. public function hideLogin()
  12. {
  13. $ip = GETIP();
  14. //检测是否注册过
  15. $member = DB::table('members')->where('user_ip', $ip)->first();
  16. if (!empty($member)) {
  17. if (($member->deleted_at) > date('Y-m-d H:i:s')) {
  18. $this->del_oldMap($member->remember_token);
  19. $token = \App\Vendor\Jwt::getToken($member->id);
  20. DB::table('members')
  21. ->where('id', $member->id)
  22. ->update(['remember_token' => $token]);
  23. $this->ResetMaps($member->id,$token);
  24. return toJson(1, '', array('token' => $token));
  25. }
  26. return toJson(-20004);
  27. }
  28. //没有注册,生成游客用户
  29. $seed = time();
  30. $name = rand(0, $seed);
  31. $pwd = '123456';
  32. $uuid = getUUID();
  33. $userData = [
  34. 'name' => 'youke_' . $name,
  35. 'phone' => '180' . rand(10000000, 99999999),
  36. 'uuid' => $uuid,
  37. 'password' => createPasswd(trim($pwd), $uuid),
  38. 'identity' => 2,
  39. 'user_ip' => $ip,
  40. 'created_at' => date('Y-m-d H:i:s'),
  41. 'updated_at' => date('Y-m-d H:i:s'),
  42. 'deleted_at' => date('Y-m-d H:i:s', strtotime("+2 day"))
  43. ];
  44. try {
  45. $ret = DB::table('members')->insertGetId($userData);
  46. $membersDetailed['members_id'] = $ret;
  47. $insertMembersDetailed = \App\Models\MembersDetailed::insert($membersDetailed);
  48. $token = \App\Vendor\Jwt::getToken($ret);
  49. DB::table('members')
  50. ->where('id', $ret)
  51. ->update(['remember_token' => $token]);
  52. } catch (Exception $ex) {
  53. return toJson(-20001);
  54. }
  55. $this->ResetMaps($ret,$token);
  56. return toJson(1, '', array('token' => $token));
  57. }
  58. public function register(Request $req)
  59. {
  60. try {
  61. $user = [];
  62. $user['name'] = $req->input('user');
  63. $user['password'] = $req->input('password');
  64. $cpwd = $req->input('confirm_password');
  65. $user['phone'] = $req->input('phone');
  66. $user['uuid'] = getUUID();
  67. $user['password'] = createPasswd(trim($user['password']), $user['uuid']);
  68. $user['nick'] = $req->input('nick');
  69. DB::beginTransaction();
  70. $insertMembers = \App\Models\Member::insertGetId($user);
  71. $membersDetailed['members_id'] = $insertMembers;
  72. $insertMembersDetailed = \App\Models\MembersDetailed::insert($membersDetailed);
  73. if ($insertMembers && $insertMembersDetailed) {
  74. DB::commit();
  75. return toJson(1);
  76. } else {
  77. return toJson(-2);
  78. DB::rollBack();
  79. }
  80. } catch (Exception $ex) {
  81. return toJson(-20001);
  82. }
  83. }
  84. public function login(Request $req)
  85. {
  86. $user['name'] = $req->input('user');
  87. $user['password'] = $req->input('password');
  88. $member = \App\Models\Member::where('name', $user['name'])->first();
  89. if (!$member) {
  90. return toJson(-20002);
  91. }
  92. if (($member['password']) != createPasswd(trim($user['password']), $member['uuid'])) {
  93. return toJson(-20003);
  94. }
  95. // echo $member['id'];
  96. $token = \App\Vendor\Jwt::getToken($member['id']);
  97. $this->del_oldMap($member['remember_token']);
  98. DB::table('members')
  99. ->where('id', $member['id'])
  100. ->update(['remember_token' => $token]);
  101. $this->ResetMaps($member['id'],$token);
  102. return toJson(1, '', array('token' => $token));
  103. }
  104. private function ResetMaps($uid, $token)
  105. {
  106. $tokenmd5 = md5($token);
  107. Redis::hset("MAPS_TOKEN_UID", $tokenmd5, $uid);
  108. Redis::hset("MAPS_UID_TOKEN", $uid, $tokenmd5);
  109. }
  110. private function del_oldMap($token){
  111. $tokenmd5 = md5($token);
  112. Redis::hdel("MAPS_TOKEN_UID", $tokenmd5);
  113. }
  114. public function logout()
  115. {
  116. }
  117. }