UserController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. $token = \App\Vendor\Jwt::getToken($ret);
  47. DB::table('members')
  48. ->where('id', $ret)
  49. ->update(['remember_token' => $token]);
  50. } catch (Exception $ex) {
  51. return toJson(-20001);
  52. }
  53. $this->ResetMaps($ret,$token);
  54. return toJson(1, '', array('token' => $token));
  55. }
  56. public function register(Request $req)
  57. {
  58. try {
  59. $user = [];
  60. $user['name'] = $req->input('user');
  61. $user['password'] = $req->input('password');
  62. $cpwd = $req->input('confirm_password');
  63. $user['phone'] = $req->input('phone');
  64. $user['uuid'] = getUUID();
  65. $user['password'] = createPasswd(trim($user['password']), $user['uuid']);
  66. $re = \App\Models\Member::insert($user);
  67. return toJson(1);
  68. } catch (Exception $ex) {
  69. return toJson(-20001);
  70. }
  71. }
  72. public function login(Request $req)
  73. {
  74. $user['name'] = $req->input('user');
  75. $user['password'] = $req->input('password');
  76. $member = \App\Models\Member::where('name', $user['name'])->first();
  77. if (!$member) {
  78. return toJson(-20002);
  79. }
  80. if (($member['password']) != createPasswd(trim($user['password']), $member['uuid'])) {
  81. return toJson(-20003);
  82. }
  83. // echo $member['id'];
  84. $token = \App\Vendor\Jwt::getToken($member['id']);
  85. $this->del_oldMap($member['remember_token']);
  86. DB::table('members')
  87. ->where('id', $member['id'])
  88. ->update(['remember_token' => $token]);
  89. $this->ResetMaps($member['id'],$token);
  90. return toJson(1, '', array('token' => $token));
  91. }
  92. private function ResetMaps($uid, $token)
  93. {
  94. $tokenmd5 = md5($token);
  95. Redis::hset("MAPS_TOKEN_UID", $tokenmd5, $uid);
  96. Redis::hset("MAPS_UID_TOKEN", $uid, $tokenmd5);
  97. }
  98. private function del_oldMap($token){
  99. $tokenmd5 = md5($token);
  100. Redis::hdel("MAPS_TOKEN_UID", $tokenmd5);
  101. }
  102. public function logout()
  103. {
  104. }
  105. }