<?php
namespace app\admin\model;
use think\Model;
use think\Db;
class Admin extends Base{
public function profile(){
return $this->hasOne('AuthGroupAccess','uid')->bind('group_id');
}
public function add($data){
db()->startTrans();
$map1 = $this->setAdminArr($data);
$res1 = $this->insertGetId($map1);
$map2 = $this->setAuthGroupAccessArr($res1,$data['group_id']);
$res2 = db('AuthGroupAccess')->insert($map2);
if($res1 && $res2){
db()->commit();
return true;
}else{
db()->rollback();
return false;
}
}
public function getOne($id){
$data = Admin::get($id , 'profile');
$info = [
'id' => $data->id,
'username' => $data->username,
'aid' => $data->group_id
];
return $info;
}
public function edit($data,$id){
$info = Admin::get($id);
$info->data = $this->setAdminArr($data);
unset($info->data['addtime']);
$info->data['id'] = $id;
$info->profile->data = ['group_id'=>$data['group_id']];
$res = $info->together('profile')->save();
return $res;
}
public function del($id){
$info = Admin::get($id);
$res = $info->together('profile')->delete();
return $res;
}
public function editPwd($pwd){
$info = createPassword($pwd);
$res = $this->where('id',session(config('AUTH_KEY')))->update($info);
return $res;
}
protected function setAdminArr($data){
$a = createPassword($data['password']);
$arr = [
'username' => $data['username'],
'password' => $a['password'],
'lasttime' => time(),
'lastip' => request()->ip(),
'encrypt' => $a['encrypt'],
'addtime' => time(),
];
return $arr;
}
protected function setAuthGroupAccessArr($uid , $gid){
$arr = [
'uid' => $uid,
'group_id' => $gid,
];
return $arr;
}
}