All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m9s
- 企业卡授权唯一约束:新增 DB 迁移(000154),卡级部分唯一索引防止同一张卡被多个企业同时持有,Service 层新增跨企业冲突检测 - 单卡列表新增 network_status 过滤参数 - 单卡/设备列表新增 asset_status、asset_status_name、generation 响应字段 - 单卡/设备列表新增企业维度过滤(authorized_enterprise_id、is_authorized_to_enterprise)及响应中企业授权信息(批量加载,无 N+1) - 主钱包流水/退款列表新增 asset_identifier 精确过滤参数 - 企业卡授权/收回接口升级为三模式(list/range/filter),企业设备授权/收回升级为双模式(list/filter) - 升级 sonic v1.14.2 → v1.15.2 以兼容 Go 1.26 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
Status: ready-for-human
Parent
.scratch/enterprise-auth-and-asset-enhancements/PRD.md
What to build
在 standalone 卡列表响应和设备列表响应中暴露换货相关字段,使运营人员能直接在列表中识别资产的换货历史。
StandaloneIotCardResponse 新增三个字段:
asset_status int:业务状态(1=在库, 2=已销售, 3=已换货, 4=已停用)asset_status_name string:对应中文名称generation int:资产世代编号(初始值1,每次换货+旧资产转新后 +1)
DeviceResponse 同步新增相同三个字段。
语义约定(写入注释和 description):
asset_status = 3:该资产已换货且尚未执行"旧资产转新",不再流通generation > 1:该资产历史上曾执行过换货后转新,目前仍在使用
Service 层组装响应时直接从 Model 取值,asset_status_name 通过 constants 中的方法转换。
Acceptance criteria
/api/admin/iot-cards/standalone响应中每条记录包含asset_status、asset_status_name、generation三个字段/api/admin/devices响应中每条记录包含相同三个字段- 已换货未转新的卡/设备返回
asset_status=3、asset_status_name="已换货" - 经过换货转新重入库的卡/设备返回
generation=2(或更高)且asset_status=1 - 普通未经历换货的资产返回
generation=1
Blocked by
None - can start immediately