components: schemas: AppLoginRequest: properties: code: type: string phone: type: string type: object AppLoginResponse: properties: customer: $ref: '#/components/schemas/AppPersonalCustomerDTO' token: type: string type: object 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 AppSendCodeRequest: properties: phone: 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 id: description: 账号ID minimum: 0 type: integer phone: description: 手机号 type: string shop_id: description: 关联店铺ID minimum: 0 nullable: true type: integer 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 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 device_no: description: 设备号 type: string reason: 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 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 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 device_no: description: 设备号 type: string type: object DtoBaseCommissionConfig: properties: mode: description: 返佣模式 (fixed:固定金额, percent:百分比) type: string value: description: 返佣值(分或千分比,如200=20%) minimum: 0 type: integer required: - mode - value type: object DtoBatchAllocatePackagesRequest: properties: base_commission: $ref: '#/components/schemas/DtoBaseCommissionConfig' 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 - base_commission 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' 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 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 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 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 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 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 required: - carrier_code - carrier_name - carrier_type 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 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:钱包支付, offline:线下支付) type: string required: - order_type - package_ids - payment_method type: object DtoCreatePackageRequest: properties: data_amount_mb: description: 总流量额度(MB) minimum: 0 nullable: true type: integer data_type: description: 流量类型 (real:真流量, virtual:虚流量) nullable: true type: string duration_months: description: 套餐时长(月数) maximum: 120 minimum: 1 type: integer 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 price: description: 套餐价格(分) minimum: 0 type: integer real_data_mb: description: 真流量额度(MB) minimum: 0 nullable: true type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer suggested_cost_price: description: 建议成本价(分) 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 - price type: object DtoCreatePackageSeriesRequest: properties: description: description: 描述 maxLength: 500 type: string 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 DtoCreateRechargeRequest: properties: amount: description: 充值金额(分) type: integer payment_method: description: 支付方式 type: string resource_id: description: 资源ID minimum: 0 type: integer resource_type: description: 资源类型 type: string 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 DtoCreateShopPackageAllocationRequest: properties: cost_price: description: 覆盖的成本价(分) minimum: 0 type: integer package_id: description: 套餐ID minimum: 0 type: integer shop_id: description: 被分配的店铺ID minimum: 0 type: integer required: - shop_id - package_id - cost_price 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 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 - init_password - init_username - init_phone type: object DtoCreateShopSeriesAllocationRequest: properties: base_commission: $ref: '#/components/schemas/DtoBaseCommissionConfig' enable_force_recharge: description: 是否启用强充(累计充值强充) nullable: true type: boolean enable_one_time_commission: description: 是否启用一次性佣金 type: boolean force_recharge_amount: description: 强充金额(分,0表示使用阈值金额) nullable: true type: integer force_recharge_trigger_type: description: 强充触发类型(1:单次充值, 2:累计充值) nullable: true type: integer one_time_commission_config: $ref: '#/components/schemas/DtoOneTimeCommissionConfig' series_id: description: 套餐系列ID minimum: 0 type: integer shop_id: description: 被分配的店铺ID minimum: 0 type: integer required: - shop_id - series_id - base_commission 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 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 DtoDeviceCardInfo: properties: card_id: description: 卡ID minimum: 0 type: integer carrier_name: description: 运营商名称 type: string iccid: description: ICCID type: string msisdn: description: 手机号 type: string network_status: description: 网络状态:0=停机 1=开机 type: integer network_status_name: description: 网络状态名称 type: string type: object DtoDeviceCardOperationReq: properties: reason: description: 操作原因 type: string type: object DtoDeviceCardOperationResp: properties: message: description: 操作结果消息 type: string success: description: 操作是否成功 type: boolean type: object DtoDeviceImportResultItemDTO: properties: device_no: description: 设备号 type: string line: description: 行号 type: integer reason: 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 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_no: description: 设备号 type: string device_type: description: 设备类型 type: string first_commission_paid: description: 一次性佣金是否已发放 type: boolean id: description: 设备ID minimum: 0 type: integer manufacturer: description: 制造商 type: string max_sim_slots: description: 最大插槽数 type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer shop_id: description: 店铺ID minimum: 0 nullable: true type: integer shop_name: description: 店铺名称 type: string status: description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用) type: integer status_name: description: 状态名称 type: string updated_at: description: 更新时间 format: date-time type: string type: object DtoDeviceSeriesBindngFailedItem: properties: device_id: description: 设备ID minimum: 0 type: integer device_no: description: 设备号 type: string reason: 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 device_no: description: 设备号 type: string 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 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 DtoEnterpriseDeviceDetailResp: properties: cards: description: 绑定卡列表 items: $ref: '#/components/schemas/DtoDeviceCardInfo' nullable: true type: array device: $ref: '#/components/schemas/DtoEnterpriseDeviceInfo' type: object DtoEnterpriseDeviceInfo: properties: authorized_at: description: 授权时间 format: date-time type: string device_id: description: 设备ID minimum: 0 type: integer device_model: description: 设备型号 type: string device_name: description: 设备名称 type: string device_no: description: 设备号 type: string device_type: description: 设备类型 type: string 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 device_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 DtoFailedDeviceItem: properties: device_no: description: 设备号 type: string reason: 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 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 DtoIotCardDetailResponse: 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 card_type: 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 cost_price: description: 成本价(分) type: integer created_at: description: 创建时间 format: date-time type: string data_usage_mb: description: 累计流量使用(MB) type: integer distribute_price: description: 分销价(分) type: integer first_commission_paid: description: 一次性佣金是否已发放 type: boolean iccid: description: ICCID type: string id: description: 卡ID minimum: 0 type: integer imsi: description: IMSI 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 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 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 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 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 DtoOneTimeCommissionConfig: properties: mode: description: 返佣模式 (fixed:固定金额, percent:百分比) - 固定类型时必填 type: string threshold: description: 最低阈值(分) minimum: 1 type: integer tiers: description: 梯度档位列表 - 梯度类型时必填 items: $ref: '#/components/schemas/DtoOneTimeCommissionTierEntry' nullable: true type: array trigger: description: 触发条件 (single_recharge:单次充值, accumulated_recharge:累计充值) type: string type: description: 一次性佣金类型 (fixed:固定, tiered:梯度) type: string value: description: 佣金金额(分)或比例(千分比)- 固定类型时必填 minimum: 1 type: integer required: - type - trigger - threshold type: object DtoOneTimeCommissionTierEntry: properties: mode: description: 返佣模式 (fixed:固定金额, percent:百分比) type: string threshold: description: 梯度阈值(销量或销售额分) minimum: 1 type: integer tier_type: description: 梯度类型 (sales_count:销量, sales_amount:销售额) type: string value: description: 返佣值(分或千分比) minimum: 1 type: integer required: - tier_type - threshold - mode - value 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: 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 id: description: 订单ID minimum: 0 type: integer iot_card_id: description: IoT卡ID minimum: 0 nullable: true type: integer is_purchase_on_behalf: description: 是否为代购订单 type: boolean items: description: 订单明细列表 items: $ref: '#/components/schemas/DtoOrderItemResponse' nullable: true type: array 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 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: cost_price: description: 成本价(分,仅代理用户可见) nullable: true type: integer created_at: description: 创建时间 type: string current_commission_rate: description: 当前返佣比例(仅代理用户可见) type: string data_amount_mb: description: 总流量额度(MB) type: integer data_type: description: 流量类型 (real:真流量, virtual:虚流量) type: string duration_months: description: 套餐时长(月数) type: integer id: description: 套餐ID minimum: 0 type: integer package_code: description: 套餐编码 type: string package_name: description: 套餐名称 type: string package_type: description: 套餐类型 (formal:正式套餐, addon:附加套餐) type: string price: description: 套餐价格(分) type: integer profit_margin: description: 利润空间(分,仅代理用户可见) nullable: true type: integer real_data_mb: description: 真流量额度(MB) 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_cost_price: description: 建议成本价(分) 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 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 id: description: 系列ID minimum: 0 type: integer series_code: description: 系列编码 type: string series_name: description: 系列名称 type: string status: description: 状态 (1:启用, 2:禁用) type: integer updated_at: description: 更新时间 type: string 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 DtoPersonalCustomerResponse: properties: avatar_url: description: 头像URL type: string created_at: description: 创建时间 type: string id: description: 客户ID minimum: 0 type: integer nickname: description: 昵称 type: string phone: description: 手机号 type: string status: description: 状态 (0:禁用, 1:启用) type: integer updated_at: description: 更新时间 type: string wx_open_id: description: 微信OpenID type: string wx_union_id: description: 微信UnionID type: string 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 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 from_shop_id: description: 来源店铺ID(被回收方) minimum: 1 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: - from_shop_id - 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 device_no: description: 设备号 type: string iccids: description: 卡ICCID列表 items: type: string nullable: true type: array type: object DtoRechargeCheckResponse: properties: current_accumulated: description: 当前累计充值金额(分) type: integer first_commission_paid: description: 一次性佣金是否已发放 type: boolean 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 threshold: description: 佣金触发阈值(分) type: integer trigger_type: description: 触发类型 type: string type: object DtoRechargeListResponse: properties: list: description: 列表数据 items: $ref: '#/components/schemas/DtoRechargeResponse' nullable: true type: array page: description: 当前页码 type: integer page_size: description: 每页数量 type: integer total: description: 总记录数 type: integer total_pages: description: 总页数 type: integer type: object DtoRechargeResponse: properties: amount: description: 充值金额(分) type: integer completed_at: description: 完成时间 format: date-time nullable: true type: string created_at: description: 创建时间 format: date-time type: string id: description: 充值订单ID minimum: 0 type: integer paid_at: description: 支付时间 format: date-time nullable: true type: string payment_channel: description: 支付渠道 nullable: true type: string payment_method: description: 支付方式 type: string payment_transaction_id: description: 第三方支付交易号 nullable: true type: string recharge_no: description: 充值订单号 type: string status: description: 充值状态 type: integer status_text: description: 状态文本 type: string updated_at: description: 更新时间 format: date-time type: string user_id: description: 用户ID minimum: 0 type: integer wallet_id: description: 钱包ID minimum: 0 type: integer 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 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 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 device_no: 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 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 DtoShopPackageAllocationPageResult: properties: list: description: 分配列表 items: $ref: '#/components/schemas/DtoShopPackageAllocationResponse' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoShopPackageAllocationResponse: properties: allocation_id: description: 关联的系列分配ID minimum: 0 type: integer calculated_cost_price: description: 原计算成本价(分),供参考 type: integer cost_price: description: 覆盖的成本价(分) type: integer created_at: description: 创建时间 type: string id: description: 分配ID minimum: 0 type: integer package_code: description: 套餐编码 type: string package_id: description: 套餐ID minimum: 0 type: integer package_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 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 DtoShopSeriesAllocationPageResult: properties: list: description: 分配列表 items: $ref: '#/components/schemas/DtoShopSeriesAllocationResponse' nullable: true type: array page: description: 当前页 type: integer page_size: description: 每页数量 type: integer total: description: 总数 type: integer total_pages: description: 总页数 type: integer type: object DtoShopSeriesAllocationResponse: properties: allocator_shop_id: description: 分配者店铺ID minimum: 0 type: integer allocator_shop_name: description: 分配者店铺名称 type: string base_commission: $ref: '#/components/schemas/DtoBaseCommissionConfig' created_at: description: 创建时间 type: string enable_force_recharge: description: 是否启用强充 type: boolean enable_one_time_commission: description: 是否启用一次性佣金 type: boolean force_recharge_amount: description: 强充金额(分) type: integer force_recharge_trigger_type: description: 强充触发类型(1:单次充值, 2:累计充值) type: integer id: description: 分配ID minimum: 0 type: integer one_time_commission_config: $ref: '#/components/schemas/DtoOneTimeCommissionConfig' 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 card_type: 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 cost_price: description: 成本价(分) type: integer created_at: description: 创建时间 format: date-time type: string data_usage_mb: description: 累计流量使用(MB) type: integer distribute_price: description: 分销价(分) type: integer first_commission_paid: description: 一次性佣金是否已发放 type: boolean iccid: description: ICCID type: string id: description: 卡ID minimum: 0 type: integer imsi: description: IMSI 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 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 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 type: object DtoUpdateCarrierStatusParams: properties: status: description: 状态 (1:启用, 0:禁用) type: integer required: - status 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: data_amount_mb: description: 总流量额度(MB) minimum: 0 nullable: true type: integer data_type: description: 流量类型 (real:真流量, virtual:虚流量) nullable: true type: string duration_months: description: 套餐时长(月数) maximum: 120 minimum: 1 nullable: true type: integer package_name: description: 套餐名称 maxLength: 255 minLength: 1 nullable: true type: string package_type: description: 套餐类型 (formal:正式套餐, addon:附加套餐) nullable: true type: string price: description: 套餐价格(分) minimum: 0 nullable: true type: integer real_data_mb: description: 真流量额度(MB) minimum: 0 nullable: true type: integer series_id: description: 套餐系列ID minimum: 0 nullable: true type: integer suggested_cost_price: description: 建议成本价(分) 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 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 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:启用) maximum: 1 minimum: 0 type: integer required: - status type: object DtoUpdateShopPackageAllocationParams: properties: cost_price: description: 覆盖的成本价(分) minimum: 0 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 DtoUpdateShopSeriesAllocationParams: properties: base_commission: $ref: '#/components/schemas/DtoBaseCommissionConfig' enable_force_recharge: description: 是否启用强充(累计充值强充) nullable: true type: boolean enable_one_time_commission: description: 是否启用一次性佣金 nullable: true type: boolean force_recharge_amount: description: 强充金额(分,0表示使用阈值金额) nullable: true type: integer force_recharge_trigger_type: description: 强充触发类型(1:单次充值, 2:累计充值) nullable: true type: integer one_time_commission_config: $ref: '#/components/schemas/DtoOneTimeCommissionConfig' type: object DtoUpdateStatusParams: properties: status: description: 状态(0:禁用,1:启用) maximum: 1 minimum: 0 type: integer required: - status 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 DtoWechatH5Detail: properties: type: description: 场景类型 (iOS:苹果, Android:安卓, Wap:浏览器) type: string type: object DtoWechatH5SceneInfo: properties: h5_info: $ref: '#/components/schemas/DtoWechatH5Detail' payer_client_ip: description: 用户终端IP type: string required: - payer_client_ip type: object DtoWechatOAuthRequest: properties: code: description: 微信授权码 type: string required: - code type: object DtoWechatOAuthResponse: properties: access_token: description: 访问令牌 type: string customer: $ref: '#/components/schemas/DtoPersonalCustomerResponse' expires_in: description: 令牌有效期(秒) type: integer type: object DtoWechatPayH5Params: properties: scene_info: $ref: '#/components/schemas/DtoWechatH5SceneInfo' required: - scene_info type: object DtoWechatPayH5Response: properties: h5_url: description: 微信支付跳转URL type: string type: object DtoWechatPayJSAPIParams: properties: openid: description: 用户OpenID type: string required: - openid type: object DtoWechatPayJSAPIResponse: properties: pay_config: additionalProperties: {} description: JSSDK支付配置 nullable: true type: object prepay_id: description: 预支付交易会话标识 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 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 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/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/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/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: device_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: - 设备管理 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/DtoDeviceResponse' 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: 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/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-imei/{imei}: get: parameters: - description: 设备号(IMEI) in: path name: imei required: true schema: description: 设备号(IMEI) type: string responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceResponse' 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: post: description: |- 仅平台用户可操作。文件格式已从 CSV 升级为 Excel (.xlsx)。 ### 完整导入流程 1. **获取上传 URL**: 调用 `POST /api/admin/storage/upload-url` 2. **上传 Excel 文件**: 使用预签名 URL 上传文件到对象存储 3. **调用本接口**: 使用返回的 `file_key` 提交导入任务 ### Excel 文件格式 - 文件格式:仅支持 .xlsx (Excel 2007+) - 必须包含列(首行为表头): - `device_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: device_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}/cards/{card_id}/resume: post: parameters: - description: 企业ID in: path name: id required: true schema: description: 企业ID minimum: 0 type: integer - description: 卡ID in: path name: card_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/enterprises/{id}/cards/{card_id}/suspend: post: parameters: - description: 企业ID in: path name: id required: true schema: description: 企业ID minimum: 0 type: integer - description: 卡ID in: path name: card_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/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: device_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/iot-cards/by-iccid/{iccid}: 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/DtoIotCardDetailResponse' 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: 通过ICCID查询单卡详情 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` - 首行为表头(可选,但建议包含) - 列格式:设置为文本格式(避免长数字被转为科学记数法) 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: 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: device_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: 创建时间起始 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/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 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/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/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-allocations: 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: package_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/DtoShopPackageAllocationPageResult' 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/DtoCreateShopPackageAllocationRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopPackageAllocationResponse' 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-package-allocations/{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/DtoShopPackageAllocationResponse' 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/DtoUpdateShopPackageAllocationParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopPackageAllocationResponse' 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-package-allocations/{id}/cost-price: put: 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/DtoShopPackageAllocationResponse' 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-package-allocations/{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/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-allocations: 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: 状态 (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/DtoShopSeriesAllocationPageResult' 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/DtoCreateShopSeriesAllocationRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopSeriesAllocationResponse' 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-allocations/{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/DtoShopSeriesAllocationResponse' 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/DtoUpdateShopSeriesAllocationParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoShopSeriesAllocationResponse' 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-allocations/{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/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: device_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}/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/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/bind-wechat: post: description: 绑定微信账号到当前个人客户 requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoWechatOAuthRequest' 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/login: post: description: 使用手机号和验证码登录 requestBody: content: application/json: schema: $ref: '#/components/schemas/AppLoginRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/AppLoginResponse' 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/login/send-code: post: description: 向指定手机号发送登录验证码 requestBody: content: application/json: schema: $ref: '#/components/schemas/AppSendCodeRequest' responses: "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/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/wechat/auth: post: description: 使用微信授权码登录,自动创建或关联用户 requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoWechatOAuthRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatOAuthResponse' 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/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/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: - 支付回调 /api/h5/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: device_no schema: description: 设备号(模糊搜索) type: string 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: 企业设备列表(H5) tags: - H5-企业设备 /api/h5/devices/{device_id}: get: 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/DtoEnterpriseDeviceDetailResp' 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: 获取设备详情(H5) tags: - H5-企业设备 /api/h5/devices/{device_id}/cards/{card_id}/resume: post: parameters: - description: 设备ID in: path name: device_id required: true schema: description: 设备ID minimum: 0 type: integer - description: 卡ID in: path name: card_id required: true schema: description: 卡ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoDeviceCardOperationReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceCardOperationResp' 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: 复机卡(H5) tags: - H5-企业设备 /api/h5/devices/{device_id}/cards/{card_id}/suspend: post: parameters: - description: 设备ID in: path name: device_id required: true schema: description: 设备ID minimum: 0 type: integer - description: 卡ID in: path name: card_id required: true schema: description: 卡ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoDeviceCardOperationReq' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoDeviceCardOperationResp' 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: 停机卡(H5) tags: - H5-企业设备 /api/h5/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: 创建时间起始 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/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: - H5 订单 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: - H5 订单 /api/h5/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: - H5 订单 /api/h5/orders/{id}/wallet-pay: 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: - H5 订单 /api/h5/orders/{id}/wechat-pay/h5: 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/DtoWechatPayH5Params' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatPayH5Response' 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: 微信 H5 支付 tags: - H5 订单 /api/h5/orders/{id}/wechat-pay/jsapi: 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/DtoWechatPayJSAPIParams' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoWechatPayJSAPIResponse' 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: 微信 JSAPI 支付 tags: - H5 订单 /api/h5/wallets/recharge: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/DtoCreateRechargeRequest' responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRechargeResponse' 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: - H5 充值 /api/h5/wallets/recharge-check: get: parameters: - description: 资源类型 in: query name: resource_type schema: description: 资源类型 type: string - description: 资源ID in: query name: resource_id schema: description: 资源ID minimum: 0 type: integer responses: "200": content: application/json: schema: properties: code: description: 响应码 example: 0 type: integer data: $ref: '#/components/schemas/DtoRechargeCheckResponse' 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: - H5 充值 /api/h5/wallets/recharges: get: parameters: - description: 页码 in: query name: page schema: description: 页码 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 type: integer - description: 钱包ID in: query name: wallet_id schema: description: 钱包ID minimum: 0 nullable: true type: integer - description: 状态 in: query name: status schema: description: 状态 nullable: true type: integer - 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/DtoRechargeListResponse' 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: - H5 充值 /api/h5/wallets/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/DtoRechargeResponse' 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: - H5 充值 /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: - 系统