UserController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. DB::beginTransaction();
  69. $insertMembers = \App\Models\Member::insertGetId($user);
  70. $membersDetailed['members_id'] = $insertMembers;
  71. $insertMembersDetailed = \App\Models\MembersDetailed::insert($membersDetailed);
  72. if ($insertMembers && $insertMembersDetailed) {
  73. DB::commit();
  74. return toJson(1);
  75. } else {
  76. return toJson(-2);
  77. DB::rollBack();
  78. }
  79. } catch (Exception $ex) {
  80. return toJson(-20001);
  81. }
  82. }
  83. public function login(Request $req)
  84. {
  85. $user['name'] = $req->input('user');
  86. $user['password'] = $req->input('password');
  87. $member = \App\Models\Member::where('name', $user['name'])->first();
  88. if (!$member) {
  89. return toJson(-20002);
  90. }
  91. if (($member['password']) != createPasswd(trim($user['password']), $member['uuid'])) {
  92. return toJson(-20003);
  93. }
  94. // echo $member['id'];
  95. $token = \App\Vendor\Jwt::getToken($member['id']);
  96. $this->del_oldMap($member['remember_token']);
  97. DB::table('members')
  98. ->where('id', $member['id'])
  99. ->update(['remember_token' => $token]);
  100. $this->ResetMaps($member['id'],$token);
  101. return toJson(1, '', array('token' => $token));
  102. }
  103. private function ResetMaps($uid, $token)
  104. {
  105. $tokenmd5 = md5($token);
  106. Redis::hset("MAPS_TOKEN_UID", $tokenmd5, $uid);
  107. Redis::hset("MAPS_UID_TOKEN", $uid, $tokenmd5);
  108. }
  109. private function del_oldMap($token){
  110. $tokenmd5 = md5($token);
  111. Redis::hdel("MAPS_TOKEN_UID", $tokenmd5);
  112. }
  113. public function logout()
  114. {
  115. }
  116. }