Login.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php namespace Manage\Api;
  2. use Dever;
  3. use Dever\Helper\Str;
  4. use Dever\Helper\Code;
  5. class Login
  6. {
  7. # 获取系统信息
  8. public function getSystem()
  9. {
  10. $system = Dever::input('system', 'is_string', '系统', 'platform');
  11. $system = Dever::db('system', 'manage')->find(array('key' => $system));
  12. if (!$system) {
  13. Dever::error('当前系统不存在');
  14. }
  15. $system['placeholder'] = '请输入' . $system['name'] . '号';
  16. return $system;
  17. }
  18. # 登录
  19. public function act()
  20. {
  21. //$this->checkCode();
  22. $system = Dever::input('system', 'is_string', '系统', 'platform');
  23. $system = Dever::db('system', 'manage')->find(array('key' => $system));
  24. if (!$system) {
  25. Dever::error('登录失败,当前系统不存在');
  26. }
  27. $number = Dever::input('number', '', $system['name'] . '号', 'default');
  28. $info = Dever::db($system['relation_table'])->find(array('number' => $number));
  29. if (!$info) {
  30. Dever::error('登录失败,当前系统设置错误');
  31. }
  32. if ($system['partition'] == 'no') {
  33. # 不分库
  34. $db = Dever::db($system['relation_user_table']);
  35. } else {
  36. # 分库
  37. $db = Dever::db($system['relation_user_table'], '', 'default', array($system['partition'] => $info['id']));
  38. }
  39. $where['mobile'] = Dever::input('mobile', Dever::rule('mobile'), '手机号');
  40. $password = Dever::input('password', 'is_string', '密码');
  41. $admin = $db->find($where);
  42. if (!$admin) {
  43. $total = $db->find(1);
  44. if (!$total) {
  45. $insert['name'] = Str::hide($where['mobile']);
  46. $insert['mobile'] = $where['mobile'];
  47. $insert['role'] = 1;
  48. $insert += Dever::load('common')->createPwd($password);
  49. $id = $db->insert($insert);
  50. $admin = $db->find($id);
  51. } else {
  52. Dever::error('登录失败');
  53. }
  54. }
  55. if (!$admin) {
  56. Dever::error('登录失败,管理员信息无效');
  57. }
  58. if ($admin['status'] == 2) {
  59. Dever::error('登录失败,管理员已被封禁');
  60. }
  61. if (Dever::load('common')->hash($password, $admin['salt']) != $admin['password']) {
  62. Dever::error('登录失败,账号密码无效');
  63. }
  64. return Dever::load('common')->token($admin['id'], $admin['mobile'], $system['id'], $info['id']);
  65. }
  66. private function checkCode()
  67. {
  68. $code = Dever::input('verificationCode');
  69. if (!$code) {
  70. Dever::error('请输入验证码');
  71. }
  72. $save = Dever::session('code');
  73. if ($code != $save) {
  74. Dever::error('验证码错误');
  75. }
  76. }
  77. public function code()
  78. {
  79. echo Dever::session('code', Code::create(), 3600);die;
  80. }
  81. public function out()
  82. {
  83. return 'ok';
  84. }
  85. public function loadMenu()
  86. {
  87. return Dever::load('menu')->init();
  88. }
  89. }