Login.php 2.7 KB

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