解除设备分享

验证状态:已源码核验、未联调(无 app 调用图);services 基线:源码归纳 @ 2026-09-14

用途与场景

受赠方主动退出一台已接收的设备分享,是受赠方一侧的退场动作(与发起方一侧的撤销设备分享相对)。App「移除分享设备」动作按 deviceId 发起(受赠方自己租户内的分享投影 ID):服务端把分享投影置 lift share 并写删除时间软删,发起方租户中的分享记录同步置 lift share(写 liftTime、软删)——设备从此从受赠方列表消失。

解绑与解除分享是不同概念:对分享来的设备不得调用解绑个人空间设备(解绑退场的是整条拥有周期),受赠方交还设备的唯一正确出口是本端点。投影三态边界见账号与个人空间

App 现役依据

判定证据 内容
旧 app 文档收录记录 旧 app 文档仓在 docs/api/main-api/device/data-acquisition-device/liftShareForPersonalSpace/ 收录本端点,属 App 既有调用面
两代分工语义 /v1/retail 第二代无 lift 对应物;受赠方退场写路径现役只有本端点
后端持续维护迹象 解除链路与分享主链路共享同一 service 与契约测试,第一代 2026-09 仍有维护提交

端点

POST /main-service/main-api/device/data-acquisition-device/liftShareForPersonalSpace — 受赠方主动退出一台已接收的设备分享(受赠方一侧的退场动作)

端点全量事实(参数、请求/响应字段、错误码、权限点)见清单层 device · data-acquisition-device 采集设备;业务语义(wire 惯例、限频、租户声明等)见设备业务 · data-acquisition-device 采集设备

动线与完成判据

status=200data=true 表示解除完成。受赠方再次拉取设备列表应不再包含该设备;发起方再次拉取设备分享记录列表应不含该条(软删行被 delete_time is null 过滤)。

错误与边界

业务失败均为业务拒绝族,error 为异常消息原文(判定口径见错误响应差异):

error 原文 触发条件
The data collection device does not exist deviceId 在当前租户(受赠方租户)无有效投影:ID 不存在、投影已解除/已随撤销或归属转移退场、或传入的是他人租户的 ID

Bean Validation 失败(deviceId 缺失)走请求校验出口(请求校验族,判定口径见错误响应差异)。

边界:

  • 源码不校验投影当前 state:对 To be confirm share 的投影调用本端点同样生效(未确认就退出);重复解除在投影软删后走「设备不存在」出口。
  • 自有设备(state=bind)的退场走解绑而非本端点;发起方收回分享走撤销而非本端点。
  • 解除后同一设备如需再次分享,发起方需重新发起(分享记录已软删,重复分享校验不受影响)。

调用关系与资源清理

无客户端长连接资源需要释放。解除成功后双方都应重新拉取各自列表刷新界面;服务端不向发起方推送实时通知。

已知缺口

未执行真实联调:解除与发起方撤销并发到达时的终态、解除后设备列表刷新延迟均无 App 实测佐证。