All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m2s
- 新增成对迁移 000223(tb_phone_asset_association,含有效关系部分唯一索引与 down 守卫)与 000224(解绑导入任务表),不回填历史 - H5:need_bind_phone 三支判定(开关关闭完全短路);已有主号幂等建联;十项上限按手机号 advisory 串行化(含换绑到全新号的并发场景);换绑原子迁移与冲突整单回滚;不写遗留列 - 后台:关联列表、单项/批量解绑、CSV 导入解绑(B1–B16),超管/平台 gate + 资产数据范围复核,三态统一文案 - 读侧:卡/设备列表与详情按页一次 IN 聚合;两类导出补「关联手机号」列并保留历史表头反解兼容 - 脱敏:关联审计走独立动作/资源只写脱敏手机号;访问日志手机号类字段脱敏 - 同步主 Spec openspec/specs/phone-asset-association 并归档 AUG26-009,补齐 requirement-evidence 与入口矩阵,context-health 通过
25 lines
1.8 KiB
Go
25 lines
1.8 KiB
Go
package dto
|
||
|
||
type GetUploadURLRequest struct {
|
||
FileName string `json:"file_name" validate:"required,min=1,max=255" required:"true" minLength:"1" maxLength:"255" description:"文件名(如:cards.csv)"`
|
||
ContentType string `json:"content_type" validate:"omitempty,max=100" maxLength:"100" description:"文件 MIME 类型(如:text/csv),留空则自动推断"`
|
||
Purpose string `json:"purpose" validate:"required,oneof=iot_import export attachment batch_purchase device_batch_allocation shop_import phone_unbind_import" required:"true" enum:"iot_import,export,attachment,batch_purchase,device_batch_allocation,shop_import,phone_unbind_import" description:"文件用途 (iot_import:ICCID导入, export:数据导出, attachment:附件, batch_purchase:资产套餐批量订购CSV, device_batch_allocation:设备批量分配或回收CSV, shop_import:店铺负责人导入CSV, phone_unbind_import:手机号资产解绑导入CSV)"`
|
||
}
|
||
|
||
type GetUploadURLResponse struct {
|
||
UploadURL string `json:"upload_url" description:"预签名上传 URL,使用 PUT 方法上传文件"`
|
||
FileKey string `json:"file_key" description:"文件路径标识,上传成功后用于调用业务接口"`
|
||
ExpiresIn int `json:"expires_in" description:"URL 有效期(秒)"`
|
||
}
|
||
|
||
// GetBatchDownloadURLsRequest 批量获取文件下载预签名 URL 请求
|
||
type GetBatchDownloadURLsRequest struct {
|
||
FileKeys []string `json:"file_keys" validate:"required,min=1,max=50,dive,required" required:"true" minLength:"1" description:"文件路径标识列表,最多 50 个"`
|
||
}
|
||
|
||
// GetBatchDownloadURLsResponse 批量获取文件下载预签名 URL 响应
|
||
type GetBatchDownloadURLsResponse struct {
|
||
URLs map[string]string `json:"urls" description:"file_key 到预签名下载 URL 的映射"`
|
||
ExpiresIn int `json:"expires_in" description:"URL 有效期(秒)"`
|
||
}
|