PhoneUser.php 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\wap\model\user;
  12. use basic\ModelBasic;
  13. use service\QrcodeService;
  14. use think\Cookie;
  15. use think\Session;
  16. use traits\ModelTrait;
  17. use service\SystemConfigService;
  18. class PhoneUser extends ModelBasic
  19. {
  20. use ModelTrait;
  21. public static function UidToPhone($uid)
  22. {
  23. return self::where('uid', $uid)->value('phone');
  24. }
  25. public static function UserLogIn($phone, $request)
  26. {
  27. $isfollow = false;
  28. self::startTrans();
  29. try {
  30. $name = '__login_phone_number';
  31. if (self::be(['phone' => $phone])) {
  32. $user = self::where('phone', $phone)->find();
  33. if (!$user->status) return self::setErrorInfo('账户已被禁止登录');
  34. $user->last_ip = $request->ip();
  35. $user->last_time = time();
  36. if ($user->uid) {
  37. Session::set('loginUid', $user->uid, 'wap');
  38. }
  39. $userinfo = User::where('uid', $user->uid)->find();
  40. $user->save();
  41. } else {
  42. $userinfo = User::where(['phone' => $phone, 'is_h5user' => 0])->find();
  43. if (!$userinfo) $userinfo = User::set([
  44. 'nickname' => $phone,
  45. 'pwd' => md5(123456),
  46. 'avatar' => '/system/images/user_log.jpg',
  47. 'account' => $phone,
  48. 'phone' => $phone,
  49. 'is_h5user' => 1,
  50. ]);
  51. if (!$userinfo) return self::setErrorInfo('用户信息写入失败', true);
  52. Session::set('loginUid', $userinfo['uid'], 'wap');
  53. $user = self::set([
  54. 'phone' => $phone,
  55. 'avatar' => '/system/images/user_log.jpg',
  56. 'nickname' => $phone,
  57. 'uid' => $userinfo['uid'],
  58. 'add_ip' => $request->ip(),
  59. 'add_time' => time(),
  60. 'pwd' => md5(123456),
  61. ]);
  62. if (!$user) return self::setErrorInfo('手机用户信息写入失败', true);
  63. }
  64. $isfollow = $userinfo['is_h5user'] ? false : true;
  65. Cookie::set('__login_phone', 1);
  66. Cookie::set('is_login', 1);
  67. Session::set($name, $phone, 'wap');
  68. Session::set('__login_phone_num' . $userinfo['uid'], $phone, 'wap');
  69. $res['url'] = SystemConfigService::get('wechat_qrcode');
  70. $res['id'] = 0;
  71. // try {
  72. // $res = QrcodeService::getTemporaryQrcode('binding', $userinfo['uid']);
  73. // } catch (\Exception $e) {
  74. // $res['url'] = SystemConfigService::get('wechat_qrcode');
  75. // $res['id'] = 0;
  76. // }
  77. self::commit();
  78. return ['userinfo' => $user, 'url' => $res['url'], 'qcode_id' => $res['id'], 'isfollow' => $isfollow];
  79. } catch (\Exception $e) {
  80. return self::setErrorInfo($e->getMessage());
  81. }
  82. }
  83. }