210 lines
7.7 KiB
PHP
210 lines
7.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* 管理员控制器
|
|
*/
|
|
namespace app\admin\controller;
|
|
use Repository\LogRepository;
|
|
|
|
class Admins extends Base
|
|
{
|
|
// 管理员列表
|
|
public function index()
|
|
{
|
|
if(request()->isAjax()){
|
|
|
|
$param = input('param.');
|
|
|
|
// $limit = $param['pageSize'];
|
|
// $offset = ($param['pageNumber'] - 1) * $limit;
|
|
|
|
$where = [];
|
|
if (!empty($param['searchText'])) {
|
|
$where['user_name'] = ['like', '%' . $param['searchText'] . '%'];
|
|
}
|
|
|
|
$result = db('admins')
|
|
->where($where)
|
|
// ->limit($offset, $limit)
|
|
->select();
|
|
foreach($result as $key=>$vo){
|
|
// 优化显示状态
|
|
if(1 == $vo['status']){
|
|
$result[$key]['status'] = '<span class="label label-primary">启用</span>';
|
|
}else{
|
|
$result[$key]['status'] = '<span class="label label-danger">禁用</span>';
|
|
}
|
|
|
|
// 获取权限名称
|
|
$role = db('admin_role')
|
|
->alias('a')
|
|
->where('admin_id', $vo['id'])
|
|
->join('role r',"r.id=a.role_id")
|
|
->field('name')
|
|
->find();
|
|
$result[$key]['role_name'] = $role ? $role['name'] : '暂无角色';
|
|
|
|
// 查找平台
|
|
$platform = db('groups')->where('admin_id', $vo['id'])->find();
|
|
$result[$key]['platform_name'] = $platform ? $platform['name'] : '暂无';
|
|
if ($role['name'] == '组长') {
|
|
unset($result[$key]);continue;
|
|
$platform = db('organize')->where('admin_id', $vo['id'])->find();
|
|
if ($platform) {
|
|
$platform = db('groups')->where('id', $platform['group_id'])->find();
|
|
}
|
|
$result[$key]['platform_name'] = $platform ? $platform['name'] : '暂无';
|
|
}
|
|
|
|
|
|
// 上次登录时间
|
|
$result[$key]['last_login_time'] = empty($vo['last_login_time']) ? '' : date('Y-m-d H:i:s', $vo['last_login_time']);
|
|
|
|
// 生成操作按钮
|
|
if(1 != $vo['id']){
|
|
$result[$key]['operate'] = $this->makeBtn($vo['id']);
|
|
}
|
|
|
|
}
|
|
|
|
$return['total'] = db('admins')->where($where)->count(); //总数据
|
|
$return['rows'] = array_values($result);
|
|
|
|
return json($return);
|
|
|
|
}
|
|
|
|
return $this->fetch();
|
|
}
|
|
|
|
// // 添加管理员
|
|
// public function addAdmin()
|
|
// {
|
|
// if(request()->isPost()){
|
|
|
|
// $param = input('post.');
|
|
|
|
// $rule = "/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/";
|
|
|
|
// if (!preg_match($rule, $param['password'])) {
|
|
// return json(['code' => -2, 'data' => '', 'msg' => '密码必须是8-16位的字母和数字组成!']);
|
|
// };
|
|
|
|
// $has = db('admins')->field('id')->where('user_name', $param['user_name'])->find();
|
|
// if(!empty($has)){
|
|
// return json(['code' => -1, 'data' => '', 'msg' => '该管理员已经存在']);
|
|
// }
|
|
|
|
// $param['password'] = password_hash($param['password'], PASSWORD_DEFAULT);
|
|
// if (!$param['role']) return json(['code' => -3, 'data' => '', 'msg' => '角色不能为空']);
|
|
|
|
// try{
|
|
// $role_id = $param['role'];
|
|
// unset($param['role']);
|
|
// $admin_id = db('admins')->insertGetId($param);
|
|
// db('admin_role')->insertGetId(['role_id' => $role_id, 'admin_id' => $admin_id]);
|
|
// }catch(\Exception $e){
|
|
// return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
|
|
// }
|
|
// LogRepository::write('系统管理', '添加管理员成功');
|
|
// return json(['code' => 1, 'data' => '', 'msg' => '添加管理员成功']);
|
|
// }
|
|
|
|
// // 角色
|
|
// $role = db('role')->where('status', 1)->select();
|
|
// $this->assign([
|
|
// 'status' => config('kf_status'),
|
|
// 'role' => $role,
|
|
// ]);
|
|
|
|
// return $this->fetch('addadmin');
|
|
// }
|
|
|
|
// 编辑管理员
|
|
public function editAdmin()
|
|
{
|
|
if(request()->isAjax()){
|
|
|
|
$param = input('post.');
|
|
$param['user_name'] = htmlentities($param['user_name']);
|
|
|
|
// 检测用户修改的管理员是否重复
|
|
$has = db('admins')->where('user_name', $param['user_name'])->where('id', '<>', $param['id'])->find();
|
|
if(!empty($has)){
|
|
return json(['code' => -1, 'data' => '', 'msg' => '该管理员已经存在']);
|
|
}
|
|
|
|
// 修改用户密码
|
|
if(empty($param['password'])){
|
|
unset($param['password']);
|
|
}else{
|
|
$rule = "/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/";
|
|
|
|
if (!preg_match($rule, $param['password'])) {
|
|
return json(['code' => -2, 'data' => '', 'msg' => '密码必须是8-16位的字母和数字组成!']);
|
|
}
|
|
$param['password'] = password_hash($param['password'], PASSWORD_DEFAULT);
|
|
}
|
|
|
|
// $param['password'] = password_hash($param['password'], PASSWORD_DEFAULT);
|
|
// if (!$param['role']) return json(['code' => -3, 'data' => '', 'msg' => '角色不能为空']);
|
|
|
|
try{
|
|
// $role_id = $param['role'];
|
|
// unset($param['role']);
|
|
db('admins')->where('id', $param['id'])->update($param);
|
|
// // 角色
|
|
// $role_info = db('admin_role')->where('admin_id', $param['id'])->find();
|
|
// if ($role_info) {
|
|
// db('admin_role')->where('admin_id', $param['id'])->update(['role_id' => $role_id]);
|
|
// } else {
|
|
// db('admin_role')->insertGetId(['role_id' => $role_id, 'admin_id' => $param['id']]);
|
|
// }
|
|
|
|
}catch(\Exception $e){
|
|
return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
|
|
}
|
|
LogRepository::write('系统管理', '编辑管理员成功');
|
|
return json(['code' => 1, 'data' => '', 'msg' => '编辑管理员成功']);
|
|
}
|
|
|
|
$id = input('param.id/d');
|
|
$info = db('admins')->where('id', $id)->find();
|
|
// 角色
|
|
$role_info = db('admin_role')->where('admin_id', $id)->find();
|
|
$role = db('role')->where('status', 1)->select();
|
|
|
|
$this->assign([
|
|
'info' => $info,
|
|
'status' => config('kf_status'),
|
|
'role' => $role,
|
|
'role_info' => $role_info,
|
|
]);
|
|
return $this->fetch('editadmin');
|
|
}
|
|
|
|
// // 删除管理员
|
|
// public function delAdmin()
|
|
// {
|
|
// if(request()->isAjax()){
|
|
// $id = input('param.id/d');
|
|
|
|
// try{
|
|
// db('admins')->where('id', $id)->delete();
|
|
// }catch(\Exception $e){
|
|
// return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
|
|
// }
|
|
// LogRepository::write('系统管理', '删除成功');
|
|
// return json(['code' => 1, 'data' => '', 'msg' => '删除成功']);
|
|
// }
|
|
// }
|
|
|
|
// 生成按钮
|
|
private function makeBtn($id)
|
|
{
|
|
$operate = '<a href="' . url('admins/editadmin', ['id' => $id]) . '">';
|
|
$operate .= '<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 编辑</button></a> ';
|
|
|
|
return $operate;
|
|
}
|
|
} |