feat: 后台管理查询接口 DTO 新增 realname_policy 字段
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -21,6 +21,7 @@ type AssetResolveResponse struct {
|
|||||||
// 状态聚合字段
|
// 状态聚合字段
|
||||||
RealNameStatus int `json:"real_name_status" description:"实名状态:0未实名 1已实名"`
|
RealNameStatus int `json:"real_name_status" description:"实名状态:0未实名 1已实名"`
|
||||||
RealNameAt *time.Time `json:"real_name_at" description:"最近一次完成实名的时间,未实名时为 null"`
|
RealNameAt *time.Time `json:"real_name_at" description:"最近一次完成实名的时间,未实名时为 null"`
|
||||||
|
RealnamePolicy string `json:"realname_policy" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)"`
|
||||||
CurrentPackage string `json:"current_package" description:"当前套餐名称(无套餐时为空)"`
|
CurrentPackage string `json:"current_package" description:"当前套餐名称(无套餐时为空)"`
|
||||||
PackageTotalMB int64 `json:"package_total_mb" description:"当前套餐总虚流量(MB),已按virtual_ratio换算"`
|
PackageTotalMB int64 `json:"package_total_mb" description:"当前套餐总虚流量(MB),已按virtual_ratio换算"`
|
||||||
PackageUsedMB float64 `json:"package_used_mb" description:"当前已用虚流量(MB),已按virtual_ratio换算"`
|
PackageUsedMB float64 `json:"package_used_mb" description:"当前已用虚流量(MB),已按virtual_ratio换算"`
|
||||||
@@ -73,6 +74,7 @@ type BoundCardInfo struct {
|
|||||||
CarrierID uint `json:"carrier_id,omitempty" description:"运营商ID"`
|
CarrierID uint `json:"carrier_id,omitempty" description:"运营商ID"`
|
||||||
CarrierType string `json:"carrier_type,omitempty" description:"运营商类型"`
|
CarrierType string `json:"carrier_type,omitempty" description:"运营商类型"`
|
||||||
CarrierName string `json:"carrier_name,omitempty" description:"运营商名称"`
|
CarrierName string `json:"carrier_name,omitempty" description:"运营商名称"`
|
||||||
|
RealnamePolicy string `json:"realname_policy" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AssetRealtimeStatusResponse 资产实时状态(只读DB/Redis)
|
// AssetRealtimeStatusResponse 资产实时状态(只读DB/Redis)
|
||||||
@@ -81,6 +83,7 @@ type AssetRealtimeStatusResponse struct {
|
|||||||
AssetID uint `json:"asset_id" description:"资产ID"`
|
AssetID uint `json:"asset_id" description:"资产ID"`
|
||||||
NetworkStatus int `json:"network_status,omitempty" description:"网络状态(asset_type=card时有效):0停机 1开机"`
|
NetworkStatus int `json:"network_status,omitempty" description:"网络状态(asset_type=card时有效):0停机 1开机"`
|
||||||
RealNameStatus int `json:"real_name_status,omitempty" description:"实名状态(asset_type=card时有效):0未实名 1已实名"`
|
RealNameStatus int `json:"real_name_status,omitempty" description:"实名状态(asset_type=card时有效):0未实名 1已实名"`
|
||||||
|
RealnamePolicy string `json:"realname_policy,omitempty" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)"`
|
||||||
CurrentMonthUsageMB float64 `json:"current_month_usage_mb,omitempty" description:"系统累计的自然月流量MB(asset_type=card时有效)"`
|
CurrentMonthUsageMB float64 `json:"current_month_usage_mb,omitempty" description:"系统累计的自然月流量MB(asset_type=card时有效)"`
|
||||||
LastSyncTime *time.Time `json:"last_sync_time,omitempty" description:"最后同步时间(asset_type=card时有效)"`
|
LastSyncTime *time.Time `json:"last_sync_time,omitempty" description:"最后同步时间(asset_type=card时有效)"`
|
||||||
DeviceProtectStatus string `json:"device_protect_status,omitempty" description:"保护期状态(asset_type=device时有效):none/stop/start"`
|
DeviceProtectStatus string `json:"device_protect_status,omitempty" description:"保护期状态(asset_type=device时有效):none/stop/start"`
|
||||||
@@ -279,3 +282,16 @@ type UpdateAssetPollingStatusResponse struct {
|
|||||||
AssetID uint `json:"asset_id" description:"资产ID"`
|
AssetID uint `json:"asset_id" description:"资产ID"`
|
||||||
EnablePolling bool `json:"enable_polling" description:"更新后的轮询状态 (true:已启用, false:已禁用)"`
|
EnablePolling bool `json:"enable_polling" description:"更新后的轮询状态 (true:已启用, false:已禁用)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UpdateAssetRealnamePolicyRequest 更新资产实名认证策略请求
|
||||||
|
type UpdateAssetRealnamePolicyRequest struct {
|
||||||
|
Identifier string `path:"identifier" description:"资产标识符(ICCID 或 VirtualNo)" required:"true"`
|
||||||
|
RealnamePolicy string `json:"realname_policy" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)" required:"true" enum:"none,before_order,after_order"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateAssetRealnamePolicyResponse 更新资产实名认证策略响应
|
||||||
|
type UpdateAssetRealnamePolicyResponse struct {
|
||||||
|
AssetType string `json:"asset_type" description:"资产类型 (card:IoT卡, device:设备)"`
|
||||||
|
AssetID uint `json:"asset_id" description:"资产ID"`
|
||||||
|
RealnamePolicy string `json:"realname_policy" description:"更新后的实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)"`
|
||||||
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ type DeviceResponse struct {
|
|||||||
SeriesID *uint `json:"series_id" description:"套餐系列ID"`
|
SeriesID *uint `json:"series_id" description:"套餐系列ID"`
|
||||||
SeriesName string `json:"series_name" description:"套餐系列名称"`
|
SeriesName string `json:"series_name" description:"套餐系列名称"`
|
||||||
ActivatedAt *time.Time `json:"activated_at" description:"激活时间"`
|
ActivatedAt *time.Time `json:"activated_at" description:"激活时间"`
|
||||||
|
RealnamePolicy string `json:"realname_policy" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)"`
|
||||||
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
||||||
UpdatedAt time.Time `json:"updated_at" description:"更新时间"`
|
UpdatedAt time.Time `json:"updated_at" description:"更新时间"`
|
||||||
// 设备实时同步字段(由 sync-info 接口写入)
|
// 设备实时同步字段(由 sync-info 接口写入)
|
||||||
@@ -71,16 +72,17 @@ type ListDeviceCardsRequest struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type DeviceCardBindingResponse struct {
|
type DeviceCardBindingResponse struct {
|
||||||
ID uint `json:"id" description:"绑定记录ID"`
|
ID uint `json:"id" description:"绑定记录ID"`
|
||||||
SlotPosition int `json:"slot_position" description:"插槽位置 (1-4)"`
|
SlotPosition int `json:"slot_position" description:"插槽位置 (1-4)"`
|
||||||
IotCardID uint `json:"iot_card_id" description:"IoT卡ID"`
|
IotCardID uint `json:"iot_card_id" description:"IoT卡ID"`
|
||||||
ICCID string `json:"iccid" description:"ICCID"`
|
ICCID string `json:"iccid" description:"ICCID"`
|
||||||
MSISDN string `json:"msisdn" description:"接入号"`
|
MSISDN string `json:"msisdn" description:"接入号"`
|
||||||
CarrierName string `json:"carrier_name" description:"运营商名称"`
|
CarrierName string `json:"carrier_name" description:"运营商名称"`
|
||||||
Status int `json:"status" description:"卡状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)"`
|
Status int `json:"status" description:"卡状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)"`
|
||||||
StatusName string `json:"status_name" description:"卡状态名称(中文)"`
|
StatusName string `json:"status_name" description:"卡状态名称(中文)"`
|
||||||
BindTime *time.Time `json:"bind_time" description:"绑定时间"`
|
BindTime *time.Time `json:"bind_time" description:"绑定时间"`
|
||||||
IsCurrent bool `json:"is_current" description:"是否为当前使用的卡"`
|
IsCurrent bool `json:"is_current" description:"是否为当前使用的卡"`
|
||||||
|
RealnamePolicy string `json:"realname_policy" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListDeviceCardsResponse struct {
|
type ListDeviceCardsResponse struct {
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ type StandaloneIotCardResponse struct {
|
|||||||
SeriesID *uint `json:"series_id" description:"套餐系列ID"`
|
SeriesID *uint `json:"series_id" description:"套餐系列ID"`
|
||||||
SeriesName string `json:"series_name" description:"套餐系列名称"`
|
SeriesName string `json:"series_name" description:"套餐系列名称"`
|
||||||
DeviceVirtualNo string `json:"device_virtual_no" description:"绑定设备的虚拟号(未绑定时为空字符串)"`
|
DeviceVirtualNo string `json:"device_virtual_no" description:"绑定设备的虚拟号(未绑定时为空字符串)"`
|
||||||
|
RealnamePolicy string `json:"realname_policy" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)"`
|
||||||
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
||||||
UpdatedAt time.Time `json:"updated_at" description:"更新时间"`
|
UpdatedAt time.Time `json:"updated_at" description:"更新时间"`
|
||||||
}
|
}
|
||||||
@@ -65,10 +66,11 @@ type ListStandaloneIotCardResponse struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ImportIotCardRequest struct {
|
type ImportIotCardRequest struct {
|
||||||
CarrierID uint `json:"carrier_id" validate:"required,min=1" required:"true" minimum:"1" description:"运营商ID"`
|
CarrierID uint `json:"carrier_id" validate:"required,min=1" required:"true" minimum:"1" description:"运营商ID"`
|
||||||
BatchNo string `json:"batch_no" validate:"omitempty,max=100" maxLength:"100" description:"批次号"`
|
BatchNo string `json:"batch_no" validate:"omitempty,max=100" maxLength:"100" description:"批次号"`
|
||||||
FileKey string `json:"file_key" validate:"required,min=1,max=500" required:"true" minLength:"1" maxLength:"500" description:"对象存储文件路径(通过 /storage/upload-url 获取)"`
|
FileKey string `json:"file_key" validate:"required,min=1,max=500" required:"true" minLength:"1" maxLength:"500" description:"对象存储文件路径(通过 /storage/upload-url 获取)"`
|
||||||
CardCategory string `json:"card_category" validate:"omitempty,oneof=normal industry" description:"卡业务类型 (normal:普通卡, industry:行业卡),默认 normal"`
|
CardCategory string `json:"card_category" validate:"omitempty,oneof=normal industry" description:"卡业务类型 (normal:普通卡, industry:行业卡),默认 normal"`
|
||||||
|
RealnamePolicy string `json:"realname_policy" validate:"omitempty,oneof=none before_order after_order" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名),默认 none"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ImportIotCardResponse struct {
|
type ImportIotCardResponse struct {
|
||||||
@@ -88,24 +90,25 @@ type ListImportTaskRequest struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ImportTaskResponse struct {
|
type ImportTaskResponse struct {
|
||||||
ID uint `json:"id" description:"任务ID"`
|
ID uint `json:"id" description:"任务ID"`
|
||||||
TaskNo string `json:"task_no" description:"任务编号"`
|
TaskNo string `json:"task_no" description:"任务编号"`
|
||||||
Status int `json:"status" description:"任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)"`
|
Status int `json:"status" description:"任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)"`
|
||||||
StatusText string `json:"status_text" description:"任务状态文本"`
|
StatusText string `json:"status_text" description:"任务状态文本"`
|
||||||
CarrierID uint `json:"carrier_id" description:"运营商ID"`
|
CarrierID uint `json:"carrier_id" description:"运营商ID"`
|
||||||
CarrierType string `json:"carrier_type,omitempty" description:"运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)"`
|
CarrierType string `json:"carrier_type,omitempty" description:"运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)"`
|
||||||
CarrierName string `json:"carrier_name,omitempty" description:"运营商名称"`
|
CarrierName string `json:"carrier_name,omitempty" description:"运营商名称"`
|
||||||
BatchNo string `json:"batch_no,omitempty" description:"批次号"`
|
BatchNo string `json:"batch_no,omitempty" description:"批次号"`
|
||||||
CardCategory string `json:"card_category" description:"卡业务类型 (normal:普通卡, industry:行业卡)"`
|
CardCategory string `json:"card_category" description:"卡业务类型 (normal:普通卡, industry:行业卡)"`
|
||||||
FileName string `json:"file_name,omitempty" description:"文件名"`
|
RealnamePolicy string `json:"realname_policy" description:"实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)"`
|
||||||
TotalCount int `json:"total_count" description:"总数"`
|
FileName string `json:"file_name,omitempty" description:"文件名"`
|
||||||
SuccessCount int `json:"success_count" description:"成功数"`
|
TotalCount int `json:"total_count" description:"总数"`
|
||||||
SkipCount int `json:"skip_count" description:"跳过数"`
|
SuccessCount int `json:"success_count" description:"成功数"`
|
||||||
FailCount int `json:"fail_count" description:"失败数"`
|
SkipCount int `json:"skip_count" description:"跳过数"`
|
||||||
StartedAt *time.Time `json:"started_at,omitempty" description:"开始处理时间"`
|
FailCount int `json:"fail_count" description:"失败数"`
|
||||||
CompletedAt *time.Time `json:"completed_at,omitempty" description:"完成时间"`
|
StartedAt *time.Time `json:"started_at,omitempty" description:"开始处理时间"`
|
||||||
ErrorMessage string `json:"error_message,omitempty" description:"错误信息"`
|
CompletedAt *time.Time `json:"completed_at,omitempty" description:"完成时间"`
|
||||||
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
ErrorMessage string `json:"error_message,omitempty" description:"错误信息"`
|
||||||
|
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListImportTaskResponse struct {
|
type ListImportTaskResponse struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user