openapi: 3.2.0 info: title: 蝶变AI超分系统 Customer Controller API description: 蝶变AI超分系统后端API文档 - Spring Boot 2.5 version: 3.0.0 servers: - url: http://www.fly4k.com:80 description: Inferred Url tags: - name: Customer Controller extensions: x-order: '2147483647' paths: /api/user/balance: get: tags: - Customer Controller summary: getBalance operationId: getBalanceUsingGET responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_CustomerBalanceVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/bindSaler: post: tags: - Customer Controller summary: bindSaler operationId: bindSalerUsingPOST requestBody: content: application/json: schema: type: object additionalProperties: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/consumption: get: tags: - Customer Controller summary: getConsumption operationId: getConsumptionUsingGET parameters: - name: page in: query description: page required: false style: form schema: type: integer format: int32 - name: page_size in: query description: page_size required: false style: form schema: type: integer format: int32 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_PagedConsumptionVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/credit-packages: get: tags: - Customer Controller summary: listCreditPackages operationId: listCreditPackagesUsingGET responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_CreditPackageListVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/credit-rules: get: tags: - Customer Controller summary: getCreditRules operationId: getCreditRulesUsingGET responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_CreditRulesVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/download/create: post: tags: - Customer Controller summary: createDownload operationId: createDownloadUsingPOST requestBody: content: application/json: schema: type: object responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_JSONObject' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/download/get: post: tags: - Customer Controller summary: getDownload operationId: getDownloadUsingPOST requestBody: content: application/json: schema: type: object responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_JSONObject' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/enterprise-plans: get: tags: - Customer Controller summary: listEnterprisePlans operationId: listEnterprisePlansUsingGET responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_EnterprisePlanListVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/member-plans: get: tags: - Customer Controller summary: listMemberPlans operationId: listMemberPlansUsingGET responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_MemberPlanListVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/orders: get: tags: - Customer Controller summary: listTasks operationId: listTasksUsingGET_1 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_List_OrderListVO' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/password: put: tags: - Customer Controller summary: changePassword operationId: changePasswordUsingPUT requestBody: content: application/json: schema: $ref: '#/components/schemas/ChangePasswordAO' responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_Void' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/phone: put: tags: - Customer Controller summary: changePhone operationId: changePhoneUsingPUT requestBody: content: application/json: schema: $ref: '#/components/schemas/ChangePhoneAO' responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_CustomerVo' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/productList: get: tags: - Customer Controller summary: productList operationId: productListUsingGET responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_List_ProductVO' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/profile: put: tags: - Customer Controller summary: updateProfile operationId: updateProfileUsingPUT requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateProfileAO' responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_CustomerVo' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/stats: get: tags: - Customer Controller summary: getCustomerStats operationId: getCustomerStatsUsingGET responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_CustomerStatsVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/tasks: get: tags: - Customer Controller summary: listTasks operationId: listTasksUsingGET parameters: - name: status in: query description: status required: false style: form schema: type: string - name: page in: query description: page required: false style: form schema: type: integer format: int32 - name: page_size in: query description: page_size required: false style: form schema: type: integer format: int32 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_PagedTaskVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' post: tags: - Customer Controller summary: createTask operationId: createTaskUsingPOST requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTaskAO' responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_TaskCreateResultVo' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/tasks/appeal: post: tags: - Customer Controller summary: appealTask operationId: appealTaskUsingPOST requestBody: content: application/json: schema: type: object responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_Void' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/tasks/upload: post: tags: - Customer Controller summary: createTaskUpload operationId: createTaskUploadUsingPOST parameters: - name: output_resolution in: query description: output_resolution required: false style: form schema: type: string - name: remark in: query description: remark required: false style: form schema: type: string - name: use_enterprise_credits in: query description: use_enterprise_credits required: false style: form schema: type: boolean - name: model in: query description: model required: false style: form schema: type: integer format: int32 - name: scheme in: query description: scheme required: true style: form schema: type: integer format: int32 - name: hevc in: query description: hevc required: false style: form schema: type: integer format: int32 - name: express in: query description: express required: false style: form schema: type: boolean requestBody: content: application/json: schema: type: string format: binary application/octet-stream: schema: type: string format: binary responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_TaskUploadResultVo' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/tasks/uploadTest: post: tags: - Customer Controller summary: createTaskUploadTest operationId: createTaskUploadTestUsingPOST parameters: - name: output_resolution in: query description: output_resolution required: false style: form schema: type: string - name: remark in: query description: remark required: false style: form schema: type: string - name: use_enterprise_credits in: query description: use_enterprise_credits required: false style: form schema: type: boolean - name: workflow_path in: query description: workflow_path required: false style: form schema: type: string requestBody: content: application/json: schema: type: string format: binary application/octet-stream: schema: type: string format: binary responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_TaskUploadResultVo' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/tasks/{taskId}: get: tags: - Customer Controller summary: getTask operationId: getTaskUsingGET parameters: - name: taskId in: path description: taskId required: true style: simple schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_TaskDetailVo' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/tasks/{taskId}/cancel: post: tags: - Customer Controller summary: cancelTask operationId: cancelTaskUsingPOST parameters: - name: taskId in: path description: taskId required: true style: simple schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_Void' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' /api/user/tasks/{taskId}/retry: post: tags: - Customer Controller summary: retryTask operationId: retryTaskUsingPOST parameters: - name: taskId in: path description: taskId required: true style: simple schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponse_Void' '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found extensions: x-order: '2147483647' components: schemas: FpsRatesVo: title: FpsRatesVo type: object properties: high: $ref: '#/components/schemas/FpsRateTierHighVo' low: $ref: '#/components/schemas/FpsRateTierVo' medium: $ref: '#/components/schemas/FpsRateTierVo' ApiResponse_List_ProductVO: title: ApiResponse«List«ProductVO»» type: object properties: code: type: integer format: int32 data: type: array items: $ref: '#/components/schemas/ProductVO' msg: type: string CreateTaskAO: title: CreateTaskAO type: object properties: original_duration: type: number format: bigdecimal original_fps: type: number format: bigdecimal original_resolution: type: string output_resolution: type: string remark: type: string use_enterprise_credits: type: boolean video_name: type: string video_size: type: number format: bigdecimal ApiResponse_PagedConsumptionVo: title: ApiResponse«PagedConsumptionVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/PagedConsumptionVo' msg: type: string MemberPlan: title: MemberPlan type: object properties: billingCycle: type: string createdAt: type: string format: date-time credits: type: integer format: int32 description: type: string discountRate: type: number format: bigdecimal id: type: integer format: int64 isActive: type: boolean level: type: string maxFileSize: type: integer format: int32 name: type: string price: type: integer format: int32 priceYuan: type: number format: bigdecimal sortOrder: type: integer format: int32 PagedTaskVo: title: PagedTaskVo type: object properties: credit_rate: type: number format: float page: type: integer format: int32 page_size: type: integer format: int32 tasks: type: array items: $ref: '#/components/schemas/Task' total: type: integer format: int64 ApiResponse_CreditPackageListVo: title: ApiResponse«CreditPackageListVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/CreditPackageListVo' msg: type: string EnterprisePlan: title: EnterprisePlan type: object properties: annualCredits: type: integer format: int32 createdAt: type: string format: date-time description: type: string discountRate: type: number format: bigdecimal id: type: integer format: int64 isActive: type: boolean maxConcurrent: type: integer format: int32 maxFileSize: type: integer format: int32 maxMembers: type: integer format: int32 name: type: string planCode: type: string price: type: integer format: int32 priceYuan: type: number format: bigdecimal sortOrder: type: integer format: int32 Task: title: Task type: object properties: auditDesc: type: string auditOperator: type: string auditState: type: integer format: int32 auditTime: type: string format: date-time completedAt: type: string format: date-time costCredits: type: number format: bigdecimal costGiftCredits: type: number format: bigdecimal costMemberCredits: type: number format: bigdecimal costPurchasedCredits: type: number format: bigdecimal createdAt: type: string format: date-time discountRate: type: number format: bigdecimal downloadCount: type: integer format: int32 downloadRemaining: type: integer format: int32 enterpriseId: type: integer format: int64 errorMessage: type: string estimatedCompletionTime: type: string hevc: type: integer format: int32 id: type: integer format: int64 model: type: integer format: int32 originalDuration: type: number format: bigdecimal originalFps: type: number format: bigdecimal originalHeight: type: integer format: int32 originalResolution: type: string originalWidth: type: integer format: int32 outputResolution: type: string outputUrl: type: string priority: type: integer format: int32 prioritySeq: type: integer format: int32 progress: type: integer format: int32 remark: type: string scheme: type: integer format: int32 sourceUrl: type: string status: type: string updatedAt: type: string format: date-time useEnterpriseCredits: type: boolean userId: type: integer format: int64 videoName: type: string videoSize: type: number format: bigdecimal workDuration: type: number format: bigdecimal UpdateProfileAO: title: UpdateProfileAO type: object properties: nickname: type: string MemberPlanListVo: title: MemberPlanListVo type: object properties: data: type: array items: $ref: '#/components/schemas/MemberPlan' ApiResponse_MemberPlanListVo: title: ApiResponse«MemberPlanListVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/MemberPlanListVo' msg: type: string ApiResponse_TaskCreateResultVo: title: ApiResponse«TaskCreateResultVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/TaskCreateResultVo' msg: type: string EnterprisePlanListVo: title: EnterprisePlanListVo type: object properties: data: type: array items: $ref: '#/components/schemas/EnterprisePlan' ChangePhoneAO: title: ChangePhoneAO type: object properties: new_phone: type: string phone: type: string sms_code: type: string ApiResponse_JSONObject: title: ApiResponse«JSONObject» type: object properties: code: type: integer format: int32 data: type: object additionalProperties: type: object msg: type: string ApiResponse: title: ApiResponse type: object properties: code: type: integer format: int32 data: type: object msg: type: string CreditPackage: title: CreditPackage type: object properties: bonusCredits: type: integer format: int32 createdAt: type: string format: date-time credits: type: integer format: int32 description: type: string discountRate: type: number format: bigdecimal id: type: integer format: int64 isActive: type: boolean name: type: string price: type: integer format: int32 priceYuan: type: number format: bigdecimal sortOrder: type: integer format: int32 totalCredits: type: integer format: int32 ApiResponse_PagedTaskVo: title: ApiResponse«PagedTaskVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/PagedTaskVo' msg: type: string ApiResponse_CreditRulesVo: title: ApiResponse«CreditRulesVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/CreditRulesVo' msg: type: string PagedConsumptionVo: title: PagedConsumptionVo type: object properties: credit_rate: type: number format: float data: type: array items: $ref: '#/components/schemas/Consumption' page: type: integer format: int32 page_size: type: integer format: int32 total: type: integer format: int64 ApiResponse_CustomerStatsVo: title: ApiResponse«CustomerStatsVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/CustomerStatsVo' msg: type: string ProductVO: title: ProductVO type: object properties: creditDescription: type: string id: type: integer format: int64 name: type: string price: type: number format: bigdecimal tips1: type: string tips2: type: string tips3: type: string tips4: type: string tips5: type: string type: type: integer format: int32 ApiResponse_TaskDetailVo: title: ApiResponse«TaskDetailVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/TaskDetailVo' msg: type: string EnterpriseBriefVo: title: EnterpriseBriefVo type: object properties: annual_credits_remaining: type: number format: bigdecimal id: type: integer format: int64 member_level: type: string name: type: string plan: type: string purchased_credits: type: number format: bigdecimal role: type: string ApiResponse_EnterprisePlanListVo: title: ApiResponse«EnterprisePlanListVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/EnterprisePlanListVo' msg: type: string ApiResponse_Void: title: ApiResponse«Void» type: object properties: code: type: integer format: int32 msg: type: string CustomerVo: title: CustomerVo type: object properties: balance_credits: type: number format: bigdecimal balance_gift_credits: type: number format: bigdecimal balance_member_credits: type: number format: bigdecimal balance_purchased_credits: type: number format: bigdecimal company: type: string created_at: type: string display_name: type: string enterprise_id: type: integer format: int64 enterprise_member_level: type: string enterprise_role: type: string id: type: integer format: int64 member_billing_cycle: type: string member_expire: type: string member_level: type: string monthly_task_count: type: integer format: int32 nickname: type: string phone: type: string role: type: string sales_person: type: string status: type: string trial_gift_days: type: integer format: int32 username: type: string TaskUploadResultVo: title: TaskUploadResultVo type: object properties: base_credits: type: number format: bigdecimal cost_credits: type: number format: bigdecimal discount_rate: type: number format: bigdecimal file_size_mb: type: string id: type: integer format: int64 original_duration: type: number format: double original_fps: type: number format: double original_resolution: type: string priority: type: integer format: int32 real_4k: type: boolean saved_file: type: string status: type: string user_id: type: integer format: int64 video_name: type: string work_duration: type: number format: bigdecimal CreditPackageListVo: title: CreditPackageListVo type: object properties: credit_rate: type: number format: float data: type: array items: $ref: '#/components/schemas/CreditPackage' ApiResponse_TaskUploadResultVo: title: ApiResponse«TaskUploadResultVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/TaskUploadResultVo' msg: type: string TaskCreateResultVo: title: TaskCreateResultVo type: object properties: base_credits: type: number format: bigdecimal cost_credits: type: number format: bigdecimal discount_rate: type: number format: bigdecimal id: type: integer format: int64 priority: type: integer format: int32 status: type: string user_id: type: integer format: int64 video_name: type: string work_duration: type: number format: bigdecimal ApiResponse_List_OrderListVO: title: ApiResponse«List«OrderListVO»» type: object properties: code: type: integer format: int32 data: type: array items: $ref: '#/components/schemas/OrderListVO' msg: type: string OrderListVO: title: OrderListVO type: object properties: amount: type: number format: bigdecimal crystals: type: integer format: int32 packageName: type: string paymentMethod: type: string time: type: string format: date-time Consumption: title: Consumption type: object properties: createdAt: type: string format: date-time creditSource: type: string credits: type: number format: bigdecimal description: type: string enterpriseId: type: integer format: int64 id: type: integer format: int64 relatedId: type: string type: type: string userId: type: integer format: int64 FpsRateTierHighVo: title: FpsRateTierHighVo type: object properties: min_fps: type: integer format: int32 rate: type: number format: bigdecimal ChangePasswordAO: title: ChangePasswordAO type: object properties: new_password: type: string old_password: type: string CreditRulesVo: title: CreditRulesVo type: object properties: credit_rate: type: number format: float fps_rates: $ref: '#/components/schemas/FpsRatesVo' ApiResponse_CustomerVo: title: ApiResponse«CustomerVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/CustomerVo' msg: type: string CustomerBalanceVo: title: CustomerBalanceVo type: object properties: balance_credits: type: number format: bigdecimal balance_gift_credits: type: number format: bigdecimal balance_member_credits: type: number format: bigdecimal balance_purchased_credits: type: number format: bigdecimal balance_rmb: type: number format: bigdecimal credit_rate: type: number format: float discount_rate: type: number format: bigdecimal enterprise: $ref: '#/components/schemas/EnterpriseBriefVo' member_billing_cycle: type: string member_expire: type: string member_level: type: string member_level_label: type: string monthly_task_count: type: integer format: int32 trial_gift_days: type: integer format: int32 ApiResponse_CustomerBalanceVo: title: ApiResponse«CustomerBalanceVo» type: object properties: code: type: integer format: int32 data: $ref: '#/components/schemas/CustomerBalanceVo' msg: type: string FpsRateTierVo: title: FpsRateTierVo type: object properties: max_fps: type: integer format: int32 rate: type: number format: bigdecimal TaskDetailVo: title: TaskDetailVo type: object properties: cost_credits: type: number format: bigdecimal cost_rmb: type: number format: bigdecimal created_at: type: string credit_rate: type: number format: float id: type: integer format: int64 progress: type: integer format: int32 status: type: string video_name: type: string work_duration: type: number format: bigdecimal CustomerStatsVo: title: CustomerStatsVo type: object properties: completed_tasks: type: integer format: int64 failed_tasks: type: integer format: int64 processing_tasks: type: integer format: int64 total_credits_used: type: integer format: int32 total_credits_used_rmb: type: integer format: int32 total_tasks: type: integer format: int64