* @date 2020-01-23 17:36:29 */ declare(strict_types=1); namespace Modules\Manage\Responses; use App\Contracts\Responsable; use App\Model\PermissionResourceModel; class ManagerDetailResponse implements Responsable { /** * 录入的数据. * * @var mixed */ private $data = null; /** * 附加条件参数. * * @var array */ private $params = []; public function __construct($data = null, $params = []) { $this->data = $data; $this->params = $params; } public function toResponse( $request = null ) { if (empty($this->data)) { return json_fail(trans('common.err_resource_not_found')); } $result = $this->data->toArray(); if (isset($result['role']['permissions']) && is_string($result['role']['permissions'])) { $arrPermissions = !empty($result['role']['permissions']) ? explode(',', $result['role']['permissions']) : []; $result['role']['permissions'] = $arrPermissions; if ($result['role']['permissions'][0] !== "-1") { // 我的 $permissionsName = (new PermissionResourceModel())->whereIn('id', $arrPermissions)->get()->toArray(); // 全部的 $permissionsAll = (new PermissionResourceModel())->pluck('operate', 'id')->toArray(); // 处理成一维 $dataArr = []; foreach ($permissionsName as &$item) { // 父菜单 if ($item['parent_id'] === 0) { $dataArr[] = $item['operate']; } else { // 子级 $dataArr[] = $permissionsAll[$item['parent_id']] . '_' . $item['operate']; } unset($item); } $result['role']['permissions'] = $dataArr; } } unset($result['id']); return json_success($result); } }