feat: 实现企业设备授权功能并归档 OpenSpec 变更
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m39s

- 新增企业设备授权模块(Model、DTO、Service、Handler、Store)
- 实现设备授权的创建、查询、更新、删除等完整业务逻辑
- 添加企业卡授权与设备授权的关联关系
- 新增 2 个数据库迁移脚本
- 同步 OpenSpec delta specs 到 main specs
- 归档 add-enterprise-device-authorization 变更
- 更新 API 文档和路由配置
- 新增完整的集成测试和单元测试覆盖
This commit is contained in:
2026-01-29 13:18:49 +08:00
parent e87513541b
commit b02175271a
118 changed files with 14306 additions and 472 deletions

View File

@@ -0,0 +1,53 @@
## Why
企业用户目前只能管理被授权的单卡,但实际业务中设备(绑定 1-4 张卡)是更常见的授权单位。企业需要以设备为维度查看和管理被授权的资产,包括查看设备列表、设备详情及其绑定的卡,以及对卡进行停机/复机操作。这与"分销设备给代理"的模式类似,但目标是企业而非店铺。
## What Changes
- **新增设备授权表**`tb_enterprise_device_authorization`,记录设备与企业的授权关系
- **修改卡授权表**`tb_enterprise_card_authorization` 新增 `device_auth_id` 字段,关联设备授权记录
- **新增设备授权 API**(后台):授权设备给企业、回收设备授权、企业设备列表
- **新增企业端设备管理 API**H5设备列表、设备详情含卡、停机/复机
- **修改单卡授权逻辑****BREAKING** 禁止通过单卡授权入口授权已绑定设备的卡,移除 DeviceBundle 支持
- **授权联动**:授权设备时自动授权设备下所有已绑定的卡,回收时同步回收
## Capabilities
### New Capabilities
- `enterprise-device-authorization`: 设备授权企业用户功能,包含设备授权/回收、设备授权记录管理、企业端设备列表和管理
### Modified Capabilities
- `enterprise-card-authorization`: 禁止授权已绑定设备的卡,移除 DeviceBundle 确认流程,强制使用设备授权入口
## Impact
**数据库**:
- 新增表 `tb_enterprise_device_authorization`
- 修改表 `tb_enterprise_card_authorization`(新增字段 + 索引)
**后台 API**:
- 新增 `POST /api/admin/enterprises/:id/allocate-devices`
- 新增 `POST /api/admin/enterprises/:id/recall-devices`
- 新增 `GET /api/admin/enterprises/:id/devices`
- 修改 `POST /api/admin/enterprises/:id/allocate-cards`(禁止设备卡)
**H5 API**:
- 新增 `GET /api/h5/enterprise/devices`
- 新增 `GET /api/h5/enterprise/devices/:device_id`
- 新增 `POST /api/h5/enterprise/devices/:device_id/cards/:card_id/suspend`
- 新增 `POST /api/h5/enterprise/devices/:device_id/cards/:card_id/resume`
**代码模块**:
- Model: 新增 `EnterpriseDeviceAuthorization`,修改 `EnterpriseCardAuthorization`
- Store: 新增 `EnterpriseDeviceAuthorizationStore`
- Service: 新增 `enterprise_device` 服务,修改 `enterprise_card` 服务
- Handler: 新增 `admin/enterprise_device.go`,新增 `h5/enterprise_device.go`
- Routes: 新增设备授权路由注册
- DTO: 新增设备授权相关 DTO
**前端影响**:
- 后台管理系统需要新增设备授权功能页面
- 企业端 H5 需要新增设备列表和管理页面
- 单卡授权页面行为变更(不再支持授权设备卡)