| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- /**
- * 管理员详情返回封装.
- *
- * @author nj <nj@gmail.com>
- * @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);
- }
- }
|