basePath: / definitions: activity.CardTypeConfig: properties: code: type: string image_url: type: string name: type: string quantity: type: integer type: object activity.MatchingCard: properties: id: type: string type: type: string type: object activity.MatchingGame: properties: activity_id: type: integer board: items: $ref: '#/definitions/activity.MatchingCard' type: array card_configs: items: $ref: '#/definitions/activity.CardTypeConfig' type: array card_id_counter: type: integer created_at: description: 游戏创建时间,用于自动开奖超时判断 type: string deck: items: $ref: '#/definitions/activity.MatchingCard' type: array issue_id: type: integer last_activity: type: string max_possible_pairs: type: integer nonce: type: integer order_id: type: integer position: description: 用户选择的类型,用于服务端验证 type: string server_seed: items: type: integer type: array server_seed_hash: type: string total_pairs: type: integer user_id: type: integer type: object admin.GrantRewardRequest: properties: activity_id: description: 活动ID(可选) type: integer address_id: description: 收货地址ID(可选,实物商品需要) type: integer points_amount: description: 消耗积分 type: integer product_id: description: 商品ID type: integer quantity: description: 发放数量 minimum: 1 type: integer remark: description: 备注 type: string reward_id: description: 奖励配置ID(可选) type: integer required: - product_id type: object admin.GrantRewardResponse: properties: inventory_ids: items: type: integer type: array message: type: string order_id: type: integer success: type: boolean type: object admin.ShippingOrderGroup: properties: address_id: description: 地址ID type: integer address_info: description: 地址信息 type: string batch_no: description: 批次号 type: string count: description: 商品数量 type: integer created_at: type: string express_code: description: 快递公司编码 type: string express_no: description: 运单号 type: string group_key: description: 分组键(用于批量操作) type: string inventory_ids: description: 资产ID列表 items: type: integer type: array product_ids: description: 商品ID列表 items: type: integer type: array products: description: 商品详情列表 items: properties: id: type: integer image: type: string name: type: string price: type: integer type: object type: array received_at: type: string record_ids: description: 发货记录ID列表 items: type: integer type: array shipped_at: type: string status: description: 状态(取最大值) type: integer total_price: description: 总价格 type: integer user_id: description: 用户ID type: integer user_nickname: description: 用户昵称 type: string type: object admin.UserProfileResponse: properties: avatar: type: string channel_id: type: integer created_at: type: string current_assets: description: 当前资产快照 properties: coupon_count: description: 持有优惠券数 type: integer coupon_value: description: 持有优惠券价值 type: integer inventory_count: description: 持有商品数 type: integer inventory_value: description: 持有商品价值 type: integer item_card_count: description: 持有道具卡数 type: integer item_card_value: description: 持有道具卡价值 type: integer points_balance: description: 积分余额 type: integer profit_loss_ratio: description: 累计盈亏比 type: number total_asset_value: description: 总资产估值 type: integer type: object douyin_id: type: string id: description: 基本信息 type: integer invite_code: type: string invite_count: description: 邀请统计 type: integer inviter_id: type: integer lifetime_stats: description: 生命周期财务指标 properties: net_cash_cost: description: 净现金支出 type: integer order_count: description: 订单数 type: integer total_paid: description: 累计支付 type: integer total_refunded: description: 累计退款 type: integer type: object mobile: type: string nickname: type: string type: object admin.activityDetailResponse: properties: activity_category_id: type: integer allow_coupons: type: boolean allow_item_cards: type: boolean banner: type: string created_at: type: string draw_mode: type: string end_time: type: string gameplay_intro: type: string id: type: integer image: type: string interval_minutes: type: integer is_boss: type: integer last_settled_at: type: string min_participants: type: integer name: type: string play_type: type: string price_draw: type: integer refund_coupon_id: type: integer scheduled_time: type: string start_time: type: string status: type: integer updated_at: type: string type: object admin.activityItem: properties: activity_category_id: type: integer banner: type: string category_name: type: string id: type: integer image: type: string is_boss: type: integer name: type: string price_draw: type: integer status: type: integer type: object admin.activitysvcIssueData: properties: id: type: integer issue_number: type: string prize_count: type: integer sort: type: integer status: type: integer type: object admin.addCouponRequest: properties: coupon_id: type: integer required: - coupon_id type: object admin.addCouponResponse: properties: success: type: boolean type: object admin.addPointsRequest: properties: kind: type: string points: description: 正数=增加,负数=扣减 type: integer remark: type: string valid_days: type: integer type: object admin.addPointsResponse: properties: success: type: boolean type: object admin.adminUserCouponItem: properties: balance_amount: type: integer coupon_id: type: integer discount_type: type: integer discount_value: type: integer id: type: integer min_spend: type: integer name: type: string scope_type: type: integer status: type: integer used_at: type: string used_order_id: type: integer valid_end: type: string valid_start: type: string type: object admin.adminUserItem: properties: avatar: type: string channel_code: type: string channel_name: type: string coupons_count: type: integer created_at: type: string douyin_id: type: string id: type: integer invite_code: type: string inviter_id: type: integer item_cards_count: type: integer nickname: type: string points_balance: type: integer seven_day_consume: type: integer today_consume: type: integer type: object admin.assignItemCardRequest: properties: card_id: type: integer quantity: type: integer required: - card_id type: object admin.bannerItem: properties: id: type: integer image_url: type: string link_url: type: string sort: type: integer status: type: integer title: type: string type: object admin.batchModifyRewardItem: properties: reward_id: type: integer weight: minimum: 0 type: number required: - reward_id type: object admin.batchModifyRewardsRequest: properties: rewards: items: $ref: '#/definitions/admin.batchModifyRewardItem' type: array required: - rewards type: object admin.batchUpdateProductsRequest: properties: ids: items: type: integer type: array status: type: integer stock: type: integer required: - ids type: object admin.batchUpdateProductsResponse: properties: message: type: string updated_count: type: integer type: object admin.categoryItem: properties: id: type: integer name: type: string type: object admin.checkActivityGamePassesResponse: properties: activity_id: type: integer can_delete: type: boolean message: type: string total_remaining: type: integer user_count: type: integer type: object admin.copyActivityResponse: properties: new_activity_id: type: integer status: type: string type: object admin.createActivityRequest: properties: activity_category_id: type: integer allow_coupons: type: integer allow_item_cards: type: integer banner: type: string draw_mode: type: string end_time: type: string gameplay_intro: type: string image: type: string interval_minutes: type: integer is_boss: type: integer min_participants: type: integer name: type: string play_type: type: string price_draw: type: integer refund_coupon_amount: type: number refund_coupon_id: type: integer refund_coupon_type: type: string scheduled_delay_minutes: type: integer scheduled_time: type: string start_time: type: string status: type: integer required: - activity_category_id - name type: object admin.createBannerRequest: properties: image_url: type: string link_url: type: string sort: type: integer status: type: integer title: type: string required: - image_url - title type: object admin.createBannerResponse: properties: id: type: integer message: type: string type: object admin.createGamePassPackageRequest: properties: activity_id: type: integer name: type: string original_price: type: integer pass_count: minimum: 1 type: integer price: minimum: 0 type: integer sort_order: type: integer status: description: 1=上架 2=下架 type: integer valid_days: type: integer required: - name - pass_count - price type: object admin.createGamePassPackageResponse: properties: id: type: integer message: type: string type: object admin.createIssueRequest: properties: issue_number: type: string sort: type: integer status: type: integer required: - issue_number type: object admin.createItemCardRequest: properties: activity_category_id: type: integer activity_id: type: integer boost_rate_x1000: type: integer card_type: type: integer effect_type: type: integer issue_id: type: integer max_effect_value_x1000: type: integer name: type: string price: type: integer remark: type: string reward_multiplier_x1000: type: integer scope_type: type: integer stacking_strategy: type: integer status: type: integer valid_end_unix: type: integer valid_start_unix: type: integer required: - card_type - effect_type - name - price - scope_type type: object admin.createItemCardResponse: properties: id: type: integer message: type: string type: object admin.createProductCategoryRequest: properties: name: type: string parent_id: type: integer status: type: integer required: - name type: object admin.createProductCategoryResponse: properties: id: type: integer message: type: string type: object admin.createProductRequest: properties: category_id: type: integer description: type: string images_json: type: string name: type: string price: type: integer status: type: integer stock: type: integer required: - category_id - name - price - stock type: object admin.createProductResponse: properties: id: type: integer message: type: string type: object admin.createRewardsRequest: properties: rewards: items: $ref: '#/definitions/admin.rewardItem' type: array required: - rewards type: object admin.createUserRequest: properties: avatar: type: string mobile: type: string nickname: type: string password: type: string username: type: string required: - password - username type: object admin.createUserResponse: properties: message: type: string success: type: boolean type: object admin.gamePassItem: properties: activity_id: type: integer activity_name: type: string created_at: type: string expired_at: type: string id: type: integer remaining: type: integer remark: type: string source: type: string total_granted: type: integer total_used: type: integer user_id: type: integer user_name: type: string type: object admin.gamePassPackageItem: properties: activity_id: type: integer activity_name: type: string created_at: type: string id: type: integer name: type: string original_price: type: integer pass_count: type: integer price: type: integer sort_order: type: integer status: type: integer valid_days: type: integer type: object admin.getOrderSnapshotsResponse: properties: after_snapshot: $ref: '#/definitions/snapshot.UserStateSnapshot' before_snapshot: $ref: '#/definitions/snapshot.UserStateSnapshot' diff: $ref: '#/definitions/snapshot.SnapshotDiff' has_snapshots: type: boolean order: properties: actual_amount: type: integer id: type: integer order_no: type: string paid_at: type: string status: type: integer user_id: type: integer type: object type: object admin.getUserGamePassesResponse: properties: activity_passes: items: $ref: '#/definitions/admin.gamePassItem' type: array global_remaining: type: integer total_remaining: type: integer user_id: type: integer type: object admin.grantGamePassRequest: properties: activity_id: description: 可选,NULL表示全局通用 type: integer count: minimum: 1 type: integer remark: type: string user_id: type: integer valid_days: description: 可选,NULL表示永久有效 type: integer required: - count - user_id type: object admin.grantGamePassResponse: properties: id: type: integer message: type: string type: object admin.issueUserTokenResponse: properties: expires_in: type: integer token: type: string type: object admin.itemCardListItem: properties: activity_category_id: type: integer activity_id: type: integer boost_rate_x1000: type: integer card_type: type: integer created_at: type: string effect_type: type: integer id: type: integer issue_id: type: integer max_effect_value_x1000: type: integer name: type: string price: type: integer remark: type: string reward_multiplier_x1000: type: integer scope_type: type: integer stacking_strategy: type: integer status: type: integer updated_at: type: string valid_end: type: string valid_start: type: string type: object admin.listActivitiesResponse: properties: list: items: $ref: '#/definitions/admin.activityItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listBannersResponse: properties: list: items: $ref: '#/definitions/admin.bannerItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listCategoriesResponse: properties: list: items: $ref: '#/definitions/admin.categoryItem' type: array type: object admin.listCouponsResponse: properties: list: items: $ref: '#/definitions/admin.adminUserCouponItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listGamePassPackagesResponse: properties: list: items: $ref: '#/definitions/admin.gamePassPackageItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listGamePassesResponse: properties: list: items: $ref: '#/definitions/admin.gamePassItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listInventoryResponse: properties: list: items: $ref: '#/definitions/user.InventoryWithProduct' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listInvitesResponse: properties: list: items: $ref: '#/definitions/admin.adminUserItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listIssuesResponse: properties: list: items: $ref: '#/definitions/admin.activitysvcIssueData' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listItemCardsResponse: properties: list: items: $ref: '#/definitions/admin.itemCardListItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listMatchingCardTypesResponse: properties: list: items: $ref: '#/definitions/admin.matchingCardTypeResponse' type: array total: type: integer type: object admin.listOrdersResponse: properties: list: items: $ref: '#/definitions/user.OrderWithItems' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listPointsResponse: properties: list: items: $ref: '#/definitions/model.UserPointsLedger' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listProductCategoriesResponse: properties: list: items: $ref: '#/definitions/admin.productCategoryListItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listProductsResponse: properties: list: items: $ref: '#/definitions/admin.productItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listRewardsResponse: properties: list: items: $ref: '#/definitions/admin.rewardItem' type: array type: object admin.listShippingOrdersResponse: properties: list: items: $ref: '#/definitions/admin.ShippingOrderGroup' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listUserItemCardsResponse: properties: list: items: $ref: '#/definitions/user.ItemCardWithTemplate' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.listUsersResponse: properties: list: items: $ref: '#/definitions/admin.adminUserItem' type: array page: type: integer page_size: type: integer total: type: integer type: object admin.loginRequest: properties: password: description: 密码 (MD5加密后的密码) type: string username: description: 用户名 type: string required: - password - username type: object admin.loginResponse: properties: is_super: description: 是否是超级管理员(1:是 0:否) type: integer token: description: 登录成功后颁发的 Token type: string type: object admin.matchingCardTypeRequest: properties: code: type: string image_url: type: string name: type: string quantity: type: integer sort: type: integer status: type: integer required: - code - name type: object admin.matchingCardTypeResponse: properties: code: type: string created_at: type: string id: type: integer image_url: type: string name: type: string quantity: type: integer sort: type: integer status: type: integer type: object admin.modifyActivityRequest: properties: activity_category_id: type: integer allow_coupons: type: integer allow_item_cards: type: integer banner: type: string draw_mode: type: string end_time: type: string force: type: boolean gameplay_intro: type: string image: type: string interval_minutes: type: integer is_boss: type: integer min_participants: type: integer name: type: string play_type: type: string price_draw: type: integer refund_coupon_amount: type: number refund_coupon_id: type: integer refund_coupon_type: type: string scheduled_delay_minutes: type: integer scheduled_time: type: string start_time: type: string status: type: integer type: object admin.modifyBannerRequest: properties: image_url: type: string link_url: type: string sort: type: integer status: type: integer title: type: string type: object admin.modifyGamePassPackageRequest: properties: activity_id: type: integer name: type: string original_price: type: integer pass_count: type: integer price: type: integer sort_order: type: integer status: type: integer valid_days: type: integer type: object admin.modifyIssueRequest: properties: issue_number: type: string sort: type: integer status: type: integer type: object admin.modifyItemCardRequest: properties: activity_category_id: type: integer activity_id: type: integer boost_rate_x1000: type: integer card_type: type: integer effect_type: type: integer issue_id: type: integer max_effect_value_x1000: type: integer name: type: string price: type: integer remark: type: string reward_multiplier_x1000: type: integer scope_type: type: integer stacking_strategy: type: integer status: type: integer valid_end_unix: type: integer valid_start_unix: type: integer type: object admin.modifyProductCategoryRequest: properties: name: type: string parent_id: type: integer status: type: integer type: object admin.modifyProductRequest: properties: category_id: type: integer description: type: string images_json: type: string name: type: string price: type: integer status: type: integer stock: type: integer type: object admin.modifyRewardRequest: properties: is_boss: type: integer level: type: integer min_score: type: integer original_qty: type: integer product_id: type: integer quantity: type: integer sort: type: integer weight: type: number type: object admin.pcSimpleMessage: properties: message: type: string type: object admin.pointsBalanceResponse: properties: balance: type: integer type: object admin.productCategoryListItem: properties: id: type: integer name: type: string parent_id: type: integer status: type: integer type: object admin.productItem: properties: category_id: type: integer description: type: string id: type: integer images_json: type: string name: type: string price: type: integer sales: type: integer status: type: integer stock: type: integer type: object admin.refreshResponse: properties: expires_in: type: integer token: type: string type: object admin.rewardItem: properties: id: type: integer is_boss: type: integer level: type: integer min_score: type: integer original_qty: type: integer product_id: type: integer product_image_url: type: string product_name: type: string product_price: type: number quantity: type: integer sort: type: integer weight: type: number required: - level - original_qty - quantity - weight type: object admin.roleItem: properties: createTime: type: string description: type: string enabled: type: boolean roleCode: type: string roleId: type: integer roleName: type: string type: object admin.roleListResponse: properties: current: type: integer records: items: $ref: '#/definitions/admin.roleItem' type: array size: type: integer total: type: integer type: object admin.rollbackOrderRequest: properties: confirm: type: boolean reason: type: string type: object admin.rollbackOrderResponse: properties: coupons_restored: type: integer error_msg: type: string inventory_revoked: type: integer item_cards_restored: type: integer points_restored: type: integer refund_amount: type: integer rollback_log_id: type: integer success: type: boolean type: object admin.simpleMessage: properties: message: type: string type: object admin.simpleMessageResponse: properties: message: type: string type: object admin.updateShippingRequest: properties: express_code: description: 快递公司编码 type: string express_no: description: 运单号 type: string record_ids: description: 发货记录ID列表 items: type: integer type: array status: description: 状态 type: integer type: object admin.updateShippingResponse: properties: success: type: boolean updated_count: type: integer type: object admin.userListItem: properties: avatar: type: string createBy: type: string createTime: type: string id: type: integer nickName: type: string status: type: string updateBy: type: string updateTime: type: string userEmail: type: string userGender: type: string userName: type: string userPhone: type: string userRoles: items: type: string type: array type: object admin.userListResponse: properties: current: type: integer records: items: $ref: '#/definitions/admin.userListItem' type: array size: type: integer total: type: integer type: object app.MatchingRewardInfo: properties: level: type: integer name: type: string product_image: description: 商品图片 type: string product_name: description: 商品原始名称 type: string reward_id: type: integer type: object app.activityDetailResponse: properties: activity_category_id: type: integer allow_coupons: type: boolean allow_item_cards: type: boolean banner: type: string created_at: type: string draw_mode: type: string end_time: type: string gameplay_intro: type: string id: type: integer image: type: string interval_minutes: type: integer is_boss: type: integer last_settled_at: type: string min_participants: type: integer name: type: string play_type: type: string price_draw: type: integer refund_coupon_id: type: integer scheduled_time: type: string start_time: type: string status: type: integer updated_at: type: string type: object app.activityItem: properties: activity_category_id: type: integer banner: type: string category_name: type: string id: type: integer image: type: string is_boss: type: integer name: type: string price_draw: type: integer status: type: integer type: object app.addAddressRequest: properties: address: type: string city: type: string district: type: string is_default: type: boolean mobile: type: string name: type: string province: type: string type: object app.addAddressResponse: properties: id: type: integer type: object app.addressShareCreateRequest: properties: expires_at: type: string expires_in_minutes: type: integer inventory_id: type: integer type: object app.addressShareCreateResponse: properties: expires_at: type: string share_token: type: string share_url: type: string short_link: type: string type: object app.addressShareRevokeRequest: properties: inventory_id: type: integer type: object app.addressShareSubmitRequest: properties: address: type: string city: type: string district: type: string mobile: type: string name: type: string province: type: string share_token: type: string type: object app.addressShareSubmitResponse: properties: address_id: type: integer type: object app.appBannerItem: properties: id: type: integer image_url: type: string link_url: type: string sort: type: integer title: type: string type: object app.appCategoryItem: properties: id: type: integer name: type: string type: object app.appNoticeItem: properties: content: type: string type: object app.bindDouyinPhoneRequest: properties: code: type: string type: object app.bindDouyinPhoneResponse: properties: mobile: type: string success: type: boolean type: object app.bindPhoneRequest: properties: code: type: string type: object app.bindPhoneResponse: properties: mobile: type: string success: type: boolean type: object app.cancelOrderRequest: properties: reason: type: string type: object app.cancelOrderResponse: properties: cancelled_at: type: string order_id: type: integer order_no: type: string status: type: integer type: object app.cancelShippingRequest: properties: batch_no: description: 批次号(与inventory_id二选一,取消整批) type: string inventory_id: description: 单个资产ID(与batch_no二选一) type: integer type: object app.cancelShippingResponse: properties: cancelled_count: description: 成功取消的数量 type: integer type: object app.couponDetail: properties: amount: description: 原始面值 type: integer id: type: integer name: type: string remaining: description: 剩余额度 type: integer status: type: integer use_count: description: 使用次数 type: integer used_amount: description: 累计已使用金额 type: integer valid_end: type: string valid_start: type: string type: object app.couponItem: properties: amount: type: integer id: type: integer name: type: string remaining: type: integer rules: type: string status: type: integer used_at: description: 使用时间(已使用时返回) type: string valid_end: type: string valid_start: type: string type: object app.couponStatsResponse: properties: expired_count: description: 已过期优惠券数量 type: integer total_remaining: description: 可用优惠券总余额(分) type: integer total_saved: description: 累计节省金额(分) type: integer unused_count: description: 可用优惠券数量 type: integer used_count: description: 已使用优惠券数量 type: integer type: object app.couponUsageItem: properties: activity_name: description: 活动名称 type: string amount: description: 本次使用金额(正数) type: integer created_at: type: string id: type: integer order_no: description: 订单号 type: string type: object app.douyinLoginRequest: properties: anonymous_code: type: string channel_code: type: string code: type: string invite_code: type: string type: object app.douyinLoginResponse: properties: avatar: type: string invite_code: type: string nickname: type: string token: type: string user_id: type: integer type: object app.drawLogGroup: properties: level: type: integer level_name: type: string list: items: $ref: '#/definitions/app.drawLogItem' type: array type: object app.drawLogItem: properties: avatar: type: string created_at: type: string current_level: type: integer id: type: integer is_winner: type: integer issue_id: type: integer level: type: integer order_id: type: integer reward_id: type: integer reward_image: type: string reward_name: type: string user_id: type: integer user_name: type: string type: object app.getAppProductDetailResponse: properties: album: items: type: string type: array description: type: string id: type: integer name: type: string points_required: type: integer price: type: integer recommendations: items: $ref: '#/definitions/app.listAppProductsItem' type: array sales: type: integer service: items: type: string type: array stock: type: integer type: object app.getGamePassesResponse: properties: global_remaining: description: 全局通用次数 type: integer passes: items: $ref: '#/definitions/app.userGamePassItem' type: array total_remaining: type: integer type: object app.getPackagesResponse: properties: packages: items: $ref: '#/definitions/app.packageItem' type: array type: object app.inviteUserItem: properties: avatar: type: string id: type: integer invite_code: type: string nickname: type: string type: object app.issueItem: properties: id: type: integer issue_number: type: string remaining_prize_quantity: type: integer sort: type: integer status: type: integer total_prize_quantity: type: integer type: object app.joinLotteryRequest: properties: activity_id: type: integer channel: type: string count: type: integer coupon_id: type: integer issue_id: type: integer item_card_id: type: integer slot_index: items: type: integer type: array use_game_pass: type: boolean use_points: type: integer type: object app.joinLotteryResponse: properties: actual_amount: type: integer draw_mode: type: string join_id: type: string order_no: type: string queued: type: boolean reward_id: type: integer reward_name: type: string status: type: integer type: object app.jsapiPreorderRequest: properties: openid: type: string order_no: type: string type: object app.jsapiPreorderResponse: properties: nonceStr: type: string package: type: string paySign: type: string signType: type: string timeStamp: type: string type: object app.listActivitiesResponse: properties: list: items: $ref: '#/definitions/app.activityItem' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listAddressesResponse: properties: list: items: $ref: '#/definitions/model.UserAddresses' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listAppBannersResponse: properties: list: items: $ref: '#/definitions/app.appBannerItem' type: array type: object app.listAppCategoriesResponse: properties: list: items: $ref: '#/definitions/app.appCategoryItem' type: array type: object app.listAppNoticesResponse: properties: list: items: $ref: '#/definitions/app.appNoticeItem' type: array type: object app.listAppProductsItem: properties: id: type: integer in_stock: type: boolean main_image: type: string name: type: string points_required: type: integer price: type: integer sales: type: integer type: object app.listAppProductsResponse: properties: currentPage: type: integer list: items: $ref: '#/definitions/app.listAppProductsItem' type: array pageSize: type: integer total: type: integer type: object app.listCouponUsageResponse: properties: coupon: $ref: '#/definitions/app.couponDetail' page: type: integer page_size: type: integer records: items: $ref: '#/definitions/app.couponUsageItem' type: array total: type: integer type: object app.listCouponsResponse: properties: list: items: $ref: '#/definitions/app.couponItem' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listDrawLogsByLevelResponse: properties: groups: items: $ref: '#/definitions/app.drawLogGroup' type: array type: object app.listDrawLogsResponse: properties: list: items: $ref: '#/definitions/app.drawLogItem' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listInventoryResponse: properties: list: items: $ref: '#/definitions/user.AggregatedInventory' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listInvitesResponse: properties: list: items: $ref: '#/definitions/app.inviteUserItem' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listIssueChoicesResponse: properties: available: items: type: integer type: array claimed: items: type: integer type: array total_slots: type: integer type: object app.listIssuesResponse: properties: list: items: $ref: '#/definitions/app.issueItem' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listOrdersResponse: properties: list: items: $ref: '#/definitions/user.OrderWithItems' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listPointsResponse: properties: list: items: $ref: '#/definitions/model.UserPointsLedger' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listRewardsResponse: properties: list: items: $ref: '#/definitions/app.rewardItem' type: array play_type: description: 活动类型 type: string type: object app.listShipmentsResponse: properties: list: items: $ref: '#/definitions/user.ShipmentGroup' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listStoreItem: properties: discount_type: type: integer discount_value: type: integer id: type: integer in_stock: type: boolean kind: type: string main_image: type: string min_spend: type: integer name: type: string points_required: type: integer price: type: integer status: type: integer supported: type: boolean type: object app.listStoreItemsResponse: properties: list: items: $ref: '#/definitions/app.listStoreItem' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listUserItemCardUsesResponse: properties: list: items: $ref: '#/definitions/model.ActivityDrawEffects' type: array page: type: integer page_size: type: integer total: type: integer type: object app.listUserItemCardsResponse: properties: list: items: $ref: '#/definitions/user.ItemCardWithTemplate' type: array page: type: integer page_size: type: integer total: type: integer type: object app.matchingGameCardsResponse: properties: all_cards: items: $ref: '#/definitions/activity.MatchingCard' type: array game_id: type: string type: object app.matchingGameCheckRequest: properties: game_id: type: string total_pairs: description: 客户端上报的消除总对数 type: integer required: - game_id type: object app.matchingGameCheckResponse: properties: finished: type: boolean game_id: type: string reward: $ref: '#/definitions/app.MatchingRewardInfo' total_pairs: type: integer type: object app.matchingGamePreOrderRequest: properties: coupon_id: type: integer issue_id: type: integer item_card_id: type: integer position: type: string use_game_pass: description: 新增:是否使用次数卡 type: boolean type: object app.matchingGamePreOrderResponse: properties: game_id: type: string order_no: type: string pay_status: description: 1=Pending, 2=Paid type: integer server_seed_hash: type: string type: object app.modifyUserRequest: properties: avatar: type: string nickname: type: string type: object app.modifyUserResponse: properties: user: $ref: '#/definitions/app.userItem' type: object app.okDeleteResponse: properties: ok: type: boolean type: object app.okResponse: properties: ok: type: boolean type: object app.orderResultItem: properties: draw_index: type: integer image: type: string level: type: integer reward_id: type: integer reward_name: type: string type: object app.orderResultResponse: properties: completed: type: integer count: type: integer draw_mode: type: string next_draw_time: type: string nextPollMs: type: integer receipt: additionalProperties: {} type: object results: items: $ref: '#/definitions/app.orderResultItem' type: array seed_hex: type: string status: type: string type: object app.packageItem: properties: activity_id: type: integer id: type: integer name: type: string original_price: type: integer pass_count: type: integer price: type: integer valid_days: type: integer type: object app.pointsBalanceResponse: properties: balance: type: integer type: object app.purchasePackageRequest: properties: count: description: 购买数量 type: integer package_id: type: integer required: - package_id type: object app.purchasePackageResponse: properties: message: type: string order_no: type: string type: object app.redeemCouponRequest: properties: coupon_id: type: integer type: object app.redeemCouponResponse: properties: coupon_id: type: integer ledger_id: type: integer message: type: string success: type: boolean type: object app.redeemInventoryRequest: properties: inventory_ids: items: type: integer type: array type: object app.redeemInventoryResponse: properties: points: type: integer type: object app.redeemItemCardRequest: properties: card_id: type: integer quantity: type: integer type: object app.redeemItemCardResponse: properties: card_id: type: integer ledger_id: type: integer message: type: string success: type: boolean type: object app.redeemProductRequest: properties: product_id: type: integer quantity: type: integer type: object app.redeemProductResponse: properties: inventory_ids: items: type: integer type: array ledger_id: type: integer message: type: string order_id: type: integer success: type: boolean type: object app.requestShippingBatchRequest: properties: address_id: type: integer inventory_ids: items: type: integer type: array type: object app.requestShippingBatchResponse: properties: address_id: type: integer batch_no: type: string failed: items: additionalProperties: {} type: object type: array skipped: items: additionalProperties: {} type: object type: array success_ids: items: type: integer type: array type: object app.requestShippingRequest: properties: inventory_id: type: integer type: object app.requestShippingResponse: properties: address_id: type: integer type: object app.resultResponse: properties: receipt: additionalProperties: {} type: object result: additionalProperties: {} type: object results: items: additionalProperties: {} type: object type: array type: object app.rewardItem: properties: id: type: integer is_boss: type: integer level: type: integer min_score: type: integer name: type: string original_qty: type: integer prize_level: description: 兼容部分前端逻辑 type: integer product_id: type: integer product_image: type: string quantity: type: integer sort: type: integer weight: type: integer type: object app.sendSmsCodeRequest: properties: mobile: type: string required: - mobile type: object app.sendSmsCodeResponse: properties: expire_seconds: type: integer success: type: boolean type: object app.smsLoginRequest: properties: code: type: string invite_code: type: string mobile: type: string required: - code - mobile type: object app.smsLoginResponse: properties: avatar: type: string invite_code: type: string is_new_user: type: boolean mobile: type: string nickname: type: string openid: type: string token: type: string user_id: type: integer type: object app.updateAddressRequest: properties: address: type: string city: type: string district: type: string is_default: type: boolean mobile: type: string name: type: string province: type: string type: object app.userGamePassItem: properties: activity_id: type: integer activity_name: type: string expired_at: type: string id: type: integer remaining: type: integer source: type: string type: object app.userItem: properties: avatar: type: string balance: description: Points type: integer id: type: integer invite_code: type: string inviter_id: type: integer mobile: type: string nickname: type: string type: object app.userStatsResponse: properties: coupon_count: type: integer item_card_count: type: integer points_balance: type: integer type: object app.weixinLoginRequest: properties: code: type: string douyin_id: type: string invite_code: type: string type: object app.weixinLoginResponse: properties: avatar: type: string invite_code: type: string nickname: type: string openid: type: string token: type: string user_id: type: integer type: object code.Failure: properties: code: description: 业务码 type: integer message: description: 描述信息 type: string type: object game.consumeTicketRequest: properties: game_code: type: string ticket: type: string user_id: type: string type: object game.consumeTicketResponse: properties: error: type: string success: type: boolean type: object game.enterGameRequest: properties: game_code: type: string required: - game_code type: object game.enterGameResponse: properties: client_url: type: string expires_at: type: string game_token: type: string nakama_key: type: string nakama_server: type: string remaining_times: type: integer type: object game.grantTicketRequest: properties: amount: minimum: 1 type: integer game_code: type: string remark: type: string required: - amount - game_code type: object game.settleRequest: properties: match_id: type: string score: type: integer ticket: type: string user_id: type: string win: type: boolean type: object game.settleResponse: properties: reward: type: string success: type: boolean type: object game.validateTokenRequest: properties: game_token: type: string required: - game_token type: object game.validateTokenResponse: properties: avatar: type: string error: type: string game_type: type: string ticket: type: string user_id: type: integer username: type: string valid: type: boolean type: object game.verifyRequest: properties: ticket: type: string user_id: type: string type: object game.verifyResponse: properties: game_config: additionalProperties: {} type: object user_id: type: string valid: type: boolean type: object minesweeper.SettleGameRequest: properties: match_id: type: string metadata: type: string score: type: integer ticket: type: string user_id: type: string win: type: boolean type: object minesweeper.SettleGameResponse: properties: reward: type: string success: type: boolean type: object minesweeper.VerifyTicketRequest: properties: ticket: type: string user_id: type: string type: object minesweeper.VerifyTicketResponse: properties: remaining_times: type: integer user_id: type: string valid: type: boolean type: object model.ActivityDrawEffects: properties: activity_category_id: description: 范围快照-活动分类ID type: integer activity_id: description: 范围快照-活动ID type: integer applied: description: 是否生效:0否 1是 type: integer card_type: description: 卡类型快照 type: integer created_at: description: 创建时间 type: string draw_log_id: description: 抽奖日志ID(activity_draw_logs.id) type: integer effect_type: description: 效果类型快照 type: integer id: description: 主键ID type: integer issue_id: description: 范围快照-期ID type: integer probability_delta_x1000: description: 概率相对增益(千分比) type: integer remark: description: 备注 type: string reward_multiplier_x1000: description: 奖励倍数(千分比) type: integer scope_type: description: 适用范围快照 type: integer system_item_card_id: description: 卡模板ID(system_item_cards.id) type: integer user_id: description: 用户ID(users.id) type: integer user_item_card_id: description: 用户卡实例ID(user_item_cards.id) type: integer type: object model.OrderItems: properties: created_at: description: 创建时间 type: string id: description: 主键ID type: integer order_id: description: 订单ID(orders.id) type: integer price: description: 成交单价(分) type: integer product_id: description: 商品ID(products.id) type: integer product_images: description: 商品图片快照(JSON) type: string quantity: description: 购买数量 type: integer status: description: 行状态:1正常 2取消 type: integer title: description: 商品标题快照 type: string total_amount: description: 行应付总额(分) type: integer type: object model.ShippingRecords: properties: address_id: description: 收货地址ID(user_addresses.id) type: integer batch_no: description: 批次号(批量发货时用于聚合) type: string created_at: description: 创建时间 type: string express_code: description: 快递公司编码 type: string express_no: description: 运单号 type: string id: description: 主键ID type: integer inventory_id: description: 资产ID(抽奖产物发货时使用) type: integer order_id: description: 关联订单ID(orders.id,抽奖产物可为空) type: integer order_item_id: description: 订单行ID(商城直发时使用) type: integer price: description: 行价格(分,可选) type: integer product_id: description: 商品ID(统计/冗余) type: integer quantity: description: 发货数量 type: integer received_at: description: 签收时间 type: string remark: description: 备注 type: string shipped_at: description: 发货时间 type: string status: description: 发货状态:1待发货 2已发货 3已签收 4异常 type: integer updated_at: description: 更新时间 type: string user_id: description: 收件用户ID(user_members.id) type: integer type: object model.UserAddresses: properties: address: description: 详细地址 type: string city: description: 市 type: string created_at: description: 创建时间 type: string default_user_unique: description: 用于唯一约束的生成列:默认地址→user_id type: integer district: description: 区/县 type: string id: description: 主键ID type: integer is_default: description: 是否默认地址:0否 1是 type: integer mobile: description: 收件人手机号 type: string name: description: 收件人姓名 type: string province: description: 省 type: string updated_at: description: 更新时间 type: string user_id: description: 用户ID(user_members.id) type: integer type: object model.UserPointsLedger: properties: action: description: 变更动作:signin/order_deduct/refund_restore/manual type: string created_at: description: 创建时间 type: string id: description: 主键ID type: integer points: description: 积分变动值(正增负减) type: integer ref_id: description: 关联ID(如订单号/记录ID) type: string ref_table: description: 关联表名(如orders/payment_refund) type: string remark: description: 备注 type: string user_id: description: 用户ID(user_members.id) type: integer type: object pay.notifyAck: properties: code: type: string message: type: string type: object snapshot.CouponInfo: properties: balance_amount: type: integer coupon_id: type: integer coupon_name: type: string status: type: integer user_coupon_id: type: integer valid_end: type: string type: object snapshot.ItemCardInfo: properties: card_id: type: integer card_name: type: string status: type: integer user_item_card_id: type: integer valid_end: type: string type: object snapshot.PointsInfo: properties: balance: type: integer version: type: integer type: object snapshot.SnapshotDiff: properties: coupons_used: items: $ref: '#/definitions/snapshot.CouponInfo' type: array inventory_added: type: integer item_cards_used: items: $ref: '#/definitions/snapshot.ItemCardInfo' type: array points_changed: type: integer type: object snapshot.UserInfo: properties: id: type: integer mobile: type: string nickname: type: string type: object snapshot.UserStateSnapshot: properties: coupons: items: $ref: '#/definitions/snapshot.CouponInfo' type: array inventory_count: type: integer item_cards: items: $ref: '#/definitions/snapshot.ItemCardInfo' type: array points: $ref: '#/definitions/snapshot.PointsInfo' snapshot_time: type: string user: $ref: '#/definitions/snapshot.UserInfo' type: object taskcenter.claimTaskRequest: properties: tier_id: type: integer type: object taskcenter.createTaskRequest: properties: description: type: string end_time: type: string name: type: string start_time: type: string status: type: integer visibility: type: integer type: object taskcenter.listTasksResponse: properties: list: items: $ref: '#/definitions/taskcenter.taskItem' type: array page: type: integer page_size: type: integer total: type: integer type: object taskcenter.modifyTaskRequest: properties: description: type: string end_time: type: string name: type: string start_time: type: string status: type: integer visibility: type: integer type: object taskcenter.simulateInviteSuccessRequest: properties: invitee_id: type: integer inviter_id: type: integer type: object taskcenter.simulateOrderPaidRequest: properties: order_id: type: integer user_id: type: integer type: object taskcenter.taskItem: properties: description: type: string end_time: type: integer id: type: integer name: type: string rewards: items: $ref: '#/definitions/taskcenter.taskRewardItem' type: array start_time: type: integer status: type: integer tiers: items: $ref: '#/definitions/taskcenter.taskTierItem' type: array type: object taskcenter.taskProgressResponse: properties: claimed_tiers: items: type: integer type: array first_order: type: boolean invite_count: type: integer order_amount: type: integer order_count: type: integer task_id: type: integer user_id: type: integer type: object taskcenter.taskRewardItem: properties: id: type: integer quantity: type: integer reward_name: type: string reward_payload: additionalProperties: {} type: object reward_type: type: string tier_id: type: integer type: object taskcenter.taskTierItem: properties: id: type: integer metric: type: string operator: type: string priority: type: integer repeatable: type: integer threshold: type: integer window: type: string type: object taskcenter.upsertRewardsRequest: properties: rewards: items: properties: quantity: type: integer reward_payload: items: type: integer type: array reward_type: type: string tier_id: type: integer type: object type: array type: object taskcenter.upsertTiersRequest: properties: tiers: items: properties: activity_id: type: integer extra_params: items: type: integer type: array metric: type: string operator: type: string priority: type: integer repeatable: type: integer threshold: type: integer window: type: string type: object type: array type: object user.AggregatedInventory: properties: count: type: integer has_shipment: type: boolean inventory_ids: items: type: integer type: array product_id: type: integer product_images: type: string product_name: type: string product_price: type: integer shipping_status: type: integer status: description: 用于区分 1持有 3已处理 type: integer updated_at: type: string type: object user.CouponSimpleInfo: properties: name: type: string type: description: 1:满减 2:折扣 type: integer user_coupon_id: type: integer value: type: integer type: object user.DrawReceiptInfo: properties: algo_version: type: string client_id: type: integer client_seed: type: string draw_id: type: integer draw_index: type: integer draw_log_id: type: integer items_root: type: string items_snapshot: type: string nonce: type: integer rand_proof: type: string reward_id: type: integer round_id: type: integer selected_index: type: integer server_seed_hash: type: string server_sub_seed: type: string signature: type: string timestamp: type: integer weights_total: type: integer type: object user.InventoryWithProduct: properties: activity_id: description: 来源活动ID type: integer created_at: description: 创建时间 type: string has_shipment: type: boolean id: description: 主键ID type: integer order_id: description: 来源订单ID type: integer product_id: description: 资产对应商品ID(实物奖/商品) type: integer product_images: type: string product_name: type: string product_price: description: 新增价格字段 type: integer remark: description: 备注 type: string reward_id: description: 来源奖励ID(activity_reward_settings.id) type: integer shipping_no: description: 发货单号 type: string shipping_status: type: integer status: description: 状态:1持有 2作废 3已使用/发货 type: integer updated_at: description: 更新时间 type: string user_id: description: 资产归属用户ID type: integer type: object user.ItemCardSimpleInfo: properties: effect_type: type: integer name: type: string user_card_id: type: integer type: object user.ItemCardWithTemplate: properties: card_id: description: 卡模板ID(system_item_cards.id) type: integer card_type: type: integer count: type: integer created_at: description: 创建时间 type: string effect_type: type: integer id: description: 主键ID type: integer name: type: string remark: type: string scope_type: type: integer stacking_strategy: type: integer status: description: 状态:1未使用 2已使用 3已过期 type: integer updated_at: description: 更新时间 type: string used_activity_id: description: 使用时活动ID type: integer used_activity_name: type: string used_at: description: 使用时间 type: string used_draw_log_id: description: 使用关联抽奖日志ID(activity_draw_logs.id) type: integer used_issue_id: description: 使用时期ID type: integer used_issue_number: type: string used_reward_name: type: string user_id: description: 用户ID(users.id) type: integer valid_end: description: 有效期结束 type: string valid_start: description: 有效期开始 type: string type: object user.OrderWithItems: properties: activity_id: type: integer activity_name: type: string actual_amount: description: 实际支付金额(分) type: integer cancelled_at: description: 取消时间 type: string category_id: type: integer category_name: type: string coupon_id: description: 使用的优惠券ID type: integer coupon_info: $ref: '#/definitions/user.CouponSimpleInfo' created_at: description: 创建时间 type: string discount_amount: description: 优惠券抵扣金额(分) type: integer draw_receipts: items: $ref: '#/definitions/user.DrawReceiptInfo' type: array id: description: 主键ID type: integer is_consumed: description: 是否已履约/消耗(对虚拟资产) type: integer is_draw: type: boolean is_winner: type: boolean issue_number: type: string item_card_id: description: 使用的道具卡ID type: integer item_card_info: $ref: '#/definitions/user.ItemCardSimpleInfo' items: items: $ref: '#/definitions/model.OrderItems' type: array order_no: description: 业务订单号(唯一) type: string paid_at: description: 支付完成时间 type: string pay_preorder_id: description: 关联预支付单ID(payment_preorder.id) type: integer play_type: type: string points_amount: description: 积分抵扣金额(分) type: integer points_ledger_id: description: 积分扣减流水ID(user_points_ledger.id) type: integer remark: description: 备注 type: string reward_level: type: integer source_type: description: 来源:1商城直购 2抽奖票据 3其他 type: integer status: description: 订单状态:1待支付 2已支付 3已取消 4已退款 type: integer total_amount: description: 订单总金额(分) type: integer updated_at: description: 更新时间 type: string user_address_id: description: 收货地址ID(user_addresses.id) type: integer user_id: description: 下单用户ID(user_members.id) type: integer type: object user.ProductInfo: properties: id: type: integer image: type: string name: type: string price: type: integer type: object user.ShipmentGroup: properties: batch_no: type: string count: type: integer express_code: type: string express_no: type: string inventory_ids: items: type: integer type: array product_ids: items: type: integer type: array products: items: $ref: '#/definitions/user.ProductInfo' type: array received_at: type: string shipped_at: type: string status: type: integer type: object info: contact: {} title: mini-chat 接口文档 version: v0.0.1 paths: /admin/task_center/simulate/invite_success: post: consumes: - application/json description: 模拟用户邀请成功,触发任务进度更新 parameters: - description: 模拟请求 in: body name: request required: true schema: $ref: '#/definitions/taskcenter.simulateInviteSuccessRequest' produces: - application/json responses: "200": description: 操作成功 schema: additionalProperties: true type: object summary: 模拟邀请成功(Admin) tags: - TaskCenter(Admin) /admin/task_center/simulate/order_paid: post: consumes: - application/json description: 模拟用户支付订单,触发任务进度更新 parameters: - description: 模拟请求 in: body name: request required: true schema: $ref: '#/definitions/taskcenter.simulateOrderPaidRequest' produces: - application/json responses: "200": description: 操作成功 schema: additionalProperties: true type: object summary: 模拟订单支付(Admin) tags: - TaskCenter(Admin) /admin/task_center/tasks: get: consumes: - application/json description: 获取任务管理列表 produces: - application/json responses: "200": description: 任务列表 schema: additionalProperties: true type: object summary: 任务列表(Admin) tags: - TaskCenter(Admin) post: consumes: - application/json description: 创建一个新的任务 parameters: - description: 创建任务请求 in: body name: request required: true schema: $ref: '#/definitions/taskcenter.createTaskRequest' produces: - application/json responses: "200": description: 创建成功 schema: additionalProperties: true type: object summary: 创建任务(Admin) tags: - TaskCenter(Admin) /admin/task_center/tasks/{id}: delete: consumes: - application/json description: 删除指定的任务 parameters: - description: 任务ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 删除成功 schema: additionalProperties: true type: object summary: 删除任务(Admin) tags: - TaskCenter(Admin) put: consumes: - application/json description: 修改指定任务的信息 parameters: - description: 任务ID in: path name: id required: true type: integer - description: 修改任务请求 in: body name: request required: true schema: $ref: '#/definitions/taskcenter.modifyTaskRequest' produces: - application/json responses: "200": description: 修改成功 schema: additionalProperties: true type: object summary: 修改任务(Admin) tags: - TaskCenter(Admin) /admin/task_center/tasks/{id}/rewards: get: consumes: - application/json description: 获取任务层级对应的奖励列表 parameters: - description: 任务ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 奖励列表 schema: additionalProperties: true type: object summary: 获取任务奖励(Admin) tags: - TaskCenter(Admin) post: consumes: - application/json description: 设置任务层级对应的奖励 parameters: - description: 任务ID in: path name: id required: true type: integer - description: 设置奖励请求 in: body name: request required: true schema: $ref: '#/definitions/taskcenter.upsertRewardsRequest' produces: - application/json responses: "200": description: 设置成功 schema: additionalProperties: true type: object summary: 设置任务奖励(Admin) tags: - TaskCenter(Admin) /admin/task_center/tasks/{id}/tiers: get: consumes: - application/json description: 获取任务的完成条件层级列表 parameters: - description: 任务ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 层级列表 schema: additionalProperties: true type: object summary: 获取任务层级(Admin) tags: - TaskCenter(Admin) post: consumes: - application/json description: 设置任务的完成条件层级 parameters: - description: 任务ID in: path name: id required: true type: integer - description: 设置层级请求 in: body name: request required: true schema: $ref: '#/definitions/taskcenter.upsertTiersRequest' produces: - application/json responses: "200": description: 设置成功 schema: additionalProperties: true type: object summary: 设置任务层级(Admin) tags: - TaskCenter(Admin) /api/admin/activities: get: consumes: - application/json description: 获取活动列表,支持分类、Boss、状态过滤与分页 parameters: - description: 活动名称(模糊) in: query name: name type: string - description: 活动分类ID in: query name: category_id type: integer - description: 是否Boss(0/1) in: query name: is_boss type: integer - description: 状态(1进行中 2下线) in: query name: status type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listActivitiesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 活动列表 tags: - 管理端.活动 post: consumes: - application/json description: 创建活动,配置基本信息与分类、Boss标签 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createActivityRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建活动 tags: - 管理端.活动 /api/admin/activities/{activity_id}: delete: consumes: - application/json description: 删除指定活动 parameters: - description: 活动ID in: path name: activity_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除活动 tags: - 管理端.活动 get: consumes: - application/json description: 查看指定活动的详细信息 parameters: - description: 活动ID in: path name: activity_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.activityDetailResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看活动详情 tags: - 管理端.活动 put: consumes: - application/json description: 修改活动基本信息、分类、Boss标签等 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyActivityRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改活动 tags: - 管理端.活动 /api/admin/activities/{activity_id}/copy: post: consumes: - application/json description: 根据活动ID深度复制期次与奖品,生成新的活动 parameters: - description: 活动ID in: path name: activity_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.copyActivityResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 复制活动 tags: - 管理端.活动 /api/admin/activities/{activity_id}/game-passes/check: get: consumes: - application/json description: 检查指定活动是否有用户持有未使用的次数卡,用于下架/删除前校验 parameters: - description: 活动ID in: path name: activity_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.checkActivityGamePassesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 检查活动次数卡 tags: - 管理端.次数卡 /api/admin/activities/{activity_id}/issues: get: consumes: - application/json description: 获取指定活动的期数列表,支持分页 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listIssuesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看活动期数 tags: - 管理端.活动 post: consumes: - application/json description: 为指定活动创建一个新的期数 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createIssueRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建活动期数 tags: - 管理端.活动 /api/admin/activities/{activity_id}/issues/{issue_id}: delete: consumes: - application/json description: 删除指定期数 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除活动期数 tags: - 管理端.活动 put: consumes: - application/json description: 修改指定期数的信息 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyIssueRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改活动期数 tags: - 管理端.活动 /api/admin/activities/{activity_id}/issues/{issue_id}/rewards: get: consumes: - application/json description: 查看指定期数的奖励配置列表 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listRewardsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看期数奖品 tags: - 管理端.活动 post: consumes: - application/json description: 为指定期数批量创建奖励配置 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createRewardsRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建期数奖品 tags: - 管理端.活动 /api/admin/activities/{activity_id}/issues/{issue_id}/rewards/{reward_id}: delete: consumes: - application/json parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer - description: 奖励ID in: path name: reward_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除期数奖励 tags: - 管理端.活动 put: consumes: - application/json parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer - description: 奖励ID in: path name: reward_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyRewardRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 更新期数奖励 tags: - 管理端.活动 /api/admin/activities/{activity_id}/issues/{issue_id}/rewards/batch: put: consumes: - application/json parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.batchModifyRewardsRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 批量更新期数奖励 tags: - 管理端.活动 /api/admin/activity_categories: get: consumes: - application/json description: 获取启用状态的活动分类列表 produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listCategoriesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 活动分类列表 tags: - 管理端.活动 /api/admin/auth/refresh: post: consumes: - application/json produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.refreshResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 管理端令牌刷新 tags: - 管理端.登录 /api/admin/banners: get: consumes: - application/json parameters: - description: 状态 in: query name: status type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listBannersResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看轮播图列表 tags: - 管理端.运营 post: consumes: - application/json parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createBannerRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.createBannerResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建轮播图 tags: - 管理端.运营 /api/admin/banners/{banner_id}: delete: consumes: - application/json parameters: - description: 轮播图ID in: path name: banner_id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.pcSimpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除轮播图 tags: - 管理端.运营 put: consumes: - application/json parameters: - description: 轮播图ID in: path name: banner_id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyBannerRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.pcSimpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改轮播图 tags: - 管理端.运营 /api/admin/game-pass-packages: get: consumes: - application/json description: 查询次数卡套餐列表 parameters: - description: 活动ID in: query name: activity_id type: integer - description: '状态: 1=上架 2=下架' in: query name: status type: integer - description: 页码 in: query name: page type: integer - description: 每页条数 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listGamePassPackagesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 次数卡套餐列表 tags: - 管理端.次数卡套餐 post: consumes: - application/json description: 创建可购买的次数卡套餐 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createGamePassPackageRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.createGamePassPackageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建次数卡套餐 tags: - 管理端.次数卡套餐 /api/admin/game-pass-packages/{package_id}: delete: consumes: - application/json description: 软删除次数卡套餐 parameters: - description: 套餐ID in: path name: package_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除次数卡套餐 tags: - 管理端.次数卡套餐 put: consumes: - application/json description: 修改次数卡套餐配置 parameters: - description: 套餐ID in: path name: package_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyGamePassPackageRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改次数卡套餐 tags: - 管理端.次数卡套餐 /api/admin/game-passes/grant: post: consumes: - application/json description: 管理员为用户发放游戏次数卡 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.grantGamePassRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.grantGamePassResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 发放次数卡 tags: - 管理端.次数卡 /api/admin/game-passes/list: get: consumes: - application/json description: 查询用户次数卡列表,支持按用户、活动过滤 parameters: - description: 用户ID in: query name: user_id type: integer - description: 活动ID in: query name: activity_id type: integer - description: 页码 in: query name: page type: integer - description: 每页条数 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listGamePassesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 次数卡列表 tags: - 管理端.次数卡 /api/admin/login: post: consumes: - application/json description: 管理员登录 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.loginRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.loginResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 管理员登录 tags: - 管理端.登录 /api/admin/matching/audit/{order_no}: get: consumes: - application/json description: 运营通过单号查询发牌过程 parameters: - description: 订单号 in: path name: order_no required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/activity.MatchingGame' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - AdminAuth: [] summary: 获取对对碰审计数据 tags: - 管理端.对对碰 /api/admin/matching_card_types: get: consumes: - application/json description: 获取所有卡牌类型配置 produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listMatchingCardTypesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - AdminAuth: [] summary: 列出对对碰卡牌类型 tags: - 管理端.对对碰 post: consumes: - application/json description: 创建新的卡牌类型 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.matchingCardTypeRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.matchingCardTypeResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - AdminAuth: [] summary: 创建卡牌类型 tags: - 管理端.对对碰 /api/admin/matching_card_types/{id}: delete: consumes: - application/json description: 删除指定的卡牌类型 parameters: - description: 卡牌类型ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: additionalProperties: true type: object "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - AdminAuth: [] summary: 删除卡牌类型 tags: - 管理端.对对碰 put: consumes: - application/json description: 修改已有的卡牌类型 parameters: - description: 卡牌类型ID in: path name: id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.matchingCardTypeRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.matchingCardTypeResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - AdminAuth: [] summary: 修改卡牌类型 tags: - 管理端.对对碰 /api/admin/orders/{order_id}/rollback: post: consumes: - application/json description: 基于快照将用户数据回滚到消费前状态,包括恢复积分、优惠券、道具卡,作废资产,调用微信退款 parameters: - description: 订单ID in: path name: order_id required: true type: integer - description: 回滚请求 in: body name: request required: true schema: $ref: '#/definitions/admin.rollbackOrderRequest' produces: - application/json responses: "200": description: 成功 schema: $ref: '#/definitions/admin.rollbackOrderResponse' summary: 回滚订单到消费前状态 tags: - Admin-Audit /api/admin/orders/{order_id}/snapshots: get: consumes: - application/json description: 获取订单消费前后的完整用户状态快照 parameters: - description: 订单ID in: path name: order_id required: true type: integer produces: - application/json responses: "200": description: 成功 schema: $ref: '#/definitions/admin.getOrderSnapshotsResponse' summary: 获取订单审计快照 tags: - Admin-Audit /api/admin/product_categories: get: consumes: - application/json parameters: - description: 名称 in: query name: name type: string - description: 状态 in: query name: status type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listProductCategoriesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看商品分类列表 tags: - 管理端.商品 post: consumes: - application/json parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createProductCategoryRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.createProductCategoryResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建商品分类 tags: - 管理端.商品 /api/admin/product_categories/{category_id}: delete: consumes: - application/json parameters: - description: 分类ID in: path name: category_id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.pcSimpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除商品分类 tags: - 管理端.商品 put: consumes: - application/json parameters: - description: 分类ID in: path name: category_id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyProductCategoryRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.pcSimpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改商品分类 tags: - 管理端.商品 /api/admin/products: get: consumes: - application/json parameters: - description: 名称 in: query name: name type: string - description: 分类ID in: query name: category_id type: integer - description: 状态 in: query name: status type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listProductsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看商品列表 tags: - 管理端.商品 post: consumes: - application/json parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createProductRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.createProductResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建商品 tags: - 管理端.商品 /api/admin/products/{product_id}: delete: consumes: - application/json parameters: - description: 商品ID in: path name: product_id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.pcSimpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除商品 tags: - 管理端.商品 put: consumes: - application/json parameters: - description: 商品ID in: path name: product_id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyProductRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.pcSimpleMessage' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改商品 tags: - 管理端.商品 /api/admin/products/batch: put: consumes: - application/json parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.batchUpdateProductsRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.batchUpdateProductsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 批量更新商品(库存/上下架) tags: - 管理端.商品 /api/admin/shipping/orders: get: consumes: - application/json description: 按批次号或运单号聚合显示发货记录,支持筛选状态、用户、时间等 parameters: - description: 页码,默认1 in: query name: page type: integer - description: 每页数量,最多100,默认20 in: query name: page_size type: integer - description: 状态:1待发货 2已发货 3已签收 4异常 in: query name: status type: integer - description: 用户ID in: query name: user_id type: integer - description: 批次号 in: query name: batch_no type: string - description: 运单号 in: query name: express_no type: string - description: 开始日期 2006-01-02 in: query name: start_date type: string - description: 结束日期 2006-01-02 in: query name: end_date type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listShippingOrdersResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 发货订单列表 tags: - 管理端.发货管理 /api/admin/shipping/orders/{id}: get: consumes: - application/json description: 根据发货记录ID获取详情 parameters: - description: 发货记录ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/model.ShippingRecords' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取发货订单详情 tags: - 管理端.发货管理 /api/admin/shipping/orders/batch: put: consumes: - application/json description: 为多条发货记录填写运单号或更新状态 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.updateShippingRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.updateShippingResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 批量更新发货信息 tags: - 管理端.发货管理 /api/admin/system_item_cards: get: consumes: - application/json description: 管理员获取道具卡列表,支持按名称、状态、类型等条件筛选 parameters: - description: 道具卡名称 in: query name: name type: string - description: 状态:1启用 2禁用 in: query name: status type: integer - description: 道具卡类型:1抽奖卡 2加成卡 3保底卡 in: query name: card_type type: integer - description: 适用范围:1全局 2活动分类 3活动 4期次 in: query name: scope_type type: integer - description: 页码,默认1 in: query name: page type: integer - description: 每页条数,默认10 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listItemCardsResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' summary: 获取道具卡列表 tags: - 管理端.运营管理 post: consumes: - application/json description: 管理员创建新的道具卡,支持设置类型、效果、有效期等属性 parameters: - description: 创建道具卡请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createItemCardRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.createItemCardResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "403": description: 无权限,仅超管可操作 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' summary: 创建道具卡 tags: - 管理端.运营管理 /api/admin/system_item_cards/{item_card_id}: delete: consumes: - application/json description: 管理员删除指定的道具卡 parameters: - description: 道具卡ID in: path name: item_card_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "403": description: 无权限,仅超管可操作 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' summary: 删除道具卡 tags: - 管理端.运营管理 put: consumes: - application/json description: 管理员修改道具卡信息,支持修改名称、价格、有效期等属性 parameters: - description: 道具卡ID in: path name: item_card_id required: true type: integer - description: 修改道具卡请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyItemCardRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "403": description: 无权限,仅超管可操作 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' summary: 修改道具卡 tags: - 管理端.运营管理 /api/admin/users: get: consumes: - application/json description: 查看APP端用户分页列表 parameters: - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer - description: 用户昵称 in: query name: nickname type: string - description: 邀请码 in: query name: inviteCode type: string - description: 开始日期(YYYY-MM-DD) in: query name: startDate type: string - description: 结束日期(YYYY-MM-DD) in: query name: endDate type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listUsersResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 管理端用户列表 tags: - 管理端.用户 /api/admin/users/{user_id}/coupons: get: consumes: - application/json description: 查看指定用户持有的优惠券列表 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listCouponsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户优惠券列表 tags: - 管理端.用户 /api/admin/users/{user_id}/coupons/add: post: consumes: - application/json description: 管理端为指定用户发放优惠券 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.addCouponRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.addCouponResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 给用户添加优惠券 tags: - 管理端.用户 /api/admin/users/{user_id}/game-passes: get: consumes: - application/json description: 查询指定用户的所有次数卡 parameters: - description: 用户ID in: path name: user_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.getUserGamePassesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查询用户次数卡 tags: - 管理端.次数卡 /api/admin/users/{user_id}/game_tickets: get: parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 页码 in: query name: page type: integer - description: 每页数量 in: query name: page_size type: integer responses: "200": description: OK schema: additionalProperties: true type: object summary: 查询用户游戏资格日志 tags: - 管理端.游戏 post: parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/game.grantTicketRequest' responses: "200": description: OK schema: additionalProperties: true type: object summary: 发放游戏资格 tags: - 管理端.游戏 /api/admin/users/{user_id}/inventory: get: consumes: - application/json description: 查看指定用户的资产记录 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listInventoryResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户资产列表 tags: - 管理端.用户 /api/admin/users/{user_id}/invites: get: consumes: - application/json description: 查看指定用户邀请的用户列表 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listInvitesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户邀请列表 tags: - 管理端.用户 /api/admin/users/{user_id}/item_cards: get: consumes: - application/json description: 查看指定用户的道具卡持有记录 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listUserItemCardsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户道具卡列表 tags: - 管理端.用户 post: consumes: - application/json description: 管理员给指定用户分配道具卡,可指定数量 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 分配道具卡请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.assignItemCardRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.simpleMessageResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "403": description: 无权限,仅超管可操作 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' summary: 给用户分配道具卡 tags: - 管理端.运营管理 /api/admin/users/{user_id}/orders: get: consumes: - application/json description: 查看指定用户的订单记录 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listOrdersResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户订单列表 tags: - 管理端.用户 /api/admin/users/{user_id}/points: get: consumes: - application/json description: 查看指定用户的积分流水记录 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listPointsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户积分记录 tags: - 管理端.用户 /api/admin/users/{user_id}/points/add: post: consumes: - application/json description: 管理端为指定用户发放或扣减积分,正数为增加,负数为扣减 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.addPointsRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.addPointsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 给用户增加或扣减积分 tags: - 管理端.用户 /api/admin/users/{user_id}/points/balance: get: consumes: - application/json description: 查看指定用户当前积分余额(过滤过期) parameters: - description: 用户ID in: path name: user_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.pointsBalanceResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户积分余额 tags: - 管理端.用户 /api/admin/users/{user_id}/profile: get: consumes: - application/json description: 聚合用户基本信息、生命周期财务指标、当前资产快照 parameters: - description: 用户ID in: path name: user_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.UserProfileResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户综合画像 tags: - 管理端.用户 /api/admin/users/{user_id}/rewards/grant: post: consumes: - application/json description: 管理员给用户发放奖励,支持实物和虚拟奖品,可选择关联活动和奖励配置 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.GrantRewardRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.GrantRewardResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' "401": description: Unauthorized schema: $ref: '#/definitions/code.Failure' "403": description: Forbidden schema: $ref: '#/definitions/code.Failure' "500": description: Internal Server Error schema: $ref: '#/definitions/code.Failure' summary: 给用户发放奖励 tags: - 管理端.用户 /api/admin/users/{user_id}/token: post: consumes: - application/json description: 仅超级管理员可用,用于测试或紧急场景下为指定用户签发APP令牌 parameters: - description: 用户ID in: path name: user_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.issueUserTokenResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 管理端为APP用户签发令牌 tags: - 管理端.用户 /api/app/activities: get: consumes: - application/json description: 获取活动列表,支持分类、Boss、状态过滤与分页 parameters: - description: 活动名称(模糊) in: query name: name type: string - description: 活动分类ID in: query name: category_id type: integer - description: 是否Boss(0/1) in: query name: is_boss type: integer - description: 状态(1进行中 2下线) in: query name: status type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listActivitiesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 活动列表 tags: - APP端.活动 /api/app/activities/{activity_id}: get: consumes: - application/json description: 获取指定活动的详细信息 parameters: - description: 活动ID in: path name: activity_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.activityDetailResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 活动详情 tags: - APP端.活动 /api/app/activities/{activity_id}/issues: get: consumes: - application/json description: 获取指定活动的期列表,支持分页 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listIssuesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 活动期列表 tags: - APP端.活动 /api/app/activities/{activity_id}/issues/{issue_id}/choices: get: consumes: - application/json description: 返回总位置数量、已占用位置列表以及当前可选位置列表。仅在活动玩法为 ichiban 时可用。 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listIssueChoicesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 获取指定活动期的可选位置与已占用位置 tags: - APP端.活动 /api/app/activities/{activity_id}/issues/{issue_id}/draw_logs: get: consumes: - application/json description: 查看指定活动期数的抽奖记录,支持等级筛选(默认返回最新的100条,不支持自定义翻页) parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer - description: 奖品等级过滤 in: query name: level type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listDrawLogsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 抽奖记录列表 tags: - APP端.活动 /api/app/activities/{activity_id}/issues/{issue_id}/draw_logs_grouped: get: consumes: - application/json description: 查看指定活动期数的抽奖记录,按奖品等级分组返回 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listDrawLogsByLevelResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 按奖品等级分类的抽奖记录 tags: - APP端.活动 /api/app/activities/{activity_id}/issues/{issue_id}/rewards: get: consumes: - application/json description: 获取指定期的奖励配置列表 parameters: - description: 活动ID in: path name: activity_id required: true type: integer - description: 期ID in: path name: issue_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listRewardsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 奖励配置列表 tags: - APP端.活动 /api/app/address-share/submit: post: consumes: - application/json description: 被邀请者使用分享令牌提交收件信息;服务端校验令牌有效并创建待发货记录(极简方案) parameters: - description: 请求参数:令牌与地址信息 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.addressShareSubmitRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.addressShareSubmitResponse' "400": description: 令牌无效/已处理/资产不可用 schema: $ref: '#/definitions/code.Failure' summary: 提交共享地址 tags: - APP端.用户 /api/app/banners: get: consumes: - application/json produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listAppBannersResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: APP端轮播图列表 tags: - APP端.运营 /api/app/categories: get: consumes: - application/json description: 获取APP端商品分类列表 produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listAppCategoriesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 获取分类列表 tags: - APP端.基础 /api/app/game-passes/available: get: consumes: - application/json description: 查询当前用户可用的游戏次数卡 parameters: - description: 活动ID,不传返回所有可用次数卡 in: query name: activity_id type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.getGamePassesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户次数卡 tags: - APP端.用户 /api/app/game-passes/packages: get: consumes: - application/json description: 获取可购买的次数卡套餐列表 parameters: - description: 活动ID,不传返回全局套餐 in: query name: activity_id type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.getPackagesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 获取次数卡套餐 tags: - APP端.用户 /api/app/game-passes/purchase: post: consumes: - application/json description: 购买次数卡套餐,创建订单等待支付 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.purchasePackageRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.purchasePackageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 购买次数卡套餐 tags: - APP端.用户 /api/app/games/enter: post: parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/game.enterGameRequest' responses: "200": description: OK schema: $ref: '#/definitions/game.enterGameResponse' summary: 进入游戏 tags: - APP端.游戏 /api/app/lottery/join: post: consumes: - application/json description: 提交活动ID与期ID创建参与记录与订单,支持积分抵扣,返回参与ID、订单号、抽奖模式及是否进入队列 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.joinLotteryRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.joinLotteryResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 用户参与抽奖 tags: - APP端.抽奖 /api/app/lottery/result: get: consumes: - application/json description: 根据订单号查询抽奖结果与进度,返回结果明细与可验证凭证;需登录 parameters: - description: 订单号 in: query name: order_no required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.orderResultResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 抽奖订单结果查询 tags: - APP端.抽奖 /api/app/matching/card_types: get: consumes: - application/json description: 获取所有启用的卡牌类型配置,用于App端预览或动画展示 produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/activity.CardTypeConfig' type: array "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 列出对对碰卡牌类型 tags: - APP端.活动 /api/app/matching/cards: get: consumes: - application/json description: 只有支付成功后才能获取游戏牌组数据,防止未支付用户获取牌组信息 parameters: - description: 游戏ID in: query name: game_id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.matchingGameCardsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取对对碰游戏数据 tags: - APP端.活动 /api/app/matching/check: post: consumes: - application/json description: 前端游戏结束后上报结果,服务器发放奖励 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.matchingGameCheckRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.matchingGameCheckResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 游戏结束结算校验 tags: - APP端.活动 /api/app/matching/preorder: post: consumes: - application/json description: 用户下单,服务器扣费并返回全量99张乱序卡牌,前端自行负责游戏流程 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.matchingGamePreOrderRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.matchingGamePreOrderResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 下单并获取对对碰全量数据 tags: - APP端.活动 /api/app/matching/state: get: consumes: - application/json description: 获取当前游戏的完整状态 parameters: - description: 游戏ID in: query name: game_id required: true type: string produces: - application/json responses: "200": description: OK schema: additionalProperties: true type: object "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取对对碰游戏状态 tags: - APP端.活动 /api/app/notices: get: consumes: - application/json description: 获取APP首页滚动公告 produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listAppNoticesResponse' summary: 获取公告列表 tags: - APP端.基础 /api/app/orders/{order_id}: get: consumes: - application/json description: 获取指定订单的详细信息 parameters: - description: 订单ID in: path name: order_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/user.OrderWithItems' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取订单详情 tags: - APP端.用户 /api/app/orders/{order_id}/cancel: post: consumes: - application/json description: 取消指定订单(仅限待付款状态) parameters: - description: 订单ID in: path name: order_id required: true type: integer - description: 取消原因 in: body name: body schema: $ref: '#/definitions/app.cancelOrderRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.cancelOrderResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 取消订单 tags: - APP端.用户 /api/app/pay/wechat/jsapi/preorder: post: consumes: - application/json description: 根据`order_no`与`openid`创建或复用JSAPI预下单,返回`wx.requestPayment`调起参数;订单需为当前登录用户且状态为待支付 parameters: - description: 请求参数:业务订单号与openid in: body name: RequestBody required: true schema: $ref: '#/definitions/app.jsapiPreorderRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.jsapiPreorderResponse' "400": description: 参数错误/配置缺失/订单不存在或状态不合法/微信预下单失败/签名构建失败 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 小程序微信支付预下单 tags: - APP端.支付 /api/app/products: get: consumes: - application/json description: 分页查询商品列表,支持分类筛选,返回分页信息与商品数组 parameters: - description: 页码,默认1 in: query name: page type: integer - description: 每页数量,默认20 in: query name: page_size type: integer - description: 分类ID in: query name: category_id type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listAppProductsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 商品列表 tags: - APP端.商品 /api/app/products/{id}: get: consumes: - application/json description: 根据商品ID返回完整商品信息,含相册与同类推荐;校验下架/缺货状态 parameters: - description: 商品ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.getAppProductDetailResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 商品详情 tags: - APP端.商品 /api/app/sms/login: post: consumes: - application/json description: 使用短信验证码登录或注册(新手机号自动创建账户) parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.smsLoginRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.smsLoginResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 短信验证码登录 tags: - APP端.用户 /api/app/sms/send-code: post: consumes: - application/json description: 发送短信验证码到指定手机号(60秒内不可重复发送,每日最多10次) parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.sendSmsCodeRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.sendSmsCodeResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 发送短信验证码 tags: - APP端.用户 /api/app/store/items: get: consumes: - application/x-www-form-urlencoded description: 分页获取积分商城商品列表,支持按类型筛选(product/item_card/coupon) parameters: - description: '商品类型: product(默认), item_card, coupon' in: query name: kind type: string - default: 1 description: 页码 in: query name: page type: integer - default: 20 description: 每页数量 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listStoreItemsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取积分商城商品列表 tags: - APP端.积分商城 /api/app/task-center/tasks: get: consumes: - application/x-www-form-urlencoded description: 获取当前可用的任务列表,支持分页 parameters: - default: 1 description: 页码 in: query name: page type: integer - default: 20 description: 每页数量 in: query name: page_size type: integer produces: - application/json responses: "200": description: 任务列表 schema: $ref: '#/definitions/taskcenter.listTasksResponse' summary: 获取任务列表(App) tags: - TaskCenter(App) /api/app/task-center/tasks/{id}/claim/{user_id}: post: consumes: - application/json description: 用户领取指定任务层级的奖励 parameters: - description: 任务ID in: path name: id required: true type: integer - description: 用户ID in: path name: user_id required: true type: integer - description: 领取请求 in: body name: request required: true schema: $ref: '#/definitions/taskcenter.claimTaskRequest' produces: - application/json responses: "200": description: 领取成功 schema: additionalProperties: true type: object summary: 领取任务奖励(App) tags: - TaskCenter(App) /api/app/task-center/tasks/{id}/progress/{user_id}: get: consumes: - application/json description: 获取指定用户在特定任务上的进度详情 parameters: - description: 任务ID in: path name: id required: true type: integer - description: 用户ID in: path name: user_id required: true type: integer produces: - application/json responses: "200": description: 任务进度详情 schema: $ref: '#/definitions/taskcenter.taskProgressResponse' summary: 获取用户任务进度(App) tags: - TaskCenter(App) /api/app/users/{user_id}: put: consumes: - application/json description: 修改用户昵称与头像 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.modifyUserRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.modifyUserResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改用户信息 tags: - APP端.用户 /api/app/users/{user_id}/addresses: get: consumes: - application/json description: 分页获取当前登录用户的收货地址列表,默认地址优先 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 页码,默认1 in: query name: page type: integer - description: 每页条数,默认20,最多100 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listAddressesResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户地址列表 tags: - APP端.用户 post: consumes: - application/json description: 为当前登录用户新增收货地址,可选择设为默认 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.addAddressRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.addAddressResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 新增用户地址 tags: - APP端.用户 /api/app/users/{user_id}/addresses/{address_id}: delete: consumes: - application/json description: 删除当前登录用户的指定收货地址 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 地址ID in: path name: address_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.okDeleteResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除用户地址 tags: - APP端.用户 put: consumes: - application/json description: 更新当前登录用户的指定收货地址 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 地址ID in: path name: address_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.updateAddressRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.okResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 更新用户地址 tags: - APP端.用户 /api/app/users/{user_id}/addresses/{address_id}/default: put: consumes: - application/json description: 将指定地址设置为当前登录用户的默认地址 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 地址ID in: path name: address_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.okResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 设置默认用户地址 tags: - APP端.用户 /api/app/users/{user_id}/coupons: get: consumes: - application/json description: 查看用户持有的优惠券列表,支持按状态过滤 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer - description: 状态:1未使用 2已使用 3已过期,不传默认1 in: query name: status type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listCouponsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户优惠券 tags: - APP端.用户 /api/app/users/{user_id}/coupons/{user_coupon_id}/usage: get: consumes: - application/json description: 获取指定优惠券的使用记录,包含优惠券详情、订单号、活动名称 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 用户优惠券ID in: path name: user_coupon_id required: true type: integer - description: 页码,默认1 in: query name: page type: integer - description: 每页数量,默认20 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listCouponUsageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取单张优惠券使用记录 tags: - APP端.用户 /api/app/users/{user_id}/coupons/stats: get: consumes: - application/json description: 获取用户优惠券各状态数量和累计金额 parameters: - description: 用户ID in: path name: user_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.couponStatsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户优惠券统计 tags: - APP端.用户 /api/app/users/{user_id}/douyin/phone/bind: post: consumes: - application/json description: 使用抖音手机号 code 换取手机号并绑定到指定用户 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.bindDouyinPhoneRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.bindDouyinPhoneResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 抖音绑定手机号 tags: - APP端.用户 /api/app/users/{user_id}/game_tickets: get: parameters: - description: 用户ID in: path name: user_id required: true type: integer responses: "200": description: OK schema: additionalProperties: type: integer type: object summary: 获取我的游戏资格 tags: - APP端.游戏 /api/app/users/{user_id}/inventory: get: consumes: - application/json description: 获取 APP 端当前登录用户在 user_inventory 的资产记录,支持分页 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 页码,默认1 in: query name: page type: integer - description: 每页数量,最多100,默认20 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listInventoryResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户资产列表 tags: - APP端.用户 /api/app/users/{user_id}/inventory/address-share/create: post: consumes: - application/json description: 生成一次性分享令牌(不落库),用于邀请他人填写收货地址;令牌默认有效期1小时(无需传过期参数) parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数:资产ID(过期参数可不传,默认1小时) in: body name: RequestBody required: true schema: $ref: '#/definitions/app.addressShareCreateRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.addressShareCreateResponse' "400": description: 参数错误/资产不可用 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建共享地址链接 tags: - APP端.用户 /api/app/users/{user_id}/inventory/address-share/revoke: post: consumes: - application/json description: 极简方案下为前端态操作:不落库令牌,撤销仅用于提示与禁用旧链接(可忽略服务端状态) parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数:资产ID in: body name: RequestBody required: true schema: $ref: '#/definitions/app.addressShareRevokeRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.okResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 撤销共享地址链接 tags: - APP端.用户 /api/app/users/{user_id}/inventory/cancel-shipping: post: consumes: - application/json description: 取消已提交但未发货的申请;恢复库存状态。支持按单个资产ID取消或按批次号批量取消 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数:资产ID或批次号(二选一) in: body name: RequestBody required: true schema: $ref: '#/definitions/app.cancelShippingRequest' produces: - application/json responses: "200": description: 成功 schema: $ref: '#/definitions/app.cancelShippingResponse' "400": description: 参数错误/记录不存在/已处理 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 取消发货申请 tags: - APP端.用户 /api/app/users/{user_id}/inventory/redeem: post: consumes: - application/json description: 将资产按规则转换为积分,成功后资产不可再发货;默认兑换比率来自系统配置`points_exchange_per_cent` parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数:资产ID in: body name: RequestBody required: true schema: $ref: '#/definitions/app.redeemInventoryRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.redeemInventoryResponse' "400": description: 参数错误/资产不可用 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 资产兑换为积分 tags: - APP端.用户 /api/app/users/{user_id}/inventory/request-shipping: post: consumes: - application/json description: 用户已有默认地址时,申请对指定资产发货;幂等校验已存在发货记录时返回已处理 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数:资产ID in: body name: RequestBody required: true schema: $ref: '#/definitions/app.requestShippingRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.requestShippingResponse' "400": description: 参数错误/未设置默认地址/已处理 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 申请发货 tags: - APP端.用户 /api/app/users/{user_id}/inventory/request-shipping-batch: post: consumes: - application/json description: 为多个资产申请发货,校验所有权与状态;幂等:已申请的资产跳过 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数:资产ID列表与可选地址ID in: body name: RequestBody required: true schema: $ref: '#/definitions/app.requestShippingBatchRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.requestShippingBatchResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 批量申请发货 tags: - APP端.用户 /api/app/users/{user_id}/invites: get: consumes: - application/json description: 查看被该用户邀请的用户列表 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listInvitesResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户邀请记录 tags: - APP端.用户 /api/app/users/{user_id}/item_cards: get: consumes: - application/json description: 获取指定用户的道具卡列表,支持分页和状态过滤 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 页码,默认1 in: query name: page type: integer - description: 每页条数,默认10 in: query name: page_size type: integer - description: 状态:1未使用 2已使用 3已过期,不传默认1 in: query name: status type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listUserItemCardsResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户道具卡列表 tags: - APP端.用户 /api/app/users/{user_id}/item_cards/uses: get: consumes: - application/json description: 获取指定用户的道具卡使用记录,支持分页 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 页码,默认1 in: query name: page type: integer - description: 每页条数,默认10 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listUserItemCardUsesResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户道具卡使用记录 tags: - APP端.用户 /api/app/users/{user_id}/orders: get: consumes: - application/json description: 查看用户抽奖来源订单记录 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer - description: 订单状态:1待支付 2已支付 3已取消 4已退款 in: query name: status type: integer - description: 是否已消耗/履约:0否 1是 in: query name: is_consumed type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listOrdersResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户订单记录 tags: - APP端.用户 /api/app/users/{user_id}/phone/bind: post: consumes: - application/json description: 使用微信手机号 code 换取手机号并绑定到指定用户 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.bindPhoneRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.bindPhoneResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 绑定手机号 tags: - APP端.用户 /api/app/users/{user_id}/points: get: consumes: - application/json description: 查看用户积分流水记录 parameters: - description: 用户ID in: path name: user_id required: true type: integer - default: 1 description: 页码 in: query name: page required: true type: integer - default: 20 description: 每页数量,最多100 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listPointsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户积分记录 tags: - APP端.用户 /api/app/users/{user_id}/points/balance: get: consumes: - application/json description: 查看用户积分余额(过滤过期积分) parameters: - description: 用户ID in: path name: user_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.pointsBalanceResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 查看用户积分余额 tags: - APP端.用户 /api/app/users/{user_id}/points/redeem-coupon: post: consumes: - application/json description: 使用积分兑换指定直减金额券,按比率 1积分=1元(券面值为分) parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.redeemCouponRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.redeemCouponResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 积分兑换优惠券 tags: - APP端.积分 /api/app/users/{user_id}/points/redeem-item-card: post: consumes: - application/json description: 使用积分兑换指定数量的道具卡 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 兑换请求参数 in: body name: request required: true schema: $ref: '#/definitions/app.redeemItemCardRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.redeemItemCardResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 积分兑换道具卡 tags: - APP端.用户 /api/app/users/{user_id}/points/redeem-product: post: consumes: - application/json description: 使用积分按比率1积分=1元兑换商品,生成系统发放订单与用户资产 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.redeemProductRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.redeemProductResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 积分兑换商品 tags: - APP端.积分 /api/app/users/{user_id}/shipments: get: consumes: - application/json description: 按运单号聚合用户的发货记录,支持分页 parameters: - description: 用户ID in: path name: user_id required: true type: integer - description: 页码,默认1 in: query name: page type: integer - description: 每页数量,最多100,默认20 in: query name: page_size type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listShipmentsResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户发货分组列表 tags: - APP端.发货 /api/app/users/{user_id}/stats: get: consumes: - application/json description: 返回当前登录用户的道具卡数量、优惠券数量、积分余额 parameters: - description: 用户ID in: path name: user_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.userStatsResponse' "400": description: 参数错误 schema: $ref: '#/definitions/code.Failure' "401": description: 未授权 schema: $ref: '#/definitions/code.Failure' "500": description: 服务器内部错误 schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户统计 tags: - APP端.用户 /api/app/users/douyin/login: post: consumes: - application/json description: 抖音小程序登录(需传递 code 或 anonymous_code) parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.douyinLoginRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.douyinLoginResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 抖音登录 tags: - APP端.用户 /api/app/users/profile: get: consumes: - application/json description: 获取当前登录用户的详细信息 produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.userItem' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取用户信息 tags: - APP端.用户 /api/app/users/weixin/login: post: consumes: - application/json description: 微信静默登录(需传递 code;可选 invite_code) parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.weixinLoginRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.weixinLoginResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 微信登录 tags: - APP端.用户 /api/role/list: get: consumes: - application/json parameters: - default: 1 description: 页码 in: query name: current required: true type: integer - default: 20 description: 每页数量 in: query name: size required: true type: integer - description: 角色名称 in: query name: roleName type: string - description: 角色编码 in: query name: roleCode type: string - description: 是否启用 in: query name: enabled type: boolean produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.roleListResponse' security: - LoginVerifyToken: [] summary: 角色列表 tags: - 管理端.系统 /api/user: post: consumes: - application/json description: 创建新的管理员账号 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createUserRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.createUserResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 创建系统用户 tags: - 管理端.系统 /api/user/list: get: consumes: - application/json description: 返回系统用户分页数据 parameters: - default: 1 description: 页码 in: query name: current required: true type: integer - default: 20 description: 每页数量 in: query name: size required: true type: integer - description: 用户名 in: query name: userName type: string - description: 邮箱 in: query name: userEmail type: string - description: 手机号 in: query name: userPhone type: string - description: 状态 in: query name: status type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.userListResponse' security: - LoginVerifyToken: [] summary: 系统用户列表 tags: - 管理端.系统 /api/v3/system/menus/simple: get: responses: {} /common/upload/wangeditor: post: consumes: - multipart/form-data description: 适配 WangEditor 的图片上传接口 parameters: - description: 图片文件 in: formData name: file required: true type: file produces: - application/json responses: "200": description: 上传成功 schema: additionalProperties: true type: object "400": description: 上传失败 schema: additionalProperties: true type: object summary: WangEditor图片上传 tags: - Common /internal/game/consume-ticket: post: parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/game.consumeTicketRequest' responses: "200": description: OK schema: $ref: '#/definitions/game.consumeTicketResponse' summary: 扣减游戏次数 tags: - Internal.游戏 /internal/game/minesweeper/config: get: responses: "200": description: OK schema: additionalProperties: true type: object summary: 获取扫雷配置 tags: - Internal.游戏 /internal/game/settle: post: consumes: - application/json description: 游戏结束后结算并发放奖励 parameters: - description: 结算信息 in: body name: result required: true schema: $ref: '#/definitions/minesweeper.SettleGameRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/minesweeper.SettleGameResponse' summary: 结算游戏 tags: - Internal /internal/game/validate-token: post: parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/game.validateTokenRequest' responses: "200": description: OK schema: $ref: '#/definitions/game.validateTokenResponse' summary: 验证GameToken tags: - Internal.游戏 /internal/game/verify: post: consumes: - application/json description: 验证游戏票据是否有效 parameters: - description: 票据信息 in: body name: ticket required: true schema: $ref: '#/definitions/minesweeper.VerifyTicketRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/minesweeper.VerifyTicketResponse' summary: 验证游戏票据 tags: - Internal /pay/wechat/notify: post: consumes: - application/json description: 接收微信支付结果通知,验证签名并处理订单状态 produces: - application/json responses: "200": description: 处理成功 schema: $ref: '#/definitions/pay.notifyAck' "400": description: 请求参数错误 schema: $ref: '#/definitions/pay.notifyAck' "500": description: 服务器内部错误 schema: $ref: '#/definitions/pay.notifyAck' summary: 微信支付回调通知 tags: - Pay securityDefinitions: LoginVerifyToken: in: header name: Authorization type: apiKey swagger: "2.0"