随心的博客

好记性不如个烂笔头,随心记录!

返回顶部

TP6管理后台实战第三天

第三天目标:

1、管理员添加,修改,删除
2、角色管理
3、菜单权限管理
4、日志管理
 

进入开发:

一、先处理一些杂项,没在计划内的

 1、管理员修改密码 -- ok
 2、管理员个人信息展示 -- ok
 
针对开发过程中跟计划有些出入的地方,我的原则就是,如果确实需要,并且需要的时间不超过2小时。
那就直接弄了,不用在报备或者跟领导请示。领导也很忙的,如果内容超过2小时,记录到工作内容里面即可。
 
附代码:Index.php控制器文件
 
 1   /**
 2      * 管理员个人信息
 3      */
 4     public function profile()
 5     {
 6         
 7         $return_data = array(
 8             'admin_info' => $this->admin_info,
 9             'admin_id'   => $this->admin_id
10         );
11 
12        return view("admin/profile",$return_data);
13     }
14 
15 //修改密码模板
16     public function changePass()
17     {
18         $return_data = array(
19             'admin_info' => $this->admin_info,
20             'admin_id'   => $this->admin_id
21         );
22 
23        return view("admin/change_password",$return_data);
24     }
25     //修改密码操作
26     public function changePassAct()
27     {
28        $data = request()->param();
29 
30        if ($data['pass'] != $data['repass'])  return json(array('status'=>'FAIL','msg'=>'两次密码输入不一致!'));
31        if (empty($data['pass']))  return json(array('status'=>'FAIL','msg'=>'密码不能为空!'));
32 
35        $res = $this->adminModel->changePassAct($this->admin_id,$data['pass']);
36        return json($res);
37     }
View Code

 

二、管理员列表,管理员查询搜索功能,分页功能

搜索项:账号 手机 姓名 账户状态 -- ok
列表项: ID,账号 ,姓名,手机号,部门,角色,账户状态,添加时间 -- ok
 
附控制器Admin.php 文件
1 /**
  2      * 管理员列表
  3      */
  4     public function adminList()
  5     {
  6         if (!$this->access)  exit('无此访问权限!');
  7 
  8         $data = request()->param();
  9         $return_data = array(
 10             'admin_info' => $this->admin_info,
 11             'admin_id'   => $this->admin_id
 12         );
 13 
 14         //搜索条件
 15         $whereCond = array();
 16         if (!empty($data['s_admin_name']))  $whereCond[] = array('admin_name','like','%'.$data['s_admin_name'].'%');
 17         if (!empty($data['s_admin_truename'])) $whereCond[] = array('admin_truename','=',$data['s_admin_truename']);
 18         if (!empty($data['s_admin_mobile'])) $whereCond[] = array('admin_mobile','=',$data['s_admin_mobile']);
 19         if (!empty($data['s_admin_status'])) $whereCond[] = array('admin_status','=',$data['s_admin_status']);
 20 
 21         //搜索默认值
 22         $return_data['s_admin_name']     = empty($data['s_admin_name'])?'':$data['s_admin_name'];
 23         $return_data['s_admin_truename'] = empty($data['s_admin_truename'])?'':$data['s_admin_truename'];
 24         $return_data['s_admin_mobile']   = empty($data['s_admin_mobile'])?'':$data['s_admin_mobile'];
 25         $return_data['s_admin_status']   = empty($data['s_admin_status'])?'':$data['s_admin_status'];
 26 
 27 
 28         //获取列表
 29         $admin_list = Db::name('yphp_admin')->where($whereCond)->order('admin_id', 'desc')->paginate(array(
 30             'list_rows' => 10,
 31             'query'     => $data
 32         ))->each(function($item,$key){
 33 
 34             $item['admin_role_name'] = Db::name('yphp_admin_role')->where("role_id",$item['admin_role_id'])->value('role_name');
 35             if ($item['admin_role_id'] == 0) $item['admin_role_name'] = '超级管理员';
 36             return $item;
 37         });
 38         $return_data['admin_list'] = $admin_list;
 39         // 获取分页显示
 40         $return_data['page'] = $admin_list->render();
 41 
 42        return view("admin/admin_list",$return_data);
 43     }
View Code

 

视图文件代码就不贴出来了,直接去github上面看吧

三、管理员添加,编辑,删除功能

