| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User: 中闽 < 1464674022@qq.com >
 
-  * Date: 2023/02/05
 
-  * Time: 20:33
 
-  */
 
- namespace app\admin\controller;
 
- use app\admin\controller\base\Permissions;
 
- use think\Db;
 
- class AdminCate extends Permissions
 
- {
 
-     /**
 
-      * 权限组
 
-      * @return mixed
 
-      */
 
-     public function index()
 
-     {
 
-         $model = new \app\admin\model\AdminCate;
 
-         $post = $this->request->param();
 
-         $where = [];
 
-         if (isset($post['keywords']) and !empty($post['keywords'])) {
 
-             $where['name'] = ['like', '%' . $post['keywords'] . '%'];
 
-         }
 
-         if (isset($post['create_time']) and !empty($post['create_time'])) {
 
-             $min_time = strtotime($post['create_time']);
 
-             $max_time = $min_time + 24 * 60 * 60;
 
-             $where['create_time'] = [['>=', $min_time], ['<=', $max_time]];
 
-         }
 
-         $cate = $model->where($where)->order('create_time desc')->paginate(15, false, ['query' => $this->request->param()]);
 
-         $this->assign('cate', $cate);
 
-         return $this->fetch();
 
-     }
 
-     public function publish()
 
-     {
 
-         $id = $this->request->param('id', 0, 'intval');
 
-         $model = new \app\admin\model\AdminCate();
 
-         if ($id > 0) {
 
-             if ($this->request->isPost()) {
 
-                 $post = $this->request->post();
 
-                 $validate = new \think\Validate([
 
-                     ['name', 'require', '角色名称不能为空'],
 
-                 ]);
 
-                 if (!$validate->check($post)) {
 
-                     $this->error('提交失败:' . $validate->getError());
 
-                 }
 
-                 $name = $model->where(['name' => $post['name'], 'id' => ['neq', $post['id']]])->select();
 
-                 if (!empty($name)) {
 
-                     $this->error('提交失败:该角色名已存在');
 
-                 }
 
-                 //处理选中的权限菜单id,转为字符串
 
-                 if (!empty($post['admin_menu_id'])) {
 
-                     $post['permissions'] = implode(',', $post['admin_menu_id']);
 
-                 } else {
 
-                     $post['permissions'] = '0';
 
-                 }
 
-                 if (false == $model->allowField(true)->save($post, ['id' => $id])) {
 
-                     $this->error('修改失败');
 
-                 } else {
 
-                     $this->success('修改角色信息成功', 'index');
 
-                 }
 
-             } else {
 
-                 $info['cate'] = $model->where('id', $id)->find();
 
-                 if (!empty($info['cate']['permissions'])) {
 
-                     //将菜单id字符串拆分成数组
 
-                     $info['cate']['permissions'] = explode(',', $info['cate']['permissions']);
 
-                 }
 
-                 $menus = Db::name('admin_menu')->where('type', 1)->order('orders asc')->select();
 
-                 $info['menu'] = $this->menulist($menus);
 
-                 $this->assign('info', $info);
 
-                 return $this->fetch();
 
-             }
 
-         } else {
 
-             if ($this->request->isPost()) {
 
-                 $post = $this->request->post();
 
-                 $validate = new \think\Validate([
 
-                     ['name', 'require', '角色名称不能为空'],
 
-                 ]);
 
-                 if (!$validate->check($post)) {
 
-                     $this->error('提交失败:' . $validate->getError());
 
-                 }
 
-                 $name = $model->where('name', $post['name'])->find();
 
-                 if (!empty($name)) {
 
-                     $this->error('提交失败:该角色名已存在');
 
-                 }
 
-                 //处理选中的权限菜单id,转为字符串
 
-                 if (!empty($post['admin_menu_id'])) {
 
-                     $post['permissions'] = implode(',', $post['admin_menu_id']);
 
-                 } else {
 
-                     $post['permissions'] = '0';
 
-                 }
 
-                 if (false == $model->allowField(true)->save($post)) {
 
-                     $this->error('添加角色失败');
 
-                 } else {
 
-                     $this->success('添加角色成功', 'index');
 
-                 }
 
-             } else {
 
-                 $menus = Db::name('admin_menu')->where('type', 1)->order('orders asc')->select();
 
-                 $info['menu'] = $this->menulist($menus);
 
-                 $this->assign('info', $info);
 
-                 return $this->fetch();
 
-             }
 
-         }
 
-     }
 
-     public function preview()
 
-     {
 
-         $id = $this->request->param('id', 0, 'intval');
 
-         $model = new \app\admin\model\AdminCate();
 
-         $info['cate'] = $model->where('id', $id)->find();
 
-         if (!empty($info['cate']['permissions'])) {
 
-             //将菜单id字符串拆分成数组
 
-             $info['cate']['permissions'] = explode(',', $info['cate']['permissions']);
 
-         }
 
-         $menus = Db::name('admin_menu')->where('type', 1)->order('orders asc')->select();
 
-         $info['menu'] = $this->menulist($menus);
 
-         $this->assign('info', $info);
 
-         return $this->fetch();
 
-     }
 
-     protected function menulist($menu, $id = 0, $level = 0)
 
-     {
 
-         static $menus = array();
 
-         $size = count($menus) - 1;
 
-         foreach ($menu as $value) {
 
-             if ($value['pid'] == $id) {
 
-                 $value['level'] = $level + 1;
 
-                 $value['str'] = $level == 0 ? "" : str_repeat('  ', $level) . '└ ';
 
-                 if ($level == 0) {
 
-                     $menus[] = $value;
 
-                 } else {
 
-                     $menus[$size]['list'][] = $value;
 
-                 }
 
-                 $this->menulist($menu, $value['id'], $value['level']);
 
-             }
 
-         }
 
-         return $menus;
 
-     }
 
-     public function delete()
 
-     {
 
-         if ($this->request->isAjax()) {
 
-             $id = $this->request->has('id') ? $this->request->param('id', 0, 'intval') : 0;
 
-             if ($id > 0) {
 
-                 if ($id == 1) {
 
-                     $this->error('超级管理员角色不能删除');
 
-                 }
 
-                 if (false == Db::name('admin_cate')->where('id', $id)->delete()) {
 
-                     $this->error('删除失败');
 
-                 } else {
 
-                     $this->success('删除成功', 'index');
 
-                 }
 
-             } else {
 
-                 $this->error('id不正确');
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |