<?php /** * ThinkPHP的命名空间使用规范。注意:命名空间定义必须写在所有的PHP代码之前声明,否则会出错 * 命名空间和实际的控制器文件所在的路径是一致的, */ namespace AdminController; use AdminControllerCommonController; use OrgUtilRbac; class AdminController extends CommonController { protected $page_num = 10; public function index(){ $status = I('status', 0); $keyword = I('keyword', ''); $list = array(); $where = array (); if ($status) { $where['status'] = $status; } $this->assign('status', $status); if ($keyword) { $where['adminname'] = array('like', "%{$keyword}%"); } $this->assign('keyword', $keyword); $model = D('Admin'); $count = $model->where ($where)->count (); // 查询满足要求的总记录数 $page = new AdminOrgPage ($count, $this->page_num); // 实例化分页类 传入总记录数和每页显示的记录数 // 进行分页数据查询 注意limit方法的参数要使用Page类的属性 $order = 'id asc'; $list = $model->where($where)->order($order)->limit($page->firstRow.','.$page->listRows)->select(); $show = $page->pageShow (); // 分页显示输出 $this->assign ( 'list', $list ); // 赋值数据集 $this->assign ( 'page', $show ); // 赋值分页输出 $this->display(); // 输出模板 } public function admin_add(){ $id = I('id', 0); $model = D('Admin'); $info = false; $role_user = array(); if ($id) { $info = $model->find($id); // 角色与用户关系 $role_user = D('Role_admin')->where(array('admin_id' => $id))->getField('role_id', true); } $role_list = D('Role')->where(array('status' => 1))->select(); if ($role_list) { foreach ($role_list as &$val) { if (in_array($val['id'], $role_user)) { $val['is_selected'] = 1; } else { $val['is_selected'] = 0; } } } $this->assign('role_list', $role_list); $this->assign('info', $info); $this->display(); } public function save(){ $id = I('id', 0); $adminname = I('adminname', ''); $password = I('password', ''); $re_password = I('re_password', ''); $role_id = I('role_id', array()); if (empty($adminname)) { $this->out('error', '请填写用户名'); } $model = D('Admin'); // 验证通过 可以进行其他数据操作 unset($_POST['role_id']); if (empty($id)) { $_POST['password'] = md5($password); $_POST['re_password'] = md5($re_password); $_POST['add_time'] = time(); $tmp = $model->create(); if (!$tmp){ // 如果创建失败 表示验证没有通过 输出错误提示信息 $this->out('error', $model->getError()); } $result = $model->add(); $id = $result; } else { $where['adminname'] = $adminname; $where['id'] = array('neq', $id); $info = $model->where($where)->find(); if ($info) { $this->out('error', '该名称已经存在了!'); } if (!empty($password) && !empty($re_password)) { if ($password != $re_password) { $this->out('error', '密码与确认密码不一致!'); } $_POST['password'] = md5($password); unset($_POST['re_password']); } else { unset($_POST['password']); unset($_POST['re_password']); } $result = $model->save($_POST); } $model_role_admin = D('Role_admin'); // 先删除,再插入 ,角色与用户对应关系 $resu = $model_role_admin->where(array('admin_id' => $id))->delete(); if ($role_id) { if ($role_id) { foreach ($role_id as $val) { $data['role_id'] = $val; $data['admin_id'] = $id; $re = $model_role_admin->data($data)->add(); } } } if ($result || $resu || $re) { $this->out('ok', '保存成功'); } else { $this->out('error', '保存失败'); } } // 用户删除 加入回收站 public function delete(){ $id = I('id', 0); if (empty($id)) { $this->out('error', '请选择要删除的记录!'); } $model = D('Admin'); $arr = explode(',', $id); $data['id'] = array('in', $arr); $data['status'] = 2; $result = $model->save($data); if ($result) { $this->out('ok', '删除成功'); } else { $this->out('error', '删除失败'); } } // 用户还原 public function reduction(){ $id = I('id', 0); if (empty($id)) { $this->out('error', '请选择要还原的记录!'); } $model = D('Admin'); $arr = explode(',', $id); $data['id'] = array('in', $arr); $data['status'] = 1; $result = $model->save($data); if ($result) { $this->out('ok', '还原成功'); } else { $this->out('error', '还原失败'); } } // 用户彻底删除 public function delete_really(){ $id = I('id', 0); if (empty($id)) { $this->out('error', '请选择要还原的记录!'); } $model = D('Admin'); $arr = explode(',', $id); $data['id'] = array('in', $arr); $result = $model->where($data)->delete($data); if ($result) { $this->out('ok', '还原成功'); } else { $this->out('error', '还原失败'); } } } 复制代码