删除功能 -- ok
管理员添加 -- ok
管理员编辑-- ok
 
附代码
 
 1 /**
 2      * 删除管理员
 3      */
 4     public function adminDel()
 5     {
 6         if (!$this->access)  return json(array('status'=>'FAIL','msg'=>'无此访问权限!')); 
 7 
 8        $s_admin_id  = request()->param('s_admin_id');
 9        if (empty($s_admin_id)) return json(array('status'=>'FAIL','msg'=>'ID不能为空!'));
10        if($s_admin_id == $this->admin_id) return json(array('status'=>'FAIL','msg'=>'你不能删除自己!'));
11        if($s_admin_id == 1) return json(array('status'=>'FAIL','msg'=>'超级管理员不能被删除!'));
12 
13        Db::name('yphp_admin')->where("admin_id",$s_admin_id)->delete();
14 
15        return json(array('status'=>'SUCCESS','msg'=>'管理员删除成功'));
16     }
17 
18     /**
19      * 添加管理员
20      */
21     public function adminAdd()
22     {
23         if (!$this->access)  return json(array('status'=>'FAIL','msg'=>'无此访问权限!'));
24 
25        $s_admin_id = request()->param('s_admin_id');
26 
27        //获取角色
28         $role_list = Db::name('yphp_admin_role')->order('role_id', 'asc')->select();
29 
30        if (empty($s_admin_id)) 
31        {
32            return view("admin/admin_add",array('role_list'=>$role_list));
33        }
34        else
35        {
36          $info = Db::name('yphp_admin')->where('admin_id',$s_admin_id)->find();
37 
38          return view("admin/admin_edit",array('info'=>$info,'role_list'=>$role_list));
39        }
40        
41     }
42     /**
43      * 添加管理员操作
44      */
45     public function adminAddAct()
46     {
47        $data = request()->param();
48 
49        if (!empty($data['pass'])) 
50        {
51            if($data['pass'] != $data['repass'])
52            {
53              return json(array('status'=>'FAIL','msg'=>'两次密码输入不一致!'));
54            }
55        }
56 
57        if(empty($data['s_admin_id']))
58        {
59          $add_res = $this->adminModel->addItem($data);
60          return json($add_res);
61 
62        }
63        else
64        {
65          //修改管理员
66          $add_res = $this->adminModel->updateItem($data);
67          return json($add_res);
68        }
69     }
View Code

 

四 、角色管理

搜索项:角色名称 -- ok
列表项:ID,角色名称,角色描述,角色权限,操作 --ok
角色分页 -- ok
角色添加 -- ok
角色编辑 -- ok
角色删除 -- ok
 
