## ADDED Requirements ### Requirement: 资产与卡详情的优先轮询状态投影 资产解析接口(`GET /api/admin/assets/resolve/{identifier}`)的卡与设备两个分支 SHALL 返回该资产或卡的优先轮询状态投影,至少包含:是否处于优先轮询中、最近触发场景、最近轮询结果、最近轮询时间与失败原因。本能力 MUST NOT 为投影新增独立端点,投影 MUST 落在该既有解析端点内。投影口径 MUST 与该卡在优先轮询事实表中的未完成活动项一致:存在待执行或执行中的项时「是否处于优先轮询中」为真,最近触发场景取最近触发类型,最近轮询结果取最近一次执行结果(执行成功、轮询失败、已关闭、已过期或处理中),最近轮询时间取最近一次执行或触发时间,失败原因取最近一次可安全展示的失败原因。无任何优先轮询事实时字段以否或空值返回,MUST NOT 以普通轮询结果填充。 投影 MUST 只读:读取 MUST NOT 创建、合并、推进或出队任何优先轮询项,MUST NOT 触发上游调用。投影 MUST 受既有资产数据权限约束,越权资产 MUST 按不存在处理,MUST NOT 通过该字段泄露范围外资产。 #### Scenario: 资产存在未完成优先项 - **GIVEN** 某卡的资产存在待执行的优先轮询项 - **WHEN** 查询该资产详情 - **THEN** 响应返回处于优先轮询中为真、最近触发场景与最近轮询时间 #### Scenario: 优先项失败展示原因 - **GIVEN** 某卡的优先轮询项已因尝试次数达到上限进入失败终态 - **WHEN** 查询该卡详情 - **THEN** 响应返回最近轮询结果为轮询失败及可安全展示的失败原因 #### Scenario: 无优先轮询事实 - **WHEN** 查询一个从未进入优先轮询、也无历史优先项的资产详情 - **THEN** 各投影字段以否或空值返回,不使用普通轮询结果填充 #### Scenario: 读取不改变队列 - **GIVEN** 某卡处于优先轮询执行中 - **WHEN** 连续查询该资产详情 - **THEN** 优先轮询项状态、触发次数与尝试次数均不因读取而改变 #### Scenario: 越权资产 - **WHEN** 调用者查询其数据范围外资产的详情 - **THEN** 响应与资产不存在不可区分,不返回任何优先轮询状态