• PHP TP框架


    <?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', '还原失败');
            }
        }
    }
    复制代码
  • 相关阅读:
    BZOJ2435 NOI2011道路修建
    BZOJ2431 HAOI2009逆序对数列(动态规划)
    BZOJ2456 mode
    BZOJ2324 ZJOI2011营救皮卡丘(floyd+上下界费用流)
    BZOJ2303 APIO2011方格染色(并查集)
    BZOJ2299 HAOI2011向量(数论)
    BZOJ2169 连边(动态规划)
    BZOJ2159 Crash的文明世界(树形dp+斯特林数)
    洛谷 P1306 斐波那契公约数 解题报告
    洛谷 P2389 电脑班的裁员 解题报告
  • 原文地址:https://www.cnblogs.com/zhuxiaolin/p/5493436.html
Copyright © 2020-2023  润新知