新增客户端资产、钱包、订单、实名、设备管理等核心业务 Handler 与 DTO: - 客户端资产信息查询、套餐列表、套餐历史、资产刷新 - 客户端钱包详情、流水、充值校验、充值订单、充值记录 - 客户端订单创建、列表、详情 - 客户端实名认证链接获取 - 客户端设备卡列表、重启、恢复出厂、WiFi配置、切卡 - 客户端订单服务(含微信/支付宝支付流程) - 强充自动代购异步任务处理 - 数据库迁移 000084:充值记录增加自动代购状态字段
87 lines
4.3 KiB
Go
87 lines
4.3 KiB
Go
package dto
|
||
|
||
// ========================================
|
||
// B1 资产信息
|
||
// ========================================
|
||
|
||
// AssetInfoRequest B1 资产信息请求
|
||
type AssetInfoRequest struct {
|
||
Identifier string `json:"identifier" query:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN)"`
|
||
}
|
||
|
||
// AssetInfoResponse B1 资产信息响应
|
||
type AssetInfoResponse struct {
|
||
AssetType string `json:"asset_type" description:"资产类型 (card:卡, device:设备)"`
|
||
AssetID uint `json:"asset_id" description:"资产ID"`
|
||
Identifier string `json:"identifier" description:"资产标识符"`
|
||
VirtualNo string `json:"virtual_no" description:"虚拟号"`
|
||
Status int `json:"status" description:"状态 (0:禁用, 1:启用)"`
|
||
RealNameStatus int `json:"real_name_status" description:"实名状态 (0:未实名, 1:已实名)"`
|
||
CarrierName string `json:"carrier_name" description:"运营商名称"`
|
||
Generation string `json:"generation" description:"制式"`
|
||
WalletBalance int64 `json:"wallet_balance" description:"钱包余额(分)"`
|
||
}
|
||
|
||
// ========================================
|
||
// B2 资产可购套餐列表
|
||
// ========================================
|
||
|
||
// AssetPackageListRequest B2 资产可购套餐列表请求
|
||
type AssetPackageListRequest struct {
|
||
Identifier string `json:"identifier" query:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN)"`
|
||
}
|
||
|
||
// ClientPackageItem B2 客户端套餐项
|
||
type ClientPackageItem struct {
|
||
PackageID uint `json:"package_id" description:"套餐ID"`
|
||
PackageName string `json:"package_name" description:"套餐名称"`
|
||
PackageType string `json:"package_type" description:"套餐类型 (formal:正式套餐, addon:加油包)"`
|
||
RetailPrice int64 `json:"retail_price" description:"零售价(分)"`
|
||
CostPrice int64 `json:"cost_price" description:"成本价(分)"`
|
||
ValidityDays int `json:"validity_days" description:"有效天数"`
|
||
IsAddon bool `json:"is_addon" description:"是否加油包"`
|
||
DataAllowance int64 `json:"data_allowance" description:"流量额度"`
|
||
DataUnit string `json:"data_unit" description:"流量单位"`
|
||
Description string `json:"description" description:"套餐说明"`
|
||
}
|
||
|
||
// AssetPackageListResponse B2 资产可购套餐列表响应
|
||
type AssetPackageListResponse struct {
|
||
Packages []ClientPackageItem `json:"packages" description:"套餐列表"`
|
||
}
|
||
|
||
// ========================================
|
||
// B3 资产套餐历史
|
||
// ========================================
|
||
|
||
// AssetPackageHistoryRequest B3 资产套餐历史请求
|
||
type AssetPackageHistoryRequest struct {
|
||
Identifier string `json:"identifier" query:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN)"`
|
||
Page int `json:"page" query:"page" validate:"required,min=1" required:"true" minimum:"1" description:"页码"`
|
||
PageSize int `json:"page_size" query:"page_size" validate:"required,min=1,max=100" required:"true" minimum:"1" maximum:"100" description:"每页数量"`
|
||
}
|
||
|
||
// AssetPackageHistoryResponse B3 资产套餐历史响应
|
||
type AssetPackageHistoryResponse struct {
|
||
List []AssetPackageResponse `json:"list" description:"套餐历史列表"`
|
||
Total int64 `json:"total" description:"总数"`
|
||
Page int `json:"page" description:"页码"`
|
||
PageSize int `json:"page_size" description:"每页数量"`
|
||
}
|
||
|
||
// ========================================
|
||
// B4 资产刷新
|
||
// ========================================
|
||
|
||
// AssetRefreshRequest B4 资产刷新请求
|
||
type AssetRefreshRequest struct {
|
||
Identifier string `json:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN)"`
|
||
}
|
||
|
||
// AssetRefreshResponse B4 资产刷新响应
|
||
type AssetRefreshResponse struct {
|
||
RefreshType string `json:"refresh_type" description:"刷新类型 (card:卡, device:设备)"`
|
||
Accepted bool `json:"accepted" description:"是否已受理"`
|
||
CooldownSeconds int `json:"cooldown_seconds" description:"冷却秒数"`
|
||
}
|