|
|
@@ -0,0 +1,122 @@
|
|
|
+<?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\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()
|
|
|
+ {
|
|
|
+ // 请求参数
|
|
|
+ $param = request()->all();
|
|
|
+ // 角色ID
|
|
|
+ $roleId = intval(getter($param, "role_id", 0));
|
|
|
+ // 获取全部菜单
|
|
|
+ $menuModel = new MenuModel();
|
|
|
+ $menuList = $menuModel->where([
|
|
|
+ ['status', '=', 1],
|
|
|
+ ['mark', '=', 1],
|
|
|
+ ])->orderBy("sort", "asc")->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) {
|
|
|
+ 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();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|