/** * 管理员获取所有双色球推测记录(支持分页和用户ID筛选) * @param userId 用户ID(可选) * @param current 当前页码,默认为1 * @param pageSize 每页大小,默认为10 * @param request HTTP请求 * @return 分页的双色球预测记录 */ @GetMapping("/admin/all-records") @Operation(summary = "管理员获取所有推测记录", description = "管理员获取所有双色球推测记录,支持分页和根据用户ID、中奖等级筛选") public ApiResponse> getAllRecordsForAdmin( @Parameter(description = "用户ID(可选),用于筛选指定用户的记录") @RequestParam(value = "userId", required = false) Long userId, @Parameter(description = "中奖等级(可选),例如:一等奖、二等奖、未中奖") @RequestParam(value = "predictResult", required = false) String predictResult, @Parameter(description = "当前页码,从1开始,默认为1") @RequestParam(value = "current", defaultValue = "1") Integer current, @Parameter(description = "每页大小,默认为10") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { // 验证管理员权限 User loginUser = userService.getLoginUser(request); if (loginUser == null) { return ResultUtils.error(ErrorCode.NOT_LOGIN_ERROR, "用户未登录"); } if (!userService.isAdmin(loginUser)) { return ResultUtils.error(ErrorCode.NO_AUTH_ERROR, "无权限访问,仅管理员可用"); } try { log.info("管理员获取所有双色球推测记录,userId={},predictResult={},current={},pageSize={}", userId, predictResult, current, pageSize); // 调用Service层方法 PageResponse result = predictRecordService.getAllRecordsForAdmin(userId, predictResult, current, pageSize); log.info("管理员获取双色球推测记录完成,总记录数:{}", result.getTotal()); return ResultUtils.success(result); } catch (Exception e) { log.error("管理员获取双色球推测记录失败:{}", e.getMessage(), e); return ResultUtils.error(ErrorCode.SYSTEM_ERROR, "获取推测记录失败:" + e.getMessage()); } } GET http://localhost:8123/api/ball-analysis/admin/all-records? userId={{$random.integer(100)}}& predictResult={{$random.alphanumeric(8)}}& current={{$random.integer(100)}}& pageSize={{$random.integer(100)}} 响应示例 { "code": 0, "success": true, "message": "操作成功", "data": { "records": [ { "id": 57, "userId": 1, "drawId": 2025096, "drawDate": 1759766400000, "redBall1": 25, "redBall2": 17, "redBall3": 18, "redBall4": 15, "redBall5": 21, "redBall6": 29, "blueBall": 11, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1759824079000, "bonus": 0, "type": "ssq" }, { "id": 56, "userId": 1, "drawId": 2025096, "drawDate": 1759766400000, "redBall1": 13, "redBall2": 18, "redBall3": 2, "redBall4": 4, "redBall5": 5, "redBall6": 1, "blueBall": 10, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1759818889000, "bonus": 0, "type": "ssq" }, { "id": 55, "userId": 1, "drawId": 2025096, "drawDate": 1758384000000, "redBall1": 22, "redBall2": 33, "redBall3": 24, "redBall4": 25, "redBall5": 20, "redBall6": 15, "blueBall": 14, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758427874000, "bonus": 0, "type": "ssq" }, { "id": 54, "userId": 1, "drawId": 2025096, "drawDate": 1758384000000, "redBall1": 23, "redBall2": 25, "redBall3": 33, "redBall4": 29, "redBall5": 24, "redBall6": 20, "blueBall": 15, "predictStatus": "已中奖", "predictResult": "六等奖", "predictTime": 1758427335000, "bonus": 5, "type": "ssq" }, { "id": 53, "userId": 1, "drawId": 2025096, "drawDate": 1758384000000, "redBall1": 22, "redBall2": 27, "redBall3": 29, "redBall4": 24, "redBall5": 30, "redBall6": 25, "blueBall": 14, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758427265000, "bonus": 0, "type": "ssq" }, { "id": 52, "userId": 1, "drawId": 2025096, "drawDate": 1758384000000, "redBall1": 18, "redBall2": 27, "redBall3": 32, "redBall4": 30, "redBall5": 29, "redBall6": 28, "blueBall": 15, "predictStatus": "已中奖", "predictResult": "六等奖", "predictTime": 1758426942000, "bonus": 5, "type": "ssq" }, { "id": 51, "userId": 1, "drawId": 2025096, "drawDate": 1758384000000, "redBall1": 26, "redBall2": 18, "redBall3": 23, "redBall4": 19, "redBall5": 20, "redBall6": 25, "blueBall": 14, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758426099000, "bonus": 0, "type": "ssq" }, { "id": 50, "userId": 1, "drawId": 2025096, "drawDate": 1757520000000, "redBall1": 22, "redBall2": 18, "redBall3": 19, "redBall4": 23, "redBall5": 20, "redBall6": 15, "blueBall": 13, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1757597385000, "bonus": 0, "type": "ssq" }, { "id": 49, "userId": 1, "drawId": 2025096, "drawDate": 1757260800000, "redBall1": 14, "redBall2": 20, "redBall3": 18, "redBall4": 27, "redBall5": 33, "redBall6": 13, "blueBall": 15, "predictStatus": "已中奖", "predictResult": "六等奖", "predictTime": 1757312366000, "bonus": 5, "type": "ssq" }, { "id": 48, "userId": 1, "drawId": 2025095, "drawDate": 1756828800000, "redBall1": 17, "redBall2": 22, "redBall3": 27, "redBall4": 16, "redBall5": 6, "redBall6": 7, "blueBall": 4, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1756882722000, "bonus": 0, "type": "ssq" } ], "total": 35, "page": 1, "size": 10, "totalPages": 4, "hasNext": true, "hasPrevious": false } } @GetMapping("/admin/all-records") @Operation(summary = "管理员获取所有推测记录", description = "管理员获取所有大乐透推测记录,支持分页和根据用户ID、中奖等级筛选") public ApiResponse> getAllRecordsForAdmin( @Parameter(description = "用户ID(可选),用于筛选指定用户的记录") @RequestParam(value = "userId", required = false) Long userId, @Parameter(description = "中奖等级(可选),例如:一等奖、二等奖、未中奖") @RequestParam(value = "predictResult", required = false) String predictResult, @Parameter(description = "当前页码,从1开始,默认为1") @RequestParam(value = "current", defaultValue = "1") Integer current, @Parameter(description = "每页大小,默认为10") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { // 验证管理员权限 User loginUser = userService.getLoginUser(request); if (loginUser == null) { return ResultUtils.error(ErrorCode.NOT_LOGIN_ERROR, "用户未登录"); } if (!userService.isAdmin(loginUser)) { return ResultUtils.error(ErrorCode.NO_AUTH_ERROR, "无权限访问,仅管理员可用"); } try { log.info("管理员获取所有大乐透推测记录,userId={},predictResult={},current={},pageSize={}", userId, predictResult, current, pageSize); // 调用Service层方法 PageResponse result = dltPredictRecordService.getAllRecordsForAdmin(userId, predictResult, current, pageSize); log.info("管理员获取大乐透推测记录完成,总记录数:{}", result.getTotal()); return ResultUtils.success(result); } catch (Exception e) { log.error("管理员获取大乐透推测记录失败:{}", e.getMessage(), e); return ResultUtils.error(ErrorCode.SYSTEM_ERROR, "获取推测记录失败:" + e.getMessage()); } } GET http://localhost:8123/api/dlt-predict/admin/all-records? userId={{$random.integer(100)}}& predictResult={{$random.alphanumeric(8)}}& current={{$random.integer(100)}}& pageSize={{$random.integer(100)}} { "code": 0, "success": true, "message": "操作成功", "data": { "records": [ { "id": 23, "userId": 1, "drawId": 25117, "drawDate": null, "frontendBall1": 16, "frontendBall2": 13, "frontendBall3": 14, "frontendBall4": 9, "frontendBall5": 4, "backendBall1": 2, "backendBall2": 5, "predictStatus": "待开奖", "predictResult": "待开奖", "predictTime": 1763967816000, "bonus": 0 }, { "id": 22, "userId": 1, "drawId": 25106, "drawDate": null, "frontendBall1": 10, "frontendBall2": 32, "frontendBall3": 33, "frontendBall4": 35, "frontendBall5": 1, "backendBall1": 6, "backendBall2": 8, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1759909486000, "bonus": 0 }, { "id": 21, "userId": 1, "drawId": 25106, "drawDate": null, "frontendBall1": 11, "frontendBall2": 22, "frontendBall3": 25, "frontendBall4": 28, "frontendBall5": 29, "backendBall1": 11, "backendBall2": 12, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1759909424000, "bonus": 0 }, { "id": 20, "userId": 1, "drawId": 25106, "drawDate": null, "frontendBall1": 5, "frontendBall2": 22, "frontendBall3": 28, "frontendBall4": 30, "frontendBall5": 35, "backendBall1": 7, "backendBall2": 3, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1759909344000, "bonus": 0 }, { "id": 19, "userId": 1, "drawId": 25109, "drawDate": null, "frontendBall1": 5, "frontendBall2": 28, "frontendBall3": 18, "frontendBall4": 32, "frontendBall5": 22, "backendBall1": 9, "backendBall2": 12, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758511498000, "bonus": 0 }, { "id": 18, "userId": 1, "drawId": 25109, "drawDate": null, "frontendBall1": 3, "frontendBall2": 11, "frontendBall3": 23, "frontendBall4": 29, "frontendBall5": 34, "backendBall1": 2, "backendBall2": 7, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758510538000, "bonus": 0 }, { "id": 17, "userId": 1, "drawId": 25109, "drawDate": null, "frontendBall1": 32, "frontendBall2": 1, "frontendBall3": 2, "frontendBall4": 5, "frontendBall5": 23, "backendBall1": 3, "backendBall2": 7, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758510155000, "bonus": 0 }, { "id": 16, "userId": 1, "drawId": 25109, "drawDate": null, "frontendBall1": 19, "frontendBall2": 12, "frontendBall3": 2, "frontendBall4": 33, "frontendBall5": 22, "backendBall1": 1, "backendBall2": 7, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758509942000, "bonus": 0 }, { "id": 15, "userId": 1, "drawId": 25109, "drawDate": null, "frontendBall1": 29, "frontendBall2": 20, "frontendBall3": 22, "frontendBall4": 32, "frontendBall5": 35, "backendBall1": 10, "backendBall2": 2, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758509591000, "bonus": 0 }, { "id": 14, "userId": 1, "drawId": 25109, "drawDate": null, "frontendBall1": 14, "frontendBall2": 28, "frontendBall3": 30, "frontendBall4": 2, "frontendBall5": 20, "backendBall1": 2, "backendBall2": 3, "predictStatus": "未中奖", "predictResult": "未中奖", "predictTime": 1758509292000, "bonus": 0 } ], "total": 14, "page": 1, "size": 10, "totalPages": 2, "hasNext": true, "hasPrevious": false } }