getTenantId(); if (!$tenantId) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $list = Organization::where('delete_time', null) ->where('tenant_id', $tenantId) ->select() ->toArray(); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $list ]); } /** * 获取组织机构详情 */ public function getOrganizationDetail($id) { $tenantId = $this->getTenantId(); if (!$tenantId) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $detail = Organization::where('id', $id) ->where('delete_time', null) ->where('tenant_id', $tenantId) ->find() ->toArray(); $detail['leader_name'] = AdminUser::where('id', $detail['leader_id'])->value('name'); $detail['parent_name'] = Organization::where('id', $detail['parent_id'])->value('org_name'); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $detail ]); } /** * 创建组织机构 */ public function createOrganization() { $tenantId = $this->getTenantId(); if (!$tenantId) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $data = $this->request->post(); $data['tenant_id'] = $tenantId; $organization = Organization::create($data); if ($organization) { return json([ 'code' => 200, 'msg' => '创建成功', 'data' => $organization ]); } else { return json([ 'code' => 500, 'msg' => '创建失败', ]); } } /** * 编辑组织机构 */ public function editOrganization($id) { $tenantId = $this->getTenantId(); if (!$tenantId) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $data = $this->request->post(); unset($data['tenant_id']); // 不允许修改租户ID $organization = Organization::where('id', $id) ->where('tenant_id', $tenantId) ->update($data); if ($organization !== false) { return json([ 'code' => 200, 'msg' => '编辑成功', 'data' => $organization ]); } else { return json([ 'code' => 500, 'msg' => '编辑失败', ]); } } /** * 删除组织机构 */ public function deleteOrganization($id) { $tenantId = $this->getTenantId(); if (!$tenantId) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $organization = Organization::where('id', $id) ->where('tenant_id', $tenantId) ->update(['delete_time' => date('Y-m-d H:i:s')]); if ($organization) { return json([ 'code' => 200, 'msg' => '删除成功', ]); } else { return json([ 'code' => 500, 'msg' => '删除失败', ]); } } /** * 获取企业单位 */ public function getCompanys() { $tenantId = $this->getTenantId(); if (!$tenantId) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $where = [['delete_time', '=', null], ['is_company', '=', 1], ['tenant_id', '=', $tenantId]]; $list = Organization::where($where)->select()->toArray(); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $list ]); } /** * 获取部门 */ public function getDepartments() { $tenantId = $this->getTenantId(); if (!$tenantId) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $parentId = input('parent_id/d', 0); $where = [['delete_time', '=', null], ['is_company', '=', 0], ['tenant_id', '=', $tenantId]]; if ($parentId > 0) { $where[] = ['parent_id', '=', $parentId]; } $list = Organization::where($where)->select()->toArray(); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $list ]); } }