| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | 
							- <?php namespace Manage\Api;
 
- use Dever;
 
- use Dever\Helper\Str;
 
- use Dever\Helper\Code;
 
- class Login
 
- {
 
-     # 获取系统信息
 
-     public function getSystem()
 
-     {
 
-         $system = Dever::input('system', 'is_string', '系统', 'platform');
 
-         $system = Dever::db('system', 'manage')->find(array('key' => $system));
 
-         if (!$system) {
 
-             Dever::error('当前系统不存在');
 
-         }
 
-         $system['placeholder'] = '请输入' . $system['name'] . '号';
 
-         return $system;
 
-     }
 
-     # 登录
 
-     public function act()
 
-     {
 
-         //$this->checkCode();
 
-         $system = $this->getSystem();
 
-         $number = Dever::input('number', '', $system['name'] . '号', 'default');
 
-         $info = Dever::db($system['info_table'])->find(array('number' => $number));
 
-         if (!$info) {
 
-             Dever::error('登录失败,当前' . $system['name'] . '号错误');
 
-         }
 
-         if ($system['partition'] == 'no') {
 
-             # 不分库
 
-             $db = Dever::db($system['user_table']);
 
-             $role_db = Dever::db($system['role_table']);
 
-         } else {
 
-             # 分库
 
-             $info['info_id'] = $info['id'];
 
-             $info['partition'] = $system['partition'];
 
-             $info['system_id'] = $system['id'];
 
-             $db = Dever::db($system['user_table'], '', 'default', Dever::load('common', 'manage')->system($info));
 
-             $role_db = Dever::db($system['role_table'], '', 'default', Dever::load('common', 'manage')->system($info));
 
-         }
 
-         $where['mobile'] = Dever::input('mobile', Dever::rule('mobile'), '手机号');
 
-         $password = Dever::input('password', 'is_string', '密码');
 
-         $admin = $db->find($where);
 
-         if (!$admin) {
 
-             $total = $db->find(1);
 
-             if (!$total) {
 
-                 $insert['name'] = Str::hide($where['mobile']);
 
-                 $insert['mobile'] = $where['mobile'];
 
-                 $insert['role'] = 1;
 
-                 $insert += Dever::load('common', 'manage')->createPwd($password);
 
-                 $id = $db->insert($insert);
 
-                 $admin = $db->find($id);
 
-             } else {
 
-                 Dever::error('登录失败');
 
-             }
 
-         }
 
-         if (!$admin) {
 
-             Dever::error('登录失败,管理员信息无效');
 
-         }
 
-         if ($admin['status'] == 2) {
 
-             Dever::error('登录失败,账户已被封禁');
 
-         }
 
-         if (Dever::load('common', 'manage')->hash($password, $admin['salt']) != $admin['password']) {
 
-             Dever::error('登录失败,账户密码无效');
 
-         }
 
-         # 根据角色获取module_id
 
-         $system_user = Dever::db('system_user', 'manage')->find(array('uid' => $admin['id'], 'system_id' => $system['id'], 'info_id' => $info['id']));
 
-         $module_id = $data_id = 0;
 
-         if ($system_user) {
 
-             $module_id = $system_user['module_id'];
 
-             $data_id = $system_user['data_id'];
 
-         } elseif ($admin['role']) {
 
-             $module = '';
 
-             $role = $role_db->select(array('id' => array('in', $admin['role'])));
 
-             foreach ($role as $k => $v) {
 
-                 if ($v['module']) {
 
-                     $module .= $v['module'] . ',';
 
-                 }
 
-             }
 
-             if ($module) {
 
-                 $where['id'] = array('in', $module);
 
-             } else {
 
-                 $where['system'] = $system['key'];
 
-             }
 
-             $module = Dever::db('system_module', 'manage')->select($where);
 
-             if ($module) {
 
-                 $module_id = $module[0]['id'];
 
-                 $child = Dever::db($module[0]['data_table'])->select([]);
 
-                 if ($child) {
 
-                     if ($admin['module_data']) {
 
-                         foreach ($child as $k => $v) {
 
-                             $key = $module_id . '-' . $v['id'];
 
-                             if (strstr($admin['module_data'], $key)) {
 
-                                 $data_id = $v['id'];
 
-                                 break;
 
-                             }
 
-                         }
 
-                     } else {
 
-                         $data_id = $child[0]['id'];
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         if (!$module_id || !$data_id) {
 
-             Dever::error('登录失败,账户无效');
 
-         }
 
-         return Dever::load('common', 'manage')->token($admin['id'], $admin['mobile'], $system['partition'], $system['id'], $info['id'], $module_id, $data_id);
 
-     }
 
-     private function checkCode()
 
-     {
 
-         $code = Dever::input('verificationCode');
 
-         if (!$code) {
 
-             Dever::error('请输入验证码');
 
-         }
 
-         $save = Dever::session('code');
 
-         if ($code != $save) {
 
-             Dever::error('验证码错误');
 
-         }
 
-     }
 
-     public function code()
 
-     {
 
-         echo Dever::session('code', Code::create(), 3600);die;
 
-     }
 
-     public function out()
 
-     {
 
-         return 'ok';
 
-     }
 
-     public function loadMenu()
 
-     {
 
-         return Dever::load('menu')->init();
 
-     }
 
- }
 
 
  |