From 641125b993257adffceeba169723c88bfd3f8b53 Mon Sep 17 00:00:00 2001 From: g82tt Date: Tue, 19 May 2026 22:44:43 +0800 Subject: [PATCH] =?UTF-8?q?K4:=206=E4=B8=AA=E6=89=A9=E5=B1=95=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=85=A8=E9=83=A8=E5=B0=B1=E7=BB=AA(=E8=AE=B0?= =?UTF-8?q?=E5=BD=95/=E5=90=8C=E6=AD=A5/=E6=8E=88=E6=9D=83/=E7=99=BB?= =?UTF-8?q?=E5=BD=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KmsAdapter.cs | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/gateway/src/IntegrationGateway.Adapters.Kms/KmsAdapter.cs b/gateway/src/IntegrationGateway.Adapters.Kms/KmsAdapter.cs index 5cdf835..5a02c7a 100644 --- a/gateway/src/IntegrationGateway.Adapters.Kms/KmsAdapter.cs +++ b/gateway/src/IntegrationGateway.Adapters.Kms/KmsAdapter.cs @@ -168,4 +168,73 @@ public class KmsAdapter : IHasFlatDevices, IHasAlarms // KMS 第三方接口 (2.18.7) 不提供告警结束 API return Task.CompletedTask; } + + // ═══════════════════════════════════════════ + // 扩展方法 — 2.18 第三方接口全覆盖 + // ═══════════════════════════════════════════ + + /// 2.18.6 查询借还记录列表 + public async Task> GetBorrowRecordsAsync(DateTime? from = null, DateTime? to = null) + { + await _limiter.WaitAsync(); + var client = await _auth.GetAuthenticatedClientAsync(); + var body = "{}"; // 联调时加入时间范围参数 + var resp = await client.PostAsync("/prod-api/getRecordList", + new StringContent(body, Encoding.UTF8, "application/json")); + resp.EnsureSuccessStatusCode(); + var data = await resp.Content.ReadFromJsonAsync()!; + return new PagedResult { Items = data.Rows ?? new(), Total = data.Total }; + } + + /// 2.18.5 查询授权记录列表 + public async Task> GetPermissionListAsync(DateTime? from = null, DateTime? to = null) + { + await _limiter.WaitAsync(); + var client = await _auth.GetAuthenticatedClientAsync(); + var body = "{}"; // 联调时加入时间范围 + var resp = await client.PostAsync("/prod-api/getPermissionList", + new StringContent(body, Encoding.UTF8, "application/json")); + resp.EnsureSuccessStatusCode(); + var data = await resp.Content.ReadFromJsonAsync()!; + return new PagedResult { Items = data.Rows ?? new(), Total = data.Total }; + } + + /// 2.18.3 从 Vol.Pro 向 KMS 批量同步员工 + public async Task BatchSyncStaffAsync(List staffList) + { + await _limiter.WaitAsync(); + var client = await _auth.GetAuthenticatedClientAsync(); + var resp = await client.PostAsJsonAsync("/prod-api/batchSyncStaff", new { staff = staffList }); + resp.EnsureSuccessStatusCode(); + } + + /// 2.18.2 从 Vol.Pro 向 KMS 批量删除员工 + public async Task BatchDeleteStaffAsync(List staffUuids) + { + await _limiter.WaitAsync(); + var client = await _auth.GetAuthenticatedClientAsync(); + var resp = await client.PostAsJsonAsync("/prod-api/batchDeleteStaff", staffUuids); + resp.EnsureSuccessStatusCode(); + } + + /// 2.4.3 远程授权开门 + public async Task RemoteAuthorizeAsync(KmsRemotePermissionRequest request) + { + await _limiter.WaitAsync(); + var client = await _auth.GetAuthenticatedClientAsync(); + var resp = await client.PostAsJsonAsync("/prod-api/kms/permission/remote", request); + resp.EnsureSuccessStatusCode(); + } + + /// 2.18.8 代理 KMS 第三方登录/事件记录 + public async Task ThirdPlatLoginAsync(string username) + { + await _limiter.WaitAsync(); + var client = await _auth.GetAuthenticatedClientAsync(); + var resp = await client.PostAsync($"/thirdPlatlogin?username={Uri.EscapeDataString(username)}", null); + if (resp.StatusCode == System.Net.HttpStatusCode.Redirect) + return resp.Headers.Location?.ToString(); + resp.EnsureSuccessStatusCode(); + return await resp.Content.ReadAsStringAsync(); + } }