| | <?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]; |
| | } |
| |
|
| | } |