附代码:
1  /**
  2      * 角色列表
  3      */
  4     public function roleList()
  5     {
  6 
  7         if (!$this->access)  exit('无此访问权限!');
  8 
  9         $data = request()->param();
 10 
 11         $return_data = array(
 12             'admin_info' => $this->admin_info,
 13             'admin_id'   => $this->admin_id
 14         );
 15 
 16         //搜索条件
 17         $whereCond = array();
 18         if (!empty($data['role_name']))  $whereCond[] = array('role_name','=',$data['role_name']);
 19       
 20         //搜索默认值
 21         $return_data['role_name']     = empty($data['role_name'])?'':$data['role_name'];
 22 
 23         //获取列表
 24         $data_list = Db::name('yphp_admin_role')->where($whereCond)->order('role_id', 'desc')->paginate(array(
 25             'list_rows' => 10,
 26             'query'     => $data
 27         ));
 28         $return_data['data_list'] = $data_list;
 29         // 获取分页显示
 30         $return_data['page'] = $data_list->render();
 31 
 32 
 33        return view("admin/role_list",$return_data);
 34     }
 35 
 36     /**
 37      * 删除角色
 38      */
 39     public function roleDel()
 40     {
 41     
 42         if (!$this->access)  return json(array('status'=>'FAIL','msg'=>'无此访问权限!')); 
 43 
 44        $role_id  = request()->param('role_id');
 45        if (empty($role_id)) return json(array('status'=>'FAIL','msg'=>'ID不能为空!'));
 46 
 47        //判断该角色下面没有管理员,则可进行删除
 48        $num = Db::name('yphp_admin')->where("admin_role_id",$role_id)->count();
 49        if ($num > 0) {
 50           return json(array('status'=>'FAIL','msg'=>'该角色下面有管理员存在,不能被删除!'));
 51        }
 52 
 53        if($role_id == 1)
 54        {
 55             return json(array('status'=>'FAIL','msg'=>'系统管理员不能被删除!'));
 56        }
 57 
 58        Db::name('yphp_admin_role')->where("role_id",$role_id)->delete();
 59 
 60        return json(array('status'=>'SUCCESS','msg'=>'角色删除成功'));
 61     }
 62 
 63      /**
 64      * 添加角色
 65      */
 66     public function roleAdd()
 67     {
 68         
 69       if (!$this->access)  exit('无此访问权限!');
 70 
 71        $role_id = request()->param('role_id');
 72 
 73        //获取当前可用的所有菜单权限
 74        //获取第一级菜单
 75         $data_list = Db::name('yphp_admin_power')->where("pstatus",1)->where("ptype",1)->order('porder', 'desc')->select()->toArray();
 76         foreach ($data_list as $key => $val) 
 77         {
 78             //获取二级菜单
 79             $data_list[$key]['child'] = Db::name('yphp_admin_power')->where("pstatus",1)->where("parent_id",$val['id'])->where("ptype",2)->order('porder', 'desc')->select()->toArray();
 80             //获取三级菜单
 81             foreach ($data_list[$key]['child'] as $key2 => $val2) 
 82             {
 83                 $data_list[$key]['child'][$key2]['child'] = Db::name('yphp_admin_power')->where("pstatus",1)->where("parent_id",$val2['id'])->where("ptype",3)->order('porder', 'desc')->select()->toArray();
 84             }
 85         }
 86         $return_data['power_list'] = $data_list;
 87 
 88        if (empty($role_id)) 
 89        {
 90            return view("admin/role_add",$return_data);
 91        }
 92        else
 93        {
 94 
 95          $info = Db::name('yphp_admin_role')->where('role_id',$role_id)->find();
 96 
 97          if ($info['role_powers'] != 'all') {
 98 
 99              $info['role_powers_check'] = explode(",", $info['role_powers']);
100          }else{
101             $info['role_powers_check'] = [];
102          }
103 
104          return view("admin/role_edit",array('info'=>$info,'power_list'=>$return_data['power_list']));
105        }
106        
107     }
108     /**
109      * 添加/修改角色操作
110      */
111     public function RoleAddAct()
112     {
113        $data = request()->param();
114 
115        if (empty($data['role_powers'])) 
116        {
117           return json(array('status'=>'FAIL','msg'=>'请选择权限类型'));
118        }
119 
120        if(empty($data['role_id']))
121        {
122          $info = Db::name('yphp_admin_role')->where("role_name",$data['role_name'])->find();
123          if(!empty($info))
124          {
125             return json(array('status'=>'FAIL','msg'=>'该角色已存在,请更换角色名'));
126          }
127 
128          if($data['role_powers'] == 'custom')
129          {
130             $data['role_powers'] = implode(",", $data['ids']);
131          }
132 
133          $role_id = Db::name('yphp_admin_role')->strict(false)->insertGetId($data);
134          if(empty($role_id)){
135             return json(array('status'=>'FAIL','msg'=>'添加角色失败!'));
136          }else{
137             return json(array('status'=>'SUCCESS','msg'=>'添加角色成功!'));
138          }
139        }
140        else
141        {
142 
143          if($data['role_powers'] == 'custom')
144          {
145             $data['role_powers'] = implode(",", $data['ids']);
146          }
147 
148          //修改管理员
149          Db::name('yphp_admin_role')->strict(false)->update($data);
150          return json(array('status'=>'SUCCESS','msg'=>'修改角色成功!'));
151        }
152     }
View Code

 

唠唠嗑:

第三天结束了,角色选择权限需要等到菜单权限功能完成后再加进去,包括管理员选择角色的也还没弄,
开发过程不要有洁癖,不要有一定要把一个功能完全做好再去做另外一个功能。
因为很多功能是关联的,关联的功能也是有先有后的,只要有计划,心里不乱就好。
 
 
 
 
 
 

posted @ 2021-10-27 00:21  yangphp  阅读(437)  评论(0编辑  收藏  举报