User.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. *
  4. * @copyright ©2020 点小铺
  5. * @author hanj
  6. * @link: https://dyuit.com
  7. * Created by VSCode
  8. */
  9. namespace app\admin\model\admin;
  10. use think\Session;
  11. use app\common\model\admin\User as UserModel;
  12. /**
  13. * 超管后台用户模型
  14. * Class User
  15. * @package app\admin\model\admin
  16. */
  17. class User extends UserModel
  18. {
  19. /**
  20. * 超管后台用户登录
  21. * @param $data
  22. * @return bool
  23. * @throws \think\db\exception\DataNotFoundException
  24. * @throws \think\db\exception\ModelNotFoundException
  25. * @throws \think\exception\DbException
  26. */
  27. public function login($data)
  28. {
  29. // 验证用户名密码是否正确
  30. if (!$user = self::useGlobalScope(false)->where([
  31. 'user_name' => $data['user_name'],
  32. 'password' => dyu_hash($data['password'])
  33. ])->find()) {
  34. $this->error = '登录失败, 用户名或密码错误';
  35. return false;
  36. }
  37. // 保存登录状态
  38. Session::set('dyu_admin', [
  39. 'user' => [
  40. 'admin_user_id' => $user['admin_user_id'],
  41. 'user_name' => $user['user_name'],
  42. ],
  43. 'is_login' => true,
  44. ]);
  45. return true;
  46. }
  47. /**
  48. * 超管用户信息
  49. * @param $admin_user_id
  50. * @return null|static
  51. * @throws \think\exception\DbException
  52. */
  53. public static function detail($admin_user_id)
  54. {
  55. return self::get($admin_user_id);
  56. }
  57. /**
  58. * 更新当前管理员信息
  59. * @param $data
  60. * @return bool
  61. */
  62. public function renew($data)
  63. {
  64. if ($data['password'] !== $data['password_confirm']) {
  65. $this->error = '确认密码不正确';
  66. return false;
  67. }
  68. // 更新管理员信息
  69. if ($this->save([
  70. 'user_name' => $data['user_name'],
  71. 'password' => dyu_hash($data['password']),
  72. ]) === false) {
  73. return false;
  74. }
  75. // 更新session
  76. Session::set('dyu_admin.user', [
  77. 'admin_user_id' => $this['admin_user_id'],
  78. 'user_name' => $data['user_name'],
  79. ]);
  80. return true;
  81. }
  82. }