components: schemas: AppPersonalCustomerDTO: properties: avatar_url: type: string id: minimum: 0 type: integer nickname: type: string phone: type: string status: type: integer wx_open_id: type: string type: object AppUpdateProfileRequest: properties: avatar_url: type: string nickname: type: string type: object DtoAccountPageResult: properties: items: description: 账号列表 items: $ref: '#/components/schemas/DtoAccountResponse' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoAccountResponse: properties: created_at: description: 创建时间 type: string creator: description: 创建人ID minimum: 0 type: integer enterprise_id: description: 关联企业ID minimum: 0 nullable: true type: integer enterprise_name: description: 企业名称 type: string id: description: 账号ID minimum: 0 type: integer phone: description: 手机号 type: string shop_id: description: 关联店铺ID minimum: 0 nullable: true type: integer shop_name: description: 店铺名称 type: string status: description: 状态 (0:禁用, 1:启用) type: integer updated_at: description: 更新时间 type: string updater: description: 更新人ID minimum: 0 type: integer user_type: description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号) type: integer username: description: 用户名 type: string type: object DtoAccountRoleResponse: properties: account_id: description: 账号ID minimum: 0 type: integer created_at: description: 创建时间 type: string id: description: 关联ID minimum: 0 type: integer role_id: description: 角色ID minimum: 0 type: integer status: description: 状态 (0:禁用, 1:启用) type: integer type: object DtoAccountRolesResponse: properties: account_id: description: 账号ID minimum: 0 type: integer roles: description: 角色列表 items: $ref: '#/components/schemas/DtoRoleResponse' nullable: true type: array type: object DtoAgentOfflinePayParams: properties: operation_password: description: 操作密码 type: string required: - operation_password type: object DtoAgentRechargeListResponse: properties: list: description: 充值记录列表 items: $ref: '#/components/schemas/DtoAgentRechargeResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页条数 type: integer total: description: 总记录数 type: integer type: object DtoAgentRechargeResponse: properties: agent_wallet_id: description: 代理钱包ID minimum: 0 type: integer amount: description: 充值金额(分) type: integer completed_at: description: 完成时间 nullable: true type: string created_at: description: 创建时间 type: string id: description: 充值记录ID minimum: 0 type: integer paid_at: description: 支付时间 nullable: true type: string payment_channel: description: 实际支付通道 (wechat_direct:微信直连, fuyou:富友, offline:线下转账) type: string payment_config_id: description: 关联支付配置ID,线下充值为null minimum: 0 nullable: true type: integer payment_method: description: 支付方式 (wechat:微信在线支付, offline:线下转账) type: string payment_transaction_id: description: 第三方支付流水号 type: string recharge_no: description: 充值单号(ARCH前缀) type: string shop_id: description: 店铺ID minimum: 0 type: integer shop_name: description: 店铺名称 type: string status: description: 状态 (1:待支付, 2:已完成, 3:已取消) type: integer updated_at: description: 更新时间 type: string type: object DtoAllocateCardsReq: properties: iccids: description: 需要授权的 ICCID 列表 items: type: string nullable: true type: array remark: description: 授权备注 type: string required: - iccids type: object DtoAllocateCardsResp: properties: fail_count: description: 失败数量 type: integer failed_items: description: 失败详情 items: $ref: '#/components/schemas/DtoFailedItem' nullable: true type: array success_count: description: 成功数量 type: integer type: object DtoAllocateDevicesReq: properties: device_nos: description: 设备号列表(最多100个) items: type: string nullable: true type: array remark: description: 授权备注 type: string type: object DtoAllocateDevicesRequest: properties: device_ids: description: 设备ID列表 items: minimum: 0 type: integer maxItems: 100 minItems: 1 nullable: true type: array remark: description: 备注 maxLength: 500 type: string target_shop_id: description: 目标店铺ID minimum: 1 type: integer required: - target_shop_id - device_ids type: object DtoAllocateDevicesResp: properties: authorized_devices: description: 已授权设备列表 items: $ref: '#/components/schemas/DtoAuthorizedDeviceItem' nullable: true type: array fail_count: description: 失败数量 type: integer failed_items: description: 失败项列表 items: $ref: '#/components/schemas/DtoFailedDeviceItem' nullable: true type: array success_count: description: 成功数量 type: integer type: object DtoAllocateDevicesResponse: properties: fail_count: description: 失败数量 type: integer failed_items: description: 失败详情列表 items: $ref: '#/components/schemas/DtoAllocationDeviceFailedItem' nullable: true type: array success_count: description: 成功数量 type: integer type: object DtoAllocateStandaloneCardsRequest: properties: batch_no: description: 批次号(selection_type=filter时可选) maxLength: 100 type: string carrier_id: description: 运营商ID(selection_type=filter时可选) minimum: 0 nullable: true type: integer iccid_end: description: 结束ICCID(selection_type=range时必填) maxLength: 20 type: string iccid_start: description: 起始ICCID(selection_type=range时必填) maxLength: 20 type: string iccids: description: ICCID列表(selection_type=list时必填,最多1000个) items: type: string nullable: true type: array remark: description: 备注 maxLength: 500 type: string selection_type: description: 选卡方式 (list:ICCID列表, range:号段范围, filter:筛选条件) enum: - list - range - filter type: string status: description: 卡状态 (1:在库, 2:已分销)(selection_type=filter时可选) maximum: 4 minimum: 1 nullable: true type: integer to_shop_id: description: 目标店铺ID minimum: 1 type: integer required: - to_shop_id - selection_type type: object DtoAllocateStandaloneCardsResponse: properties: allocation_no: description: 分配单号 type: string fail_count: description: 失败数 type: integer failed_items: description: 失败项列表 items: $ref: '#/components/schemas/DtoAllocationFailedItem' nullable: true type: array success_count: description: 成功数 type: integer total_count: description: 待分配总数 type: integer type: object DtoAllocationDeviceFailedItem: properties: device_id: description: 设备ID minimum: 0 type: integer reason: description: 失败原因 type: string virtual_no: description: 设备虚拟号 type: string type: object DtoAllocationFailedItem: properties: iccid: description: ICCID type: string reason: description: 失败原因 type: string type: object DtoApproveWithdrawalReq: properties: account_name: description: 修正后的收款人姓名 maxLength: 100 nullable: true type: string account_number: description: 修正后的收款账号 maxLength: 100 nullable: true type: string amount: description: 修正后的提现金额(分),不填则使用原金额 minimum: 1 nullable: true type: integer payment_type: description: 放款类型(目前只支持manual人工打款) type: string remark: description: 备注 maxLength: 500 type: string withdrawal_method: description: 修正后的收款类型 (alipay:支付宝, wechat:微信, bank:银行卡) nullable: true type: string required: - payment_type type: object DtoAssetAllocationRecordDetailResponse: properties: allocation_name: description: 分配类型名称 type: string allocation_no: description: 分配单号 type: string allocation_type: description: 分配类型 (allocate:分配, recall:回收) type: string asset_id: description: 资产ID minimum: 0 type: integer asset_identifier: description: 资产标识符(ICCID或设备号) type: string asset_type: description: 资产类型 (iot_card:物联网卡, device:设备) type: string asset_type_name: description: 资产类型名称 type: string created_at: description: 创建时间 format: date-time type: string from_owner_id: description: 来源所有者ID minimum: 0 nullable: true type: integer from_owner_name: description: 来源所有者名称 type: string from_owner_type: description: 来源所有者类型 type: string id: description: 记录ID minimum: 0 type: integer operator_id: description: 操作人ID minimum: 0 type: integer operator_name: description: 操作人名称 type: string related_card_count: description: 关联卡数量 type: integer related_card_ids: description: 关联卡ID列表 items: minimum: 0 type: integer type: array related_device_id: description: 关联设备ID minimum: 0 nullable: true type: integer remark: description: 备注 type: string to_owner_id: description: 目标所有者ID minimum: 0 type: integer to_owner_name: description: 目标所有者名称 type: string to_owner_type: description: 目标所有者类型 type: string type: object DtoAssetAllocationRecordResponse: properties: allocation_name: description: 分配类型名称 type: string allocation_no: description: 分配单号 type: string allocation_type: description: 分配类型 (allocate:分配, recall:回收) type: string asset_id: description: 资产ID minimum: 0 type: integer asset_identifier: description: 资产标识符(ICCID或设备号) type: string asset_type: description: 资产类型 (iot_card:物联网卡, device:设备) type: string asset_type_name: description: 资产类型名称 type: string created_at: description: 创建时间 format: date-time type: string from_owner_id: description: 来源所有者ID minimum: 0 nullable: true type: integer from_owner_name: description: 来源所有者名称 type: string from_owner_type: description: 来源所有者类型 type: string id: description: 记录ID minimum: 0 type: integer operator_id: description: 操作人ID minimum: 0 type: integer operator_name: description: 操作人名称 type: string related_card_count: description: 关联卡数量 type: integer related_device_id: description: 关联设备ID minimum: 0 nullable: true type: integer remark: description: 备注 type: string to_owner_id: description: 目标所有者ID minimum: 0 type: integer to_owner_name: description: 目标所有者名称 type: string to_owner_type: description: 目标所有者类型 type: string type: object DtoAssetInfoResponse: properties: asset_id: description: 资产ID minimum: 0 type: integer asset_type: description: 资产类型 (card:卡, device:设备) type: string carrier_name: description: 运营商名称 type: string generation: description: 制式 type: string identifier: description: 资产标识符 type: string real_name_status: description: 实名状态 (0:未实名, 1:已实名) type: integer status: description: 状态 (0:禁用, 1:启用) type: integer virtual_no: description: 虚拟号 type: string wallet_balance: description: 钱包余额(分) type: integer type: object DtoAssetPackageHistoryResponse: properties: list: description: 套餐历史列表 items: $ref: '#/components/schemas/DtoAssetPackageResponse' nullable: true type: array page: description: 页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer type: object DtoAssetPackageListResponse: properties: packages: description: 套餐列表 items: $ref: '#/components/schemas/DtoClientPackageItem' nullable: true type: array type: object DtoAssetPackageResponse: properties: activated_at: description: 激活时间(待生效套餐为空) format: date-time nullable: true type: string created_at: description: 创建时间 format: date-time type: string data_limit_mb: description: 套餐真流量总量(MB) type: integer data_usage_mb: description: 已用真流量(MB) type: integer expires_at: description: 到期时间(待生效套餐为空) format: date-time nullable: true type: string master_usage_id: description: 主套餐ID(加油包时有值) minimum: 0 nullable: true type: integer package_id: description: 套餐ID minimum: 0 type: integer package_name: description: 套餐名称 type: string package_type: description: 套餐类型:formal/addon type: string package_usage_id: description: 套餐使用记录ID minimum: 0 type: integer priority: description: 优先级 type: integer status: description: 状态:0待生效 1生效中 2已用完 3已过期 4已失效 type: integer status_name: description: 状态名称 type: string usage_type: description: 使用类型:single_card/device type: string virtual_limit_mb: description: 套餐虚流量总量(MB),按virtual_ratio换算 type: integer virtual_ratio: description: 虚流量比例(real/virtual) type: number virtual_remain_mb: description: 剩余虚流量(MB),按virtual_ratio换算 type: number virtual_used_mb: description: 已用虚流量(MB),按virtual_ratio换算 type: number type: object DtoAssetRealtimeStatusResponse: properties: asset_id: description: 资产ID minimum: 0 type: integer asset_type: description: 资产类型:card 或 device type: string cards: description: 绑定卡状态列表(asset_type=device时有效) items: $ref: '#/components/schemas/DtoBoundCardInfo' type: array current_month_usage_mb: description: 本月已用流量MB(asset_type=card时有效) type: number device_protect_status: description: 保护期状态(asset_type=device时有效):none/stop/start type: string last_sync_time: description: 最后同步时间(asset_type=card时有效) format: date-time nullable: true type: string network_status: description: 网络状态(asset_type=card时有效):0停机 1开机 type: integer real_name_status: description: 实名状态(asset_type=card时有效) type: integer type: object DtoAssetRefreshRequest: properties: identifier: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string required: - identifier type: object DtoAssetRefreshResponse: properties: accepted: description: 是否已受理 type: boolean cooldown_seconds: description: 冷却秒数 type: integer refresh_type: description: 刷新类型 (card:卡, device:设备) type: string type: object DtoAssetResolveResponse: properties: accumulated_recharge: description: 累计充值金额(分) type: integer activated_at: description: 激活时间 format: date-time nullable: true type: string activation_status: description: 激活状态 type: integer asset_id: description: 资产数据库ID minimum: 0 type: integer asset_type: description: 资产类型:card 或 device type: string batch_no: description: 批次号 type: string bound_card_count: description: 绑定的卡数量(asset_type=device时有效) type: integer bound_device_id: description: 绑定的设备ID(asset_type=card时有效) minimum: 0 nullable: true type: integer bound_device_name: description: 绑定的设备名称(asset_type=card时有效) type: string bound_device_no: description: 绑定的设备虚拟号(asset_type=card时有效) type: string card_category: description: 卡业务类型 type: string cards: description: 绑定的卡列表(asset_type=device时有效) items: $ref: '#/components/schemas/DtoBoundCardInfo' type: array carrier_id: description: 运营商ID minimum: 0 type: integer carrier_name: description: 运营商名称 type: string carrier_type: description: 运营商类型 type: string created_at: description: 创建时间 format: date-time type: string current_package: description: 当前套餐名称(无套餐时为空) type: string device_model: description: 设备型号 type: string device_name: description: 设备名称 type: string device_protect_status: description: 设备保护期状态:none/stop/start(仅asset_type=device时有效) type: string device_type: description: 设备类型 type: string enable_polling: description: 是否参与轮询 type: boolean first_commission_paid: description: 一次性佣金是否已发放 type: boolean iccid: description: 卡ICCID(asset_type=card时有效) type: string imei: description: 设备IMEI type: string imsi: description: IMSI type: string manufacturer: description: 制造商 type: string max_sim_slots: description: 最大插槽数 type: integer msisdn: description: 手机号 type: string network_status: description: 网络状态:0停机 1开机(asset_type=card时有效) type: integer package_remain_mb: description: 当前套餐剩余虚流量(MB),已按virtual_ratio换算 type: number package_total_mb: description: 当前套餐总虚流量(MB),已按virtual_ratio换算 type: integer package_used_mb: description: 当前已用虚流量(MB),已按virtual_ratio换算 type: number real_name_status: description: 实名状态:0未实名 1实名中 2已实名 type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer series_name: description: 套餐系列名称 type: string shop_id: description: 所属店铺ID minimum: 0 nullable: true type: integer shop_name: description: 所属店铺名称 type: string sn: description: 设备序列号 type: string status: description: 资产状态 type: integer supplier: description: 供应商 type: string updated_at: description: 更新时间 format: date-time type: string virtual_no: description: 虚拟号 type: string type: object DtoAssetWalletResponse: properties: available_balance: description: 可用余额 = balance - frozen_balance(分) type: integer balance: description: 总余额(分) type: integer created_at: description: 创建时间(RFC3339) format: date-time type: string currency: description: 币种,目前固定 CNY type: string frozen_balance: description: 冻结余额(分) type: integer resource_id: description: 对应卡或设备的数据库ID minimum: 0 type: integer resource_type: description: 资源类型:iot_card 或 device type: string status: description: 钱包状态:1-正常 2-冻结 3-关闭 type: integer status_text: description: 状态文本 type: string updated_at: description: 更新时间(RFC3339) format: date-time type: string wallet_id: description: 钱包数据库ID minimum: 0 type: integer type: object DtoAssetWalletTransactionItem: properties: amount: description: 变动金额(分),充值为正数,扣款/退款为负数 type: integer balance_after: description: 变动后余额(分) type: integer balance_before: description: 变动前余额(分) type: integer created_at: description: 流水创建时间(RFC3339) format: date-time type: string id: description: 流水记录ID minimum: 0 type: integer reference_no: description: 关联业务编号:充值单号(CRCH…)或订单号(ORD…)(可空) nullable: true type: string reference_type: description: 关联业务类型:recharge 或 order(可空) nullable: true type: string remark: description: 备注(可空) nullable: true type: string transaction_type: description: 交易类型:recharge/deduct/refund type: string transaction_type_text: description: 交易类型文本:充值/扣款/退款 type: string type: object DtoAssetWalletTransactionListResponse: properties: list: description: 流水列表 items: $ref: '#/components/schemas/DtoAssetWalletTransactionItem' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总记录数 type: integer total_pages: description: 总页数 type: integer type: object DtoAssignPermissionsParams: properties: perm_ids: description: 权限ID列表 items: minimum: 0 type: integer minItems: 1 nullable: true type: array required: - perm_ids type: object DtoAssignRolesParams: properties: role_ids: description: 角色ID列表,传空数组可清空所有角色 items: minimum: 0 type: integer nullable: true type: array type: object DtoAssignShopRolesRequest: properties: role_ids: description: 角色ID列表 items: minimum: 0 type: integer nullable: true type: array type: object DtoAuthorizationItem: properties: authorized_at: description: 授权时间 format: date-time type: string authorized_by: description: 授权人ID minimum: 0 type: integer authorizer_name: description: 授权人名称 type: string authorizer_type: description: 授权人类型:2=平台,3=代理 type: integer card_id: description: 卡ID minimum: 0 type: integer enterprise_id: description: 企业ID minimum: 0 type: integer enterprise_name: description: 企业名称 type: string iccid: description: ICCID type: string id: description: 授权记录ID minimum: 0 type: integer msisdn: description: 手机号 type: string remark: description: 备注 type: string revoked_at: description: 回收时间 format: date-time nullable: true type: string revoked_by: description: 回收人ID minimum: 0 nullable: true type: integer revoker_name: description: 回收人名称 type: string status: description: 状态:1=有效,0=已回收 type: integer type: object DtoAuthorizationListResp: properties: items: description: 授权记录列表 items: $ref: '#/components/schemas/DtoAuthorizationItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoAuthorizedDeviceItem: properties: card_count: description: 绑定卡数量 type: integer device_id: description: 设备ID minimum: 0 type: integer virtual_no: description: 设备虚拟号 type: string type: object DtoBatchAllocatePackagesRequest: properties: one_time_commission_amount: description: 该代理能拿到的一次性佣金(分) minimum: 0 nullable: true type: integer price_adjustment: $ref: '#/components/schemas/DtoPriceAdjustment' series_id: description: 套餐系列ID minimum: 0 type: integer shop_id: description: 被分配的店铺ID minimum: 0 type: integer required: - shop_id - series_id type: object DtoBatchPricingSkipped: properties: allocation_id: description: 分配ID minimum: 0 type: integer reason: description: 跳过原因 type: string type: object DtoBatchSetCardSeriesBindngRequest: properties: iccids: description: ICCID列表 items: type: string maxItems: 500 minItems: 1 nullable: true type: array series_id: description: 套餐系列ID(0表示清除关联) minimum: 0 type: integer required: - iccids - series_id type: object DtoBatchSetCardSeriesBindngResponse: properties: fail_count: description: 失败数量 type: integer failed_items: description: 失败详情列表 items: $ref: '#/components/schemas/DtoCardSeriesBindngFailedItem' nullable: true type: array success_count: description: 成功数量 type: integer type: object DtoBatchSetDeviceSeriesBindngRequest: properties: device_ids: description: 设备ID列表 items: minimum: 0 type: integer maxItems: 500 minItems: 1 nullable: true type: array series_id: description: 套餐系列ID(0表示清除关联) minimum: 0 type: integer required: - device_ids - series_id type: object DtoBatchSetDeviceSeriesBindngResponse: properties: fail_count: description: 失败数量 type: integer failed_items: description: 失败详情列表 items: $ref: '#/components/schemas/DtoDeviceSeriesBindngFailedItem' nullable: true type: array success_count: description: 成功数量 type: integer type: object DtoBatchUpdateCostPriceRequest: properties: change_reason: description: 变更原因 maxLength: 255 type: string price_adjustment: $ref: '#/components/schemas/DtoPriceAdjustment' pricing_target: description: 调价目标 cost_price-成本价(默认) retail_price-零售价 type: string series_id: description: 套餐系列ID(可选,不填则调整所有) minimum: 0 nullable: true type: integer shop_id: description: 店铺ID minimum: 0 type: integer required: - shop_id - price_adjustment type: object DtoBatchUpdateCostPriceResponse: properties: affected_ids: description: 受影响的分配ID列表 items: minimum: 0 type: integer nullable: true type: array skipped: description: 跳过的记录 items: $ref: '#/components/schemas/DtoBatchPricingSkipped' type: array updated_count: description: 更新数量 type: integer type: object DtoBindCardToDeviceRequest: properties: iot_card_id: description: IoT卡ID minimum: 1 type: integer slot_position: description: 插槽位置 (1-4) maximum: 4 minimum: 1 type: integer required: - iot_card_id - slot_position type: object DtoBindCardToDeviceResponse: properties: binding_id: description: 绑定记录ID minimum: 0 type: integer message: description: 提示信息 type: string type: object DtoBindPhoneRequest: properties: code: description: 验证码 maxLength: 6 minLength: 6 type: string phone: description: 手机号 maxLength: 11 minLength: 11 type: string required: - phone - code type: object DtoBindPhoneResponse: properties: bound_at: description: 绑定时间 type: string phone: description: 已绑定手机号 type: string type: object DtoBoundCardInfo: properties: card_id: description: 卡ID minimum: 0 type: integer iccid: description: ICCID type: string msisdn: description: 手机号 type: string network_status: description: 网络状态:0停机 1开机 type: integer real_name_status: description: 实名状态 type: integer slot_position: description: 插槽位置 type: integer type: object DtoCancelTriggerReq: properties: trigger_id: description: 触发任务ID minimum: 0 type: integer type: object DtoCardInfoBrief: properties: iccid: description: 物联网卡ICCID type: string msisdn: description: 手机号 type: string virtual_no: description: 虚拟号 type: string type: object DtoCardSeriesBindngFailedItem: properties: iccid: description: ICCID type: string reason: description: 失败原因 type: string type: object DtoCarrierPageResult: properties: list: description: 运营商列表 items: $ref: '#/components/schemas/DtoCarrierResponse' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoCarrierResponse: properties: carrier_code: description: 运营商编码 type: string carrier_name: description: 运营商名称 type: string carrier_type: description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电) type: string created_at: description: 创建时间 type: string description: description: 运营商描述 type: string id: description: 运营商ID minimum: 0 type: integer realname_link_template: description: 实名链接模板URL type: string realname_link_type: description: 实名链接类型 none-不支持 template-模板URL gateway-Gateway接口 type: string status: description: 状态 (1:启用, 0:禁用) type: integer updated_at: description: 更新时间 type: string type: object DtoChangePasswordRequest: properties: new_password: type: string old_password: type: string type: object DtoChangePhoneRequest: properties: new_code: description: 新手机号验证码 maxLength: 6 minLength: 6 type: string new_phone: description: 新手机号 maxLength: 11 minLength: 11 type: string old_code: description: 旧手机号验证码 maxLength: 6 minLength: 6 type: string old_phone: description: 旧手机号 maxLength: 11 minLength: 11 type: string required: - old_phone - old_code - new_phone - new_code type: object DtoChangePhoneResponse: properties: changed_at: description: 换绑时间 type: string phone: description: 换绑后手机号 type: string type: object DtoClientCreateOrderRequest: properties: app_type: description: 应用类型 (official_account:公众号, miniapp:小程序) type: string identifier: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string package_ids: description: 套餐ID列表 items: minimum: 0 type: integer nullable: true type: array required: - identifier - package_ids - app_type type: object DtoClientCreateOrderResponse: properties: linked_package_info: $ref: '#/components/schemas/DtoLinkedPackageInfo' order: $ref: '#/components/schemas/DtoClientOrderInfo' order_type: description: 订单类型 (package:套餐订单, recharge:充值订单) type: string pay_config: $ref: '#/components/schemas/DtoClientPayConfig' recharge: $ref: '#/components/schemas/DtoClientRechargeInfo' type: object DtoClientCreateRechargeRequest: properties: amount: description: 充值金额(分) maximum: 1e+07 minimum: 100 type: integer app_type: description: 应用类型 (official_account:公众号, miniapp:小程序) type: string identifier: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string payment_method: description: 支付方式 (wechat:微信支付) type: string required: - identifier - amount - payment_method - app_type type: object DtoClientExchangePendingResponse: properties: created_at: description: 创建时间 format: date-time type: string exchange_no: description: 换货单号 type: string exchange_reason: description: 换货原因 type: string id: description: 换货单ID minimum: 0 type: integer status: description: 换货状态 (1:待填写信息, 2:待发货, 3:已发货待确认, 4:已完成, 5:已取消) type: integer status_text: description: 换货状态文本 type: string type: object DtoClientOrderDetailResponse: properties: completed_at: description: 完成时间 nullable: true type: string created_at: description: 创建时间 type: string order_id: description: 订单ID minimum: 0 type: integer order_no: description: 订单号 type: string packages: description: 订单套餐列表 items: $ref: '#/components/schemas/DtoClientOrderPackageItem' nullable: true type: array paid_at: description: 支付时间 nullable: true type: string payment_method: description: 支付方式 type: string payment_status: description: 支付状态 (0:待支付, 1:已支付, 2:已取消) type: integer total_amount: description: 订单总金额(分) type: integer type: object DtoClientOrderInfo: properties: created_at: description: 创建时间 type: string order_id: description: 订单ID minimum: 0 type: integer order_no: description: 订单号 type: string payment_status: description: 支付状态 (0:待支付, 1:已支付, 2:已取消) type: integer total_amount: description: 订单总金额(分) type: integer type: object DtoClientOrderListItem: properties: created_at: description: 创建时间 type: string order_id: description: 订单ID minimum: 0 type: integer order_no: description: 订单号 type: string package_names: description: 套餐名称列表 items: type: string nullable: true type: array payment_status: description: 支付状态 (0:待支付, 1:已支付, 2:已取消) type: integer total_amount: description: 订单总金额(分) type: integer type: object DtoClientOrderListResponse: properties: list: description: 订单列表 items: $ref: '#/components/schemas/DtoClientOrderListItem' nullable: true type: array page: description: 页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer type: object DtoClientOrderPackageItem: properties: package_id: description: 套餐ID minimum: 0 type: integer package_name: description: 套餐名称 type: string package_type: description: 套餐类型 (formal:正式套餐, addon:加油包) type: string price: description: 单价(分) type: integer quantity: description: 数量 type: integer type: object DtoClientPackageItem: properties: cost_price: description: 成本价(分) type: integer data_allowance: description: 流量额度 type: integer data_unit: description: 流量单位 type: string description: description: 套餐说明 type: string is_addon: description: 是否加油包 type: boolean package_id: description: 套餐ID minimum: 0 type: integer package_name: description: 套餐名称 type: string package_type: description: 套餐类型 (formal:正式套餐, addon:加油包) type: string retail_price: description: 零售价(分) type: integer validity_days: description: 有效天数 type: integer type: object DtoClientPayConfig: properties: app_id: description: 应用ID type: string nonce_str: description: 随机字符串 type: string package: description: 预支付参数 type: string pay_sign: description: 支付签名 type: string sign_type: description: 签名类型 type: string timestamp: description: 时间戳 type: string type: object DtoClientRechargeCheckResponse: properties: force_recharge_amount: description: 强制充值金额(分) type: integer max_amount: description: 最大充值金额(分) type: integer message: description: 提示信息 type: string min_amount: description: 最小充值金额(分) type: integer need_force_recharge: description: 是否需要强制充值 type: boolean trigger_type: description: 触发类型 type: string type: object DtoClientRechargeInfo: properties: amount: description: 充值金额(分) type: integer auto_purchase_status: description: 自动购包状态 type: string recharge_id: description: 充值ID minimum: 0 type: integer recharge_no: description: 充值单号 type: string status: description: 状态 (0:待支付, 1:已支付, 2:已关闭) type: integer type: object DtoClientRechargeListItem: properties: amount: description: 充值金额(分) type: integer auto_purchase_status: description: 自动购包状态 type: string created_at: description: 创建时间 type: string payment_method: description: 支付方式 type: string recharge_id: description: 充值ID minimum: 0 type: integer recharge_no: description: 充值单号 type: string status: description: 状态 (0:待支付, 1:已支付, 2:已关闭) type: integer type: object DtoClientRechargeListResponse: properties: list: description: 充值记录列表 items: $ref: '#/components/schemas/DtoClientRechargeListItem' nullable: true type: array page: description: 页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer type: object DtoClientRechargePayConfig: properties: app_id: description: 应用ID type: string nonce_str: description: 随机字符串 type: string package: description: 预支付参数 type: string pay_sign: description: 支付签名 type: string sign_type: description: 签名类型 type: string timestamp: description: 时间戳 type: string type: object DtoClientRechargeResponse: properties: pay_config: $ref: '#/components/schemas/DtoClientRechargePayConfig' recharge: $ref: '#/components/schemas/DtoClientRechargeResult' type: object DtoClientRechargeResult: properties: amount: description: 充值金额(分) type: integer recharge_id: description: 充值ID minimum: 0 type: integer recharge_no: description: 充值单号 type: string status: description: 状态 (0:待支付, 1:已支付, 2:已关闭) type: integer type: object DtoClientSendCodeRequest: properties: phone: description: 手机号 maxLength: 11 minLength: 11 type: string scene: description: 业务场景 (bind_phone:绑定手机号, change_phone_old:换绑旧手机, change_phone_new:换绑新手机) type: string required: - phone - scene type: object DtoClientSendCodeResponse: properties: cooldown_seconds: description: 冷却秒数 type: integer type: object DtoClientShippingInfoParams: properties: recipient_address: description: 收货地址 maxLength: 500 minLength: 1 type: string recipient_name: description: 收件人姓名 maxLength: 50 minLength: 1 type: string recipient_phone: description: 收件人电话 maxLength: 20 minLength: 1 type: string required: - recipient_name - recipient_phone - recipient_address type: object DtoCommissionStatsResponse: properties: cost_diff_amount: description: 成本价差收入(分) type: integer cost_diff_count: description: 成本价差笔数 type: integer cost_diff_percent: description: 成本价差占比(千分比) type: integer one_time_amount: description: 一次性佣金收入(分) type: integer one_time_count: description: 一次性佣金笔数 type: integer one_time_percent: description: 一次性佣金占比(千分比) type: integer total_amount: description: 总收入(分) type: integer total_count: description: 总笔数 type: integer type: object DtoCommissionTierInfo: properties: current_rate: description: 当前返佣比例 type: string next_rate: description: 下一档位返佣比例 type: string next_threshold: description: 下一档位阈值 nullable: true type: integer type: object DtoCreateAccountRequest: properties: enterprise_id: description: 关联企业ID(企业账号必填) minimum: 0 nullable: true type: integer password: description: 密码 maxLength: 32 minLength: 8 type: string phone: description: 手机号 maxLength: 11 minLength: 11 type: string shop_id: description: 关联店铺ID(代理账号必填) minimum: 0 nullable: true type: integer user_type: description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号) maximum: 4 minimum: 1 type: integer username: description: 用户名 maxLength: 50 minLength: 3 type: string required: - username - phone - password - user_type type: object DtoCreateAgentRechargeRequest: properties: amount: description: 充值金额(分),范围100元~100万元 maximum: 1e+08 minimum: 10000 type: integer payment_method: description: 支付方式 (wechat:微信在线支付, offline:线下转账仅平台可用) type: string shop_id: description: 目标店铺ID,代理只能填自己店铺 minimum: 0 type: integer required: - shop_id - amount - payment_method type: object DtoCreateCarrierRequest: properties: carrier_code: description: 运营商编码 maxLength: 50 minLength: 1 type: string carrier_name: description: 运营商名称 maxLength: 100 minLength: 1 type: string carrier_type: description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电) type: string description: description: 运营商描述 maxLength: 500 type: string realname_link_template: description: 实名链接模板URL,支持 {iccid}/{msisdn}/{virtual_no} 占位符 maxLength: 500 nullable: true type: string realname_link_type: description: 实名链接类型 none-不支持 template-模板URL gateway-Gateway接口 nullable: true type: string required: - carrier_code - carrier_name - carrier_type type: object DtoCreateDataCleanupConfigReq: properties: batch_size: description: 每批删除条数,默认10000 type: integer description: description: 配置说明 type: string retention_days: description: 保留天数,最少7天 type: integer table_name: description: 表名 type: string type: object DtoCreateEnterpriseReq: properties: address: description: 详细地址 maximum: 255 type: string business_license: description: 营业执照号 maximum: 100 type: string city: description: 城市 maximum: 50 type: string contact_name: description: 联系人姓名 maximum: 50 type: string contact_phone: description: 联系人电话 maximum: 20 type: string district: description: 区县 maximum: 50 type: string enterprise_code: description: 企业编号(唯一) maximum: 50 type: string enterprise_name: description: 企业名称 maximum: 100 type: string legal_person: description: 法人代表 maximum: 50 type: string login_phone: description: 登录手机号(作为企业账号) type: string owner_shop_id: description: 归属店铺ID(可不填则归属平台) minimum: 0 nullable: true type: integer password: description: 登录密码 maximum: 20 minimum: 6 type: string province: description: 省份 maximum: 50 type: string required: - enterprise_name - enterprise_code - contact_name - contact_phone - login_phone - password type: object DtoCreateEnterpriseResp: properties: account_id: description: 账号ID minimum: 0 type: integer enterprise: $ref: '#/components/schemas/DtoEnterpriseItem' type: object DtoCreateExchangeRequest: properties: exchange_reason: description: 换货原因 maxLength: 100 minLength: 1 type: string old_asset_type: description: 旧资产类型 (iot_card:物联网卡, device:设备) type: string old_identifier: description: 旧资产标识符(ICCID/虚拟号/IMEI/SN) maxLength: 100 minLength: 1 type: string remark: description: 备注 maxLength: 500 nullable: true type: string required: - old_asset_type - old_identifier - exchange_reason type: object DtoCreateMyWithdrawalReq: properties: account_name: description: 收款人姓名 maximum: 50 type: string account_number: description: 收款账号 maximum: 100 type: string amount: description: 提现金额(分) minimum: 1 type: integer withdrawal_method: description: 收款类型 enum: - alipay type: string required: - amount - withdrawal_method - account_name - account_number type: object DtoCreateMyWithdrawalResp: properties: actual_amount: description: 实际到账金额(分) type: integer amount: description: 提现金额(分) type: integer created_at: description: 申请时间 type: string fee: description: 手续费(分) type: integer fee_rate: description: 手续费比率(基点) type: integer id: description: 提现申请ID minimum: 0 type: integer status: description: 状态 type: integer status_name: description: 状态名称 type: string withdrawal_no: description: 提现单号 type: string type: object DtoCreateOrderRequest: properties: device_id: description: 设备ID(设备购买时必填) minimum: 0 nullable: true type: integer iot_card_id: description: IoT卡ID(单卡购买时必填) minimum: 0 nullable: true type: integer order_type: description: 订单类型 (single_card:单卡购买, device:设备购买) type: string package_ids: description: 套餐ID列表 items: minimum: 0 type: integer maxItems: 10 minItems: 1 nullable: true type: array payment_method: description: 支付方式 (wallet:钱包支付, wechat:微信支付, alipay:支付宝支付) type: string required: - order_type - package_ids - payment_method type: object DtoCreatePackageRequest: properties: calendar_type: description: 套餐周期类型 (natural_month:自然月, by_day:按天) nullable: true type: string cost_price: description: 成本价(分) minimum: 0 type: integer data_reset_cycle: description: 流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置) nullable: true type: string duration_days: description: 套餐天数(calendar_type=by_day时必填) maximum: 3650 minimum: 1 nullable: true type: integer duration_months: description: 套餐时长(月数) maximum: 120 minimum: 1 type: integer enable_realname_activation: description: 是否启用实名激活 (true:需实名后激活, false:立即激活) nullable: true type: boolean enable_virtual_data: description: 是否启用虚流量 type: boolean package_code: description: 套餐编码 maxLength: 100 minLength: 1 type: string package_name: description: 套餐名称 maxLength: 255 minLength: 1 type: string package_type: description: 套餐类型 (formal:正式套餐, addon:附加套餐) type: string real_data_mb: description: 真流量额度(MB) minimum: 0 nullable: true type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer suggested_retail_price: description: 建议售价(分) minimum: 0 nullable: true type: integer virtual_data_mb: description: 虚流量额度(MB) minimum: 0 nullable: true type: integer required: - package_code - package_name - package_type - duration_months - cost_price type: object DtoCreatePackageSeriesRequest: properties: description: description: 描述 maxLength: 500 type: string enable_one_time_commission: description: 是否启用一次性佣金 nullable: true type: boolean one_time_commission_config: $ref: '#/components/schemas/DtoSeriesOneTimeCommissionConfigDTO' series_code: description: 系列编码 maxLength: 100 minLength: 1 type: string series_name: description: 系列名称 maxLength: 255 minLength: 1 type: string required: - series_code - series_name type: object DtoCreatePermissionRequest: properties: parent_id: description: 父权限ID minimum: 0 nullable: true type: integer perm_code: description: 权限编码 maxLength: 100 minLength: 1 type: string perm_name: description: 权限名称 maxLength: 50 minLength: 1 type: string perm_type: description: 权限类型 (1:菜单, 2:按钮) maximum: 2 minimum: 1 type: integer platform: description: 适用端口 (all:全部, web:Web后台, h5:H5端),默认为 all type: string sort: description: 排序值 minimum: 0 type: integer url: description: 请求路径 maxLength: 255 type: string required: - perm_name - perm_code - perm_type type: object DtoCreatePollingAlertRuleReq: properties: alert_level: description: 告警级别 (warning/critical) type: string cooldown_minutes: description: 冷却时间(分钟),默认5分钟 type: integer metric_type: description: 指标类型 (queue_size/success_rate/avg_duration/concurrency) type: string notify_channels: description: 通知渠道(JSON格式) type: string operator: description: 比较运算符,默认 > type: string rule_name: description: 规则名称 type: string task_type: description: 任务类型 (polling:realname/polling:carddata/polling:package) type: string threshold: description: 阈值 type: number type: object DtoCreatePollingConfigRequest: properties: card_category: description: 卡业务类型 (normal:普通卡, industry:行业卡) type: string card_condition: description: 卡状态条件 (not_real_name:未实名, real_name:已实名, activated:已激活, suspended:已停用) type: string carddata_check_interval: description: 流量检查间隔(秒),NULL表示不检查,最小60秒 minimum: 60 nullable: true type: integer carrier_id: description: 运营商ID(可选,精确匹配) minimum: 0 nullable: true type: integer config_name: description: 配置名称 maxLength: 100 minLength: 1 type: string description: description: 配置说明 maxLength: 500 type: string package_check_interval: description: 套餐检查间隔(秒),NULL表示不检查,最小60秒 minimum: 60 nullable: true type: integer priority: description: 优先级(数字越小优先级越高) maximum: 1000 minimum: 1 type: integer realname_check_interval: description: 实名检查间隔(秒),NULL表示不检查,最小30秒 minimum: 30 nullable: true type: integer required: - config_name - priority type: object DtoCreateRoleRequest: properties: role_desc: description: 角色描述 maxLength: 255 type: string role_name: description: 角色名称 maxLength: 50 minLength: 1 type: string role_type: description: 角色类型 (1:平台角色, 2:客户角色) maximum: 2 minimum: 1 type: integer required: - role_name - role_type type: object DtoCreateShopRequest: properties: address: description: 详细地址 maxLength: 255 type: string city: description: 城市 maxLength: 50 type: string contact_name: description: 联系人姓名 maxLength: 50 type: string contact_phone: description: 联系人电话 maxLength: 11 minLength: 11 type: string default_role_id: description: 店铺默认角色ID(必须是客户角色) minimum: 1 type: integer district: description: 区县 maxLength: 50 type: string init_password: description: 初始账号密码 maxLength: 32 minLength: 8 type: string init_phone: description: 初始账号手机号 maxLength: 11 minLength: 11 type: string init_username: description: 初始账号用户名 maxLength: 50 minLength: 3 type: string parent_id: description: 上级店铺ID(一级店铺可不填) minimum: 1 nullable: true type: integer province: description: 省份 maxLength: 50 type: string shop_code: description: 店铺编号 maxLength: 50 minLength: 1 type: string shop_name: description: 店铺名称 maxLength: 100 minLength: 1 type: string required: - shop_name - shop_code - default_role_id - init_password - init_username - init_phone type: object DtoCreateShopSeriesGrantRequest: properties: commission_tiers: description: 梯度模式阶梯配置,梯度模式必填 items: $ref: '#/components/schemas/DtoGrantCommissionTierItem' type: array enable_force_recharge: description: 是否启用代理强充 nullable: true type: boolean force_recharge_amount: description: 代理强充金额(分) nullable: true type: integer one_time_commission_amount: description: 固定模式佣金金额(分),固定模式必填 nullable: true type: integer packages: description: 初始授权套餐列表 items: $ref: '#/components/schemas/DtoGrantPackageItem' type: array series_id: description: 套餐系列ID minimum: 0 type: integer shop_id: description: 被授权代理店铺ID minimum: 0 type: integer type: object DtoCreateWechatConfigRequest: properties: description: description: 配置描述 maxLength: 500 type: string fy_api_url: description: 富友API地址 maxLength: 500 type: string fy_ins_cd: description: 富友机构号 maxLength: 50 type: string fy_mchnt_cd: description: 富友商户号 maxLength: 50 type: string fy_notify_url: description: 富友支付回调地址 maxLength: 500 type: string fy_private_key: description: 富友私钥(PEM格式) type: string fy_public_key: description: 富友公钥(PEM格式) type: string fy_term_id: description: 富友终端号 maxLength: 50 type: string miniapp_app_id: description: 小程序AppID maxLength: 100 type: string miniapp_app_secret: description: 小程序AppSecret maxLength: 200 type: string name: description: 配置名称 maxLength: 100 minLength: 1 type: string oa_aes_key: description: 公众号AES加密Key maxLength: 200 type: string oa_app_id: description: 公众号AppID maxLength: 100 type: string oa_app_secret: description: 公众号AppSecret maxLength: 200 type: string oa_oauth_redirect_url: description: OAuth回调地址 maxLength: 500 type: string oa_token: description: 公众号Token maxLength: 200 type: string provider_type: description: 支付渠道类型 (wechat:微信直连, fuiou:富友) type: string wx_api_v2_key: description: 微信APIv2密钥 maxLength: 200 type: string wx_api_v3_key: description: 微信APIv3密钥 maxLength: 200 type: string wx_cert_content: description: 微信支付证书内容(PEM格式) type: string wx_key_content: description: 微信支付密钥内容(PEM格式) type: string wx_mch_id: description: 微信商户号 maxLength: 100 type: string wx_notify_url: description: 微信支付回调地址 maxLength: 500 type: string wx_serial_no: description: 微信证书序列号 maxLength: 200 type: string required: - name - provider_type type: object DtoCreateWithdrawalSettingReq: properties: daily_withdrawal_limit: description: 每日提现次数限制 maximum: 100 minimum: 1 type: integer fee_rate: description: 手续费比率(基点,100=1%) maximum: 10000 minimum: 0 type: integer min_withdrawal_amount: description: 最低提现金额(分) minimum: 1 type: integer required: - daily_withdrawal_limit - min_withdrawal_amount - fee_rate type: object DtoDailyCommissionStatsResponse: properties: date: description: 日期(YYYY-MM-DD) type: string total_amount: description: 当日总收入(分) type: integer total_count: description: 当日总笔数 type: integer type: object DtoDataCleanupConfigListResp: properties: items: description: 配置列表 items: $ref: '#/components/schemas/DtoDataCleanupConfigResp' nullable: true type: array type: object DtoDataCleanupConfigResp: properties: batch_size: description: 每批删除条数 type: integer created_at: description: 创建时间 format: date-time type: string description: description: 配置说明 type: string enabled: description: 是否启用:0-禁用,1-启用 type: integer id: description: 配置ID minimum: 0 type: integer retention_days: description: 保留天数 type: integer table_name: description: 表名 type: string updated_at: description: 更新时间 format: date-time type: string updated_by: description: 更新人ID minimum: 0 nullable: true type: integer type: object DtoDataCleanupLogListResp: properties: items: description: 日志列表 items: $ref: '#/components/schemas/DtoDataCleanupLogResp' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoDataCleanupLogResp: properties: cleanup_type: description: 清理类型:scheduled/manual type: string completed_at: description: 完成时间 format: date-time nullable: true type: string deleted_count: description: 删除记录数 type: integer duration_ms: description: 执行耗时(毫秒) type: integer error_message: description: 错误信息 type: string id: description: 日志ID minimum: 0 type: integer retention_days: description: 保留天数 type: integer started_at: description: 开始时间 format: date-time type: string status: description: 状态:success/failed/running type: string table_name: description: 表名 type: string triggered_by: description: 触发人ID minimum: 0 nullable: true type: integer type: object DtoDataCleanupPreviewItem: properties: description: description: 配置说明 type: string record_count: description: 待清理记录数 type: integer retention_days: description: 保留天数 type: integer table_name: description: 表名 type: string type: object DtoDataCleanupPreviewResp: properties: items: description: 预览列表 items: $ref: '#/components/schemas/DtoDataCleanupPreviewItem' nullable: true type: array type: object DtoDataCleanupProgressResp: properties: current_table: description: 当前清理的表 type: string is_running: description: 是否正在运行 type: boolean last_log: $ref: '#/components/schemas/DtoDataCleanupLogResp' processed_tables: description: 已处理表数 type: integer started_at: description: 开始时间 format: date-time nullable: true type: string total_deleted: description: 已删除记录数 type: integer total_tables: description: 总表数 type: integer type: object DtoDeviceCardBindingResponse: properties: bind_time: description: 绑定时间 format: date-time nullable: true type: string carrier_name: description: 运营商名称 type: string iccid: description: ICCID type: string id: description: 绑定记录ID minimum: 0 type: integer iot_card_id: description: IoT卡ID minimum: 0 type: integer msisdn: description: 接入号 type: string slot_position: description: 插槽位置 (1-4) type: integer status: description: 卡状态 (1:在库, 2:已分销, 3:已激活, 4:已停用) type: integer type: object DtoDeviceCardItem: properties: card_id: description: 卡ID minimum: 0 type: integer carrier_name: description: 运营商名称 type: string iccid: description: 物联网卡ICCID type: string is_active: description: 是否当前激活卡 type: boolean msisdn: description: 手机号 type: string network_status: description: 网络状态 type: string real_name_status: description: 实名状态 (0:未实名, 1:已实名) type: integer slot_position: description: 插槽位置 type: integer type: object DtoDeviceCardListResponse: properties: cards: description: 设备卡列表 items: $ref: '#/components/schemas/DtoDeviceCardItem' nullable: true type: array type: object DtoDeviceFactoryResetRequest: properties: identifier: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string required: - identifier type: object DtoDeviceImportResultItemDTO: properties: line: description: 行号 type: integer reason: description: 原因 type: string virtual_no: description: 设备虚拟号 type: string type: object DtoDeviceImportTaskDetailResponse: properties: batch_no: description: 批次号 type: string completed_at: description: 完成时间 format: date-time nullable: true type: string created_at: description: 创建时间 format: date-time type: string error_message: description: 错误信息 type: string fail_count: description: 失败数 type: integer failed_items: description: 失败记录详情 items: $ref: '#/components/schemas/DtoDeviceImportResultItemDTO' nullable: true type: array file_name: description: 文件名 type: string id: description: 任务ID minimum: 0 type: integer skip_count: description: 跳过数 type: integer skipped_items: description: 跳过记录详情 items: $ref: '#/components/schemas/DtoDeviceImportResultItemDTO' nullable: true type: array started_at: description: 开始处理时间 format: date-time nullable: true type: string status: description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败) type: integer status_text: description: 任务状态文本 type: string success_count: description: 成功数 type: integer task_no: description: 任务编号 type: string total_count: description: 总数 type: integer warning_count: description: 警告数(部分成功的设备数量) type: integer warning_items: description: 警告记录详情(部分成功的设备及其卡绑定失败原因) items: $ref: '#/components/schemas/DtoDeviceImportResultItemDTO' nullable: true type: array type: object DtoDeviceImportTaskResponse: properties: batch_no: description: 批次号 type: string completed_at: description: 完成时间 format: date-time nullable: true type: string created_at: description: 创建时间 format: date-time type: string error_message: description: 错误信息 type: string fail_count: description: 失败数 type: integer file_name: description: 文件名 type: string id: description: 任务ID minimum: 0 type: integer skip_count: description: 跳过数 type: integer started_at: description: 开始处理时间 format: date-time nullable: true type: string status: description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败) type: integer status_text: description: 任务状态文本 type: string success_count: description: 成功数 type: integer task_no: description: 任务编号 type: string total_count: description: 总数 type: integer warning_count: description: 警告数(部分成功的设备数量) type: integer type: object DtoDeviceOperationResponse: properties: accepted: description: 是否已受理 type: boolean request_id: description: 请求ID type: string type: object DtoDeviceRebootRequest: properties: identifier: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string required: - identifier type: object DtoDeviceResponse: properties: accumulated_recharge: description: 累计充值金额(分) type: integer activated_at: description: 激活时间 format: date-time nullable: true type: string batch_no: description: 批次号 type: string bound_card_count: description: 已绑定卡数量 type: integer created_at: description: 创建时间 format: date-time type: string device_model: description: 设备型号 type: string device_name: description: 设备名称 type: string device_type: description: 设备类型 type: string first_commission_paid: description: 一次性佣金是否已发放 type: boolean id: description: 设备ID minimum: 0 type: integer imei: description: 设备IMEI type: string manufacturer: description: 制造商 type: string max_sim_slots: description: 最大插槽数 type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer series_name: description: 套餐系列名称 type: string shop_id: description: 店铺ID minimum: 0 nullable: true type: integer shop_name: description: 店铺名称 type: string sn: description: 设备序列号 type: string status: description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用) type: integer status_name: description: 状态名称 type: string updated_at: description: 更新时间 format: date-time type: string virtual_no: description: 设备虚拟号/别名 type: string type: object DtoDeviceSeriesBindngFailedItem: properties: device_id: description: 设备ID minimum: 0 type: integer reason: description: 失败原因 type: string virtual_no: description: 设备虚拟号 type: string type: object DtoDeviceSuspendFailItem: properties: iccid: description: 卡ICCID type: string reason: description: 失败原因 type: string type: object DtoDeviceSuspendResponse: properties: fail_count: description: 失败卡数 type: integer failed_items: description: 失败详情 items: $ref: '#/components/schemas/DtoDeviceSuspendFailItem' type: array skip_count: description: 跳过卡数(未实名或已停机) type: integer success_count: description: 成功停机卡数 type: integer type: object DtoDeviceSwitchCardRequest: properties: identifier: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string target_iccid: description: 目标ICCID maxLength: 30 minLength: 1 type: string required: - identifier - target_iccid type: object DtoDeviceSwitchCardResponse: properties: accepted: description: 是否已受理 type: boolean target_iccid: description: 目标ICCID type: string type: object DtoDeviceWifiRequest: properties: enabled: description: 是否启用WiFi type: boolean identifier: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string password: description: WiFi密码 maxLength: 64 minLength: 1 type: string ssid: description: WiFi名称 maxLength: 32 minLength: 1 type: string required: - identifier - ssid - password - enabled type: object DtoEmptyResponse: properties: message: description: 提示信息 type: string type: object DtoEnterpriseCardItem: properties: carrier_id: description: 运营商ID minimum: 0 type: integer carrier_name: description: 运营商名称 type: string device_id: description: 设备ID minimum: 0 nullable: true type: integer iccid: description: ICCID type: string id: description: 卡ID minimum: 0 type: integer msisdn: description: 手机号 type: string network_status: description: 网络状态 type: integer network_status_name: description: 网络状态名称 type: string package_id: description: 套餐ID minimum: 0 nullable: true type: integer package_name: description: 套餐名称 type: string status: description: 状态 type: integer status_name: description: 状态名称 type: string virtual_no: description: 设备虚拟号 type: string type: object DtoEnterpriseCardPageResult: properties: items: description: 卡列表 items: $ref: '#/components/schemas/DtoEnterpriseCardItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoEnterpriseDeviceItem: properties: authorized_at: description: 授权时间 format: date-time type: string card_count: description: 绑定卡数量 type: integer device_id: description: 设备ID minimum: 0 type: integer device_model: description: 设备型号 type: string device_name: description: 设备名称 type: string virtual_no: description: 设备虚拟号 type: string type: object DtoEnterpriseDeviceListResp: properties: list: description: 设备列表 items: $ref: '#/components/schemas/DtoEnterpriseDeviceItem' nullable: true type: array total: description: 总数 type: integer type: object DtoEnterpriseItem: properties: address: description: 详细地址 type: string business_license: description: 营业执照号 type: string city: description: 城市 type: string contact_name: description: 联系人姓名 type: string contact_phone: description: 联系人电话 type: string created_at: description: 创建时间 type: string district: description: 区县 type: string enterprise_code: description: 企业编号 type: string enterprise_name: description: 企业名称 type: string id: description: 企业ID minimum: 0 type: integer legal_person: description: 法人代表 type: string login_phone: description: 登录手机号 type: string owner_shop_id: description: 归属店铺ID minimum: 0 nullable: true type: integer owner_shop_name: description: 归属店铺名称 type: string province: description: 省份 type: string status: description: 状态(0=禁用, 1=启用) type: integer status_name: description: 状态名称 type: string type: object DtoEnterprisePageResult: properties: items: description: 企业列表 items: $ref: '#/components/schemas/DtoEnterpriseItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoExchangeCancelParams: properties: remark: description: 取消备注 maxLength: 500 nullable: true type: string type: object DtoExchangeListResponse: properties: list: description: 换货单列表 items: $ref: '#/components/schemas/DtoExchangeOrderResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer type: object DtoExchangeOrderResponse: properties: created_at: description: 创建时间 format: date-time type: string creator: description: 创建人ID minimum: 0 type: integer deleted_at: description: 删除时间 format: date-time nullable: true type: string exchange_no: description: 换货单号 type: string exchange_reason: description: 换货原因 type: string express_company: description: 快递公司 type: string express_no: description: 快递单号 type: string id: description: 换货单ID minimum: 0 type: integer migrate_data: description: 是否执行全量迁移 type: boolean migration_balance: description: 迁移转移金额(分) type: integer migration_completed: description: 迁移是否已完成 type: boolean new_asset_id: description: 新资产ID minimum: 0 nullable: true type: integer new_asset_identifier: description: 新资产标识符 type: string new_asset_type: description: 新资产类型 (iot_card:物联网卡, device:设备) type: string old_asset_id: description: 旧资产ID minimum: 0 type: integer old_asset_identifier: description: 旧资产标识符 type: string old_asset_type: description: 旧资产类型 (iot_card:物联网卡, device:设备) type: string recipient_address: description: 收货地址 type: string recipient_name: description: 收件人姓名 type: string recipient_phone: description: 收件人电话 type: string remark: description: 备注 nullable: true type: string shop_id: description: 所属店铺ID minimum: 0 nullable: true type: integer status: description: 换货状态 (1:待填写信息, 2:待发货, 3:已发货待确认, 4:已完成, 5:已取消) type: integer status_text: description: 换货状态文本 type: string updated_at: description: 更新时间 format: date-time type: string updater: description: 更新人ID minimum: 0 type: integer type: object DtoExchangeShipParams: properties: express_company: description: 快递公司 maxLength: 100 minLength: 1 type: string express_no: description: 快递单号 maxLength: 100 minLength: 1 type: string migrate_data: description: 是否执行全量迁移 (true:执行, false:不执行) type: boolean new_identifier: description: 新资产标识符(ICCID/虚拟号/IMEI/SN) maxLength: 100 minLength: 1 type: string required: - express_company - express_no - new_identifier - migrate_data type: object DtoFailedDeviceItem: properties: reason: description: 失败原因 type: string virtual_no: description: 设备虚拟号 type: string type: object DtoFailedItem: properties: iccid: description: ICCID type: string reason: description: 失败原因 type: string type: object DtoGetUploadURLRequest: properties: content_type: description: 文件 MIME 类型(如:text/csv),留空则自动推断 maxLength: 100 type: string file_name: description: 文件名(如:cards.csv) maxLength: 255 minLength: 1 type: string purpose: description: 文件用途 (iot_import:ICCID导入, export:数据导出, attachment:附件) type: string required: - file_name - purpose type: object DtoGetUploadURLResponse: properties: expires_in: description: URL 有效期(秒) type: integer file_key: description: 文件路径标识,上传成功后用于调用业务接口 type: string upload_url: description: 预签名上传 URL,使用 PUT 方法上传文件 type: string type: object DtoGrantCommissionTierItem: properties: amount: description: 该代理在此档位的佣金金额(分) type: integer dimension: description: 统计维度(sales_count:销售量, sales_amount:销售额),来自 PackageSeries 全局配置,响应中只读 type: string operator: description: 比较运算符(>、>=、<、<=),响应中从 PackageSeries 合并,请求中不传 type: string stat_scope: description: 统计范围(self:仅自己, self_and_sub:自己+下级),来自 PackageSeries 全局配置,响应中只读 type: string threshold: description: 阈值(与 PackageSeries 全局配置对应) type: integer type: object DtoGrantPackageItem: properties: cost_price: description: 成本价(分) type: integer package_id: description: 套餐ID minimum: 0 type: integer remove: description: 是否删除该套餐授权(true=删除) nullable: true type: boolean type: object DtoImportDeviceRequest: properties: batch_no: description: 批次号 maxLength: 100 type: string file_key: description: 对象存储文件路径(通过 /storage/upload-url 获取) maxLength: 500 minLength: 1 type: string required: - file_key type: object DtoImportDeviceResponse: properties: message: description: 提示信息 type: string task_id: description: 导入任务ID minimum: 0 type: integer task_no: description: 任务编号 type: string type: object DtoImportIotCardRequest: properties: batch_no: description: 批次号 maxLength: 100 type: string carrier_id: description: 运营商ID minimum: 1 type: integer file_key: description: 对象存储文件路径(通过 /storage/upload-url 获取) maxLength: 500 minLength: 1 type: string required: - carrier_id - file_key type: object DtoImportIotCardResponse: properties: message: description: 提示信息 type: string task_id: description: 导入任务ID minimum: 0 type: integer task_no: description: 任务编号 type: string type: object DtoImportResultItemDTO: properties: iccid: description: ICCID type: string line: description: 行号 type: integer msisdn: description: 接入号 type: string reason: description: 原因 type: string type: object DtoImportTaskDetailResponse: properties: batch_no: description: 批次号 type: string carrier_id: description: 运营商ID minimum: 0 type: integer carrier_name: description: 运营商名称 type: string carrier_type: description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电) type: string completed_at: description: 完成时间 format: date-time nullable: true type: string created_at: description: 创建时间 format: date-time type: string error_message: description: 错误信息 type: string fail_count: description: 失败数 type: integer failed_items: description: 失败记录详情 items: $ref: '#/components/schemas/DtoImportResultItemDTO' nullable: true type: array file_name: description: 文件名 type: string id: description: 任务ID minimum: 0 type: integer skip_count: description: 跳过数 type: integer skipped_items: description: 跳过记录详情 items: $ref: '#/components/schemas/DtoImportResultItemDTO' nullable: true type: array started_at: description: 开始处理时间 format: date-time nullable: true type: string status: description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败) type: integer status_text: description: 任务状态文本 type: string success_count: description: 成功数 type: integer task_no: description: 任务编号 type: string total_count: description: 总数 type: integer type: object DtoImportTaskResponse: properties: batch_no: description: 批次号 type: string carrier_id: description: 运营商ID minimum: 0 type: integer carrier_name: description: 运营商名称 type: string carrier_type: description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电) type: string completed_at: description: 完成时间 format: date-time nullable: true type: string created_at: description: 创建时间 format: date-time type: string error_message: description: 错误信息 type: string fail_count: description: 失败数 type: integer file_name: description: 文件名 type: string id: description: 任务ID minimum: 0 type: integer skip_count: description: 跳过数 type: integer started_at: description: 开始处理时间 format: date-time nullable: true type: string status: description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败) type: integer status_text: description: 任务状态文本 type: string success_count: description: 成功数 type: integer task_no: description: 任务编号 type: string total_count: description: 总数 type: integer type: object DtoLinkedPackageInfo: properties: force_recharge_amount: description: 强制充值金额(分) type: integer package_names: description: 套餐名称列表 items: type: string nullable: true type: array total_package_amount: description: 套餐总金额(分) type: integer wallet_credit: description: 钱包抵扣金额(分) type: integer type: object DtoListAssetAllocationRecordResponse: properties: list: description: 分配记录列表 items: $ref: '#/components/schemas/DtoAssetAllocationRecordResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoListDeviceCardsResponse: properties: bindings: description: 绑定列表 items: $ref: '#/components/schemas/DtoDeviceCardBindingResponse' nullable: true type: array type: object DtoListDeviceImportTaskResponse: properties: list: description: 任务列表 items: $ref: '#/components/schemas/DtoDeviceImportTaskResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoListDeviceResponse: properties: list: description: 设备列表 items: $ref: '#/components/schemas/DtoDeviceResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoListImportTaskResponse: properties: list: description: 任务列表 items: $ref: '#/components/schemas/DtoImportTaskResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoListStandaloneIotCardResponse: properties: list: description: 单卡列表 items: $ref: '#/components/schemas/DtoStandaloneIotCardResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoLoginRequest: properties: device: type: string password: type: string username: type: string type: object DtoLoginResponse: properties: access_token: type: string buttons: description: 按钮权限码 items: type: string nullable: true type: array expires_in: type: integer menus: description: 菜单树 items: $ref: '#/components/schemas/DtoMenuNode' nullable: true type: array permissions: description: 所有权限码(向后兼容) items: type: string nullable: true type: array refresh_token: type: string user: $ref: '#/components/schemas/DtoUserInfo' type: object DtoLogoutResponse: properties: success: description: 是否成功 type: boolean type: object DtoManageGrantPackagesParams: properties: packages: description: 套餐操作列表 items: $ref: '#/components/schemas/DtoGrantPackageItem' nullable: true type: array type: object DtoManualTriggerLogListResp: properties: items: description: 日志列表 items: $ref: '#/components/schemas/DtoManualTriggerLogResp' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoManualTriggerLogResp: properties: completed_at: description: 完成时间 format: date-time nullable: true type: string failed_count: description: 失败数 type: integer id: description: 日志ID minimum: 0 type: integer processed_count: description: 已处理数 type: integer status: description: 状态:pending/processing/completed/cancelled type: string status_name: description: 状态名称 type: string success_count: description: 成功数 type: integer task_type: description: 任务类型 type: string task_type_name: description: 任务类型名称 type: string total_count: description: 总卡数 type: integer trigger_type: description: 触发类型:single/batch/by_condition type: string trigger_type_name: description: 触发类型名称 type: string triggered_at: description: 触发时间 format: date-time type: string triggered_by: description: 触发人ID minimum: 0 type: integer type: object DtoManualTriggerStatusResp: properties: queue_sizes: additionalProperties: type: integer description: 各队列大小 nullable: true type: object running_tasks: description: 正在运行的任务 items: $ref: '#/components/schemas/DtoManualTriggerLogResp' nullable: true type: array type: object DtoMenuNode: properties: children: description: 子菜单 items: $ref: '#/components/schemas/DtoMenuNode' nullable: true type: array id: description: 权限ID minimum: 0 type: integer name: description: 菜单名称 type: string perm_code: description: 权限码 type: string sort: description: 排序值 type: integer url: description: 路由路径 type: string type: object DtoMiniappLoginRequest: properties: asset_token: description: A1返回的资产令牌 type: string avatar_url: description: 用户头像URL(前端授权后传入) type: string code: description: 小程序登录凭证 type: string nickname: description: 用户昵称(前端授权后传入) type: string required: - code - asset_token type: object DtoMyCommissionRecordItem: properties: amount: description: 佣金金额(分) type: integer commission_source: description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励) type: string created_at: description: 创建时间 type: string id: description: 佣金记录ID minimum: 0 type: integer order_id: description: 订单ID minimum: 0 type: integer shop_id: description: 店铺ID minimum: 0 type: integer status: description: 状态 (1:已入账, 2:已失效) type: integer status_name: description: 状态名称 type: string type: object DtoMyCommissionRecordPageResult: properties: items: description: 佣金记录列表 items: $ref: '#/components/schemas/DtoMyCommissionRecordItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoMyCommissionSummaryResp: properties: available_commission: description: 可提现佣金(分) type: integer frozen_commission: description: 冻结佣金(分) type: integer shop_id: description: 店铺ID minimum: 0 type: integer shop_name: description: 店铺名称 type: string total_commission: description: 累计佣金(分) type: integer unwithdraw_commission: description: 未提现佣金(分) type: integer withdrawing_commission: description: 提现中佣金(分) type: integer withdrawn_commission: description: 已提现佣金(分) type: integer type: object DtoOneTimeCommissionTierDTO: properties: amount: description: 佣金金额(分) minimum: 0 type: integer dimension: description: 统计维度 (sales_count:销量, sales_amount:销售额) type: string operator: description: 阈值比较运算符(>、>=、<、<=),空值时计算引擎默认 >= type: string stat_scope: description: 统计范围 (self:仅自己, self_and_sub:自己+下级) type: string threshold: description: 达标阈值 minimum: 0 type: integer required: - dimension - threshold - amount type: object DtoOrderItemResponse: properties: amount: description: 小计金额(分) type: integer id: description: 明细ID minimum: 0 type: integer package_id: description: 套餐ID minimum: 0 type: integer package_name: description: 套餐名称 type: string quantity: description: 数量 type: integer unit_price: description: 单价(分) type: integer type: object DtoOrderListResponse: properties: list: description: 订单列表 items: $ref: '#/components/schemas/DtoOrderResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoOrderResponse: properties: actual_paid_amount: description: 实际支付金额(分) nullable: true type: integer buyer_id: description: 买家ID minimum: 0 type: integer buyer_type: description: 买家类型 (personal:个人客户, agent:代理商) type: string commission_config_version: description: 佣金配置版本 type: integer commission_status: description: 佣金状态 (1:待计算, 2:已计算) type: integer created_at: description: 创建时间 format: date-time type: string device_id: description: 设备ID minimum: 0 nullable: true type: integer expires_at: description: 订单过期时间 format: date-time nullable: true type: string id: description: 订单ID minimum: 0 type: integer iot_card_id: description: IoT卡ID minimum: 0 nullable: true type: integer is_expired: description: 是否已过期 type: boolean is_purchase_on_behalf: description: 是否为代购订单 type: boolean is_purchased_by_parent: description: 是否由上级代理购买 type: boolean items: description: 订单明细列表 items: $ref: '#/components/schemas/DtoOrderItemResponse' nullable: true type: array operator_id: description: 操作者ID minimum: 0 nullable: true type: integer operator_name: description: 操作者名称 type: string operator_type: description: 操作者类型 (platform:平台, agent:代理) type: string order_no: description: 订单号 type: string order_type: description: 订单类型 (single_card:单卡购买, device:设备购买) type: string paid_at: description: 支付时间 format: date-time nullable: true type: string payment_method: description: 支付方式 (wallet:钱包支付, wechat:微信支付, alipay:支付宝支付) type: string payment_status: description: 支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款) type: integer payment_status_text: description: 支付状态文本 type: string purchase_remark: description: 购买备注 type: string purchase_role: description: 订单角色 (self_purchase:自己购买, purchased_by_parent:上级代理购买, purchased_by_platform:平台代购, purchase_for_subordinate:给下级购买) type: string total_amount: description: 订单总金额(分) type: integer updated_at: description: 更新时间 format: date-time type: string type: object DtoPackagePageResult: properties: list: description: 套餐列表 items: $ref: '#/components/schemas/DtoPackageResponse' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoPackageResponse: properties: calendar_type: description: 套餐周期类型 (natural_month:自然月, by_day:按天) type: string cost_price: description: 成本价(分) type: integer created_at: description: 创建时间 type: string current_commission_rate: description: 当前返佣比例(仅代理用户可见) type: string data_reset_cycle: description: 流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置) type: string duration_days: description: 套餐天数(calendar_type=by_day时有值) nullable: true type: integer duration_months: description: 套餐时长(月数) type: integer enable_realname_activation: description: 是否启用实名激活 (true:需实名后激活, false:立即激活) type: boolean enable_virtual_data: description: 是否启用虚流量 type: boolean id: description: 套餐ID minimum: 0 type: integer one_time_commission_amount: description: 一次性佣金金额(分,代理视角) nullable: true type: integer package_code: description: 套餐编码 type: string package_name: description: 套餐名称 type: string package_type: description: 套餐类型 (formal:正式套餐, addon:附加套餐) type: string profit_margin: description: 利润空间(分,仅代理用户可见) nullable: true type: integer real_data_mb: description: 真流量额度(MB) type: integer retail_price: description: 代理零售价(分),仅代理用户可见 nullable: true type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer series_name: description: 套餐系列名称 nullable: true type: string shelf_status: description: 上架状态 (1:上架, 2:下架) type: integer status: description: 状态 (1:启用, 2:禁用) type: integer suggested_retail_price: description: 建议售价(分) type: integer tier_info: $ref: '#/components/schemas/DtoCommissionTierInfo' updated_at: description: 更新时间 type: string virtual_data_mb: description: 虚流量额度(MB) type: integer virtual_ratio: description: 虚流量比例(real_data_mb/virtual_data_mb),启用虚流量时计算,否则为1.0 type: number type: object DtoPackageSeriesPageResult: properties: list: description: 套餐系列列表 items: $ref: '#/components/schemas/DtoPackageSeriesResponse' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoPackageSeriesResponse: properties: created_at: description: 创建时间 type: string description: description: 描述 type: string enable_one_time_commission: description: 是否启用一次性佣金 type: boolean id: description: 系列ID minimum: 0 type: integer one_time_commission_config: $ref: '#/components/schemas/DtoSeriesOneTimeCommissionConfigDTO' series_code: description: 系列编码 type: string series_name: description: 系列名称 type: string status: description: 状态 (1:启用, 2:禁用) type: integer updated_at: description: 更新时间 type: string type: object DtoPackageUsageDailyRecordResponse: properties: cumulative_usage_mb: description: 截止当日的累计流量(MB) type: integer daily_usage_mb: description: 当日流量使用量(MB) type: integer date: description: 日期 type: string type: object DtoPackageUsageDetailResponse: properties: package_name: description: 套餐名称 type: string package_usage_id: description: 套餐使用记录ID minimum: 0 type: integer records: description: 流量日记录列表 items: $ref: '#/components/schemas/DtoPackageUsageDailyRecordResponse' nullable: true type: array total_usage_mb: description: 总使用流量(MB) type: integer type: object DtoPermissionPageResult: properties: items: description: 权限列表 items: $ref: '#/components/schemas/DtoPermissionResponse' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoPermissionResponse: properties: available_for_role_types: description: 可用角色类型 (1:平台角色, 2:客户角色) type: string created_at: description: 创建时间 type: string creator: description: 创建人ID minimum: 0 type: integer id: description: 权限ID minimum: 0 type: integer parent_id: description: 父权限ID minimum: 0 nullable: true type: integer perm_code: description: 权限编码 type: string perm_name: description: 权限名称 type: string perm_type: description: 权限类型 (1:菜单, 2:按钮) type: integer platform: description: 适用端口 (all:全部, web:Web后台, h5:H5端) type: string sort: description: 排序值 type: integer status: description: 状态 (0:禁用, 1:启用) type: integer updated_at: description: 更新时间 type: string updater: description: 更新人ID minimum: 0 type: integer url: description: 请求路径 type: string type: object DtoPermissionTreeNode: properties: available_for_role_types: description: 可用角色类型 (1:平台角色, 2:客户角色) type: string children: description: 子权限列表 items: $ref: '#/components/schemas/DtoPermissionTreeNode' type: array id: description: 权限ID minimum: 0 type: integer perm_code: description: 权限编码 type: string perm_name: description: 权限名称 type: string perm_type: description: 权限类型 (1:菜单, 2:按钮) type: integer platform: description: 适用端口 (all:全部, web:Web后台, h5:H5端) type: string sort: description: 排序值 type: integer status: description: 状态 (0:禁用, 1:启用) type: integer url: description: 请求路径 type: string type: object DtoPollingAlertHistoryListResp: properties: items: description: 告警历史列表 items: $ref: '#/components/schemas/DtoPollingAlertHistoryResp' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoPollingAlertHistoryResp: properties: alert_level: description: 告警级别 type: string created_at: description: 触发时间 format: date-time type: string current_value: description: 触发时的值 type: number id: description: 历史ID minimum: 0 type: integer message: description: 告警消息 type: string metric_type: description: 指标类型 type: string rule_id: description: 规则ID minimum: 0 type: integer rule_name: description: 规则名称 type: string task_type: description: 任务类型 type: string threshold: description: 阈值 type: number type: object DtoPollingAlertRuleListResp: properties: items: description: 告警规则列表 items: $ref: '#/components/schemas/DtoPollingAlertRuleResp' nullable: true type: array type: object DtoPollingAlertRuleResp: properties: alert_level: description: 告警级别 type: string cooldown_minutes: description: 冷却时间(分钟) type: integer created_at: description: 创建时间 format: date-time type: string id: description: 规则ID minimum: 0 type: integer metric_type: description: 指标类型 type: string metric_type_name: description: 指标类型名称 type: string notify_channels: description: 通知渠道 type: string operator: description: 比较运算符 type: string rule_name: description: 规则名称 type: string status: description: 状态 (0:禁用, 1:启用) type: integer task_type: description: 任务类型 type: string task_type_name: description: 任务类型名称 type: string threshold: description: 阈值 type: number updated_at: description: 更新时间 format: date-time type: string type: object DtoPollingConcurrencyListResp: properties: items: description: 并发配置列表 items: $ref: '#/components/schemas/DtoPollingConcurrencyResp' nullable: true type: array type: object DtoPollingConcurrencyResp: properties: available: description: 可用并发数 type: integer current: description: 当前并发数 type: integer max_concurrency: description: 最大并发数 type: integer task_type: description: 任务类型 type: string task_type_name: description: 任务类型名称 type: string utilization: description: 使用率(百分比) type: number type: object DtoPollingConfigPageResult: properties: list: description: 配置列表 items: $ref: '#/components/schemas/DtoPollingConfigResponse' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoPollingConfigResponse: properties: card_category: description: 卡业务类型 (normal:普通卡, industry:行业卡) type: string card_condition: description: 卡状态条件 (not_real_name:未实名, real_name:已实名, activated:已激活, suspended:已停用) type: string carddata_check_interval: description: 流量检查间隔(秒),NULL表示不检查 nullable: true type: integer carrier_id: description: 运营商ID minimum: 0 nullable: true type: integer config_name: description: 配置名称 type: string created_at: description: 创建时间 type: string description: description: 配置说明 type: string id: description: 配置ID minimum: 0 type: integer package_check_interval: description: 套餐检查间隔(秒),NULL表示不检查 nullable: true type: integer priority: description: 优先级(数字越小优先级越高) type: integer realname_check_interval: description: 实名检查间隔(秒),NULL表示不检查 nullable: true type: integer status: description: 状态 (1:启用, 0:禁用) type: integer updated_at: description: 更新时间 type: string type: object DtoPollingInitProgressResp: properties: estimated_eta: description: 预计完成时间 type: string initialized_cards: description: 已初始化卡数 type: integer is_complete: description: 是否完成 type: boolean progress: description: 进度百分比(0-100) type: number started_at: description: 开始时间 format: date-time type: string total_cards: description: 总卡数 type: integer type: object DtoPollingOverviewResp: properties: carddata_queue_size: description: 流量检查队列大小 type: integer init_progress: description: 初始化进度(0-100) type: number initialized_cards: description: 已初始化卡数 type: integer is_initializing: description: 是否正在初始化 type: boolean package_queue_size: description: 套餐检查队列大小 type: integer realname_queue_size: description: 实名检查队列大小 type: integer total_cards: description: 总卡数 type: integer type: object DtoPollingQueueStatusListResp: properties: items: description: 队列状态列表 items: $ref: '#/components/schemas/DtoPollingQueueStatusResp' nullable: true type: array type: object DtoPollingQueueStatusResp: properties: avg_wait_time_s: description: 平均等待时间(秒) type: number due_count: description: 到期待处理数 type: integer manual_pending: description: 手动触发待处理数 type: integer queue_size: description: 队列大小 type: integer task_type: description: 任务类型 type: string task_type_name: description: 任务类型名称 type: string type: object DtoPollingTaskStatsListResp: properties: items: description: 任务统计列表 items: $ref: '#/components/schemas/DtoPollingTaskStatsResp' nullable: true type: array type: object DtoPollingTaskStatsResp: properties: avg_duration_ms: description: 平均耗时(毫秒) type: number failure_count_1h: description: 1小时失败数 type: integer success_count_1h: description: 1小时成功数 type: integer success_rate: description: 成功率(0-100) type: number task_type: description: 任务类型 type: string task_type_name: description: 任务类型名称 type: string total_count_1h: description: 1小时总数 type: integer type: object DtoPriceAdjustment: properties: type: description: 调整类型 (fixed:固定金额, percent:百分比) type: string value: description: 调整值(分或千分比) type: integer required: - type - value type: object DtoPurchaseCheckRequest: properties: order_type: description: 订单类型 (single_card:单卡购买, device:设备购买) type: string package_ids: description: 套餐ID列表 items: minimum: 0 type: integer maxItems: 10 minItems: 1 nullable: true type: array resource_id: description: 资源ID (IoT卡ID或设备ID) minimum: 0 type: integer required: - order_type - resource_id - package_ids type: object DtoPurchaseCheckResponse: properties: actual_payment: description: 实际支付金额(分) type: integer force_recharge_amount: description: 强充金额(分) type: integer message: description: 提示信息 type: string need_force_recharge: description: 是否需要强充 type: boolean total_package_amount: description: 套餐总价(分) type: integer wallet_credit: description: 钱包到账金额(分) type: integer type: object DtoRealnimeLinkResponse: properties: card_info: $ref: '#/components/schemas/DtoCardInfoBrief' expire_at: description: 过期时间 nullable: true type: string realname_mode: description: 实名模式 (none:无需实名, template:模板实名, gateway:网关实名) type: string realname_url: description: 实名链接 type: string type: object DtoRecallCardsReq: properties: iccids: description: 需要回收授权的 ICCID 列表 items: type: string nullable: true type: array required: - iccids type: object DtoRecallCardsResp: properties: fail_count: description: 失败数量 type: integer failed_items: description: 失败详情 items: $ref: '#/components/schemas/DtoFailedItem' nullable: true type: array recalled_devices: description: 连带回收的设备列表 items: $ref: '#/components/schemas/DtoRecalledDevice' nullable: true type: array success_count: description: 成功数量 type: integer type: object DtoRecallDevicesReq: properties: device_nos: description: 设备号列表(最多100个) items: type: string nullable: true type: array type: object DtoRecallDevicesRequest: properties: device_ids: description: 设备ID列表 items: minimum: 0 type: integer maxItems: 100 minItems: 1 nullable: true type: array remark: description: 备注 maxLength: 500 type: string required: - device_ids type: object DtoRecallDevicesResp: properties: fail_count: description: 失败数量 type: integer failed_items: description: 失败项列表 items: $ref: '#/components/schemas/DtoFailedDeviceItem' nullable: true type: array success_count: description: 成功数量 type: integer type: object DtoRecallDevicesResponse: properties: fail_count: description: 失败数量 type: integer failed_items: description: 失败详情列表 items: $ref: '#/components/schemas/DtoAllocationDeviceFailedItem' nullable: true type: array success_count: description: 成功数量 type: integer type: object DtoRecallStandaloneCardsRequest: properties: batch_no: description: 批次号(selection_type=filter时可选) maxLength: 100 type: string carrier_id: description: 运营商ID(selection_type=filter时可选) minimum: 0 nullable: true type: integer iccid_end: description: 结束ICCID(selection_type=range时必填) maxLength: 20 type: string iccid_start: description: 起始ICCID(selection_type=range时必填) maxLength: 20 type: string iccids: description: ICCID列表(selection_type=list时必填,最多1000个) items: type: string nullable: true type: array remark: description: 备注 maxLength: 500 type: string selection_type: description: 选卡方式 (list:ICCID列表, range:号段范围, filter:筛选条件) enum: - list - range - filter type: string required: - selection_type type: object DtoRecallStandaloneCardsResponse: properties: allocation_no: description: 回收单号 type: string fail_count: description: 失败数 type: integer failed_items: description: 失败项列表 items: $ref: '#/components/schemas/DtoAllocationFailedItem' nullable: true type: array success_count: description: 成功数 type: integer total_count: description: 待回收总数 type: integer type: object DtoRecalledDevice: properties: card_count: description: 卡数量 type: integer device_id: description: 设备ID minimum: 0 type: integer iccids: description: 卡ICCID列表 items: type: string nullable: true type: array virtual_no: description: 设备虚拟号 type: string type: object DtoRefreshTokenRequest: properties: refresh_token: type: string type: object DtoRefreshTokenResponse: properties: access_token: type: string expires_in: type: integer type: object DtoRejectWithdrawalReq: properties: remark: description: 拒绝原因(必填) maxLength: 500 type: string required: - remark type: object DtoResetPollingConcurrencyReq: properties: task_type: description: 任务类型 type: string type: object DtoRolePageResult: properties: items: description: 角色列表 items: $ref: '#/components/schemas/DtoRoleResponse' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoRoleResponse: properties: created_at: description: 创建时间 type: string creator: description: 创建人ID minimum: 0 type: integer id: description: 角色ID minimum: 0 type: integer role_desc: description: 角色描述 type: string role_name: description: 角色名称 type: string role_type: description: 角色类型 (1:平台角色, 2:客户角色) type: integer status: description: 状态 (0:禁用, 1:启用) type: integer updated_at: description: 更新时间 type: string updater: description: 更新人ID minimum: 0 type: integer type: object DtoSeriesOneTimeCommissionConfigDTO: properties: commission_amount: description: 固定佣金金额(分),commission_type=fixed时使用 minimum: 0 type: integer commission_type: description: 佣金类型 (fixed:固定, tiered:梯度) type: string enable: description: 是否启用一次性佣金 type: boolean enable_force_recharge: description: 是否启用强充 type: boolean force_amount: description: 强充金额(分) minimum: 0 type: integer force_calc_type: description: 强充计算类型 (fixed:固定, dynamic:动态) type: string threshold: description: 触发阈值(分) minimum: 0 type: integer tiers: description: 梯度配置列表,commission_type=tiered时使用 items: $ref: '#/components/schemas/DtoOneTimeCommissionTierDTO' nullable: true type: array trigger_type: description: 触发类型 (first_recharge:首充, accumulated_recharge:累计充值) type: string validity_type: description: 时效类型 (permanent:永久, fixed_date:固定日期, relative:相对时长) type: string validity_value: description: 时效值(日期或月数) type: string type: object DtoSetSpeedLimitRequest: properties: speed_limit: description: 限速值(KB/s) minimum: 1 type: integer required: - speed_limit type: object DtoSetWiFiRequest: properties: card_no: description: 流量卡号(ICCID) type: string enabled: description: 启用状态 type: boolean password: description: WiFi 密码 type: string ssid: description: WiFi 名称 maxLength: 32 minLength: 1 type: string required: - card_no - ssid type: object DtoShopCommissionRecordItem: properties: amount: description: 佣金金额(分) type: integer balance_after: description: 入账后佣金余额(分) type: integer commission_source: description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励) type: string created_at: description: 佣金入账时间 type: string iccid: description: ICCID type: string id: description: 佣金记录ID minimum: 0 type: integer order_created_at: description: 订单创建时间 type: string order_id: description: 订单ID minimum: 0 type: integer order_no: description: 订单号 type: string status: description: 状态 (1:已入账, 2:已失效) type: integer status_name: description: 状态名称 type: string virtual_no: description: 设备虚拟号 type: string type: object DtoShopCommissionRecordPageResult: properties: items: description: 佣金明细列表 items: $ref: '#/components/schemas/DtoShopCommissionRecordItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoShopCommissionSummaryItem: properties: available_commission: description: 可提现佣金(分) type: integer created_at: description: 店铺创建时间 type: string frozen_commission: description: 冻结中佣金(分) type: integer phone: description: 主账号手机号 type: string shop_code: description: 店铺编码 type: string shop_id: description: 店铺ID minimum: 0 type: integer shop_name: description: 店铺名称 type: string total_commission: description: 总佣金(分) type: integer unwithdraw_commission: description: 未提现佣金(分) type: integer username: description: 主账号用户名 type: string withdrawing_commission: description: 提现中佣金(分) type: integer withdrawn_commission: description: 已提现佣金(分) type: integer type: object DtoShopCommissionSummaryPageResult: properties: items: description: 代理商佣金列表 items: $ref: '#/components/schemas/DtoShopCommissionSummaryItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoShopPageResult: properties: items: description: 店铺列表 items: $ref: '#/components/schemas/DtoShopResponse' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoShopResponse: properties: address: description: 详细地址 type: string city: description: 城市 type: string contact_name: description: 联系人姓名 type: string contact_phone: description: 联系人电话 type: string created_at: description: 创建时间 type: string district: description: 区县 type: string id: description: 店铺ID minimum: 0 type: integer level: description: 店铺层级 (1-7级) type: integer parent_id: description: 上级店铺ID minimum: 0 nullable: true type: integer province: description: 省份 type: string shop_code: description: 店铺编号 type: string shop_name: description: 店铺名称 type: string status: description: 状态 (0:禁用, 1:启用) type: integer updated_at: description: 更新时间 type: string type: object DtoShopRoleResponse: properties: role_desc: description: 角色描述 type: string role_id: description: 角色ID minimum: 0 type: integer role_name: description: 角色名称 type: string shop_id: description: 店铺ID minimum: 0 type: integer status: description: 状态 (0:禁用, 1:启用) type: integer type: object DtoShopRolesResponse: properties: roles: description: 角色列表 items: $ref: '#/components/schemas/DtoShopRoleResponse' nullable: true type: array shop_id: description: 店铺ID minimum: 0 type: integer type: object DtoShopSeriesGrantListItem: properties: allocator_shop_id: description: 分配者店铺ID minimum: 0 type: integer allocator_shop_name: description: 分配者店铺名称 type: string commission_type: description: 佣金类型 type: string created_at: description: 创建时间 type: string force_recharge_amount: description: 强充金额(分) type: integer force_recharge_enabled: description: 是否启用强充 type: boolean force_recharge_locked: description: 强充是否被套餐系列锁定(true 时代理不可修改) type: boolean id: description: 授权记录ID minimum: 0 type: integer one_time_commission_amount: description: 固定模式佣金金额(分) type: integer package_count: description: 已授权套餐数量 type: integer series_id: description: 套餐系列ID minimum: 0 type: integer series_name: description: 套餐系列名称 type: string shop_id: description: 被授权店铺ID minimum: 0 type: integer shop_name: description: 被授权店铺名称 type: string status: description: 状态 1-启用 2-禁用 type: integer type: object DtoShopSeriesGrantPackageItem: properties: cost_price: description: 成本价(分) type: integer package_code: description: 套餐编码 type: string package_id: description: 套餐ID minimum: 0 type: integer package_name: description: 套餐名称 type: string shelf_status: description: 上架状态 1-上架 2-下架 type: integer status: description: 分配状态 1-启用 2-禁用 type: integer type: object DtoShopSeriesGrantPageResult: properties: list: description: 授权列表 items: $ref: '#/components/schemas/DtoShopSeriesGrantListItem' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoShopSeriesGrantResponse: properties: allocator_shop_id: description: 分配者店铺ID,0 表示平台 minimum: 0 type: integer allocator_shop_name: description: 分配者店铺名称 type: string commission_tiers: description: 梯度模式阶梯列表(固定模式为空) items: $ref: '#/components/schemas/DtoGrantCommissionTierItem' nullable: true type: array commission_type: description: 佣金类型 fixed-固定 tiered-梯度 type: string created_at: description: 创建时间 type: string force_recharge_amount: description: 强充金额(分) type: integer force_recharge_enabled: description: 是否启用强充 type: boolean force_recharge_locked: description: 强充是否被平台锁定(true 时代理不可修改) type: boolean id: description: 授权记录ID minimum: 0 type: integer one_time_commission_amount: description: 固定模式佣金金额(分),梯度模式返回 0 type: integer packages: description: 已授权套餐列表 items: $ref: '#/components/schemas/DtoShopSeriesGrantPackageItem' nullable: true type: array series_code: description: 套餐系列编码 type: string series_id: description: 套餐系列ID minimum: 0 type: integer series_name: description: 套餐系列名称 type: string shop_id: description: 被授权店铺ID minimum: 0 type: integer shop_name: description: 被授权店铺名称 type: string status: description: 状态 1-启用 2-禁用 type: integer updated_at: description: 更新时间 type: string type: object DtoShopWithdrawalRequestItem: properties: account_name: description: 收款账户名称 type: string account_number: description: 收款账号 type: string actual_amount: description: 实际到账金额(分) type: integer amount: description: 提现金额(分) type: integer applicant_id: description: 申请人账号ID minimum: 0 type: integer applicant_name: description: 申请人用户名 type: string bank_name: description: 银行名称(银行卡提现时) type: string created_at: description: 申请时间 type: string fee: description: 手续费(分) type: integer fee_rate: description: 手续费比率(基点,100=1%) type: integer id: description: 提现申请ID minimum: 0 type: integer paid_at: description: 到账时间 type: string payment_type: description: 放款类型 (manual:人工打款) type: string processed_at: description: 处理时间 type: string processor_id: description: 处理人账号ID minimum: 0 nullable: true type: integer processor_name: description: 处理人用户名 type: string reject_reason: description: 拒绝原因 type: string remark: description: 备注 type: string shop_hierarchy: description: 店铺层级路径(格式:上上级_上级_本身,最多两层上级) type: string shop_id: description: 店铺ID minimum: 0 type: integer shop_name: description: 店铺名称 type: string status: description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账) type: integer status_name: description: 状态名称 type: string withdrawal_method: description: 提现方式 (alipay:支付宝, wechat:微信, bank:银行卡) type: string withdrawal_no: description: 提现单号 type: string type: object DtoShopWithdrawalRequestPageResult: properties: items: description: 提现记录列表 items: $ref: '#/components/schemas/DtoShopWithdrawalRequestItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoStandaloneIotCardResponse: properties: accumulated_recharge: description: 累计充值金额(分) type: integer activated_at: description: 激活时间 format: date-time nullable: true type: string activation_status: description: 激活状态 (0:未激活, 1:已激活) type: integer batch_no: description: 批次号 type: string card_category: description: 卡业务类型 (normal:普通卡, industry:行业卡) type: string carrier_id: description: 运营商ID minimum: 0 type: integer carrier_name: description: 运营商名称 type: string carrier_type: description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电) type: string created_at: description: 创建时间 format: date-time type: string current_month_start_date: description: 本月开始日期 format: date-time nullable: true type: string current_month_usage_mb: description: 本月已用流量(MB) type: number data_usage_mb: description: 累计流量使用(MB) type: integer enable_polling: description: 是否参与轮询 type: boolean first_commission_paid: description: 一次性佣金是否已发放 type: boolean iccid: description: ICCID type: string id: description: 卡ID minimum: 0 type: integer imsi: description: IMSI type: string last_data_check_at: description: 最后流量检查时间 format: date-time nullable: true type: string last_month_total_mb: description: 上月流量总量(MB) type: number last_real_name_check_at: description: 最后实名检查时间 format: date-time nullable: true type: string msisdn: description: 卡接入号 type: string network_status: description: 网络状态 (0:停机, 1:开机) type: integer real_name_status: description: 实名状态 (0:未实名, 1:已实名) type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer series_name: description: 套餐系列名称 type: string shop_id: description: 店铺ID minimum: 0 nullable: true type: integer shop_name: description: 店铺名称 type: string status: description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用) type: integer supplier: description: 供应商 type: string updated_at: description: 更新时间 format: date-time type: string virtual_no: description: 卡虚拟号(用于客服查找资产) type: string type: object DtoSwitchCardRequest: properties: target_iccid: description: 目标卡 ICCID type: string required: - target_iccid type: object DtoTriggerBatchReq: properties: card_ids: description: 卡ID列表,最多1000个 items: minimum: 0 type: integer nullable: true type: array task_type: description: 任务类型 type: string type: object DtoTriggerByConditionReq: properties: card_status: description: 卡状态筛选 type: string card_type: description: 卡类型筛选 type: string carrier_code: description: 运营商代码筛选 type: string enable_polling: description: 是否启用轮询筛选 nullable: true type: boolean limit: description: 限制数量,最多1000 type: integer package_ids: description: 套餐ID列表筛选 items: minimum: 0 type: integer nullable: true type: array shop_id: description: 店铺ID筛选 minimum: 0 nullable: true type: integer task_type: description: 任务类型 type: string type: object DtoTriggerDataCleanupReq: properties: table_name: description: 表名,为空则清理所有 type: string type: object DtoTriggerSingleReq: properties: card_id: description: 卡ID minimum: 0 type: integer task_type: description: 任务类型 type: string type: object DtoUnbindCardFromDeviceResponse: properties: message: description: 提示信息 type: string type: object DtoUpdateAccountParams: properties: password: description: 密码 maxLength: 32 minLength: 8 nullable: true type: string phone: description: 手机号 maxLength: 11 minLength: 11 nullable: true type: string status: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer username: description: 用户名 maxLength: 50 minLength: 3 nullable: true type: string type: object DtoUpdateAuthorizationRemarkReq: properties: remark: description: 备注(最多500字) type: string type: object DtoUpdateCarrierParams: properties: carrier_name: description: 运营商名称 maxLength: 100 minLength: 1 nullable: true type: string description: description: 运营商描述 maxLength: 500 nullable: true type: string realname_link_template: description: 实名链接模板URL,支持 {iccid}/{msisdn}/{virtual_no} 占位符 maxLength: 500 nullable: true type: string realname_link_type: description: 实名链接类型 none-不支持 template-模板URL gateway-Gateway接口 nullable: true type: string type: object DtoUpdateCarrierStatusParams: properties: status: description: 状态 (1:启用, 0:禁用) type: integer required: - status type: object DtoUpdateDataCleanupConfigParams: properties: batch_size: description: 每批删除条数 nullable: true type: integer description: description: 配置说明 nullable: true type: string enabled: description: 是否启用:0-禁用,1-启用 nullable: true type: integer retention_days: description: 保留天数 nullable: true type: integer type: object DtoUpdateEnterprisePasswordReq: properties: password: description: 新密码 maximum: 20 minimum: 6 type: string required: - password type: object DtoUpdateEnterpriseReq: properties: address: description: 详细地址 maximum: 255 nullable: true type: string business_license: description: 营业执照号 maximum: 100 nullable: true type: string city: description: 城市 maximum: 50 nullable: true type: string contact_name: description: 联系人姓名 maximum: 50 nullable: true type: string contact_phone: description: 联系人电话 maximum: 20 nullable: true type: string district: description: 区县 maximum: 50 nullable: true type: string enterprise_code: description: 企业编号 maximum: 50 nullable: true type: string enterprise_name: description: 企业名称 maximum: 100 nullable: true type: string legal_person: description: 法人代表 maximum: 50 nullable: true type: string owner_shop_id: description: 归属店铺ID minimum: 0 nullable: true type: integer province: description: 省份 maximum: 50 nullable: true type: string type: object DtoUpdateEnterpriseStatusReq: properties: status: description: 状态(0=禁用, 1=启用) enum: - "0" - "1" type: integer required: - status type: object DtoUpdatePackageParams: properties: calendar_type: description: 套餐周期类型 (natural_month:自然月, by_day:按天) nullable: true type: string cost_price: description: 成本价(分) minimum: 0 nullable: true type: integer data_reset_cycle: description: 流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置) nullable: true type: string duration_days: description: 套餐天数(calendar_type=by_day时必填) maximum: 3650 minimum: 1 nullable: true type: integer duration_months: description: 套餐时长(月数) maximum: 120 minimum: 1 nullable: true type: integer enable_realname_activation: description: 是否启用实名激活 (true:需实名后激活, false:立即激活) nullable: true type: boolean enable_virtual_data: description: 是否启用虚流量 nullable: true type: boolean package_name: description: 套餐名称 maxLength: 255 minLength: 1 nullable: true type: string package_type: description: 套餐类型 (formal:正式套餐, addon:附加套餐) nullable: true type: string real_data_mb: description: 真流量额度(MB) minimum: 0 nullable: true type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer suggested_retail_price: description: 建议售价(分) minimum: 0 nullable: true type: integer virtual_data_mb: description: 虚流量额度(MB) minimum: 0 nullable: true type: integer type: object DtoUpdatePackageSeriesParams: properties: description: description: 描述 maxLength: 500 nullable: true type: string enable_one_time_commission: description: 是否启用一次性佣金 nullable: true type: boolean one_time_commission_config: $ref: '#/components/schemas/DtoSeriesOneTimeCommissionConfigDTO' series_name: description: 系列名称 maxLength: 255 minLength: 1 nullable: true type: string type: object DtoUpdatePackageSeriesStatusParams: properties: status: description: 状态 (1:启用, 2:禁用) type: integer required: - status type: object DtoUpdatePackageShelfStatusParams: properties: shelf_status: description: 上架状态 (1:上架, 2:下架) type: integer required: - shelf_status type: object DtoUpdatePackageStatusParams: properties: status: description: 状态 (1:启用, 2:禁用) type: integer required: - status type: object DtoUpdatePasswordParams: properties: new_password: description: 新密码(8-32位) maxLength: 32 minLength: 8 type: string required: - new_password type: object DtoUpdatePermissionParams: properties: parent_id: description: 父权限ID minimum: 0 nullable: true type: integer perm_code: description: 权限编码 maxLength: 100 minLength: 1 nullable: true type: string perm_name: description: 权限名称 maxLength: 50 minLength: 1 nullable: true type: string platform: description: 适用端口 (all:全部, web:Web后台, h5:H5端) nullable: true type: string sort: description: 排序值 minimum: 0 nullable: true type: integer status: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer url: description: 请求路径 maxLength: 255 nullable: true type: string type: object DtoUpdatePollingAlertRuleParams: properties: alert_level: description: 告警级别 nullable: true type: string cooldown_minutes: description: 冷却时间(分钟) nullable: true type: integer notify_channels: description: 通知渠道 nullable: true type: string rule_name: description: 规则名称 nullable: true type: string status: description: 状态 (0:禁用, 1:启用) nullable: true type: integer threshold: description: 阈值 nullable: true type: number type: object DtoUpdatePollingConcurrencyReq: properties: max_concurrency: description: 最大并发数(1-1000) type: integer type: object DtoUpdatePollingConfigParams: properties: card_category: description: 卡业务类型 (normal:普通卡, industry:行业卡) nullable: true type: string card_condition: description: 卡状态条件 (not_real_name:未实名, real_name:已实名, activated:已激活, suspended:已停用) nullable: true type: string carddata_check_interval: description: 流量检查间隔(秒),NULL表示不检查,最小60秒 minimum: 60 nullable: true type: integer carrier_id: description: 运营商ID(可选,精确匹配) minimum: 0 nullable: true type: integer config_name: description: 配置名称 maxLength: 100 minLength: 1 nullable: true type: string description: description: 配置说明 maxLength: 500 nullable: true type: string package_check_interval: description: 套餐检查间隔(秒),NULL表示不检查,最小60秒 minimum: 60 nullable: true type: integer priority: description: 优先级(数字越小优先级越高) maximum: 1000 minimum: 1 nullable: true type: integer realname_check_interval: description: 实名检查间隔(秒),NULL表示不检查,最小30秒 minimum: 30 nullable: true type: integer type: object DtoUpdatePollingConfigStatusParams: properties: status: description: 状态 (1:启用, 0:禁用) type: integer required: - status type: object DtoUpdateRoleParams: properties: role_desc: description: 角色描述 maxLength: 255 nullable: true type: string role_name: description: 角色名称 maxLength: 50 minLength: 1 nullable: true type: string status: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer type: object DtoUpdateRoleStatusParams: properties: status: description: 状态 (0:禁用, 1:启用) nullable: true type: integer type: object DtoUpdateShopParams: properties: address: description: 详细地址 maxLength: 255 type: string city: description: 城市 maxLength: 50 type: string contact_name: description: 联系人姓名 maxLength: 50 type: string contact_phone: description: 联系人电话 maxLength: 11 minLength: 11 type: string district: description: 区县 maxLength: 50 type: string province: description: 省份 maxLength: 50 type: string shop_name: description: 店铺名称 maxLength: 100 minLength: 1 type: string status: description: 状态 (0:禁用, 1:启用) type: integer required: - shop_name - status type: object DtoUpdateShopSeriesGrantParams: properties: commission_tiers: description: 梯度模式阶梯配置 items: $ref: '#/components/schemas/DtoGrantCommissionTierItem' type: array enable_force_recharge: description: 是否启用代理强充 nullable: true type: boolean force_recharge_amount: description: 代理强充金额(分) nullable: true type: integer one_time_commission_amount: description: 固定模式佣金金额(分) nullable: true type: integer type: object DtoUpdateStatusParams: properties: status: description: 状态(0:禁用,1:启用) maximum: 1 minimum: 0 type: integer required: - status type: object DtoUpdateWechatConfigParams: properties: description: description: 配置描述 maxLength: 500 nullable: true type: string fy_api_url: description: 富友API地址 maxLength: 500 nullable: true type: string fy_ins_cd: description: 富友机构号 maxLength: 50 nullable: true type: string fy_mchnt_cd: description: 富友商户号 maxLength: 50 nullable: true type: string fy_notify_url: description: 富友支付回调地址 maxLength: 500 nullable: true type: string fy_private_key: description: 富友私钥(PEM格式) nullable: true type: string fy_public_key: description: 富友公钥(PEM格式) nullable: true type: string fy_term_id: description: 富友终端号 maxLength: 50 nullable: true type: string miniapp_app_id: description: 小程序AppID maxLength: 100 nullable: true type: string miniapp_app_secret: description: 小程序AppSecret maxLength: 200 nullable: true type: string name: description: 配置名称 maxLength: 100 minLength: 1 nullable: true type: string oa_aes_key: description: 公众号AES加密Key maxLength: 200 nullable: true type: string oa_app_id: description: 公众号AppID maxLength: 100 nullable: true type: string oa_app_secret: description: 公众号AppSecret maxLength: 200 nullable: true type: string oa_oauth_redirect_url: description: OAuth回调地址 maxLength: 500 nullable: true type: string oa_token: description: 公众号Token maxLength: 200 nullable: true type: string provider_type: description: 支付渠道类型 (wechat:微信直连, fuiou:富友) nullable: true type: string wx_api_v2_key: description: 微信APIv2密钥 maxLength: 200 nullable: true type: string wx_api_v3_key: description: 微信APIv3密钥 maxLength: 200 nullable: true type: string wx_cert_content: description: 微信支付证书内容(PEM格式) nullable: true type: string wx_key_content: description: 微信支付密钥内容(PEM格式) nullable: true type: string wx_mch_id: description: 微信商户号 maxLength: 100 nullable: true type: string wx_notify_url: description: 微信支付回调地址 maxLength: 500 nullable: true type: string wx_serial_no: description: 微信证书序列号 maxLength: 200 nullable: true type: string type: object DtoUserInfo: properties: enterprise_id: description: 企业ID minimum: 0 type: integer enterprise_name: description: 企业名称 type: string id: description: 用户ID minimum: 0 type: integer phone: description: 手机号 type: string shop_id: description: 店铺ID minimum: 0 type: integer shop_name: description: 店铺名称 type: string user_type: description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号) type: integer user_type_name: description: 用户类型名称 type: string username: description: 用户名 type: string type: object DtoVerifyAssetRequest: properties: identifier: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string required: - identifier type: object DtoVerifyAssetResponse: properties: asset_token: description: 资产令牌(5分钟有效) type: string expires_in: description: 过期时间(秒) type: integer type: object DtoWalletDetailResponse: properties: balance: description: 可用余额(分) type: integer frozen_balance: description: 冻结余额(分) type: integer resource_id: description: 资源ID minimum: 0 type: integer resource_type: description: 资源类型 (iot_card:物联网卡, device:设备) type: string updated_at: description: 更新时间 type: string wallet_id: description: 钱包ID minimum: 0 type: integer type: object DtoWalletTransactionItem: properties: amount: description: 变动金额(分) type: integer balance_after: description: 变动后余额(分) type: integer created_at: description: 创建时间 type: string remark: description: 备注 type: string transaction_id: description: 流水ID minimum: 0 type: integer type: description: 流水类型 type: string type: object DtoWalletTransactionListResponse: properties: list: description: 流水列表 items: $ref: '#/components/schemas/DtoWalletTransactionItem' nullable: true type: array page: description: 页码 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer type: object DtoWechatConfigListResponse: properties: list: description: 配置列表 items: $ref: '#/components/schemas/DtoWechatConfigResponse' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer type: object DtoWechatConfigResponse: properties: created_at: description: 创建时间 type: string description: description: 配置描述 type: string fy_api_url: description: 富友API地址 type: string fy_ins_cd: description: 富友机构号 type: string fy_mchnt_cd: description: 富友商户号 type: string fy_notify_url: description: 富友支付回调地址 type: string fy_private_key: description: 富友私钥(配置状态) type: string fy_public_key: description: 富友公钥(配置状态) type: string fy_term_id: description: 富友终端号 type: string id: description: 配置ID minimum: 0 type: integer is_active: description: 是否激活 type: boolean miniapp_app_id: description: 小程序AppID type: string miniapp_app_secret: description: 小程序AppSecret(已脱敏) type: string name: description: 配置名称 type: string oa_aes_key: description: 公众号AES加密Key(已脱敏) type: string oa_app_id: description: 公众号AppID type: string oa_app_secret: description: 公众号AppSecret(已脱敏) type: string oa_oauth_redirect_url: description: OAuth回调地址 type: string oa_token: description: 公众号Token(已脱敏) type: string provider_type: description: 支付渠道类型 (wechat:微信直连, fuiou:富友) type: string updated_at: description: 更新时间 type: string wx_api_v2_key: description: 微信APIv2密钥(已脱敏) type: string wx_api_v3_key: description: 微信APIv3密钥(已脱敏) type: string wx_cert_content: description: 微信支付证书内容(配置状态) type: string wx_key_content: description: 微信支付密钥内容(配置状态) type: string wx_mch_id: description: 微信商户号 type: string wx_notify_url: description: 微信支付回调地址 type: string wx_serial_no: description: 微信证书序列号 type: string type: object DtoWechatLoginRequest: properties: asset_token: description: A1返回的资产令牌 type: string code: description: 微信OAuth授权码 type: string required: - code - asset_token type: object DtoWechatLoginResponse: properties: is_new_user: description: 是否新创建用户 type: boolean need_bind_phone: description: 是否需要绑定手机号 type: boolean token: description: 登录JWT令牌 type: string type: object DtoWithdrawalApprovalResp: properties: id: description: 提现申请ID minimum: 0 type: integer processed_at: description: 处理时间 type: string status: description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账) type: integer status_name: description: 状态名称 type: string withdrawal_no: description: 提现单号 type: string type: object DtoWithdrawalRequestItem: properties: account_name: description: 收款账户名称 type: string account_number: description: 收款账号 type: string actual_amount: description: 实际到账金额(分) type: integer amount: description: 提现金额(分) type: integer applicant_id: description: 申请人账号ID minimum: 0 type: integer applicant_name: description: 申请人用户名 type: string bank_name: description: 银行名称 type: string created_at: description: 申请时间 type: string fee: description: 手续费(分) type: integer fee_rate: description: 手续费比率(基点,100=1%) type: integer id: description: 提现申请ID minimum: 0 type: integer payment_type: description: 放款类型 (manual:人工打款) type: string processed_at: description: 处理时间 type: string processor_id: description: 处理人账号ID minimum: 0 nullable: true type: integer processor_name: description: 处理人用户名 type: string reject_reason: description: 拒绝原因 type: string remark: description: 备注 type: string shop_hierarchy: description: 店铺层级路径 type: string shop_id: description: 店铺ID minimum: 0 type: integer shop_name: description: 店铺名称 type: string status: description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账) type: integer status_name: description: 状态名称 type: string withdrawal_method: description: 提现方式 (alipay:支付宝, wechat:微信, bank:银行卡) type: string withdrawal_no: description: 提现单号 type: string type: object DtoWithdrawalRequestPageResult: properties: items: description: 提现申请列表 items: $ref: '#/components/schemas/DtoWithdrawalRequestItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object DtoWithdrawalSettingItem: properties: arrival_days: description: 到账天数 type: integer created_at: description: 创建时间 type: string creator_id: description: 创建人ID minimum: 0 type: integer creator_name: description: 创建人用户名 type: string daily_withdrawal_limit: description: 每日提现次数限制 type: integer fee_rate: description: 手续费比率(基点,100=1%) type: integer id: description: 配置ID minimum: 0 type: integer is_active: description: 是否生效 type: boolean min_withdrawal_amount: description: 最低提现金额(分) type: integer type: object DtoWithdrawalSettingPageResult: properties: items: description: 配置列表 items: $ref: '#/components/schemas/DtoWithdrawalSettingItem' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object ErrorResponse: properties: code: description: 错误码 example: 1001 type: integer data: description: 错误详情(可选) type: object msg: description: 错误消息 example: 参数验证失败 type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - timestamp type: object GatewayRealnameLinkResp: properties: url: description: 实名认证跳转链接(HTTPS URL) type: string type: object GatewaySlotInfo: properties: cardStatus: description: 卡状态(准备、正常、停机) type: string extend: description: 扩展字段(广电国网特殊参数) type: string iccid: description: 卡槽中的 ICCID type: string isActive: description: 是否为当前使用的卡槽(0:否, 1:是) type: integer slotNo: description: 卡槽编号 type: integer type: object GatewaySlotInfoResp: properties: extend: description: 扩展字段(广电国网特殊参数) type: string imei: description: 设备 IMEI type: string slots: description: 卡槽信息列表 items: $ref: '#/components/schemas/GatewaySlotInfo' nullable: true type: array type: object ModelPermission: properties: available_for_role_types: type: string creator: minimum: 0 type: integer parent_id: minimum: 0 nullable: true type: integer perm_code: type: string perm_name: type: string perm_type: type: integer platform: type: string sort: type: integer status: type: integer updater: minimum: 0 type: integer url: type: string type: object RoutesHealthResponse: properties: service: description: 服务名称 type: string status: description: 健康状态 type: string type: object securitySchemes: BearerAuth: bearerFormat: JWT scheme: bearer type: http info: title: Admin API version: "1.0" openapi: 3.0.3 paths: /api/admin/accounts: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 用户名模糊查询 in: query name: username schema: description: 用户名模糊查询 maxLength: 50 type: string - description: 手机号模糊查询 in: query name: phone schema: description: 手机号模糊查询 maxLength: 20 type: string - description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号) in: query name: user_type schema: description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号) maximum: 4 minimum: 1 nullable: true type: integer - description: 状态 (0:禁用, 1:启用) in: query name: status schema: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer - description: 店铺ID筛选 in: query name: shop_id schema: description: 店铺ID筛选 minimum: 1 nullable: true type: integer - description: 企业ID筛选 in: query name: enterprise_id schema: description: 企业ID筛选 minimum: 1 nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAccountPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询账号列表 tags: - 账号管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateAccountRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAccountResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建账号 tags: - 账号管理 /api/admin/accounts/{account_id}/roles/{role_id}: delete: parameters: - description: 账号ID in: path name: account_id required: true schema: description: 账号ID minimum: 0 type: integer - description: 角色ID in: path name: role_id required: true schema: description: 角色ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 移除账号角色 tags: - 账号管理 /api/admin/accounts/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除账号 tags: - 账号管理 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAccountResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取账号详情 tags: - 账号管理 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateAccountParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAccountResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新账号 tags: - 账号管理 /api/admin/accounts/{id}/password: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePasswordParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 修改账号密码 tags: - 账号管理 /api/admin/accounts/{id}/roles: get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAccountRolesResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取账号角色 tags: - 账号管理 post: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAssignRolesParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: items: $ref: '#/components/schemas/DtoAccountRoleResponse' type: array msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 为账号分配角色 tags: - 账号管理 /api/admin/accounts/{id}/status: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateStatusParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 修改账号状态 tags: - 账号管理 /api/admin/agent-recharges: get: parameters: - description: 页码,默认1 in: query name: page schema: description: 页码,默认1 minimum: 1 type: integer - description: 每页条数,默认20,最大100 in: query name: page_size schema: description: 每页条数,默认20,最大100 maximum: 100 minimum: 1 type: integer - description: 按店铺ID过滤 in: query name: shop_id schema: description: 按店铺ID过滤 minimum: 0 nullable: true type: integer - description: 按状态过滤 (1:待支付, 2:已完成, 3:已取消) in: query name: status schema: description: 按状态过滤 (1:待支付, 2:已完成, 3:已取消) nullable: true type: integer - description: 创建时间起始日期(YYYY-MM-DD) in: query name: start_date schema: description: 创建时间起始日期(YYYY-MM-DD) type: string - description: 创建时间截止日期(YYYY-MM-DD) in: query name: end_date schema: description: 创建时间截止日期(YYYY-MM-DD) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAgentRechargeListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询代理充值订单列表 tags: - 代理预充值 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateAgentRechargeRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAgentRechargeResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建代理充值订单 tags: - 代理预充值 /api/admin/agent-recharges/{id}: get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAgentRechargeResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询代理充值订单详情 tags: - 代理预充值 /api/admin/agent-recharges/{id}/offline-pay: post: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAgentOfflinePayParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAgentRechargeResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 确认线下充值 tags: - 代理预充值 /api/admin/asset-allocation-records: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 分配类型 (allocate:分配, recall:回收) in: query name: allocation_type schema: description: 分配类型 (allocate:分配, recall:回收) enum: - allocate - recall type: string - description: 资产类型 (iot_card:物联网卡, device:设备) in: query name: asset_type schema: description: 资产类型 (iot_card:物联网卡, device:设备) enum: - iot_card - device type: string - description: 资产标识符(ICCID或设备号,模糊查询) in: query name: asset_identifier schema: description: 资产标识符(ICCID或设备号,模糊查询) maxLength: 50 type: string - description: 分配单号(精确匹配) in: query name: allocation_no schema: description: 分配单号(精确匹配) maxLength: 50 type: string - description: 来源店铺ID in: query name: from_shop_id schema: description: 来源店铺ID minimum: 0 nullable: true type: integer - description: 目标店铺ID in: query name: to_shop_id schema: description: 目标店铺ID minimum: 0 nullable: true type: integer - description: 操作人ID in: query name: operator_id schema: description: 操作人ID minimum: 0 nullable: true type: integer - description: 创建时间起始 in: query name: created_at_start schema: description: 创建时间起始 format: date-time nullable: true type: string - description: 创建时间结束 in: query name: created_at_end schema: description: 创建时间结束 format: date-time nullable: true type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoListAssetAllocationRecordResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 分配记录列表 tags: - 资产分配记录 /api/admin/asset-allocation-records/{id}: get: parameters: - description: 记录ID in: path name: id required: true schema: description: 记录ID minimum: 1 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetAllocationRecordDetailResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 分配记录详情 tags: - 资产分配记录 /api/admin/assets/{asset_type}/{id}/current-package: get: parameters: - description: 资产类型:card 或 device in: path name: asset_type required: true schema: description: 资产类型:card 或 device type: string - description: 资产ID in: path name: id required: true schema: description: 资产ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetPackageResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 当前生效套餐 tags: - 资产管理 /api/admin/assets/{asset_type}/{id}/packages: get: description: 查询该资产所有套餐记录,含虚流量换算结果。 parameters: - description: 资产类型:card 或 device in: path name: asset_type required: true schema: description: 资产类型:card 或 device type: string - description: 资产ID in: path name: id required: true schema: description: 资产ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: items: $ref: '#/components/schemas/DtoAssetPackageResponse' type: array msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 资产套餐列表 tags: - 资产管理 /api/admin/assets/{asset_type}/{id}/realtime-status: get: description: 读取 DB/Redis 中的持久化状态,不调网关。asset_type 为 card 或 device。 parameters: - description: 资产类型:card 或 device in: path name: asset_type required: true schema: description: 资产类型:card 或 device type: string - description: 资产ID in: path name: id required: true schema: description: 资产ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetRealtimeStatusResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 资产实时状态 tags: - 资产管理 /api/admin/assets/{asset_type}/{id}/refresh: post: description: 主动调网关同步最新状态。设备有30秒冷却期。 parameters: - description: 资产类型:card 或 device in: path name: asset_type required: true schema: description: 资产类型:card 或 device type: string - description: 资产ID in: path name: id required: true schema: description: 资产ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetRealtimeStatusResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 刷新资产状态 tags: - 资产管理 /api/admin/assets/{asset_type}/{id}/wallet: get: description: 查询指定卡或设备的钱包余额概况。企业账号禁止调用。 parameters: - description: 资产类型:card 或 device in: path name: asset_type required: true schema: description: 资产类型:card 或 device type: string - description: 资产ID in: path name: id required: true schema: description: 资产ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetWalletResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 资产钱包概况 tags: - 资产管理 /api/admin/assets/{asset_type}/{id}/wallet/transactions: get: description: 分页查询指定资产的钱包收支流水,含充值/扣款来源编号。企业账号禁止调用。 parameters: - description: 页码,默认1 in: query name: page schema: description: 页码,默认1 type: integer - description: 每页数量,默认20,最大100 in: query name: page_size schema: description: 每页数量,默认20,最大100 type: integer - description: 交易类型过滤:recharge/deduct/refund in: query name: transaction_type schema: description: 交易类型过滤:recharge/deduct/refund nullable: true type: string - description: 开始时间(RFC3339) in: query name: start_time schema: description: 开始时间(RFC3339) format: date-time nullable: true type: string - description: 结束时间(RFC3339) in: query name: end_time schema: description: 结束时间(RFC3339) format: date-time nullable: true type: string - description: 资产类型:card 或 device in: path name: asset_type required: true schema: description: 资产类型:card 或 device type: string - description: 资产ID in: path name: id required: true schema: description: 资产ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetWalletTransactionListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 资产钱包流水列表 tags: - 资产管理 /api/admin/assets/card/{iccid}/start: post: description: 手动复机单张卡(通过ICCID)。受设备保护期约束。 parameters: - description: 卡ICCID in: path name: iccid required: true schema: description: 卡ICCID type: string responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 单卡复机 tags: - 资产管理 /api/admin/assets/card/{iccid}/stop: post: description: 手动停机单张卡(通过ICCID)。受设备保护期约束。 parameters: - description: 卡ICCID in: path name: iccid required: true schema: description: 卡ICCID type: string responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 单卡停机 tags: - 资产管理 /api/admin/assets/device/{device_id}/start: post: description: 批量复机设备下所有已实名卡。设置1小时复机保护期。 parameters: - description: 设备ID in: path name: device_id required: true schema: description: 设备ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 设备复机 tags: - 资产管理 /api/admin/assets/device/{device_id}/stop: post: description: 批量停机设备下所有已实名卡。设置1小时停机保护期。 parameters: - description: 设备ID in: path name: device_id required: true schema: description: 设备ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceSuspendResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 设备停机 tags: - 资产管理 /api/admin/assets/resolve/{identifier}: get: description: 通过虚拟号/ICCID/IMEI/SN/MSISDN 解析设备或卡的完整详情。企业账号禁止调用。 parameters: - description: 资产标识符(虚拟号/ICCID/IMEI/SN/MSISDN) in: path name: identifier required: true schema: description: 资产标识符(虚拟号/ICCID/IMEI/SN/MSISDN) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetResolveResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 解析资产 tags: - 资产管理 /api/admin/authorizations: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 按企业ID筛选 in: query name: enterprise_id schema: description: 按企业ID筛选 minimum: 0 nullable: true type: integer - description: 按ICCID模糊查询 in: query name: iccid schema: description: 按ICCID模糊查询 type: string - description: 授权人类型:2=平台,3=代理 in: query name: authorizer_type schema: description: 授权人类型:2=平台,3=代理 nullable: true type: integer - description: 状态:0=已回收,1=有效 in: query name: status schema: description: 状态:0=已回收,1=有效 nullable: true type: integer - description: 授权时间起(格式:2006-01-02) in: query name: start_time schema: description: 授权时间起(格式:2006-01-02) type: string - description: 授权时间止(格式:2006-01-02) in: query name: end_time schema: description: 授权时间止(格式:2006-01-02) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAuthorizationListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 授权记录列表 tags: - 授权记录管理 /api/admin/authorizations/{id}: get: parameters: - description: 授权记录ID in: path name: id required: true schema: description: 授权记录ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAuthorizationItem' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 授权记录详情 tags: - 授权记录管理 /api/admin/authorizations/{id}/remark: put: parameters: - description: 授权记录ID in: path name: id required: true schema: description: 授权记录ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateAuthorizationRemarkReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAuthorizationItem' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 修改授权备注 tags: - 授权记录管理 /api/admin/carriers: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电) in: query name: carrier_type schema: description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电) nullable: true type: string - description: 运营商名称(模糊搜索) in: query name: carrier_name schema: description: 运营商名称(模糊搜索) maxLength: 100 nullable: true type: string - description: 状态 (1:启用, 0:禁用) in: query name: status schema: description: 状态 (1:启用, 0:禁用) nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoCarrierPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 运营商列表 tags: - 运营商管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateCarrierRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoCarrierResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建运营商 tags: - 运营商管理 /api/admin/carriers/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除运营商 tags: - 运营商管理 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoCarrierResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取运营商详情 tags: - 运营商管理 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateCarrierParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoCarrierResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新运营商 tags: - 运营商管理 /api/admin/carriers/{id}/status: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateCarrierStatusParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新运营商状态 tags: - 运营商管理 /api/admin/commission/withdrawal-requests: get: parameters: - description: 页码(默认1) in: query name: page schema: description: 页码(默认1) minimum: 1 type: integer - description: 每页数量(默认20,最大100) in: query name: page_size schema: description: 每页数量(默认20,最大100) maximum: 100 minimum: 1 type: integer - description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账) in: query name: status schema: description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账) maximum: 4 minimum: 1 nullable: true type: integer - description: 提现单号(精确查询) in: query name: withdrawal_no schema: description: 提现单号(精确查询) maxLength: 50 type: string - description: 店铺名称(模糊查询) in: query name: shop_name schema: description: 店铺名称(模糊查询) maxLength: 100 type: string - description: 申请开始时间(格式:2006-01-02 15:04:05) in: query name: start_time schema: description: 申请开始时间(格式:2006-01-02 15:04:05) type: string - description: 申请结束时间(格式:2006-01-02 15:04:05) in: query name: end_time schema: description: 申请结束时间(格式:2006-01-02 15:04:05) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWithdrawalRequestPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 提现申请列表 tags: - 佣金提现审批 /api/admin/commission/withdrawal-requests/{id}/approve: post: parameters: - description: 提现申请ID in: path name: id required: true schema: description: 提现申请ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoApproveWithdrawalReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWithdrawalApprovalResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 审批通过提现申请 tags: - 佣金提现审批 /api/admin/commission/withdrawal-requests/{id}/reject: post: parameters: - description: 提现申请ID in: path name: id required: true schema: description: 提现申请ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoRejectWithdrawalReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWithdrawalApprovalResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 拒绝提现申请 tags: - 佣金提现审批 /api/admin/commission/withdrawal-settings: get: parameters: - description: 页码(默认1) in: query name: page schema: description: 页码(默认1) minimum: 1 type: integer - description: 每页数量(默认20,最大100) in: query name: page_size schema: description: 每页数量(默认20,最大100) maximum: 100 minimum: 1 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWithdrawalSettingPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 提现配置列表 tags: - 提现配置管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateWithdrawalSettingReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWithdrawalSettingItem' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 新增提现配置 tags: - 提现配置管理 /api/admin/commission/withdrawal-settings/current: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWithdrawalSettingItem' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取当前生效的提现配置 tags: - 提现配置管理 /api/admin/data-cleanup-configs: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDataCleanupConfigListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取数据清理配置列表 tags: - 轮询管理-数据清理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateDataCleanupConfigReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDataCleanupConfigResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建数据清理配置 tags: - 轮询管理-数据清理 /api/admin/data-cleanup-configs/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除数据清理配置 tags: - 轮询管理-数据清理 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDataCleanupConfigResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取数据清理配置详情 tags: - 轮询管理-数据清理 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateDataCleanupConfigParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新数据清理配置 tags: - 轮询管理-数据清理 /api/admin/data-cleanup-logs/data-cleanup-logs: get: parameters: - description: 表名筛选 in: query name: table_name schema: description: 表名筛选 type: string - description: 页码 in: query name: page schema: description: 页码 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDataCleanupLogListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取数据清理日志列表 tags: - 轮询管理-数据清理 /api/admin/data-cleanup/preview/data-cleanup/preview: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDataCleanupPreviewResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 预览待清理数据 tags: - 轮询管理-数据清理 /api/admin/data-cleanup/progress/data-cleanup/progress: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDataCleanupProgressResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取数据清理进度 tags: - 轮询管理-数据清理 /api/admin/data-cleanup/trigger/data-cleanup/trigger: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoTriggerDataCleanupReq' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 手动触发数据清理 tags: - 轮询管理-数据清理 /api/admin/devices: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 虚拟号(模糊查询) in: query name: virtual_no schema: description: 虚拟号(模糊查询) maxLength: 100 type: string - description: 设备名称(模糊查询) in: query name: device_name schema: description: 设备名称(模糊查询) maxLength: 255 type: string - description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用) in: query name: status schema: description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用) maximum: 4 minimum: 1 nullable: true type: integer - description: 店铺ID (NULL表示平台库存) in: query name: shop_id schema: description: 店铺ID (NULL表示平台库存) minimum: 0 nullable: true type: integer - description: 套餐系列ID in: query name: series_id schema: description: 套餐系列ID minimum: 0 nullable: true type: integer - description: 批次号 in: query name: batch_no schema: description: 批次号 maxLength: 100 type: string - description: 设备类型 in: query name: device_type schema: description: 设备类型 maxLength: 50 type: string - description: 制造商(模糊查询) in: query name: manufacturer schema: description: 制造商(模糊查询) maxLength: 255 type: string - description: 创建时间起始 in: query name: created_at_start schema: description: 创建时间起始 format: date-time nullable: true type: string - description: 创建时间结束 in: query name: created_at_end schema: description: 创建时间结束 format: date-time nullable: true type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoListDeviceResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 设备列表 tags: - 设备管理 /api/admin/devices/{id}: delete: description: 仅平台用户可操作。删除设备时自动解绑所有卡(卡不会被删除)。 parameters: - description: 设备ID in: path name: id required: true schema: description: 设备ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除设备 tags: - 设备管理 /api/admin/devices/{id}/cards: get: parameters: - description: 设备ID in: path name: id required: true schema: description: 设备ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoListDeviceCardsResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取设备绑定的卡列表 tags: - 设备管理 post: description: 仅平台用户可操作。用于导入后调整卡绑定关系(补卡、换卡)。 parameters: - description: 设备ID in: path name: id required: true schema: description: 设备ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoBindCardToDeviceRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoBindCardToDeviceResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 绑定卡到设备 tags: - 设备管理 /api/admin/devices/{id}/cards/{cardId}: delete: description: 仅平台用户可操作。解绑不改变卡的 shop_id。 parameters: - description: 设备ID in: path name: id required: true schema: description: 设备ID minimum: 0 type: integer - description: IoT卡ID in: path name: cardId required: true schema: description: IoT卡ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoUnbindCardFromDeviceResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 解绑设备上的卡 tags: - 设备管理 /api/admin/devices/{id}/deactivate: patch: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 手动停用设备 tags: - 设备管理 /api/admin/devices/allocate: post: description: 分配设备给直属下级店铺。分配时自动同步绑定的所有卡的 shop_id。 requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAllocateDevicesRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAllocateDevicesResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量分配设备 tags: - 设备管理 /api/admin/devices/by-identifier/{identifier}/gateway-slots: get: description: 通过虚拟号/IMEI/SN 查询设备卡槽信息。设备必须已配置 IMEI。 parameters: - description: 设备标识符(支持虚拟号/IMEI/SN) in: path name: identifier required: true schema: description: 设备标识符(支持虚拟号/IMEI/SN) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/GatewaySlotInfoResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询卡槽信息 tags: - 设备管理 /api/admin/devices/by-identifier/{identifier}/reboot: post: description: 通过虚拟号/IMEI/SN 重启设备。设备必须已配置 IMEI。 parameters: - description: 设备标识符(支持虚拟号/IMEI/SN) in: path name: identifier required: true schema: description: 设备标识符(支持虚拟号/IMEI/SN) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEmptyResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 重启设备 tags: - 设备管理 /api/admin/devices/by-identifier/{identifier}/reset: post: description: 通过虚拟号/IMEI/SN 恢复设备出厂设置。设备必须已配置 IMEI。 parameters: - description: 设备标识符(支持虚拟号/IMEI/SN) in: path name: identifier required: true schema: description: 设备标识符(支持虚拟号/IMEI/SN) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEmptyResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 恢复出厂 tags: - 设备管理 /api/admin/devices/by-identifier/{identifier}/speed-limit: put: description: 通过虚拟号/IMEI/SN 设置设备限速。设备必须已配置 IMEI。 parameters: - description: 设备标识符(支持虚拟号/IMEI/SN) in: path name: identifier required: true schema: description: 设备标识符(支持虚拟号/IMEI/SN) type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoSetSpeedLimitRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEmptyResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 设置限速 tags: - 设备管理 /api/admin/devices/by-identifier/{identifier}/switch-card: post: description: 通过虚拟号/IMEI/SN 切换设备当前使用的卡。设备必须已配置 IMEI。 parameters: - description: 设备标识符(支持虚拟号/IMEI/SN) in: path name: identifier required: true schema: description: 设备标识符(支持虚拟号/IMEI/SN) type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoSwitchCardRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEmptyResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 切卡 tags: - 设备管理 /api/admin/devices/by-identifier/{identifier}/wifi: put: description: 通过虚拟号/IMEI/SN 设置设备 WiFi。设备必须已配置 IMEI。 parameters: - description: 设备标识符(支持虚拟号/IMEI/SN) in: path name: identifier required: true schema: description: 设备标识符(支持虚拟号/IMEI/SN) type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoSetWiFiRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEmptyResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 设置 WiFi tags: - 设备管理 /api/admin/devices/import: post: description: |- 仅平台用户可操作。文件格式已从 CSV 升级为 Excel (.xlsx)。 ### 完整导入流程 1. **获取上传 URL**: 调用 `POST /api/admin/storage/upload-url` 2. **上传 Excel 文件**: 使用预签名 URL 上传文件到对象存储 3. **调用本接口**: 使用返回的 `file_key` 提交导入任务 ### Excel 文件格式 - 文件格式:仅支持 .xlsx (Excel 2007+) - 必须包含列(首行为表头): - `virtual_no`: 设备虚拟号(必填,全局唯一) - `device_name`: 设备名称 - `device_model`: 设备型号 - `device_type`: 设备类型 - `max_sim_slots`: 最大插槽数(默认4) - `manufacturer`: 制造商 - `iccid_1` ~ `iccid_4`: 绑定的卡 ICCID(卡必须已存在且未绑定) - 列格式:设置为文本格式(避免长数字被转为科学记数法) requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoImportDeviceRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoImportDeviceResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量导入设备 tags: - 设备管理 /api/admin/devices/import/tasks: get: description: 仅平台用户可操作。 parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败) in: query name: status schema: description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败) maximum: 4 minimum: 1 nullable: true type: integer - description: 批次号(模糊查询) in: query name: batch_no schema: description: 批次号(模糊查询) maxLength: 100 type: string - description: 创建时间起始 in: query name: start_time schema: description: 创建时间起始 format: date-time nullable: true type: string - description: 创建时间结束 in: query name: end_time schema: description: 创建时间结束 format: date-time nullable: true type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoListDeviceImportTaskResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 导入任务列表 tags: - 设备管理 /api/admin/devices/import/tasks/{id}: get: description: 仅平台用户可操作。包含跳过和失败记录的详细信息。 parameters: - description: 任务ID in: path name: id required: true schema: description: 任务ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceImportTaskDetailResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 导入任务详情 tags: - 设备管理 /api/admin/devices/recall: post: description: 从直属下级店铺回收设备。回收时自动同步绑定的所有卡的 shop_id。 requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoRecallDevicesRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRecallDevicesResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量回收设备 tags: - 设备管理 /api/admin/devices/series-binding: patch: description: 批量设置或清除设备与套餐系列分配的关联关系。参数:series_id(套餐系列ID,0表示清除关联)。 requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoBatchSetDeviceSeriesBindngRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoBatchSetDeviceSeriesBindngResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量设置设备的套餐系列绑定 tags: - 设备管理 /api/admin/enterprises: get: parameters: - description: 页码(默认1) in: query name: page schema: description: 页码(默认1) minimum: 1 type: integer - description: 每页数量(默认20,最大100) in: query name: page_size schema: description: 每页数量(默认20,最大100) maximum: 100 minimum: 1 type: integer - description: 企业名称(模糊查询) in: query name: enterprise_name schema: description: 企业名称(模糊查询) type: string - description: 登录手机号(模糊查询) in: query name: login_phone schema: description: 登录手机号(模糊查询) type: string - description: 联系人电话(模糊查询) in: query name: contact_phone schema: description: 联系人电话(模糊查询) type: string - description: 归属店铺ID in: query name: owner_shop_id schema: description: 归属店铺ID minimum: 0 nullable: true type: integer - description: 状态(0=禁用, 1=启用) in: query name: status schema: description: 状态(0=禁用, 1=启用) nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEnterprisePageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询企业客户列表 tags: - 企业客户管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateEnterpriseReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoCreateEnterpriseResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 新增企业客户 tags: - 企业客户管理 /api/admin/enterprises/{id}: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateEnterpriseReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEnterpriseItem' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 编辑企业信息 tags: - 企业客户管理 /api/admin/enterprises/{id}/allocate-cards: post: parameters: - description: 企业ID in: path name: id required: true schema: description: 企业ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAllocateCardsReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAllocateCardsResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 授权卡给企业 tags: - 企业卡授权 /api/admin/enterprises/{id}/allocate-devices: post: parameters: - description: 企业ID in: path name: id required: true schema: description: 企业ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAllocateDevicesReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAllocateDevicesResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 授权设备给企业 tags: - 企业设备授权 /api/admin/enterprises/{id}/cards: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 卡状态 in: query name: status schema: description: 卡状态 nullable: true type: integer - description: 运营商ID in: query name: carrier_id schema: description: 运营商ID minimum: 0 nullable: true type: integer - description: ICCID(模糊查询) in: query name: iccid schema: description: ICCID(模糊查询) type: string - description: 虚拟号(模糊查询) in: query name: virtual_no schema: description: 虚拟号(模糊查询) type: string - description: 企业ID in: path name: id required: true schema: description: 企业ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEnterpriseCardPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 企业卡列表 tags: - 企业卡授权 /api/admin/enterprises/{id}/devices: get: parameters: - description: 页码 in: query name: page schema: description: 页码 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 type: integer - description: 虚拟号(模糊搜索) in: query name: virtual_no schema: description: 虚拟号(模糊搜索) type: string - description: 企业ID in: path name: id required: true schema: description: 企业ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoEnterpriseDeviceListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 企业设备列表 tags: - 企业设备授权 /api/admin/enterprises/{id}/password: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateEnterprisePasswordReq' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 修改企业账号密码 tags: - 企业客户管理 /api/admin/enterprises/{id}/recall-cards: post: parameters: - description: 企业ID in: path name: id required: true schema: description: 企业ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoRecallCardsReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRecallCardsResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 回收卡授权 tags: - 企业卡授权 /api/admin/enterprises/{id}/recall-devices: post: parameters: - description: 企业ID in: path name: id required: true schema: description: 企业ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoRecallDevicesReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRecallDevicesResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 撤销设备授权 tags: - 企业设备授权 /api/admin/enterprises/{id}/status: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateEnterpriseStatusReq' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 启用/禁用企业 tags: - 企业客户管理 /api/admin/exchanges: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 换货状态 (1:待填写信息, 2:待发货, 3:已发货待确认, 4:已完成, 5:已取消) in: query name: status schema: description: 换货状态 (1:待填写信息, 2:待发货, 3:已发货待确认, 4:已完成, 5:已取消) maximum: 5 minimum: 1 nullable: true type: integer - description: 资产标识符搜索(旧资产/新资产标识符模糊匹配) in: query name: identifier schema: description: 资产标识符搜索(旧资产/新资产标识符模糊匹配) maxLength: 100 type: string - description: 创建时间起始 in: query name: created_at_start schema: description: 创建时间起始 format: date-time nullable: true type: string - description: 创建时间结束 in: query name: created_at_end schema: description: 创建时间结束 format: date-time nullable: true type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoExchangeListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取换货单列表 tags: - 换货管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateExchangeRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoExchangeOrderResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建换货单 tags: - 换货管理 /api/admin/exchanges/{id}: get: parameters: - description: 换货单ID in: path name: id required: true schema: description: 换货单ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoExchangeOrderResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取换货单详情 tags: - 换货管理 /api/admin/exchanges/{id}/cancel: post: parameters: - description: 换货单ID in: path name: id required: true schema: description: 换货单ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoExchangeCancelParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 取消换货 tags: - 换货管理 /api/admin/exchanges/{id}/complete: post: parameters: - description: 换货单ID in: path name: id required: true schema: description: 换货单ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 确认换货完成 tags: - 换货管理 /api/admin/exchanges/{id}/renew: post: parameters: - description: 换货单ID in: path name: id required: true schema: description: 换货单ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 旧资产转新 tags: - 换货管理 /api/admin/exchanges/{id}/ship: post: parameters: - description: 换货单ID in: path name: id required: true schema: description: 换货单ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoExchangeShipParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoExchangeOrderResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 换货发货 tags: - 换货管理 /api/admin/iot-cards/{iccid}/realname-link: get: parameters: - description: ICCID in: path name: iccid required: true schema: description: ICCID type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/GatewayRealnameLinkResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取实名认证链接 tags: - IoT卡管理 /api/admin/iot-cards/{id}/deactivate: patch: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 手动停用IoT卡 tags: - IoT卡管理 /api/admin/iot-cards/import: post: description: |- 仅平台用户可操作。 ## ⚠️ 接口变更说明(BREAKING CHANGE) 本接口已从 `multipart/form-data` 改为 `application/json`。 文件格式从 CSV 升级为 Excel (.xlsx),解决长数字被转为科学记数法的问题。 ### 完整导入流程 1. **获取上传 URL**: 调用 `POST /api/admin/storage/upload-url` 2. **上传 Excel 文件**: 使用预签名 URL 上传文件到对象存储 3. **调用本接口**: 使用返回的 `file_key` 提交导入任务 ### 请求示例 ```json { "carrier_id": 1, "batch_no": "BATCH-2025-01", "file_key": "imports/2025/01/24/abc123.xlsx" } ``` ### Excel 文件格式 - 文件格式:仅支持 .xlsx (Excel 2007+) - 必填列:`ICCID`, `MSISDN` - 可选列:`virtual_no`(虚拟号,表头关键字:virtual_no / VirtualNo / 虚拟号 / 设备号) - 首行为表头(可选,但建议包含) - 列格式:设置为文本格式(避免长数字被转为科学记数法) #### virtual_no 列导入规则(只补空白) - 该行 virtual_no 非空 + 数据库当前值为 NULL:填入新值 - 该行 virtual_no 非空 + 数据库已有值:跳过(不覆盖) - 批次内有任意 virtual_no 与数据库现存值重复:**整批拒绝** requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoImportIotCardRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoImportIotCardResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量导入IoT卡(ICCID+MSISDN) tags: - IoT卡管理 /api/admin/iot-cards/import-tasks: get: description: 仅平台用户可操作。 parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败) in: query name: status schema: description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败) maximum: 4 minimum: 1 nullable: true type: integer - description: 运营商ID in: query name: carrier_id schema: description: 运营商ID minimum: 0 nullable: true type: integer - description: 批次号(模糊查询) in: query name: batch_no schema: description: 批次号(模糊查询) maxLength: 100 type: string - description: 创建时间起始 in: query name: start_time schema: description: 创建时间起始 format: date-time nullable: true type: string - description: 创建时间结束 in: query name: end_time schema: description: 创建时间结束 format: date-time nullable: true type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoListImportTaskResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 导入任务列表 tags: - IoT卡管理 /api/admin/iot-cards/import-tasks/{id}: get: description: 仅平台用户可操作。 parameters: - description: 任务ID in: path name: id required: true schema: description: 任务ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoImportTaskDetailResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 导入任务详情 tags: - IoT卡管理 /api/admin/iot-cards/series-binding: patch: description: 批量设置或清除卡与套餐系列分配的关联关系。参数:series_id(套餐系列ID,0表示清除关联)。 requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoBatchSetCardSeriesBindngRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoBatchSetCardSeriesBindngResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量设置卡的套餐系列绑定 tags: - IoT卡管理 /api/admin/iot-cards/standalone: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用) in: query name: status schema: description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用) maximum: 4 minimum: 1 nullable: true type: integer - description: 运营商ID in: query name: carrier_id schema: description: 运营商ID minimum: 0 nullable: true type: integer - description: 分销商ID in: query name: shop_id schema: description: 分销商ID minimum: 0 nullable: true type: integer - description: 套餐系列ID in: query name: series_id schema: description: 套餐系列ID minimum: 0 nullable: true type: integer - description: ICCID(模糊查询) in: query name: iccid schema: description: ICCID(模糊查询) maxLength: 20 type: string - description: 卡接入号(模糊查询) in: query name: msisdn schema: description: 卡接入号(模糊查询) maxLength: 20 type: string - description: 虚拟号(模糊查询) in: query name: virtual_no schema: description: 虚拟号(模糊查询) maxLength: 50 type: string - description: 批次号 in: query name: batch_no schema: description: 批次号 maxLength: 100 type: string - description: 套餐ID in: query name: package_id schema: description: 套餐ID minimum: 0 nullable: true type: integer - description: 是否已分销 (true:已分销, false:未分销) in: query name: is_distributed schema: description: 是否已分销 (true:已分销, false:未分销) nullable: true type: boolean - description: 是否有换卡记录 (true:有换卡记录, false:无换卡记录) in: query name: is_replaced schema: description: 是否有换卡记录 (true:有换卡记录, false:无换卡记录) nullable: true type: boolean - description: ICCID起始号 in: query name: iccid_start schema: description: ICCID起始号 maxLength: 20 type: string - description: ICCID结束号 in: query name: iccid_end schema: description: ICCID结束号 maxLength: 20 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoListStandaloneIotCardResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 单卡列表(未绑定设备) tags: - IoT卡管理 /api/admin/iot-cards/standalone/allocate: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAllocateStandaloneCardsRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAllocateStandaloneCardsResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量分配单卡 tags: - IoT卡管理 /api/admin/iot-cards/standalone/recall: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoRecallStandaloneCardsRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRecallStandaloneCardsResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量回收单卡 tags: - IoT卡管理 /api/admin/my/commission-daily-stats: get: parameters: - description: 店铺ID in: query name: shop_id schema: description: 店铺ID minimum: 0 nullable: true type: integer - description: 开始日期(YYYY-MM-DD) in: query name: start_date schema: description: 开始日期(YYYY-MM-DD) nullable: true type: string - description: 结束日期(YYYY-MM-DD) in: query name: end_date schema: description: 结束日期(YYYY-MM-DD) nullable: true type: string - description: 查询天数(默认30天) in: query name: days schema: description: 查询天数(默认30天) maximum: 365 minimum: 1 nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: items: $ref: '#/components/schemas/DtoDailyCommissionStatsResponse' type: array msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 我的每日佣金统计 tags: - 我的佣金 /api/admin/my/commission-records: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励) in: query name: commission_source schema: description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励) nullable: true type: string - description: ICCID(模糊查询) in: query name: iccid schema: description: ICCID(模糊查询) type: string - description: 设备虚拟号(模糊查询) in: query name: virtual_no schema: description: 设备虚拟号(模糊查询) type: string - description: 订单号(模糊查询) in: query name: order_no schema: description: 订单号(模糊查询) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoMyCommissionRecordPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 我的佣金明细 tags: - 我的佣金 /api/admin/my/commission-stats: get: parameters: - description: 店铺ID in: query name: shop_id schema: description: 店铺ID minimum: 0 nullable: true type: integer - description: 开始时间 in: query name: start_time schema: description: 开始时间 nullable: true type: string - description: 结束时间 in: query name: end_time schema: description: 结束时间 nullable: true type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoCommissionStatsResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 我的佣金统计 tags: - 我的佣金 /api/admin/my/commission-summary: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoMyCommissionSummaryResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 我的佣金概览 tags: - 我的佣金 /api/admin/my/withdrawal-requests: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 状态(1=待审批, 2=已通过, 3=已拒绝) in: query name: status schema: description: 状态(1=待审批, 2=已通过, 3=已拒绝) nullable: true type: integer - description: 申请开始时间 in: query name: start_time schema: description: 申请开始时间 type: string - description: 申请结束时间 in: query name: end_time schema: description: 申请结束时间 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWithdrawalRequestPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 我的提现记录 tags: - 我的佣金 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateMyWithdrawalReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoCreateMyWithdrawalResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 发起提现申请 tags: - 我的佣金 /api/admin/orders: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款) in: query name: payment_status schema: description: 支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款) maximum: 4 minimum: 1 nullable: true type: integer - description: 订单类型 (single_card:单卡购买, device:设备购买) in: query name: order_type schema: description: 订单类型 (single_card:单卡购买, device:设备购买) type: string - description: 订单号(精确查询) in: query name: order_no schema: description: 订单号(精确查询) maxLength: 30 type: string - description: 订单角色 (self_purchase:自己购买, purchased_by_parent:上级代理购买, purchased_by_platform:平台代购, purchase_for_subordinate:给下级购买) in: query name: purchase_role schema: description: 订单角色 (self_purchase:自己购买, purchased_by_parent:上级代理购买, purchased_by_platform:平台代购, purchase_for_subordinate:给下级购买) type: string - description: 创建时间起始 in: query name: start_time schema: description: 创建时间起始 format: date-time nullable: true type: string - description: 创建时间结束 in: query name: end_time schema: description: 创建时间结束 format: date-time nullable: true type: string - description: 是否已过期 (true:已过期, false:未过期) in: query name: is_expired schema: description: 是否已过期 (true:已过期, false:未过期) nullable: true type: boolean responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoOrderListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取订单列表 tags: - 订单管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateOrderRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoOrderResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建订单 tags: - 订单管理 /api/admin/orders/{id}: get: parameters: - description: 订单ID in: path name: id required: true schema: description: 订单ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoOrderResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取订单详情 tags: - 订单管理 /api/admin/orders/{id}/cancel: post: parameters: - description: 订单ID in: path name: id required: true schema: description: 订单ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 取消订单 tags: - 订单管理 /api/admin/orders/purchase-check: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoPurchaseCheckRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPurchaseCheckResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 套餐购买预检 tags: - 订单管理 /api/admin/package-series: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 系列名称(模糊搜索) in: query name: series_name schema: description: 系列名称(模糊搜索) maxLength: 255 nullable: true type: string - description: 状态 (1:启用, 2:禁用) in: query name: status schema: description: 状态 (1:启用, 2:禁用) nullable: true type: integer - description: 是否启用一次性佣金 in: query name: enable_one_time_commission schema: description: 是否启用一次性佣金 nullable: true type: boolean responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackageSeriesPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 套餐系列列表 tags: - 套餐系列管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreatePackageSeriesRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackageSeriesResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建套餐系列 tags: - 套餐系列管理 /api/admin/package-series/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除套餐系列 tags: - 套餐系列管理 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackageSeriesResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取套餐系列详情 tags: - 套餐系列管理 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePackageSeriesParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackageSeriesResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新套餐系列 tags: - 套餐系列管理 /api/admin/package-series/{id}/status: patch: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePackageSeriesStatusParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新套餐系列状态 tags: - 套餐系列管理 /api/admin/package-usage/{id}/daily-records: get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackageUsageDetailResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取套餐流量详单 tags: - 套餐使用记录 /api/admin/packages: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 套餐名称(模糊搜索) in: query name: package_name schema: description: 套餐名称(模糊搜索) maxLength: 255 nullable: true type: string - description: 套餐系列ID in: query name: series_id schema: description: 套餐系列ID minimum: 0 nullable: true type: integer - description: 状态 (1:启用, 2:禁用) in: query name: status schema: description: 状态 (1:启用, 2:禁用) nullable: true type: integer - description: 上架状态 (1:上架, 2:下架) in: query name: shelf_status schema: description: 上架状态 (1:上架, 2:下架) nullable: true type: integer - description: 套餐类型 (formal:正式套餐, addon:附加套餐) in: query name: package_type schema: description: 套餐类型 (formal:正式套餐, addon:附加套餐) nullable: true type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackagePageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 套餐列表 tags: - 套餐管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreatePackageRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackageResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建套餐 tags: - 套餐管理 /api/admin/packages/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除套餐 tags: - 套餐管理 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackageResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取套餐详情 tags: - 套餐管理 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePackageParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPackageResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新套餐 tags: - 套餐管理 /api/admin/packages/{id}/shelf: patch: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePackageShelfStatusParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新套餐上架状态 tags: - 套餐管理 /api/admin/packages/{id}/status: patch: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePackageStatusParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新套餐状态 tags: - 套餐管理 /api/admin/permissions: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 权限名称模糊查询 in: query name: perm_name schema: description: 权限名称模糊查询 maxLength: 50 type: string - description: 权限编码模糊查询 in: query name: perm_code schema: description: 权限编码模糊查询 maxLength: 100 type: string - description: 权限类型 (1:菜单, 2:按钮) in: query name: perm_type schema: description: 权限类型 (1:菜单, 2:按钮) maximum: 2 minimum: 1 nullable: true type: integer - description: 适用端口 (all:全部, web:Web后台, h5:H5端) in: query name: platform schema: description: 适用端口 (all:全部, web:Web后台, h5:H5端) type: string - description: 可用角色类型 (1:平台角色, 2:客户角色) in: query name: available_for_role_type schema: description: 可用角色类型 (1:平台角色, 2:客户角色) maximum: 2 minimum: 1 nullable: true type: integer - description: 父权限ID in: query name: parent_id schema: description: 父权限ID minimum: 0 nullable: true type: integer - description: 状态 (0:禁用, 1:启用) in: query name: status schema: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPermissionPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 权限列表 tags: - 权限 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreatePermissionRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPermissionResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建权限 tags: - 权限 /api/admin/permissions/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除权限 tags: - 权限 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPermissionResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取权限详情 tags: - 权限 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePermissionParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPermissionResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新权限 tags: - 权限 /api/admin/permissions/tree: get: parameters: - description: 可用角色类型 (1:平台角色, 2:客户角色) in: query name: available_for_role_type schema: description: 可用角色类型 (1:平台角色, 2:客户角色) maximum: 2 minimum: 1 nullable: true type: integer - description: 状态 (0:禁用, 1:启用) in: query name: status schema: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: items: $ref: '#/components/schemas/DtoPermissionTreeNode' type: array msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取权限树 tags: - 权限 /api/admin/polling-alert-history/polling-alert-history: get: parameters: - description: 规则ID in: query name: rule_id schema: description: 规则ID minimum: 0 nullable: true type: integer - description: 页码 in: query name: page schema: description: 页码 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingAlertHistoryListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询告警历史 tags: - 轮询管理-告警 /api/admin/polling-alert-rules: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingAlertRuleListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询告警规则列表 tags: - 轮询管理-告警 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreatePollingAlertRuleReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingAlertRuleResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建轮询告警规则 tags: - 轮询管理-告警 /api/admin/polling-alert-rules/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除轮询告警规则 tags: - 轮询管理-告警 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingAlertRuleResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询告警规则详情 tags: - 轮询管理-告警 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePollingAlertRuleParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新轮询告警规则 tags: - 轮询管理-告警 /api/admin/polling-concurrency: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingConcurrencyListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询并发配置列表 tags: - 轮询管理-并发控制 /api/admin/polling-concurrency/{task_type}: get: parameters: - description: 任务类型 in: path name: task_type required: true schema: description: 任务类型 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingConcurrencyResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取指定任务类型的并发配置 tags: - 轮询管理-并发控制 put: parameters: - description: 任务类型 in: path name: task_type required: true schema: description: 任务类型 type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePollingConcurrencyReq' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新轮询并发配置 tags: - 轮询管理-并发控制 /api/admin/polling-concurrency/reset: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoResetPollingConcurrencyReq' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 重置轮询并发计数 tags: - 轮询管理-并发控制 /api/admin/polling-configs: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 状态 (1:启用, 0:禁用) in: query name: status schema: description: 状态 (1:启用, 0:禁用) nullable: true type: integer - description: 卡状态条件 in: query name: card_condition schema: description: 卡状态条件 nullable: true type: string - description: 卡业务类型 in: query name: card_category schema: description: 卡业务类型 nullable: true type: string - description: 运营商ID in: query name: carrier_id schema: description: 运营商ID minimum: 0 nullable: true type: integer - description: 配置名称(模糊搜索) in: query name: config_name schema: description: 配置名称(模糊搜索) maxLength: 100 nullable: true type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingConfigPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询配置列表 tags: - 轮询配置管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreatePollingConfigRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建轮询配置 tags: - 轮询配置管理 /api/admin/polling-configs/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除轮询配置 tags: - 轮询配置管理 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询配置详情 tags: - 轮询配置管理 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePollingConfigParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新轮询配置 tags: - 轮询配置管理 /api/admin/polling-configs/{id}/status: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdatePollingConfigStatusParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新轮询配置状态 tags: - 轮询配置管理 /api/admin/polling-configs/enabled: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: items: $ref: '#/components/schemas/DtoPollingConfigResponse' type: array msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取所有启用的配置 tags: - 轮询配置管理 /api/admin/polling-manual-trigger/batch: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoTriggerBatchReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoManualTriggerLogResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量手动触发 tags: - 轮询管理-手动触发 /api/admin/polling-manual-trigger/by-condition: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoTriggerByConditionReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoManualTriggerLogResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 条件筛选触发 tags: - 轮询管理-手动触发 /api/admin/polling-manual-trigger/cancel: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCancelTriggerReq' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 取消手动触发任务 tags: - 轮询管理-手动触发 /api/admin/polling-manual-trigger/history: get: parameters: - description: 任务类型筛选 in: query name: task_type schema: description: 任务类型筛选 type: string - description: 页码 in: query name: page schema: description: 页码 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoManualTriggerLogListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取手动触发历史 tags: - 轮询管理-手动触发 /api/admin/polling-manual-trigger/single: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoTriggerSingleReq' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 单卡手动触发 tags: - 轮询管理-手动触发 /api/admin/polling-manual-trigger/status: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoManualTriggerStatusResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取手动触发状态 tags: - 轮询管理-手动触发 /api/admin/polling-stats: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingOverviewResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询总览统计 tags: - 轮询管理-监控 /api/admin/polling-stats/init-progress: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingInitProgressResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询初始化进度 tags: - 轮询管理-监控 /api/admin/polling-stats/queues: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingQueueStatusListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询队列状态 tags: - 轮询管理-监控 /api/admin/polling-stats/tasks: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoPollingTaskStatsListResp' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取轮询任务统计 tags: - 轮询管理-监控 /api/admin/roles: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 角色名称模糊查询 in: query name: role_name schema: description: 角色名称模糊查询 maxLength: 50 type: string - description: 角色类型 (1:平台角色, 2:客户角色) in: query name: role_type schema: description: 角色类型 (1:平台角色, 2:客户角色) maximum: 2 minimum: 1 nullable: true type: integer - description: 状态 (0:禁用, 1:启用) in: query name: status schema: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRolePageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 角色列表 tags: - 角色 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateRoleRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRoleResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建角色 tags: - 角色 /api/admin/roles/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除角色 tags: - 角色 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRoleResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取角色详情 tags: - 角色 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateRoleParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRoleResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新角色 tags: - 角色 /api/admin/roles/{id}/permissions: get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: items: $ref: '#/components/schemas/ModelPermission' type: array msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取角色权限 tags: - 角色 post: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAssignPermissionsParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 分配权限 tags: - 角色 /api/admin/roles/{id}/status: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateRoleStatusParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新角色状态 tags: - 角色 /api/admin/roles/{role_id}/permissions/{perm_id}: delete: parameters: - description: 角色ID in: path name: role_id required: true schema: description: 角色ID minimum: 0 type: integer - description: 权限ID in: path name: perm_id required: true schema: description: 权限ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 移除权限 tags: - 角色 /api/admin/shop-package-batch-allocations: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoBatchAllocatePackagesRequest' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量分配套餐 tags: - 批量套餐分配 /api/admin/shop-package-batch-pricing: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoBatchUpdateCostPriceRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoBatchUpdateCostPriceResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 批量调价 tags: - 批量套餐调价 /api/admin/shop-series-grants: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 过滤被授权店铺ID in: query name: shop_id schema: description: 过滤被授权店铺ID minimum: 0 nullable: true type: integer - description: 过滤套餐系列ID in: query name: series_id schema: description: 过滤套餐系列ID minimum: 0 nullable: true type: integer - description: 过滤分配者店铺ID in: query name: allocator_shop_id schema: description: 过滤分配者店铺ID minimum: 0 nullable: true type: integer - description: 过滤状态 1-启用 2-禁用 in: query name: status schema: description: 过滤状态 1-启用 2-禁用 nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopSeriesGrantPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询代理系列授权列表 tags: - 代理系列授权 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateShopSeriesGrantRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopSeriesGrantResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建代理系列授权 tags: - 代理系列授权 /api/admin/shop-series-grants/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除代理系列授权 tags: - 代理系列授权 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopSeriesGrantResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询代理系列授权详情 tags: - 代理系列授权 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateShopSeriesGrantParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopSeriesGrantResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新代理系列授权 tags: - 代理系列授权 /api/admin/shop-series-grants/{id}/packages: put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoManageGrantPackagesParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopSeriesGrantResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 管理授权套餐(新增/更新/删除) tags: - 代理系列授权 /api/admin/shops: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 店铺名称模糊查询 in: query name: shop_name schema: description: 店铺名称模糊查询 maxLength: 100 type: string - description: 店铺编号模糊查询 in: query name: shop_code schema: description: 店铺编号模糊查询 maxLength: 50 type: string - description: 上级店铺ID in: query name: parent_id schema: description: 上级店铺ID minimum: 1 nullable: true type: integer - description: 店铺层级 (1-7级) in: query name: level schema: description: 店铺层级 (1-7级) maximum: 7 minimum: 1 nullable: true type: integer - description: 状态 (0:禁用, 1:启用) in: query name: status schema: description: 状态 (0:禁用, 1:启用) nullable: true type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 店铺列表 tags: - 店铺管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateShopRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建店铺 tags: - 店铺管理 /api/admin/shops/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除店铺 tags: - 店铺管理 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateShopParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新店铺 tags: - 店铺管理 /api/admin/shops/{shop_id}/commission-records: get: parameters: - description: 页码(默认1) in: query name: page schema: description: 页码(默认1) minimum: 1 type: integer - description: 每页数量(默认20,最大100) in: query name: page_size schema: description: 每页数量(默认20,最大100) maximum: 100 minimum: 1 type: integer - description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励) in: query name: commission_source schema: description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励) type: string - description: ICCID(模糊查询) in: query name: iccid schema: description: ICCID(模糊查询) maxLength: 50 type: string - description: 设备虚拟号(模糊查询) in: query name: virtual_no schema: description: 设备虚拟号(模糊查询) maxLength: 50 type: string - description: 订单号(模糊查询) in: query name: order_no schema: description: 订单号(模糊查询) maxLength: 50 type: string - description: 店铺ID in: path name: shop_id required: true schema: description: 店铺ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopCommissionRecordPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 代理商佣金明细 tags: - 代理商佣金管理 /api/admin/shops/{shop_id}/roles: get: parameters: - description: 店铺ID in: path name: shop_id required: true schema: description: 店铺ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopRolesResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询店铺默认角色 tags: - 店铺管理 post: parameters: - description: 店铺ID in: path name: shop_id required: true schema: description: 店铺ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAssignShopRolesRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopRolesResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 分配店铺默认角色 tags: - 店铺管理 /api/admin/shops/{shop_id}/roles/{role_id}: delete: parameters: - description: 店铺ID in: path name: shop_id required: true schema: description: 店铺ID minimum: 0 type: integer - description: 角色ID in: path name: role_id required: true schema: description: 角色ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除店铺默认角色 tags: - 店铺管理 /api/admin/shops/{shop_id}/withdrawal-requests: get: parameters: - description: 页码(默认1) in: query name: page schema: description: 页码(默认1) minimum: 1 type: integer - description: 每页数量(默认20,最大100) in: query name: page_size schema: description: 每页数量(默认20,最大100) maximum: 100 minimum: 1 type: integer - description: 提现单号(精确查询) in: query name: withdrawal_no schema: description: 提现单号(精确查询) maxLength: 50 type: string - description: 申请开始时间(格式:2006-01-02 15:04:05) in: query name: start_time schema: description: 申请开始时间(格式:2006-01-02 15:04:05) type: string - description: 申请结束时间(格式:2006-01-02 15:04:05) in: query name: end_time schema: description: 申请结束时间(格式:2006-01-02 15:04:05) type: string - description: 店铺ID in: path name: shop_id required: true schema: description: 店铺ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopWithdrawalRequestPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 代理商提现记录 tags: - 代理商佣金管理 /api/admin/shops/commission-summary: get: parameters: - description: 页码(默认1) in: query name: page schema: description: 页码(默认1) minimum: 1 type: integer - description: 每页数量(默认20,最大100) in: query name: page_size schema: description: 每页数量(默认20,最大100) maximum: 100 minimum: 1 type: integer - description: 店铺名称(模糊查询) in: query name: shop_name schema: description: 店铺名称(模糊查询) maxLength: 100 type: string - description: 主账号用户名(模糊查询) in: query name: username schema: description: 主账号用户名(模糊查询) maxLength: 50 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopCommissionSummaryPageResult' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 代理商佣金列表 tags: - 代理商佣金管理 /api/admin/storage/upload-url: post: description: |- ## 文件上传流程 本接口用于获取对象存储的预签名上传 URL,实现前端直传文件到对象存储。 ### 完整流程 1. **调用本接口** 获取预签名 URL 和 file_key 2. **使用预签名 URL 上传文件** 发起 PUT 请求直接上传到对象存储 3. **调用业务接口** 使用 file_key 调用相关业务接口(如 ICCID 导入) ### 前端上传示例 ```javascript // 1. 获取预签名 URL const { data } = await api.post('/storage/upload-url', { file_name: 'cards.xlsx', content_type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', purpose: 'iot_import' }); // 2. 上传文件到对象存储 await fetch(data.upload_url, { method: 'PUT', headers: { 'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }, body: file }); // 3. 调用业务接口 await api.post('/iot-cards/import', { carrier_id: 1, batch_no: 'BATCH-2025-01', file_key: data.file_key }); ``` ### purpose 可选值 | 值 | 说明 | 生成路径格式 | |---|------|-------------| | iot_import | ICCID/设备导入 (Excel) | imports/YYYY/MM/DD/uuid.xlsx | | export | 数据导出 | exports/YYYY/MM/DD/uuid.xlsx | | attachment | 附件上传 | attachments/YYYY/MM/DD/uuid.ext | ### 注意事项 - 预签名 URL 有效期 **15 分钟**,请及时使用 - 上传时 Content-Type 需与请求时一致 - file_key 在上传成功后永久有效,用于后续业务接口调用 - 上传失败时可重新调用本接口获取新的 URL requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoGetUploadURLRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoGetUploadURLResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取文件上传预签名 URL tags: - 对象存储 /api/admin/wechat-configs: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 支付渠道类型 (wechat:微信直连, fuiou:富友) in: query name: provider_type schema: description: 支付渠道类型 (wechat:微信直连, fuiou:富友) nullable: true type: string - description: 是否激活 (true:已激活, false:未激活) in: query name: is_active schema: description: 是否激活 (true:已激活, false:未激活) nullable: true type: boolean responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatConfigListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取支付配置列表 tags: - 微信支付配置管理 post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateWechatConfigRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建支付配置 tags: - 微信支付配置管理 /api/admin/wechat-configs/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 删除支付配置 tags: - 微信支付配置管理 get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取支付配置详情 tags: - 微信支付配置管理 put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoUpdateWechatConfigParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新支付配置 tags: - 微信支付配置管理 /api/admin/wechat-configs/{id}/activate: post: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 激活支付配置 tags: - 微信支付配置管理 /api/admin/wechat-configs/{id}/deactivate: post: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 停用支付配置 tags: - 微信支付配置管理 /api/admin/wechat-configs/active: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatConfigResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取当前生效的支付配置 tags: - 微信支付配置管理 /api/auth/login: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoLoginRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoLoginResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 统一登录(后台+H5) tags: - 统一认证 /api/auth/logout: post: responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 统一登出 tags: - 统一认证 /api/auth/me: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoUserInfo' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取用户信息 tags: - 统一认证 /api/auth/password: put: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoChangePasswordRequest' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 修改密码 tags: - 统一认证 /api/auth/refresh-token: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoRefreshTokenRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRefreshTokenResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 刷新 Token tags: - 统一认证 /api/c/v1/asset/info: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetInfoResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 资产信息 tags: - 个人客户 - 资产 /api/c/v1/asset/package-history: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string - description: 页码 in: query name: page required: true schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size required: true schema: description: 每页数量 maximum: 100 minimum: 1 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetPackageHistoryResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 资产套餐历史 tags: - 个人客户 - 资产 /api/c/v1/asset/packages: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetPackageListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 资产可购套餐列表 tags: - 个人客户 - 资产 /api/c/v1/asset/refresh: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoAssetRefreshRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoAssetRefreshResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 资产刷新 tags: - 个人客户 - 资产 /api/c/v1/auth/bind-phone: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoBindPhoneRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoBindPhoneResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 绑定手机号 tags: - 个人客户 - 认证 /api/c/v1/auth/change-phone: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoChangePhoneRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoChangePhoneResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更换手机号 tags: - 个人客户 - 认证 /api/c/v1/auth/logout: post: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoLogoutResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 退出登录 tags: - 个人客户 - 认证 /api/c/v1/auth/miniapp-login: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoMiniappLoginRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatLoginResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 小程序登录 tags: - 个人客户 - 认证 /api/c/v1/auth/send-code: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoClientSendCodeRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoClientSendCodeResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 发送验证码 tags: - 个人客户 - 认证 /api/c/v1/auth/verify-asset: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoVerifyAssetRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoVerifyAssetResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 资产验证 tags: - 个人客户 - 认证 /api/c/v1/auth/wechat-login: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoWechatLoginRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatLoginResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 公众号登录 tags: - 个人客户 - 认证 /api/c/v1/device/cards: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceCardListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取设备卡列表 tags: - 个人客户 - 设备 /api/c/v1/device/factory-reset: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoDeviceFactoryResetRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceOperationResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 恢复出厂设置 tags: - 个人客户 - 设备 /api/c/v1/device/reboot: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoDeviceRebootRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceOperationResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 设备重启 tags: - 个人客户 - 设备 /api/c/v1/device/switch-card: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoDeviceSwitchCardRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceSwitchCardResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 设备切卡 tags: - 个人客户 - 设备 /api/c/v1/device/wifi: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoDeviceWifiRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceOperationResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 设备WiFi配置 tags: - 个人客户 - 设备 /api/c/v1/exchange/{id}/shipping-info: post: parameters: - description: 换货单ID in: path name: id required: true schema: description: 换货单ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoClientShippingInfoParams' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 提交收货信息 tags: - 个人客户 - 换货 /api/c/v1/exchange/pending: get: parameters: - description: 资产标识符(ICCID/虚拟号/IMEI/SN) in: query name: identifier required: true schema: description: 资产标识符(ICCID/虚拟号/IMEI/SN) maxLength: 100 minLength: 1 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoClientExchangePendingResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 查询待处理换货单 tags: - 个人客户 - 换货 /api/c/v1/orders: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string - description: 支付状态 (0:待支付, 1:已支付, 2:已取消) in: query name: payment_status schema: description: 支付状态 (0:待支付, 1:已支付, 2:已取消) maximum: 2 minimum: 0 nullable: true type: integer - description: 页码 in: query name: page required: true schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size required: true schema: description: 每页数量 maximum: 100 minimum: 1 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoClientOrderListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 订单列表 tags: - 个人客户 - 订单 /api/c/v1/orders/{id}: get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoClientOrderDetailResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 订单详情 tags: - 个人客户 - 订单 /api/c/v1/orders/create: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoClientCreateOrderRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoClientCreateOrderResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建订单 tags: - 个人客户 - 订单 /api/c/v1/profile: get: description: 获取当前登录客户的个人资料 responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/AppPersonalCustomerDTO' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取个人资料 tags: - 个人客户 - 账户 put: description: 更新当前登录客户的昵称和头像 requestBody: content: application/json: schema: $ref: '#/components/schemas/AppUpdateProfileRequest' responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 更新个人资料 tags: - 个人客户 - 账户 /api/c/v1/realname/link: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string - description: 物联网卡ICCID in: query name: iccid schema: description: 物联网卡ICCID maxLength: 30 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRealnimeLinkResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 获取实名认证链接 tags: - 个人客户 - 实名 /api/c/v1/wallet/detail: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWalletDetailResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 钱包详情 tags: - 个人客户 - 钱包 /api/c/v1/wallet/recharge: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoClientCreateRechargeRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoClientRechargeResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 创建充值订单 tags: - 个人客户 - 钱包 /api/c/v1/wallet/recharge-check: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoClientRechargeCheckResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 充值前校验 tags: - 个人客户 - 钱包 /api/c/v1/wallet/recharges: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string - description: 充值状态 (0:待支付, 1:已支付, 2:已关闭) in: query name: status schema: description: 充值状态 (0:待支付, 1:已支付, 2:已关闭) maximum: 2 minimum: 0 nullable: true type: integer - description: 页码 in: query name: page required: true schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size required: true schema: description: 每页数量 maximum: 100 minimum: 1 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoClientRechargeListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 充值记录列表 tags: - 个人客户 - 钱包 /api/c/v1/wallet/transactions: get: parameters: - description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) in: query name: identifier required: true schema: description: 资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN) maxLength: 50 minLength: 1 type: string - description: 流水类型 in: query name: transaction_type schema: description: 流水类型 maxLength: 50 type: string - description: 开始时间 in: query name: start_time schema: description: 开始时间 maxLength: 32 type: string - description: 结束时间 in: query name: end_time schema: description: 结束时间 maxLength: 32 type: string - description: 页码 in: query name: page required: true schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size required: true schema: description: 每页数量 maximum: 100 minimum: 1 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWalletTransactionListResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "401": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未认证或认证已过期 "403": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 无权访问 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 security: - BearerAuth: [] summary: 钱包流水列表 tags: - 个人客户 - 钱包 /api/callback/alipay: post: responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 支付宝回调 tags: - 支付回调 /api/callback/fuiou-pay: post: responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 富友支付回调 tags: - 支付回调 /api/callback/wechat-pay: post: responses: "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 微信支付回调 tags: - 支付回调 /health: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/RoutesHealthResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 健康检查 tags: - 系统 /ready: get: responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/RoutesHealthResponse' msg: description: 响应消息 example: success type: string timestamp: description: 时间戳 format: date-time type: string required: - code - msg - data - timestamp type: object description: 成功 "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 请求参数错误 "500": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 服务器内部错误 summary: 就绪检查 tags: - 系统