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