<?php
namespace app\admin\controller;
use app\common\controller\Base;use app\admin\model\Admin as AD;use WhiteHat101\Crypt\APR1_MD5;
class Index extends Base
{
public function index()
{
$count = AD::where('id','>',2)->count();
$list['title'] = '管理员列表';
$list['count'] = $count;
$this->assign('list',$list);
return $this->fetch();
}
public function ajaxData()
{
$getdt = request()->param();
$order = $getdt['order'][0]['dir'];
$order_column = $getdt['order'][0]['column'];
$order_field = $getdt['columns'][$order_column]['name'];
if($order_field=='')
{
$order_field = $getdt['columns'][$order_column]['data'];
}
$limit_start = $getdt['start'];
$limit_length = $getdt['length'];
$search = $getdt['search']['value'];
$data = AD::field('id,school,xingming,sex,username,phone,shengri,denglucishu,status,create_time')
->where('id','>','2')
->with(['adSchool'=>function($query){
$query->field('id,jiancheng');
}])
->order([$order_field=>$order])
->limit($limit_start,$limit_length)
->select();
$cnt = $data->count();
if($search){
$data = AD::field('id,school,xingming,sex,username,phone,shengri,denglucishu,status,create_time')
->where('id','>','1')
->with(['adSchool'=>function($query){
$query->field('jiancheng');
}])
->order([$order_field=>$order])
->limit($limit_start,$limit_length)
->where('username|xingming','like','%'.$search.'%')
->select();
}
$datacnt = $data->count();
$data = $data->append(['groupnames']);
$data = [
'draw'=> $getdt["draw"] , 'recordsTotal'=>$datacnt, 'recordsFiltered'=>$cnt, 'data'=>$data, ];
return json($data);
}
public function create()
{
$list['title'] = '添加管理员';
$this->assign('list',$list);
return $this->fetch();
}
public function save()
{
$md5 = new APR1_MD5();
$validate = new \app\admin\validate\Admin;
$list = request()->only(['xingming','school','username','sex','shengri','phone','beizhu','group_id'],'post');
$list['password'] = $md5->hash('123456');
$result = $validate->check($list);
$msg = $validate->getError();
if(!$result){
return json(['msg'=>$msg,'val'=>0]);;
}
$admin = new AD();
$admindata = $admin->create($list);
foreach ($list['group_id'] as $key => $value) {
$groupids[]=['group_id'=>$value];
}
$authgroupdata = $admindata->authgroup()->saveAll($groupids);
$authgroupdata ? $data=['msg'=>'添加成功','val'=>1] : $data=['msg'=>'数据处理错误','val'=>0];
return json($data);
}
public function read($id)
{
$list = AD::where('id',$id)->find();
$this->assign('list',$list);
return $this->fetch();
}
public function edit($id)
{
$list = AD::where('id',$id)
->field('id,school,username,xingming,sex,shengri,phone,beizhu')
->find();
$list = $list->append(['groupids']);
$this->assign('list',$list);
return $this->fetch();
}
public function update($id)
{
$validate = new \app\admin\validate\Admin;
$list = request()->only(['xingming','school','username','sex','shengri','phone','beizhu','group_id'],'put');
$result = $validate->check($list);
$msg = $validate->getError();
if(!$result){
return json(['msg'=>$msg,'val'=>0]);;
}
$list['id'] = $id;
$admindata = AD::update($list);
$aa = $admindata->authgroup()->delete();
foreach ($list['group_id'] as $key => $value) {
$groupids[]=['group_id'=>$value];
}
$groupdata = $admindata->authgroup()->saveAll($groupids);
$admindata&&$groupdata ? $data=['msg'=>'更新成功','val'=>1] : $data=['msg'=>'数据处理错误','val'=>0];
return json($data);
}
public function delete($id)
{
if($id == 'm')
{
$id = request()->delete('ids/a');
}
$data = AD::destroy($id);
$data ? $data=['msg'=>'删除成功','val'=>1] : $data=['msg'=>'数据处理错误','val'=>0];
return json($data);
}
public function setStatus()
{
$id = request()->post('id');
$value = request()->post('value');
$data = AD::where('id',$id)->update(['status'=>$value]);
$data ? $data=['msg'=>'状态设置成功','val'=>1] : $data=['msg'=>'数据处理错误','val'=>0];
return json($data);
}
public function resetpassword($id)
{
$md5 = new APR1_MD5();
$password = $md5->hash('123456');
$data = AD::where('id',$id)->update(['password'=>$password]);
$data ? $data=['msg'=>'密码已经重置为:<br>123456','val'=>1] : $data=['msg'=>'数据处理错误','val'=>0];
return json($data);
}
public function editPassword($id)
{
$list['id'] = $id;
$this->assign('list',$list);
return $this->fetch();
}
public function updatePassword($id)
{
$list = request()->post();
$validate = new \app\admin\validate\SetPassword;
$result = $validate->check($list);
$msg = $validate->getError();
if(!$result){
return json(['msg'=>$msg,'val'=>0]);;
}
$serpassword = AD::where('id',$id)->value('password');
$md5 = new APR1_MD5();
$check = $md5->check($list['oldpassword'],$serpassword);
if(!$check)
{
$data=['msg'=>'旧密码错误','val'=>0];
return json($data);
}
$password = $md5->hash($list['newpassword']);
$data = AD::update(['id'=>$id,'password'=>$password]);
$data ? $data=['msg'=>'修改成功','val'=>1] : $data=['msg'=>'数据处理错误','val'=>0];
return json($data);
}
}