| <?php |
| namespace app\common\model; |
| use think\Db; |
|
|
| class Admin extends Base { |
| |
| protected $name = 'admin'; |
|
|
| |
| protected $createTime = ''; |
| protected $updateTime = ''; |
|
|
| |
| protected $auto = []; |
| protected $insert = []; |
| protected $update = []; |
|
|
| public function getAdminStatusTextAttr($val,$data) |
| { |
| $arr = [0=>lang('disable'),1=>lang('enable')]; |
| return $arr[$data['admin_status']]; |
| } |
|
|
| public function listData($where,$order,$page,$limit=20) |
| { |
| $page = $page > 0 ? (int)$page : 1; |
| $limit = $limit ? (int)$limit : 20; |
| $total = $this->where($where)->count(); |
| $list = Db::name('Admin')->where($where)->order($order)->page($page)->limit($limit)->select(); |
| return ['code'=>1,'msg'=>lang('data_list'),'page'=>$page,'pagecount'=>ceil($total/$limit),'limit'=>$limit,'total'=>$total,'list'=>$list]; |
| } |
|
|
| public function infoData($where,$field='*') |
| { |
| if(empty($where) || !is_array($where)){ |
| return ['code'=>1001,'msg'=>lang('param_err')]; |
| } |
| $info = $this->field($field)->where($where)->find(); |
|
|
| if(empty($info)){ |
| return ['code'=>1002,'msg'=>lang('obtain_err')]; |
| } |
| $info = $info->toArray(); |
|
|
| $info['admin_pwd'] = ''; |
| return ['code'=>1,'msg'=>lang('obtain_ok'),'info'=>$info]; |
| } |
|
|
| public function saveData($data) |
| { |
| if(!empty($data['admin_auth'])){ |
| $data['admin_auth'] = ','.join(',',$data['admin_auth']).','; |
| } |
| else{ |
| $data['admin_auth'] = ''; |
| } |
| $validate = \think\Loader::validate('Admin'); |
| if(!empty($data['admin_id'])){ |
| if(!$validate->scene('edit')->check($data)){ |
| return ['code'=>1001,'msg'=>lang('param_err').':'.$validate->getError() ]; |
| } |
|
|
| if(empty($data['admin_pwd'])){ |
| unset($data['admin_pwd']); |
| } |
| else{ |
| $data['admin_pwd'] = md5($data['admin_pwd']); |
| } |
| $where=[]; |
| $where['admin_id'] = ['eq',$data['admin_id']]; |
| $res = $this->where($where)->update($data); |
| } |
| else{ |
| if(!$validate->scene('edit')->check($data)){ |
| return ['code'=>1002,'msg'=>lang('param_err').':'.$validate->getError() ]; |
| } |
|
|
| $data['admin_pwd'] = md5($data['admin_pwd']); |
| $res = $this->insert($data); |
| } |
| if(false === $res){ |
| return ['code'=>1003,'msg'=>''.$this->getError() ]; |
| } |
| return ['code'=>1,'msg'=>lang('save_ok')]; |
| } |
|
|
| public function delData($where) |
| { |
| $res = $this->where($where)->delete(); |
| if($res===false){ |
| return ['code'=>1001,'msg'=>lang('del_err').':'.$this->getError() ]; |
| } |
| return ['code'=>1,'msg'=>lang('del_ok')]; |
| } |
|
|
| public function fieldData($where,$col,$val) |
| { |
| if(!isset($col) || !isset($val)){ |
| return ['code'=>1001,'msg'=>lang('param_err')]; |
| } |
|
|
| $data = []; |
| $data[$col] = $val; |
| $res = $this->where($where)->update($data); |
| if($res===false){ |
| return ['code'=>1002,'msg'=>lang('set_err').':'.$this->getError() ]; |
| } |
| return ['code'=>1,'msg'=>lang('set_ok')]; |
| } |
|
|
| public function login($data) |
| { |
| if(empty($data['admin_name']) || empty($data['admin_pwd']) ) { |
| return ['code'=>1001,'msg'=>lang('param_err')]; |
| } |
|
|
| if($GLOBALS['config']['app']['admin_login_verify'] !='0'){ |
| if(!captcha_check($data['verify'])){ |
| return ['code'=>1002,'msg'=>lang('verify_err')]; |
| } |
| } |
|
|
|
|
| $where=[]; |
| $where['admin_name'] = ['eq',$data['admin_name']]; |
| $where['admin_pwd'] = ['eq',md5($data['admin_pwd'])]; |
| $where['admin_status'] = ['eq',1]; |
|
|
| $row = $this->where($where)->find(); |
|
|
| if(empty($row)){ |
| return ['code'=>1003,'msg'=>lang('access_or_pass_err')]; |
| } |
| $random = md5(rand(10000000,99999999)); |
| $update['admin_login_ip'] = mac_get_ip_long(); |
| $update['admin_login_time'] = time(); |
| $update['admin_login_num'] = $row['admin_login_num'] + 1; |
| $update['admin_random'] = $random; |
| $update['admin_last_login_time'] = $row['admin_login_time']; |
| $update['admin_last_login_ip'] = $row['admin_login_ip']; |
|
|
| $res = $this->where($where)->update($update); |
| if($res===false){ |
| return ['code'=>1004,'msg'=>lang('model/admin/update_login_err')]; |
| } |
|
|
| session('admin_auth','1'); |
| session('admin_info',$row->toArray()); |
|
|
| |
| |
| |
|
|
| return ['code'=>1,'msg'=>lang('model/admin/login_ok')]; |
| } |
|
|
| public function logout() |
| { |
| session('admin_auth',null); |
| session('admin_info',null); |
| |
| |
| |
|
|
| return ['code'=>1,'msg'=>lang('model/admin/logout_ok')]; |
| } |
|
|
| public function checkLogin() |
| { |
| if(session('admin_auth')!=='1'){ |
| return ['code'=>1009,'msg'=>lang('model/admin/not_login')]; |
| } |
| $info = session('admin_info'); |
| if(empty($info)){ |
| return ['code'=>1002,'msg'=>lang('model/admin/not_login')]; |
| } |
| return ['code'=>1,'msg'=>lang('model/admin/haved_login'),'info'=>$info]; |
| } |
|
|
| public function checkLogin2() |
| { |
| $admin_id = cookie('admin_id'); |
| $admin_name = cookie('admin_name'); |
| $admin_check = cookie('admin_check'); |
|
|
| if(empty($admin_id) || empty($admin_name) || empty($admin_check)){ |
| return ['code'=>1001, 'msg'=>lang('model/admin/not_login')]; |
| } |
|
|
| $where = []; |
| $where['admin_id'] = $admin_id; |
| $where['admin_name'] = $admin_name; |
| $where['admin_status'] =1 ; |
|
|
| $info = $this->where($where)->find(); |
| if(empty($info)){ |
| return ['code'=>1002,'msg'=>lang('model/admin/not_login')]; |
| } |
| $info = $info->toArray(); |
|
|
| $login_check = md5($info['admin_random'] .'-'. $info['admin_name'] .'-'.$info['admin_id'] .'-'.mac_get_client_ip() ) ; |
| if($login_check != $admin_check){ |
| return ['code'=>1003,'msg'=>lang('model/admin/not_login')]; |
| } |
| return ['code'=>1,'msg'=>lang('model/admin/haved_login'),'info'=>$info]; |
| } |
|
|
| } |