| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?php
- // +----------------------------------------------------------------------
- // | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
- // +----------------------------------------------------------------------
- // | 版权所有 2017~2021 LARAVEL研发中心
- // +----------------------------------------------------------------------
- // | 官方网站: http://www.laravel.cn
- // +----------------------------------------------------------------------
- // | Author: laravel开发员 <laravel.qq.com>
- // +----------------------------------------------------------------------
- namespace App\Services\Common;
- use App\Models\MenuModel;
- use App\Models\RoleMenuModel;
- use App\Models\RoleModel;
- use App\Models\UserRoleModel;
- use App\Services\BaseService;
- /**
- * 角色管理-服务类
- * @author laravel开发员
- * @since 2020/11/11
- * Class RoleService
- * @package App\Services\Common
- */
- class RoleService extends BaseService
- {
- /**
- * 构造函数
- * @author laravel开发员
- * @since 2020/11/11
- * RoleService constructor.
- */
- public function __construct()
- {
- $this->model = new RoleModel();
- }
- /**
- * 获取角色列表
- * @return array
- * @since 2020/11/11
- * @author laravel开发员
- */
- public function getRoleList()
- {
- $list = $this->model->where([
- ['status', '=', 1],
- ['mark', '=', 1],
- ])->orderBy("sort", "asc")
- ->get()
- ->toArray();
- return message("操作成功", true, $list);
- }
- /**
- * 获取角色权限列表
- * @return mixed
- * @since 2020/11/11
- * @author laravel开发员
- */
- public function getPermissionList($userId=0)
- {
- // 请求参数
- $param = request()->all();
- // 角色ID
- $roleId = intval(getter($param, "role_id", 0));
- // 获取全部菜单
- $menuModel = new MenuModel();
- $menuList = $menuModel->from('menu as a')
- ->leftJoin('menu as b', 'b.id', '=', 'a.pid')
- ->leftJoin('menu as c', 'c.id', '=', 'b.pid')
- ->where([
- ['a.status', '=', 1],
- ['a.mark', '=', 1],
- ])->where(function ($query) {
- $query->where(['a.pid' => 0])->orWhere(function ($query) {
- $query->where('a.pid', '>', 0)->where(['b.status' => 1, 'b.mark' => 1]);
- });
- })->orderBy("a.sort", "asc")->select(['a.*'])->get()->toArray();
- if (!empty($menuList)) {
- $roleMenuModel = new RoleMenuModel();
- $roleMenuList = $roleMenuModel->where("role_id", $roleId)->get("menu_id")->toArray();
- $menuIdList = array_key_value($roleMenuList, "menu_id");
- foreach ($menuList as &$val) {
- $val['checked'] = false;
- $val['false'] = false;
- if (in_array($val['id'], $menuIdList)) {
- $val['checked'] = true;
- $val['open'] = true;
- }
- }
- }
- return message(MESSAGE_OK, true, $menuList);
- }
- /**
- * 保存角色菜单权限数据
- * @return array
- * @since 2020/11/11
- * @author laravel开发员
- */
- public function savePermission()
- {
- // 请求参数
- $param = request()->all();
- // 角色ID
- $roleId = intval(getter($param, "role_id", 0));
- if (!$roleId) {
- return message("角色ID不能为空", false);
- }
- unset($param['role_id']);
- // 删除角色菜单关系数据
- $roleMenuModel = new RoleMenuModel();
- $roleMenuModel->where("role_id", $roleId)->delete();
- // 插入角色菜单关系数据
- if (is_array($param) && !empty($param)) {
- $list = [];
- foreach ($param as $val) {
- $data = [
- 'role_id' => $roleId,
- 'menu_id' => $val,
- ];
- $list[] = $data;
- }
- }
- $roleMenuModel->insert($list);
- return message();
- }
- }
|