Admin.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <?php
  2. namespace app\admin\model;
  3. use\think\Model;
  4. use think\Session;
  5. use think\cache\driver\Redis;
  6. use think\Loader;
  7. use think\Cache;
  8. class Admin extends Model
  9. {
  10. /**
  11. * 管理员登陆
  12. */
  13. public function login()
  14. {
  15. $code = -2;
  16. // $redis = new Redis;
  17. // 获取的用户信息.
  18. $param = input('post.');
  19. $name = $param['name'];
  20. $password = $param['password'];
  21. // 验证传参.
  22. $data = [
  23. 'name' => $name,
  24. 'password' => $password,
  25. ];
  26. $validate = Loader::validate('Admin');
  27. if (!$validate->scene('login')->check($data)) {
  28. return [
  29. 'code' => $code,
  30. 'msg' => $validate->getError(),
  31. 'data' => [],
  32. ];
  33. }
  34. // 获取用户信息.
  35. $adminInfoWhere['admin_name'] = $name;
  36. $adminInfoWhere['admin_status'] = 1;
  37. $getAdminInfo = $this
  38. ->field('admin_name, admin_identity, admin_phone, admin_nickname, admin_salt, admin_password')
  39. ->where($adminInfoWhere)
  40. ->find();
  41. $adminSalt = $getAdminInfo['admin_salt'];
  42. // print_r(md5(md5($adminSalt.$password)));exit;
  43. // 验证密码.
  44. if (md5(md5($adminSalt.$password)) !== $getAdminInfo['admin_password']) {
  45. return [
  46. 'code' => $code,
  47. 'msg' => lang('EA01001'),
  48. 'data' => [],
  49. ];
  50. }
  51. // 存储用户信息.
  52. $adminInfo = [
  53. 'adminName' => $getAdminInfo['admin_name'],
  54. 'adminId' => $getAdminInfo['admin_identity'],
  55. 'adminNick' => $getAdminInfo['admin_nickname'],
  56. 'lastOperation' => time(),
  57. ];
  58. session('admin', $adminInfo);
  59. // 修改最后操作信息.
  60. $upData = [
  61. 'admin_last_time' => time(),
  62. 'admin_last_ip' => $_SERVER['REMOTE_ADDR'],
  63. ];
  64. $upAdmin = $this
  65. ->where($adminInfoWhere)
  66. ->update($upData);
  67. return [
  68. 'code' => 1,
  69. 'msg' => lang('MA01001'),
  70. 'data' => [],
  71. ];
  72. }//end login()
  73. /**
  74. * 退出登陆
  75. */
  76. public function logout()
  77. {
  78. Session::delete('admin');
  79. return [
  80. 'code' => 1,
  81. 'msg' => lang('MA01003'),
  82. 'data' => [],
  83. ];
  84. }//end logout()
  85. /**
  86. * 修改用户密码
  87. */
  88. public function updatePassword()
  89. {
  90. $code = -2;
  91. // 验证传参.
  92. $param = input('get.');
  93. $oldPassword = $param['oldPassword'];
  94. $newPassword = $param['newPassword'];
  95. $data = [
  96. 'oldPassword' => $oldPassword,
  97. 'newPassword' => $newPassword,
  98. ];
  99. $validate = Loader::validate('Admin');
  100. if (!$validate->scene('updatePassword')->check($data)) {
  101. return [
  102. 'code' => $code,
  103. 'msg' => $validate->getError(),
  104. 'data' => [],
  105. ];
  106. }
  107. // 获取管理员信息.
  108. $adminInfo = session('admin');
  109. $conditions_admin['admin_identity'] = $adminInfo['adminId'];
  110. // 查询用户.
  111. $adminInfo = $this
  112. ->field('admin_salt, admin_password')
  113. ->where($conditions_admin)
  114. ->find();
  115. // 验证旧密码.
  116. $adminSalt = $adminInfo['admin_salt'];
  117. if (md5(md5($adminSalt.$oldPassword)) !== $adminInfo['admin_password']) {
  118. return [
  119. 'code' => $code,
  120. 'msg' => lang('EA01006'),
  121. 'data' => [],
  122. ];
  123. }
  124. // 修改密码.
  125. $newPasswordData = GenPassword($newPassword);
  126. $updateData = [
  127. 'admin_password' => $newPasswordData['password'],
  128. 'admin_salt' => $newPasswordData['encryption'],
  129. ];
  130. $getAdminInfo = $this
  131. ->where($conditions_admin)
  132. ->update($updateData);
  133. if (empty($getAdminInfo) === true) {
  134. return [
  135. 'code' => $code,
  136. 'msg' => lang('EC01002'),
  137. 'data' => [],
  138. ];
  139. } else {
  140. $code = 1;
  141. return [
  142. 'code' => $code,
  143. 'msg' => lang('MC01004'),
  144. 'data' => [],
  145. ];
  146. }
  147. }//end updatePassword()
  148. }