### ============================================================ ### 子弹与赏金 (Bullets & Bounty) API 测试 ### ============================================================ ### 1. 登录 POST http://localhost:8081/api/login HTTP/1.1 Content-Type: application/json; charset=UTF-8 {"username":"19156010758","password":"123456"} ### ============================================================ ### 2. 获取可用箱子列表 POST http://localhost:8081/api/bullet/boxes HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {} ### ============================================================ ### 3. 进行一次旋转 ### boxId: 箱子ID(传值=新游戏, 不传=继续游戏) ### autoDecompose: true=自动分解(静默加积分,不弹窗), false/不传=手动选择 ### ### 响应关键字段: ### hasGamble: true → 触发Gamble,需要调用 /gamble 决策 ### hasGamble: false + prize != null → 获取到饰品,调用 /prize_decide 决策 ### hasGamble: false + prize == null → 直接结算或自动分解,游戏结束 ### ### --- 普通模式 (手动选择) --- POST http://localhost:8081/api/bullet/dospin HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {"boxId": 27} ### --- 自动分解模式 --- ### autoDecompose=true 时,游戏全程静默结算: ### 1. 普通旋转 → 自动加积分,返回 prize=null,游戏结束 ### 2. 触发Gamble → 仍需手动调用 /gamble 决策 ### 3. Gamble后 → 自动加积分,无需调用 /prize_decide POST http://localhost:8081/api/bullet/dospin HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {"boxId": 27, "autoDecompose": true} ### ============================================================ ### 4. Gamble决策 (仅当hasGamble=true时调用) ### action: CONTINUE = 继续玩免费旋转 ### action: GAMBLE = 冒险(加权随机出CASH或UPGRADE) ### ### GAMBLE响应: ### gambleResult.type = "CASH" → 获得现金奖金 cashMul × bet ### gambleResult.type = "UPGRADE" → 升级到更高Bonus (如 FOUR_SHOTS) ### 如果升级后还有Gamble → hasGamble=true,继续调用本接口 ### 如果升级后无Gamble → 返回prize或直接结算 ### ### 注意: 如果 dospin 时 autoDecompose=true,Gamble结果会自动结算 ### CASH → 自动加积分,prize=null ### UPGRADE → 自动加积分,prize=null ### CONTINUE结束 → 自动加积分,prize=null ### 全程无需再调用 /prize_decide ### 4a. 冒险 POST http://localhost:8081/api/bullet/gamble HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {"action": "GAMBLE"} ### 4b. 继续玩免费旋转 POST http://localhost:8081/api/bullet/gamble HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {"action": "CONTINUE"} ### ============================================================ ### 5. 饰品处理决策 (仅当prize != null时调用) ### 注意: autoDecompose=true 时无需调用此接口(已自动结算) ### action: DECOMPOSE = 分解(加余额) ### action: KEEP = 收藏(写背包,不加余额) ### ### 响应包含: prize (饰品信息), accountAmount (最新余额) ### 5a. 分解饰品 POST http://localhost:8081/api/bullet/prize_decide HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {"action": "DECOMPOSE"} ### 5b. 收藏饰品 POST http://localhost:8081/api/bullet/prize_decide HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {"action": "KEEP"} ### ============================================================ ### 6. 检查是否有进行中的游戏 ### 响应: hasActive, boxType, bet, bonusType, hasGamble, gambleOptions, ### hasPrize, prizeId, prizeName, prizeGrade, prizeImageUrl, ### totalWin, totalMul, cost POST http://localhost:8081/api/bullet/has_bonus HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {} ### ============================================================ ### 7. 查询个人记录 ### boxType: normal / buy4_true_grit / buy5_four_shots 等 POST http://localhost:8081/api/bullet/records HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {"pageNum": 1, "pageSize": 10, "boxType": ""} ### ============================================================ ### 8. 查询全服排行 ### rankType: win / multiplier POST http://localhost:8081/api/bullet/rank HTTP/1.1 Authorization: Bearer {{token}} Content-Type: application/json; charset=UTF-8 {"pageNum": 1, "pageSize": 10, "rankType": "win", "boxType": ""} ### ============================================================ ### 9. 自动分解完整流程示例 ### 从旋转到结算全程只需调用 dospin 和 gamble: ### ### Step 1: 旋转 (autoDecompose=true) ### POST /api/bullet/dospin {"boxId": 27, "autoDecompose": true} ### → hasGamble=false, prize=null → 游戏结束,积分已自动到账 ### → hasGamble=true → 进入 Step 2 ### ### Step 2: Gamble决策 ### POST /api/bullet/gamble {"action": "GAMBLE"} 或 {"action": "CONTINUE"} ### → CONTINUE: 继续免费旋转,回到Step 1检查 ### → GAMBLE CASH: 自动加积分,prize=null,游戏结束 ### → GAMBLE UPGRADE: 自动加积分,prize=null,游戏结束 ### ### 对比手动模式: 还需要额外调用 /prize_decide {"action": "DECOMPOSE"}