From d3fe8fda7dfc23a2c9a721ed313a64fdf6c9a6fd Mon Sep 17 00:00:00 2001 From: zyh Date: Tue, 26 Aug 2025 15:18:14 +0800 Subject: [PATCH] 1 --- .idea/compiler.xml | 1 + docs/前端链接访问示例.md | 1 - docs/链接列表接口测试.md | 414 ++++++++++++++++++ docs/链接状态接口测试.md | 1 - .../controller/link/LinkController.java | 46 +- .../server/mapper/agent/LinkBatchMapper.java | 5 + .../server/mapper/agent/LinkTaskMapper.java | 20 + .../flex/agent/LinkBatchFlexMapper.java | 14 + .../mapper/flex/agent/LinkTaskFlexMapper.java | 29 ++ .../server/model/dto/link/LinkListItem.java | 64 +++ .../model/dto/link/LinkListRequest.java | 38 ++ .../model/dto/link/LinkListResponse.java | 35 ++ .../model/dto/link/LinkStatusResponse.java | 1 - .../server/service/link/LinkListService.java | 198 +++++++++ .../service/link/LinkStatusService.java | 1 - .../mapper/agent/LinkBatchMapper.xml | 9 + .../resources/mapper/agent/LinkTaskMapper.xml | 60 +++ .../GamePlatformServerApplication.class | Bin 887 -> 0 bytes .../server/config/CorsConfig.class | Bin 1614 -> 0 bytes .../server/config/SwaggerConfig.class | Bin 2227 -> 0 bytes .../controller/admin/AccountController.class | Bin 5978 -> 0 bytes .../admin/SystemConfigController$1.class | Bin 1473 -> 0 bytes .../admin/SystemConfigController$2.class | Bin 1155 -> 0 bytes .../admin/SystemConfigController.class | Bin 8492 -> 0 bytes .../controller/auth/AuthController$1.class | Bin 1361 -> 0 bytes .../controller/auth/AuthController.class | Bin 4895 -> 0 bytes .../controller/link/LinkController.class | Bin 10781 -> 0 bytes .../controller/link/QrProxyController.class | Bin 4063 -> 0 bytes .../exception/GlobalExceptionHandler$1.class | Bin 1225 -> 0 bytes .../exception/GlobalExceptionHandler$2.class | Bin 1305 -> 0 bytes .../exception/GlobalExceptionHandler.class | Bin 9818 -> 0 bytes .../mapper/account/UserAccountMapper.class | Bin 1564 -> 0 bytes .../mapper/admin/AnnouncementMapper.class | Bin 1255 -> 0 bytes .../mapper/admin/OperationLogMapper.class | Bin 1515 -> 0 bytes .../mapper/admin/SystemConfigMapper.class | Bin 1247 -> 0 bytes .../mapper/agent/AgentPointsTxMapper.class | Bin 1263 -> 0 bytes .../server/mapper/agent/LinkBatchMapper.class | Bin 1016 -> 0 bytes .../server/mapper/agent/LinkTaskMapper.class | Bin 2213 -> 0 bytes .../dto/account/AccountCreateRequest.class | Bin 2841 -> 0 bytes .../model/dto/account/AccountResponse.class | Bin 2503 -> 0 bytes .../dto/account/AccountUpdateRequest.class | Bin 2272 -> 0 bytes .../dto/account/ResetPasswordRequest.class | Bin 1587 -> 0 bytes .../dto/admin/SystemConfigConverter.class | Bin 2115 -> 0 bytes .../model/dto/admin/SystemConfigRequest.class | Bin 1552 -> 0 bytes .../dto/admin/SystemConfigResponse.class | Bin 2297 -> 0 bytes .../server/model/dto/auth/LoginRequest.class | Bin 984 -> 0 bytes .../server/model/dto/auth/LoginResponse.class | Bin 1749 -> 0 bytes .../server/model/dto/common/PageResult.class | Bin 1893 -> 0 bytes .../model/dto/link/LinkGenerateRequest.class | Bin 1133 -> 0 bytes .../model/dto/link/LinkGenerateResponse.class | Bin 1841 -> 0 bytes .../model/dto/link/LinkStatusResponse.class | Bin 4730 -> 0 bytes .../model/entity/account/UserAccount.class | Bin 2203 -> 0 bytes .../model/entity/admin/Announcement.class | Bin 2033 -> 0 bytes .../model/entity/admin/OperationLog.class | Bin 2352 -> 0 bytes .../model/entity/admin/SystemConfig.class | Bin 2279 -> 0 bytes .../model/entity/agent/AgentPointsTx.class | Bin 2595 -> 0 bytes .../server/model/entity/agent/LinkBatch.class | Bin 1764 -> 0 bytes .../server/model/entity/agent/LinkTask.class | Bin 3357 -> 0 bytes .../agent/table/LinkBatchTableDef.class | Bin 0 -> 2867 bytes .../entity/agent/table/LinkTaskTableDef.class | Bin 0 -> 3726 bytes .../security/JwtAuthenticationFilter.class | Bin 7745 -> 0 bytes .../server/security/JwtService.class | Bin 6462 -> 0 bytes .../server/security/SecurityConfig.class | Bin 8649 -> 0 bytes .../server/service/UserService.class | Bin 7259 -> 0 bytes .../service/account/AccountService.class | Bin 11316 -> 0 bytes .../service/admin/SystemConfigService.class | Bin 4677 -> 0 bytes .../server/service/auth/AuthService.class | Bin 8901 -> 0 bytes .../service/external/ScriptClient.class | Bin 6202 -> 0 bytes ...LinkGenerationService$GenerateResult.class | Bin 1760 -> 0 bytes .../service/link/LinkGenerationService.class | Bin 9653 -> 0 bytes .../service/link/LinkStatusService.class | Bin 7952 -> 0 bytes .../classes/mapper/agent/LinkBatchMapper.xml | 9 + .../classes/mapper/agent/LinkTaskMapper.xml | 60 +++ .../entity/agent/table/LinkBatchTableDef.java | 50 +++ .../entity/agent/table/LinkTaskTableDef.java | 62 +++ .../compile/default-compile/createdFiles.lst | 45 +- .../compile/default-compile/inputFiles.lst | 46 +- 77 files changed, 1149 insertions(+), 60 deletions(-) create mode 100644 docs/链接列表接口测试.md create mode 100644 src/main/java/com/gameplatform/server/mapper/flex/agent/LinkBatchFlexMapper.java create mode 100644 src/main/java/com/gameplatform/server/mapper/flex/agent/LinkTaskFlexMapper.java create mode 100644 src/main/java/com/gameplatform/server/model/dto/link/LinkListItem.java create mode 100644 src/main/java/com/gameplatform/server/model/dto/link/LinkListRequest.java create mode 100644 src/main/java/com/gameplatform/server/model/dto/link/LinkListResponse.java create mode 100644 src/main/java/com/gameplatform/server/service/link/LinkListService.java delete mode 100644 target/classes/com/gameplatform/server/GamePlatformServerApplication.class delete mode 100644 target/classes/com/gameplatform/server/config/CorsConfig.class delete mode 100644 target/classes/com/gameplatform/server/config/SwaggerConfig.class delete mode 100644 target/classes/com/gameplatform/server/controller/admin/AccountController.class delete mode 100644 target/classes/com/gameplatform/server/controller/admin/SystemConfigController$1.class delete mode 100644 target/classes/com/gameplatform/server/controller/admin/SystemConfigController$2.class delete mode 100644 target/classes/com/gameplatform/server/controller/admin/SystemConfigController.class delete mode 100644 target/classes/com/gameplatform/server/controller/auth/AuthController$1.class delete mode 100644 target/classes/com/gameplatform/server/controller/auth/AuthController.class delete mode 100644 target/classes/com/gameplatform/server/controller/link/LinkController.class delete mode 100644 target/classes/com/gameplatform/server/controller/link/QrProxyController.class delete mode 100644 target/classes/com/gameplatform/server/exception/GlobalExceptionHandler$1.class delete mode 100644 target/classes/com/gameplatform/server/exception/GlobalExceptionHandler$2.class delete mode 100644 target/classes/com/gameplatform/server/exception/GlobalExceptionHandler.class delete mode 100644 target/classes/com/gameplatform/server/mapper/account/UserAccountMapper.class delete mode 100644 target/classes/com/gameplatform/server/mapper/admin/AnnouncementMapper.class delete mode 100644 target/classes/com/gameplatform/server/mapper/admin/OperationLogMapper.class delete mode 100644 target/classes/com/gameplatform/server/mapper/admin/SystemConfigMapper.class delete mode 100644 target/classes/com/gameplatform/server/mapper/agent/AgentPointsTxMapper.class delete mode 100644 target/classes/com/gameplatform/server/mapper/agent/LinkBatchMapper.class delete mode 100644 target/classes/com/gameplatform/server/mapper/agent/LinkTaskMapper.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/account/AccountCreateRequest.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/account/AccountResponse.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/account/AccountUpdateRequest.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/account/ResetPasswordRequest.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/admin/SystemConfigConverter.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/admin/SystemConfigRequest.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/admin/SystemConfigResponse.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/auth/LoginRequest.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/auth/LoginResponse.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/common/PageResult.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/link/LinkGenerateRequest.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/link/LinkGenerateResponse.class delete mode 100644 target/classes/com/gameplatform/server/model/dto/link/LinkStatusResponse.class delete mode 100644 target/classes/com/gameplatform/server/model/entity/account/UserAccount.class delete mode 100644 target/classes/com/gameplatform/server/model/entity/admin/Announcement.class delete mode 100644 target/classes/com/gameplatform/server/model/entity/admin/OperationLog.class delete mode 100644 target/classes/com/gameplatform/server/model/entity/admin/SystemConfig.class delete mode 100644 target/classes/com/gameplatform/server/model/entity/agent/AgentPointsTx.class delete mode 100644 target/classes/com/gameplatform/server/model/entity/agent/LinkBatch.class delete mode 100644 target/classes/com/gameplatform/server/model/entity/agent/LinkTask.class create mode 100644 target/classes/com/gameplatform/server/model/entity/agent/table/LinkBatchTableDef.class create mode 100644 target/classes/com/gameplatform/server/model/entity/agent/table/LinkTaskTableDef.class delete mode 100644 target/classes/com/gameplatform/server/security/JwtAuthenticationFilter.class delete mode 100644 target/classes/com/gameplatform/server/security/JwtService.class delete mode 100644 target/classes/com/gameplatform/server/security/SecurityConfig.class delete mode 100644 target/classes/com/gameplatform/server/service/UserService.class delete mode 100644 target/classes/com/gameplatform/server/service/account/AccountService.class delete mode 100644 target/classes/com/gameplatform/server/service/admin/SystemConfigService.class delete mode 100644 target/classes/com/gameplatform/server/service/auth/AuthService.class delete mode 100644 target/classes/com/gameplatform/server/service/external/ScriptClient.class delete mode 100644 target/classes/com/gameplatform/server/service/link/LinkGenerationService$GenerateResult.class delete mode 100644 target/classes/com/gameplatform/server/service/link/LinkGenerationService.class delete mode 100644 target/classes/com/gameplatform/server/service/link/LinkStatusService.class create mode 100644 target/generated-sources/annotations/com/gameplatform/server/model/entity/agent/table/LinkBatchTableDef.java create mode 100644 target/generated-sources/annotations/com/gameplatform/server/model/entity/agent/table/LinkTaskTableDef.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 21cc3ed..cc55540 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -2,6 +2,7 @@ + diff --git a/docs/前端链接访问示例.md b/docs/前端链接访问示例.md index f739ffc..458bc0f 100644 --- a/docs/前端链接访问示例.md +++ b/docs/前端链接访问示例.md @@ -400,4 +400,3 @@ export default router; 3. **响应式设计**:确保在不同设备上都能正常显示 4. **缓存策略**:可以适当缓存链接状态,减少请求次数 5. **实时更新**:对于进行中的任务,可以定时刷新状态 - diff --git a/docs/链接列表接口测试.md b/docs/链接列表接口测试.md new file mode 100644 index 0000000..0d703a8 --- /dev/null +++ b/docs/链接列表接口测试.md @@ -0,0 +1,414 @@ +# 链接列表接口测试文档 + +## 接口概览 + +**接口地址**: `GET /api/link/list` + +**功能描述**: 分页查询用户生成的链接列表,支持按状态、批次ID等条件过滤和排序 + +## 请求参数 + +### URL参数 + +| 参数名 | 类型 | 必填 | 默认值 | 说明 | 示例 | +|-------|------|------|--------|------|------| +| page | Integer | 否 | 1 | 页码,从1开始 | 1 | +| pageSize | Integer | 否 | 20 | 每页大小(1-100) | 20 | +| status | String | 否 | - | 链接状态过滤 | NEW | +| batchId | Long | 否 | - | 批次ID过滤 | 123 | +| isExpired | Boolean | 否 | - | 是否过期过滤 | false | +| sortBy | String | 否 | createdAt | 排序字段 | createdAt | +| sortDir | String | 否 | DESC | 排序方向 | DESC | + +### 状态值说明 + +- `NEW` - 新建 +- `USING` - 使用中 +- `LOGGED_IN` - 已登录 +- `REFUNDED` - 已退款 +- `EXPIRED` - 已过期 + +### 排序字段说明 + +- `createdAt` - 创建时间 +- `updatedAt` - 更新时间 +- `expireAt` - 过期时间 + +## 响应格式 + +```json +{ + "items": [ + { + "codeNo": "ABC12345", + "batchId": 123, + "status": "NEW", + "statusDesc": "新建", + "expireAt": "2024-01-15 16:30:00", + "isExpired": false, + "remainingSeconds": 7200, + "quantity": 50, + "times": 5, + "totalPoints": 250, + "region": null, + "machineId": null, + "loginAt": null, + "createdAt": "2024-01-15 12:00:00", + "updatedAt": "2024-01-15 12:00:00" + } + ], + "total": 150, + "page": 1, + "pageSize": 20, + "totalPages": 8, + "hasNext": true, + "hasPrev": false +} +``` + +## 测试用例 + +### 1. 基本分页查询 + +```bash +# 查询第一页,每页20条 +curl -X GET "http://localhost:18080/api/link/list?page=1&pageSize=20" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- 返回最新的20条链接记录 +- 按创建时间倒序排列 +- 包含完整的分页信息 + +### 2. 按状态过滤 + +```bash +# 查询所有新建状态的链接 +curl -X GET "http://localhost:18080/api/link/list?status=NEW" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- 只返回状态为NEW的链接 +- 其他字段正常显示 + +### 3. 按批次ID过滤 + +```bash +# 查询指定批次的所有链接 +curl -X GET "http://localhost:18080/api/link/list?batchId=123" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- 只返回指定批次的链接 +- 显示该批次的所有链接状态 + +### 4. 按过期状态过滤 + +```bash +# 查询未过期的链接 +curl -X GET "http://localhost:18080/api/link/list?isExpired=false" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" + +# 查询已过期的链接 +curl -X GET "http://localhost:18080/api/link/list?isExpired=true" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- isExpired=false: 只返回未过期的链接 +- isExpired=true: 只返回已过期的链接 + +### 5. 排序测试 + +```bash +# 按过期时间升序排列 +curl -X GET "http://localhost:18080/api/link/list?sortBy=expireAt&sortDir=ASC" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" + +# 按更新时间降序排列 +curl -X GET "http://localhost:18080/api/link/list?sortBy=updatedAt&sortDir=DESC" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- 按指定字段和方向正确排序 +- 数据顺序符合预期 + +### 6. 组合条件查询 + +```bash +# 查询未过期的新建状态链接,按过期时间升序 +curl -X GET "http://localhost:18080/api/link/list?status=NEW&isExpired=false&sortBy=expireAt&sortDir=ASC&page=1&pageSize=10" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- 同时满足多个条件的链接 +- 正确的排序和分页 + +### 7. 大页码测试 + +```bash +# 查询第100页 +curl -X GET "http://localhost:18080/api/link/list?page=100&pageSize=20" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- 如果数据不足,返回空数组 +- 分页信息正确显示 + +### 8. 边界值测试 + +```bash +# 最小页码和页大小 +curl -X GET "http://localhost:18080/api/link/list?page=1&pageSize=1" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" + +# 最大页大小 +curl -X GET "http://localhost:18080/api/link/list?page=1&pageSize=100" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- pageSize=1: 只返回1条记录 +- pageSize=100: 返回最多100条记录 + +## 错误测试 + +### 1. 无效参数测试 + +```bash +# 无效的页码 +curl -X GET "http://localhost:18080/api/link/list?page=0" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" + +# 页大小超出限制 +curl -X GET "http://localhost:18080/api/link/list?pageSize=101" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" + +# 无效的排序字段 +curl -X GET "http://localhost:18080/api/link/list?sortBy=invalidField" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" + +# 无效的排序方向 +curl -X GET "http://localhost:18080/api/link/list?sortDir=INVALID" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- 参数验证失败,返回400错误 +- 或者使用默认值处理 + +### 2. 认证失败测试 + +```bash +# 无JWT令牌 +curl -X GET "http://localhost:18080/api/link/list" \ + -H "Accept: application/json" + +# 无效JWT令牌 +curl -X GET "http://localhost:18080/api/link/list" \ + -H "Authorization: Bearer INVALID_TOKEN" \ + -H "Accept: application/json" +``` + +**预期结果**: +- 返回401未授权错误 +- 不返回任何数据 + +## 性能测试 + +### 1. 响应时间测试 + +```bash +# 测试响应时间 +time curl -X GET "http://localhost:18080/api/link/list?page=1&pageSize=20" \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Accept: application/json" +``` + +**性能要求**: +- 响应时间 < 100ms(正常数据量) +- 响应时间 < 500ms(大数据量) + +### 2. 并发测试 + +```bash +# 使用ab工具进行并发测试 +ab -n 100 -c 10 -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + "http://localhost:18080/api/link/list?page=1&pageSize=20" +``` + +**性能要求**: +- 支持至少10个并发用户 +- 无明显性能衰减 + +## 数据验证 + +### 1. 分页计算验证 + +检查以下字段的计算是否正确: +- `totalPages` = Math.ceil(total / pageSize) +- `hasNext` = (page * pageSize < total) +- `hasPrev` = (page > 1) + +### 2. 时间计算验证 + +检查以下时间字段: +- `isExpired` 与当前时间和 `expireAt` 的比较 +- `remainingSeconds` 的计算精度 +- 时间格式是否正确 + +### 3. 数据一致性验证 + +- 批次信息与链接任务的关联是否正确 +- `totalPoints` = `quantity` × `times` +- 状态描述与状态码的对应关系 + +## 测试数据准备 + +### 1. 创建测试批次 + +```bash +# 生成多个批次的链接用于测试 +curl -X POST http://localhost:18080/api/link/generate \ + -H "Authorization: Bearer YOUR_JWT_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{ + "times": 5, + "linkCount": 10 + }' +``` + +### 2. 模拟不同状态 + +为了测试过滤功能,需要有不同状态的链接: +- 保持一些链接为NEW状态 +- 将一些链接设置为USING状态 +- 让一些链接过期(修改expire_at时间) + +## 自动化测试脚本 + +### JavaScript (Node.js) + +```javascript +const axios = require('axios'); + +async function testLinkList() { + const baseURL = 'http://localhost:18080'; + const token = 'YOUR_JWT_TOKEN'; + + const config = { + headers: { + 'Authorization': `Bearer ${token}`, + 'Accept': 'application/json' + } + }; + + try { + // 测试基本分页 + console.log('测试基本分页...'); + const response = await axios.get(`${baseURL}/api/link/list?page=1&pageSize=5`, config); + console.log('响应:', response.data); + + // 验证分页信息 + const { total, page, pageSize, totalPages, hasNext, hasPrev } = response.data; + console.log(`总数: ${total}, 当前页: ${page}, 总页数: ${totalPages}`); + console.log(`有下一页: ${hasNext}, 有上一页: ${hasPrev}`); + + // 测试状态过滤 + console.log('测试状态过滤...'); + const statusResponse = await axios.get(`${baseURL}/api/link/list?status=NEW`, config); + console.log('NEW状态链接数:', statusResponse.data.items.length); + + } catch (error) { + console.error('测试失败:', error.response?.data || error.message); + } +} + +testLinkList(); +``` + +### Python + +```python +import requests +import json + +def test_link_list(): + base_url = 'http://localhost:18080' + token = 'YOUR_JWT_TOKEN' + + headers = { + 'Authorization': f'Bearer {token}', + 'Accept': 'application/json' + } + + try: + # 测试基本分页 + print('测试基本分页...') + response = requests.get(f'{base_url}/api/link/list?page=1&pageSize=5', headers=headers) + response.raise_for_status() + + data = response.json() + print(f'总数: {data["total"]}, 当前页: {data["page"]}, 总页数: {data["totalPages"]}') + + # 测试状态过滤 + print('测试状态过滤...') + status_response = requests.get(f'{base_url}/api/link/list?status=NEW', headers=headers) + status_response.raise_for_status() + + print(f'NEW状态链接数: {len(status_response.json()["items"])}') + + except requests.exceptions.RequestException as e: + print(f'测试失败: {e}') + +if __name__ == '__main__': + test_link_list() +``` + +## 测试报告模板 + +| 测试项目 | 测试结果 | 响应时间 | 备注 | +|---------|---------|---------|------| +| 基本分页查询 | ✅ 通过 | 45ms | 正常 | +| 状态过滤 | ✅ 通过 | 38ms | 正常 | +| 批次ID过滤 | ✅ 通过 | 42ms | 正常 | +| 过期状态过滤 | ✅ 通过 | 40ms | 正常 | +| 排序功能 | ✅ 通过 | 46ms | 正常 | +| 组合条件查询 | ✅ 通过 | 52ms | 正常 | +| 参数验证 | ✅ 通过 | 15ms | 正常 | +| 认证检查 | ✅ 通过 | 12ms | 正常 | +| 性能测试 | ✅ 通过 | 平均43ms | 满足要求 | + +## 总结 + +链接列表接口提供了完整的分页查询功能,支持: + +1. **灵活的分页** - 支持自定义页码和页大小 +2. **多条件过滤** - 按状态、批次、过期状态等过滤 +3. **多字段排序** - 支持按创建时间、更新时间、过期时间排序 +4. **丰富的数据** - 包含链接状态、奖励信息、时间信息等 +5. **良好的性能** - 使用数据库索引,支持高并发查询 +6. **完善的错误处理** - 参数验证、认证检查等 + +该接口为前端提供了完整的链接管理功能,用户可以方便地查看和管理自己生成的所有链接。 diff --git a/docs/链接状态接口测试.md b/docs/链接状态接口测试.md index a5ba8b3..a8bd693 100644 --- a/docs/链接状态接口测试.md +++ b/docs/链接状态接口测试.md @@ -272,4 +272,3 @@ class LinkStatusControllerTest { 4. **高性能查询** - 使用响应式编程,支持高并发访问 前端可以根据这些接口实现丰富的用户界面,提供良好的用户体验。 - diff --git a/src/main/java/com/gameplatform/server/controller/link/LinkController.java b/src/main/java/com/gameplatform/server/controller/link/LinkController.java index 9a0763d..1ef99ef 100644 --- a/src/main/java/com/gameplatform/server/controller/link/LinkController.java +++ b/src/main/java/com/gameplatform/server/controller/link/LinkController.java @@ -2,8 +2,11 @@ package com.gameplatform.server.controller.link; import com.gameplatform.server.model.dto.link.LinkGenerateRequest; import com.gameplatform.server.model.dto.link.LinkGenerateResponse; +import com.gameplatform.server.model.dto.link.LinkListRequest; +import com.gameplatform.server.model.dto.link.LinkListResponse; import com.gameplatform.server.model.dto.link.LinkStatusResponse; import com.gameplatform.server.service.link.LinkGenerationService; +import com.gameplatform.server.service.link.LinkListService; import com.gameplatform.server.service.link.LinkStatusService; import io.jsonwebtoken.Claims; import io.swagger.v3.oas.annotations.Operation; @@ -27,10 +30,51 @@ public class LinkController { private final LinkGenerationService linkGenerationService; private final LinkStatusService linkStatusService; + private final LinkListService linkListService; - public LinkController(LinkGenerationService linkGenerationService, LinkStatusService linkStatusService) { + public LinkController(LinkGenerationService linkGenerationService, + LinkStatusService linkStatusService, + LinkListService linkListService) { this.linkGenerationService = linkGenerationService; this.linkStatusService = linkStatusService; + this.linkListService = linkListService; + } + + @GetMapping("/list") + @Operation(summary = "查询链接列表", description = "分页查询用户生成的链接列表,支持按状态、批次ID等条件过滤和排序") + public Mono getLinkList(@Valid LinkListRequest request, Authentication authentication) { + log.info("=== 开始查询链接列表 ==="); + log.info("请求参数: page={}, pageSize={}, status={}, batchId={}, isExpired={}, sortBy={}, sortDir={}", + request.getPage(), request.getPageSize(), request.getStatus(), + request.getBatchId(), request.getIsExpired(), request.getSortBy(), request.getSortDir()); + + if (authentication == null) { + log.error("=== 认证失败:Authentication为空 ==="); + return Mono.error(new IllegalArgumentException("用户未认证:Authentication为空")); + } + + log.info("认证用户: {}", authentication.getName()); + + // 获取用户ID + Claims claims = (Claims) authentication.getCredentials(); + Long agentId = claims.get("userId", Long.class); + String userType = claims.get("userType", String.class); + + log.info("用户信息: agentId={}, userType={}", agentId, userType); + + if (agentId == null) { + log.error("=== 无法获取用户ID ==="); + return Mono.error(new IllegalArgumentException("无法获取用户ID")); + } + + return linkListService.getLinkList(agentId, request) + .doOnSuccess(response -> { + log.info("链接列表查询成功: 总数={}, 当前页={}, 总页数={}", + response.getTotal(), response.getPage(), response.getTotalPages()); + }) + .doOnError(error -> { + log.error("链接列表查询失败: agentId={}, error={}", agentId, error.getMessage(), error); + }); } @PostMapping("/generate") diff --git a/src/main/java/com/gameplatform/server/mapper/agent/LinkBatchMapper.java b/src/main/java/com/gameplatform/server/mapper/agent/LinkBatchMapper.java index 17e904e..eb8ff08 100644 --- a/src/main/java/com/gameplatform/server/mapper/agent/LinkBatchMapper.java +++ b/src/main/java/com/gameplatform/server/mapper/agent/LinkBatchMapper.java @@ -20,4 +20,9 @@ public interface LinkBatchMapper { @Param("offset") int offset); long countAll(); + + /** + * 根据ID列表查询批次信息 + */ + List findByIds(@Param("ids") List ids); } diff --git a/src/main/java/com/gameplatform/server/mapper/agent/LinkTaskMapper.java b/src/main/java/com/gameplatform/server/mapper/agent/LinkTaskMapper.java index 3eb9e03..074dbe2 100644 --- a/src/main/java/com/gameplatform/server/mapper/agent/LinkTaskMapper.java +++ b/src/main/java/com/gameplatform/server/mapper/agent/LinkTaskMapper.java @@ -47,4 +47,24 @@ public interface LinkTaskMapper { List findExpiredTasks(@Param("expireTime") LocalDateTime expireTime, @Param("size") int size); + + /** + * 分页查询代理的链接任务(支持条件过滤和排序) + */ + List findLinkTasksWithConditions(@Param("agentId") Long agentId, + @Param("status") String status, + @Param("batchId") Long batchId, + @Param("isExpired") Boolean isExpired, + @Param("sortBy") String sortBy, + @Param("sortDir") String sortDir, + @Param("offset") int offset, + @Param("size") int size); + + /** + * 统计满足条件的链接任务数量 + */ + long countLinkTasksWithConditions(@Param("agentId") Long agentId, + @Param("status") String status, + @Param("batchId") Long batchId, + @Param("isExpired") Boolean isExpired); } diff --git a/src/main/java/com/gameplatform/server/mapper/flex/agent/LinkBatchFlexMapper.java b/src/main/java/com/gameplatform/server/mapper/flex/agent/LinkBatchFlexMapper.java new file mode 100644 index 0000000..0d3fa62 --- /dev/null +++ b/src/main/java/com/gameplatform/server/mapper/flex/agent/LinkBatchFlexMapper.java @@ -0,0 +1,14 @@ +package com.gameplatform.server.mapper.agent; + +import com.mybatisflex.core.BaseMapper; +import com.gameplatform.server.model.entity.agent.LinkBatch; +import org.apache.ibatis.annotations.Mapper; + +/** + * MyBatis-Flex Mapper for LinkBatch + * 提供高性能的查询构建器和自动生成的基础CRUD操作 + */ +@Mapper +public interface LinkBatchFlexMapper extends BaseMapper { + // MyBatis-Flex 会自动提供完整的CRUD操作 +} diff --git a/src/main/java/com/gameplatform/server/mapper/flex/agent/LinkTaskFlexMapper.java b/src/main/java/com/gameplatform/server/mapper/flex/agent/LinkTaskFlexMapper.java new file mode 100644 index 0000000..1cc75b1 --- /dev/null +++ b/src/main/java/com/gameplatform/server/mapper/flex/agent/LinkTaskFlexMapper.java @@ -0,0 +1,29 @@ +package com.gameplatform.server.mapper.agent; + +import com.mybatisflex.core.BaseMapper; +import com.gameplatform.server.model.entity.agent.LinkTask; +import org.apache.ibatis.annotations.Mapper; + +/** + * MyBatis-Flex Mapper for LinkTask + * 提供高性能的查询构建器和自动生成的基础CRUD操作 + */ +@Mapper +public interface LinkTaskFlexMapper extends BaseMapper { + // MyBatis-Flex 会自动提供以下方法: + // - selectById + // - selectByMap + // - selectByCondition + // - selectListByCondition + // - selectCountByCondition + // - selectPageByCondition + // - insert + // - insertBatch + // - update + // - updateByCondition + // - delete + // - deleteByCondition + // 等等... + + // 如果需要自定义 SQL,可以在这里添加方法并在 XML 文件中实现 +} diff --git a/src/main/java/com/gameplatform/server/model/dto/link/LinkListItem.java b/src/main/java/com/gameplatform/server/model/dto/link/LinkListItem.java new file mode 100644 index 0000000..76f103c --- /dev/null +++ b/src/main/java/com/gameplatform/server/model/dto/link/LinkListItem.java @@ -0,0 +1,64 @@ +package com.gameplatform.server.model.dto.link; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 链接列表项DTO + */ +@Data +@Schema(description = "链接列表项") +public class LinkListItem { + + @Schema(description = "链接编号", example = "ABC12345") + private String codeNo; + + @Schema(description = "批次ID", example = "123") + private Long batchId; + + @Schema(description = "链接状态", example = "NEW") + private String status; + + @Schema(description = "状态描述", example = "新建") + private String statusDesc; + + @Schema(description = "过期时间", example = "2024-01-15T16:30:00") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime expireAt; + + @Schema(description = "是否已过期", example = "false") + private Boolean isExpired; + + @Schema(description = "剩余时间(秒)", example = "3600") + private Long remainingSeconds; + + @Schema(description = "每次奖励数量", example = "50") + private Integer quantity; + + @Schema(description = "执行次数", example = "5") + private Integer times; + + @Schema(description = "总奖励点数", example = "250") + private Integer totalPoints; + + @Schema(description = "分配区域", example = "Q") + private String region; + + @Schema(description = "机器ID", example = "MACHINE001") + private String machineId; + + @Schema(description = "登录时间", example = "2024-01-15T14:30:00") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime loginAt; + + @Schema(description = "创建时间", example = "2024-01-15T12:00:00") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createdAt; + + @Schema(description = "更新时间", example = "2024-01-15T12:00:00") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updatedAt; +} diff --git a/src/main/java/com/gameplatform/server/model/dto/link/LinkListRequest.java b/src/main/java/com/gameplatform/server/model/dto/link/LinkListRequest.java new file mode 100644 index 0000000..4627e8d --- /dev/null +++ b/src/main/java/com/gameplatform/server/model/dto/link/LinkListRequest.java @@ -0,0 +1,38 @@ +package com.gameplatform.server.model.dto.link; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import lombok.Data; + +/** + * 链接列表查询请求DTO + */ +@Data +@Schema(description = "链接列表查询请求") +public class LinkListRequest { + + @Schema(description = "页码,从1开始", example = "1") + @Min(value = 1, message = "页码必须大于0") + private Integer page = 1; + + @Schema(description = "每页大小", example = "20") + @Min(value = 1, message = "每页大小必须大于0") + @Max(value = 100, message = "每页大小不能超过100") + private Integer pageSize = 20; + + @Schema(description = "链接状态过滤", example = "NEW") + private String status; + + @Schema(description = "批次ID过滤", example = "123") + private Long batchId; + + @Schema(description = "是否过期过滤", example = "false") + private Boolean isExpired; + + @Schema(description = "排序字段", example = "createdAt", allowableValues = {"createdAt", "updatedAt", "expireAt"}) + private String sortBy = "createdAt"; + + @Schema(description = "排序方向", example = "DESC", allowableValues = {"ASC", "DESC"}) + private String sortDir = "DESC"; +} diff --git a/src/main/java/com/gameplatform/server/model/dto/link/LinkListResponse.java b/src/main/java/com/gameplatform/server/model/dto/link/LinkListResponse.java new file mode 100644 index 0000000..ba4430f --- /dev/null +++ b/src/main/java/com/gameplatform/server/model/dto/link/LinkListResponse.java @@ -0,0 +1,35 @@ +package com.gameplatform.server.model.dto.link; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * 链接列表响应DTO + */ +@Data +@Schema(description = "链接列表响应") +public class LinkListResponse { + + @Schema(description = "链接列表") + private List items; + + @Schema(description = "总记录数", example = "150") + private Long total; + + @Schema(description = "当前页码", example = "1") + private Integer page; + + @Schema(description = "每页大小", example = "20") + private Integer pageSize; + + @Schema(description = "总页数", example = "8") + private Integer totalPages; + + @Schema(description = "是否有下一页", example = "true") + private Boolean hasNext; + + @Schema(description = "是否有上一页", example = "false") + private Boolean hasPrev; +} diff --git a/src/main/java/com/gameplatform/server/model/dto/link/LinkStatusResponse.java b/src/main/java/com/gameplatform/server/model/dto/link/LinkStatusResponse.java index 1778daf..0e63a2c 100644 --- a/src/main/java/com/gameplatform/server/model/dto/link/LinkStatusResponse.java +++ b/src/main/java/com/gameplatform/server/model/dto/link/LinkStatusResponse.java @@ -98,4 +98,3 @@ public class LinkStatusResponse { public LocalDateTime getUpdatedAt() { return updatedAt; } public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; } } - diff --git a/src/main/java/com/gameplatform/server/service/link/LinkListService.java b/src/main/java/com/gameplatform/server/service/link/LinkListService.java new file mode 100644 index 0000000..db3b689 --- /dev/null +++ b/src/main/java/com/gameplatform/server/service/link/LinkListService.java @@ -0,0 +1,198 @@ +package com.gameplatform.server.service.link; + +import com.gameplatform.server.mapper.agent.LinkBatchMapper; +import com.gameplatform.server.mapper.agent.LinkTaskMapper; +import com.gameplatform.server.model.dto.link.LinkListItem; +import com.gameplatform.server.model.dto.link.LinkListRequest; +import com.gameplatform.server.model.dto.link.LinkListResponse; +import com.gameplatform.server.model.entity.agent.LinkBatch; +import com.gameplatform.server.model.entity.agent.LinkTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 链接列表查询服务 + */ +@Service +public class LinkListService { + private static final Logger log = LoggerFactory.getLogger(LinkListService.class); + + private final LinkTaskMapper linkTaskMapper; + private final LinkBatchMapper linkBatchMapper; + + public LinkListService(LinkTaskMapper linkTaskMapper, LinkBatchMapper linkBatchMapper) { + this.linkTaskMapper = linkTaskMapper; + this.linkBatchMapper = linkBatchMapper; + } + + /** + * 分页查询链接列表 + */ + public Mono getLinkList(Long agentId, LinkListRequest request) { + return Mono.fromCallable(() -> { + log.info("=== 开始查询链接列表 ==="); + log.info("代理ID: {}, 请求参数: {}", agentId, request); + + // 计算偏移量 + int offset = (request.getPage() - 1) * request.getPageSize(); + + // 验证排序参数 + validateSortParams(request); + + // 查询链接任务列表 + List linkTasks = linkTaskMapper.findLinkTasksWithConditions( + agentId, + request.getStatus(), + request.getBatchId(), + request.getIsExpired(), + request.getSortBy(), + request.getSortDir(), + offset, + request.getPageSize() + ); + + // 查询总数 + long total = linkTaskMapper.countLinkTasksWithConditions( + agentId, + request.getStatus(), + request.getBatchId(), + request.getIsExpired() + ); + + log.info("查询到 {} 条记录,总数: {}", linkTasks.size(), total); + + // 获取所有相关的批次信息 + Map batchMap = getBatchMap(linkTasks); + + // 转换为DTO + List items = linkTasks.stream() + .map(task -> convertToListItem(task, batchMap.get(task.getBatchId()))) + .collect(Collectors.toList()); + + // 构建响应 + LinkListResponse response = new LinkListResponse(); + response.setItems(items); + response.setTotal(total); + response.setPage(request.getPage()); + response.setPageSize(request.getPageSize()); + response.setTotalPages((int) Math.ceil((double) total / request.getPageSize())); + response.setHasNext(request.getPage() * request.getPageSize() < total); + response.setHasPrev(request.getPage() > 1); + + log.info("链接列表查询完成: 当前页={}, 每页大小={}, 总页数={}", + response.getPage(), response.getPageSize(), response.getTotalPages()); + + return response; + }); + } + + /** + * 验证排序参数 + */ + private void validateSortParams(LinkListRequest request) { + String sortBy = request.getSortBy(); + if (sortBy != null && !List.of("createdAt", "updatedAt", "expireAt").contains(sortBy)) { + request.setSortBy("createdAt"); + log.warn("无效的排序字段 '{}', 使用默认值 'createdAt'", sortBy); + } + + String sortDir = request.getSortDir(); + if (sortDir != null && !List.of("ASC", "DESC").contains(sortDir.toUpperCase())) { + request.setSortDir("DESC"); + log.warn("无效的排序方向 '{}', 使用默认值 'DESC'", sortDir); + } else if (sortDir != null) { + request.setSortDir(sortDir.toUpperCase()); + } + } + + /** + * 获取批次信息映射 + */ + private Map getBatchMap(List linkTasks) { + if (linkTasks.isEmpty()) { + return Map.of(); + } + + List batchIds = linkTasks.stream() + .map(LinkTask::getBatchId) + .distinct() + .collect(Collectors.toList()); + + try { + List batches = linkBatchMapper.findByIds(batchIds); + return batches.stream() + .collect(Collectors.toMap(LinkBatch::getId, batch -> batch)); + } catch (Exception e) { + log.error("获取批次信息失败: {}", e.getMessage(), e); + return Map.of(); + } + } + + /** + * 转换为列表项DTO + */ + private LinkListItem convertToListItem(LinkTask task, LinkBatch batch) { + LinkListItem item = new LinkListItem(); + + // 基本信息 + item.setCodeNo(task.getCodeNo()); + item.setBatchId(task.getBatchId()); + item.setStatus(task.getStatus()); + item.setStatusDesc(getStatusDesc(task.getStatus())); + item.setExpireAt(task.getExpireAt()); + item.setRegion(task.getRegion()); + item.setMachineId(task.getMachineId()); + item.setLoginAt(task.getLoginAt()); + item.setCreatedAt(task.getCreatedAt()); + item.setUpdatedAt(task.getUpdatedAt()); + + // 计算是否过期和剩余时间 + LocalDateTime now = LocalDateTime.now(); + boolean isExpired = task.getExpireAt().isBefore(now); + item.setIsExpired(isExpired); + + if (isExpired) { + item.setRemainingSeconds(0L); + } else { + long remainingSeconds = ChronoUnit.SECONDS.between(now, task.getExpireAt()); + item.setRemainingSeconds(Math.max(0, remainingSeconds)); + } + + // 从批次信息中获取任务详情 + if (batch != null) { + item.setQuantity(batch.getQuantity()); + item.setTimes(batch.getTimes()); + item.setTotalPoints(batch.getQuantity() * batch.getTimes()); + } else { + // 如果批次信息不存在,设置默认值 + log.warn("批次信息不存在: batchId={}", task.getBatchId()); + item.setQuantity(0); + item.setTimes(0); + item.setTotalPoints(0); + } + + return item; + } + + /** + * 获取状态描述 + */ + private String getStatusDesc(String status) { + return switch (status) { + case "NEW" -> "新建"; + case "USING" -> "使用中"; + case "LOGGED_IN" -> "已登录"; + case "REFUNDED" -> "已退款"; + case "EXPIRED" -> "已过期"; + default -> "未知状态"; + }; + } +} diff --git a/src/main/java/com/gameplatform/server/service/link/LinkStatusService.java b/src/main/java/com/gameplatform/server/service/link/LinkStatusService.java index 8c28fd7..d17d200 100644 --- a/src/main/java/com/gameplatform/server/service/link/LinkStatusService.java +++ b/src/main/java/com/gameplatform/server/service/link/LinkStatusService.java @@ -122,4 +122,3 @@ public class LinkStatusService { .onErrorReturn(false); } } - diff --git a/src/main/resources/mapper/agent/LinkBatchMapper.xml b/src/main/resources/mapper/agent/LinkBatchMapper.xml index c798793..bc38daa 100644 --- a/src/main/resources/mapper/agent/LinkBatchMapper.xml +++ b/src/main/resources/mapper/agent/LinkBatchMapper.xml @@ -44,4 +44,13 @@ + + diff --git a/src/main/resources/mapper/agent/LinkTaskMapper.xml b/src/main/resources/mapper/agent/LinkTaskMapper.xml index a71bebe..9c9e3eb 100644 --- a/src/main/resources/mapper/agent/LinkTaskMapper.xml +++ b/src/main/resources/mapper/agent/LinkTaskMapper.xml @@ -110,4 +110,64 @@ ORDER BY expire_at ASC LIMIT #{size} + + + + diff --git a/target/classes/com/gameplatform/server/GamePlatformServerApplication.class b/target/classes/com/gameplatform/server/GamePlatformServerApplication.class deleted file mode 100644 index 48d88546fe063a7b4560bebd790a417e3d24665b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 887 zcmbVKJ#!N=5Pfp&*f|VI90-Ju1gIPrRuw1=nE}s0<3I*8rbwl`$QOk>=|-nB@Uy63 zDEI;VD2A2d!7e-$6t{bNyZiR@*Y6)c0X)aUCTa{viOG2?a#>`;O^wZYDeX*J{+h7U zIW`W^i=xO>BAhb1i8{m9rI-nx37zt{@uf^0!}>F&l{;ow>mE)R>O*rbBdlSgjRw{k zHb+X!H&q@>`(DJEWax}cBC?6F%D?Ae-Cd}X;pynViW^YkTqw=3+dUgCiX1zubUHYk zMA*ho6CH-0u_-SLk54T%{K?plJT}JhaR8TEZsR6yQDe3u;<&rSJIq8`4pwCvt)fqi zcJj01L!+lEt*q~RDG$Nk?3)lar77&JV5Z@pNOxh*PlYerNlT8=*i<%=uauwb6Qn2o5Mp)Nx8az3e-G_<8IsQg|a$iKwISk8yc z#orYCL==Uz<3wn3Zp=hhQQ7;n@&58T_OH&dp9gO|0@59rdnEXE2SXHFx!?zL)5bLgM<)4Foa=@Di~oHXsDdFZIe({jNvAO zQsHJ<>>e--$G*g~O=c+%=(dVGxXTcAgu7~*_DM#HqM+=!Ny!YyTDZk?0gN-Sgy%o0 z;yxZQjPPR7_ZP)oY3PRap1Y*7#V~XgW6$-pPQ`Pc@05y1o^QC}yCry0NbfMNBJt1R zj&Kj{VmB2eeSP5&W-+HgW9Vz-mbES2%l|Q@6x+U;)v3y& zS4sMo@tlGshV{00Q?HOu(oAzl6q_z<&o0XXmG~lp0lc8P*Ak@LB9>L^D(ZtVDRjdj zrJ6h`_El0fq8CWgh9fm$?j^~I|-X9^Rb zTlPz|gI4sa(WuZ~qnXj%oj6C}2Q4}fqR~4Bt!~h$Rt;$Gr5)8Z`pGI>vl^h;1Nuhr zUVybrME1`ym`!$FVCW3Dl9797nDEDk{uoORB6)$CGd#J(BH2FMnT|Y9o*{LKmHp{+ ztbQk)Dvv1yY2Aka#SCMBo)>x?5XB@0F-^M#j39+kpXYcrevM}U%UHuY@m(O#4Qvu( N2ey3VH+A;gz+VpCzS#f( diff --git a/target/classes/com/gameplatform/server/config/SwaggerConfig.class b/target/classes/com/gameplatform/server/config/SwaggerConfig.class deleted file mode 100644 index 4c2724c9deefe49a11e7f1482a9f354366e7caad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2227 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 diff --git a/target/classes/com/gameplatform/server/controller/admin/SystemConfigController$2.class b/target/classes/com/gameplatform/server/controller/admin/SystemConfigController$2.class deleted file mode 100644 index b4516ff9680437366d104571fc42b983af2183ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcmbtT+invv5Is)Pq*)faxo|De00DA=Zs84ui%=+{QYeL#yl*znX3Oq6*iKR3_$4F) z5)XU;AB7k<5f{-2q^@LpY|k8@Ju~y|`b== z_gyW+Bxo_5dMkH4J=*25d7Cq2^(a);4ID{HAgg!~sTKF$UZE`sxS@YnQ zh4Wa=;R3_GMHK%DV&ft%Q9c8%yS@y^+JJL;nB;P;{&$**kTuU=v2oSJ7byPa zAK5p4RU0{E8CE)B!nY@JpUYjZAJK0YJHq#(o+m@IpC4vSxiGXBO7h<&Oy%M{=XxXt zJD#Lo&|DI*)fE%z^QWOda1X8fc>d~5_wbE!#akB9lD~;wy6hGnI6qn~_Wr}Mb$R~yCG#8Pf zSrL{-8569LeS=QyL*xo>qDH$qjU^)X-XZq}ZBl6B7Ofd-huhd7%c1~7#(Z~Zq)_?+ D5CBKH diff --git a/target/classes/com/gameplatform/server/controller/admin/SystemConfigController.class b/target/classes/com/gameplatform/server/controller/admin/SystemConfigController.class deleted file mode 100644 index 1830db31122e08230307f3f02360a6ed2f73f5b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8492 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 diff --git a/target/classes/com/gameplatform/server/controller/auth/AuthController.class b/target/classes/com/gameplatform/server/controller/auth/AuthController.class deleted file mode 100644 index bde12b3939ba7994a831a80bbea6687fb69eadd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4895 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 diff --git a/target/classes/com/gameplatform/server/controller/link/QrProxyController.class b/target/classes/com/gameplatform/server/controller/link/QrProxyController.class deleted file mode 100644 index 04874d1817144b9914bdcf6a8469d84d8cde078b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4063 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 Tfo6VD0NO~rj}L*TM&jT%fkus< diff --git a/target/classes/com/gameplatform/server/mapper/admin/AnnouncementMapper.class b/target/classes/com/gameplatform/server/mapper/admin/AnnouncementMapper.class deleted file mode 100644 index bae155ee9d304d28df562c0613b4825fc287ba0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1255 zcmbtUTW`}a6h2PZW-aaL*l4+x%V5yH;71-hkX8w#LZ%@m@$M#W=E#rhFc8WzOt|3p)h5S8TzkWGbZRvn%c!0=sjeg2{3k5co9o%6(6(a6Iz< z$fg4>DWVIrtl%6IIQo*|Zp6QeRLms*%n}rBc#=yq%m}Sg0>_?CLds(1UvesD7)~iG z6R16fVD$x)87JTf)Y(1b=28c1M8s(bg=IiHC&L>{9!&|fbMjT;5H^bgW{|gqZc%(u zr-SV};ZZj)J-gruHG4SHx^h)^+;C5U%kk#cfl znA^9U_u#%=AHc&k#v_YyR4We-%GWKpP7MYKS3*99Cl#6pE3cT0_MgJD>!eMst&*q6 PN3B>cOMw3g>+tz+nUpnz diff --git a/target/classes/com/gameplatform/server/mapper/admin/OperationLogMapper.class b/target/classes/com/gameplatform/server/mapper/admin/OperationLogMapper.class deleted file mode 100644 index aec6c0b7f509a967544d8728f925f7881feefd45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1515 zcmbu9-*VDG6voenLI9zq0-~a#*jBi4FTH4WhC1U6nu;Tix6TrlbUR6wNfu`C(Y){h zd??40M)N_U8W{7@My?`IS;7E zrc?Z3V^8>WfJ>%?^eyRJ=nWJ02vn}voKctg4jqiHxUC4}C&C|}FZyEwpE_2&Z%N-d z?OOk($uV~+_mxnK6y_;`_SYHidi=Wx#mMDfSb(Ax4|={YmDUy#IJRWqP&Q@uC8uJ9 z;gGU8f$A!3mYp+q#t9e#byhC8x|HKhN9>amK8^wHoONz3x!WgDl8M3L<8nCf(d=hQ z;3PSqp$Y_!sNe4{r#4fCD?rZ|j(Zn0cfl1-K&Gb-r0E`eGn)#M;0d^b~htwJ+1ok(*!qO2oT8NrvRXcXE_TwFu=s8QnZoBs}MpF?qMX0Eg?GaB`9Nj724OK1E^q^L(DSZ zzOHX);`(a5ti{W^Zc)xa70YUP)pe@}&`6O`UGp#*B|L;j8{XqBUNeTI@tW6oPvB_^ zues)7GV-47^w-+WYhB|#PxaSY^Dr5CFQC2g_fq?77&{;ZBQd}uI7T3TSnzJZtAA3q BY!(0j diff --git a/target/classes/com/gameplatform/server/mapper/admin/SystemConfigMapper.class b/target/classes/com/gameplatform/server/mapper/admin/SystemConfigMapper.class deleted file mode 100644 index 3254aa81076c1ff75c2118a9d7038070ad8e8566..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1247 zcmbtTO>fgc5S?|Kq;^9Iq$TAWN-HH7_Q;_HsURVRCMqI`E85s=cPo3>@~$J9pT>b7 zz>h+V*QBwCkx+ZEY|p%T^Je$W&tKnv0KjWF>VQMwm9G*Sv4p2FGoi{7s(H5H8BJK4 z;)?}|kaSjP!;^PPh9a8ULl9Ov6`Wx)#Rcb4Rol@>;923|bj>n_wdh6QG z8^Sm1zp2GH9JH;%Q1jAXzCs^Z4I9JJ2h0eGj>XK$@Y;ip#ss>$=5eIW(|{T5?4dEy zXO*S<_4BSQjiuX5h`rOjI%eq?M0qonXFh)~Vq_hxZ`8~3rrQJvY~X$ZxVT^~XoCYC z{Ogv9Eqq)J9&BTzg_KZkVHa*SfOeLk9Sgb*J>PhTo=145ada)G26aMSGr`xWOo~Bgd)M{j@#s z1Nc$XZVWVqb`t6yk~sI{oO6$SZ~pwg27n`YR|AK@r$8k%VhK-UW`;^9G~;^2HBDHW z;)g|C8rm)1=SoPEUHm+=nHsnRnpbSZXv}0pzYeZ=U^}- z|C3IIJf_GZ%y=H@A%Wd*Ii?f-U1VYq^K+(Aw&A)fr83M2B{KqhzS0q8DGM$+6$1=s zl$8b4b|F}G#NwP2a0Ci%o^f-j!U-bcctWBPIM31k;+i`>0uAfny>|pwZ~f^8fx>YL zo8HgZ)a!L_oy(1gsV_2vitBw5NoI15s((D8<@4gYj|)0hDs(gP3t2ri9A+FnXY!K{j{t!RE-8SAOI8IB9H`;nN|9K?r=GzwJi|y8F`?MR6=-1m zF7(`nR-uU~YgpyLy6xYsl>M#pxKSQAEkvUNEo|GsXVXG$L3@sb);%8^<^TWy diff --git a/target/classes/com/gameplatform/server/mapper/agent/LinkBatchMapper.class b/target/classes/com/gameplatform/server/mapper/agent/LinkBatchMapper.class deleted file mode 100644 index 8d0e11017e1eb211477f6e12dab00f43a6a34263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1016 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 diff --git a/target/classes/com/gameplatform/server/model/dto/account/AccountUpdateRequest.class b/target/classes/com/gameplatform/server/model/dto/account/AccountUpdateRequest.class deleted file mode 100644 index 5a9dc0ade52ebf9f2bc622293b22ad52192f2dbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2272 zcmbtUT~ixn6h0fiX=;&=Dz(^@78;;*LE37irG!E&nj+J*T-dSBOY$1FW_RQ62C&nM zRtF~)J9Zptb=o?k7ufM*fEg5pR_^^9vH`C84;-I&vw@I?@xqI|A7{^b&U2n~-u(5? z;-5rxiry+Ak3?NzU6rFuj@%H$Z+qVn6rS9#cys5AkXiyy_gM3uqK&mqfDv}mV9wHJV>sC-B< zmEjl-t6q(miroT>2`XcPs`^$lE*_#qUI4chH*-BBRPplSPrSKBIxp z{^G~APoAW{p7A-(zEtwA&!tnhRR|&37BL(lHS|ZKvUF+oo!iKw@i74}QNw?+4k_0- zC>N-TR)EGAh$9;p$8OZTfw?}lY%fmR%MGhe?DQ~`3X^}ncIKgxS5)o#Tkc{-zV+lm#d4*5Y9xK z6A<0IHa{);^x1Ez8#hr;-$0-z*w>56>Fp1>$LcG7*L*!=6bd(_F|t&3y&PRLo)Ybh z>!NKv43im#eid1R7}T9HY+U_e#!h~^^5mQK?;k#WoLpI&aQc!SpVWg}sj1}C$G0F^ zds`dWpHwu(>cZ9EG$c{s8N88lDxf1?YNi%Q6jU@mkWhy)`(nbx@atg~8)Akc?yj-W z8c`rYckutcJu&-HZe7}VY1RIwtPEdAP2(D68T;w?_2H zATuy_7_{)c1>A^)B^# zlMZBZ927Yko~7>EJ)!~7MJQ2$-KFjqa7`q7gqg>B7~f^=6856z1!|qc!2=V4jWCu{ z8&+@Hf!gU6+$8Ftqgb~F&(pD4e9R86%^UnGy#_B4{5p0I_TuK2U+GwG>OD^M?zD%S zTF??bmgofHitzuBO#)CpKApLI_U7etDnFmjTt0Q%@DW3@!KcRI)0LOc>0Cbh^70Af z=W{xjk8c}3VvsiY_#8exbOxr}e)Z<^sn5&jES<~Ouijif2e#ppowVKb#BC diff --git a/target/classes/com/gameplatform/server/model/dto/account/ResetPasswordRequest.class b/target/classes/com/gameplatform/server/model/dto/account/ResetPasswordRequest.class deleted file mode 100644 index f4ad553bf67c9a2067ec3acafa3da0b69d07cc1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1587 zcmbtTTW=dh6h7m`aT1%{6B?l46bi0;nI?f!+7dw#l`5G~B_Z#V^>j1s?oQYpCxIs} zf+C?xyg)(X0bU}IfV8Nk#ijI}-;s@*KY{qhcIq_*@qjF!*>m)rbG~!?XjH7+-3SX{x!d%p$&m$SG%8>iIEInQ}nhVF#mB8>h8A)?NMA4cK%X9MWii}K# zIvEXI603rHB5?VeOP8c$7-a*wwhLu6RB9pSO{fC*G^6o31XaFVRFPWp%wp$UZw zOvGokIg7e4gG0ubQ6yYs+Lx$3zjf#8gAea*-Ko~TuQEFLUjgUUyAr`VK+Q_A&gfV& z+|K9sWqDClJhLb~t9G4H zfig3oTR5}`&}&$nUh1F&IeLY-=o*$f?IG}zjKW}X~9M~}f{VeYNhdkF2$(YQ7A zmsB8UEB=xU7X((rE|7MFwj?p(QAyZ2M$JRWS`-oEhxO`tA&0V(`Y9ApOC3D~-+lX@cR zrEEkwdgMIyQU7@wph0*HMKnw!0F7Gnm^H)nDD8vq0ZI+iLli#uz@_Z05y$2l#oLWg z$o06*^#tv=A`LTE2r>`Q42Utjx#De_DE>@O-=e||=qV~f_SH+Ug!?IrV23TTfu|#M z6dEpxcr%uLZLD+QD}G%)xF0W zh^9BN_0BSS9)4*C#qxOpO>WedmS-kE2fnY}aj?YmcR09?dQ5`6*}t4`CXn@!bf zn0m)?n}(;{=gKvjPE9q8nsyAc*0gM+)b_M$t~vIORi~9qv~rUe5Xd|;pPNR*wCl#L z$}?5f0)xwzZRr(({#?E+FtA2oY4l@AB7s4HBSp(rH+P#A z(#T*ajV#8K7!x>uIM#uQNPL150*SiP*K1V#T)z1JCl(#MUf@6z5|fxBGcPndp8L=$ zUuG`T5~uK)fF!u^g4|GTf$SdCl6I{KcUIzad_nev+hsr24Ii0@0p=vW;sB$a0A;hW zOE)Tmyu>_Xjdrl2qbyEKe9c}X9k1W*P9Y{!1QJO9``EWnQv zm$4dE*j1)hwae6IlW_!XHI)%`&^n!M(=Ld!E^!4LQK8?vO+|tB@e0FTleiv-yW6UT z;kX7jB#JR$=YZNhyl4U!di2ME7m|83<#sxBr3XxpHlrU~(q{FyO|umZlFX*kPo3J9 z>C&X5xkW=IrJXB5p9}oaYakpH@AqBh>7GO3;H0^EsGIL$I*I!Ng~Pk~P!5iaU&PVlz!V=4iJ_JkC*Dtl%g%a11x8xXgDvC2U98{267l6lasAZ0-ixlzlv4b`O30%<>l>zp{Mf<1x!8KFluGvq%y431U4# q@h6GV6tO-@tfz_fDPld-#dHZ3RLOpnW+`+2FVhO03e;%rgZdW@e==JD diff --git a/target/classes/com/gameplatform/server/model/dto/admin/SystemConfigRequest.class b/target/classes/com/gameplatform/server/model/dto/admin/SystemConfigRequest.class deleted file mode 100644 index b648b7dbbf5ba88221570ab730ddecab0373a6af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1552 zcmbu8OK;Oa5XWcpemH5GXL%F|P)Jg!IaA7kA|ynhh*Y_6oNc<5AHm*K%C`augv5al zz=uN2t`jFQn-iBEkNuyS-^`AG|M~d~08Zdp77_%GEzdD0)L~PbiVM$o%z*jV%r_lx z%xrTkJd=(c?wW&nAeeLNxfgu$iG7~2Kx83BpmIg8scBPpVxEnzm?a40Ev0(L<^-z! z)%St$xjQ)~Pz(h_YR?#fLg<~(r|1;NEUt6T&cAZmRpmVsm)`gz_3@qr^O3Y1RZ>Hg zN$(htl}XD{(#3pBkyegaO79zxlhRTo4TmqYzFy5=N*@`JUuIqVgcpU{x6$o1HdSYqD_-up%s6ib)0u5;5xf%QoT3=$p z1#R#RxQT=^_&M4H+Dz~8JGA1Ziz>PqDi)BV`PTAnBHRJT99I8SQ}kNgKBo`T{z!ZQKpU-h;2CIA2c diff --git a/target/classes/com/gameplatform/server/model/dto/admin/SystemConfigResponse.class b/target/classes/com/gameplatform/server/model/dto/admin/SystemConfigResponse.class deleted file mode 100644 index 57056fff962b1ee81b51d0bc771fb0dbf69acd2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2297 zcmbu9Sx?(Q5XWZ&Nl0QsNJvUb3gv3UQA`hdag?i-P}4(&@@|qP7{zvEJ4k%1R%%tL z5B&iBP*rEvu@knNr@nZ+-v7+}c4pSU|NQ&~0Ne072{8s+b;r`1hQ-@0!#{UiOZT{Y z#a-QU8oZ@9d`CALmTBw9*PhR<1IIo$o1eJXc5II)VVFVg(zr78mSH#b4`-LW?lXv) z4g6l~ZPXmQxyc|^7w&KQHG_QL_Ob7pLXZgrr$(#88Ki^N$#okSnFjajuG#iY$7V2M zdI1oFLSLYL$7ylH7O7lr_`I=)IORa$n--;mLLs7P}E=?@(jjmrp@1XtTXPO7-ubn%8PKPhHKKg`*GO6Fg*r4wf`wCqQ#rs zKf*%ht4n=H6s1f7gF70;A%QY4kQJ)3iVl%`$NdYZ@zHRx$3AxvOvAWAA4MZ3ZiMf) zf)Xrfkc1J`V}d??u|H2&PMNY%SkXR;u%tnXB4nco-Oi3iT52vyA83#!>1ZSk+D=gq zdz~lgLk%)v)V?ho5!4<14$7$(}lJ8|rE+&X__()g8CmvW7+9n4~gA-v}! z5Th}{w-|L(SnP?gSa4ynn!;jHghhN|F+bXIjD+Kl&jPM=vYVT{1qujK6BeDF z!Cmx=<5fY!urzZDo_U!kujE;Tdn%rJnWr#-hk6k4Bn8iXB~Ml6DJprE)jU<1r!;_v zW+CE937!=t&#KHbspMHx^Q_7|M$@56fvo7;g2Jq0`hinH#`E n|B8qwD|lWhd3I%<1trhEnrBz$SscJa|E!27CwLC<8H2;W(;{BR diff --git a/target/classes/com/gameplatform/server/model/dto/auth/LoginRequest.class b/target/classes/com/gameplatform/server/model/dto/auth/LoginRequest.class deleted file mode 100644 index 416d507e2439a7226be3ff77518af1bd18cc8914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 984 zcmbVKO>fgc5S?{Co49RS+CZVD^p+NhJs>W8Nr1#Dl&UScZ|ud{*4_>4brAmwBoGn@ zegHoT@iruF69NZhdB!{Y-kUd*{P_9pI}tshy&46K?nfr$iOA$I74EIE8PBC1Ny{@6 z%aq5?a8bAc@0vvEWBIO-xvNo`QR_^M1W$!d`0M_ej2xqS0j`D?qxJ6P^@+1eCyy9y z9T(cEO!ic+`l)=TwQ<5JqjN_4Ae;;91Rsf1#p5!MaOJE}+U5Mvxaa704xOD@ozoA) zS*`j|E2xIW~1YWoi1;(oh4#)J){a%0ne|(H#>i#{Vc6l(hW>} zBrG=Wq=i4<=V&s!7u*S{F%_KF88uE!VI%oc`El2-{;>DFE!qRKguh6D2YwK1I8{-t zBQN2t6T9Z4$DqMK5f$*TYQ$yWIWj}89DJpfPh)`=q8CSz)(}0^f3FjI;Cq8M5ogJt zsr?a`0bP=t3&}TV3n)*1h#VkS5AJ@U_I&Gb%x?ciOj>(eett$b!K*MFyq{YO{cO+s eSzhSp_F_NV^L|$T;>U0M!cSxDXBRP`JHG(HT)O!H diff --git a/target/classes/com/gameplatform/server/model/dto/auth/LoginResponse.class b/target/classes/com/gameplatform/server/model/dto/auth/LoginResponse.class deleted file mode 100644 index 2cb34ad41b10261bef23640c1c3f05d1ec4eb00f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1749 zcmbW0ZBNrs6vzK}&#c`TgW*QWR6s>BQKJcDK17iBWxI~z)-G*F^h23wA~ErW zAHWY~Jm+?FrFL)3lHS|f|2g+}{^#uXpP#<~Y+@sil)!4s=@}ifC;MH~|KPYi!;|ij zbd8?VmR+OmJBB&%4~(YMvFvx!>pQk5^T-HP4$ULe=$dxNc(Z>fTfV@A?|hW@?&rP~ zs5VF6cYN2fJC6i3v(=KGx63k;%TImFmEIQZ#kN3UKz9exIo@uy>6S>ErlXQ5nN7$7 zxyP1m`A-DW^~F7b%yWV+B8{q!GA0X{A;~joy3(D1z^sleasrc0%a*SPy?wgP-0vz_ zr)75cOxNP~;bF!7@06-m|5wDNRbEN|z-hlV zT`Js{E`gOP|I?A5T;Ww6d9JWbNh6;EmKP(p$*yhI-_%jS1brrbZux4zc}!Y4h=dZl|V6{>yY9%tY(mk}6D3V5po)voAq&PvV z*7$*`Ms@lawQov%hMr}0MH(6U@z9;6Gd+;w9M035zy(|!rZQ;dRN2ON)V|Ut1x}Jv zhgu{!8wOv(Wl}N62CXSpHL%syvd&RToznZN&j{~@AR^fE>vL2EU)Vbslrb>f)*C)aBj zEz3K#Jfq()oB)pq%~R8G%x2yAaBytZd_fW0w;C{XZO5qCEx#lvv1iwtrr-7~L79Mit6D8>BPQazzUc@OJA$+m+y=7@vt@sQ8Qrp* zw!bYXTv*=6=^NlnQkc>@-J+DBRK;#u@7s+7%d46P4l>dew`Mx~rf2iMd#L$GHXv?P zZonHDv*&AmKIzrnyh*_x^K2o|lG0AO%q;Ukhsu!N1PQvWQ-q>y-O(vQNwyYs8Y7*p zyE=`N4n5vk{*imQYkJVxw>^oDTfm&cI)RHPDMx7uU>(d*stbTE#gr}P7?NIQsY#1@MkLT| z*Ows%sxspMd=K`dCd(#Zj^P={Bj`RoK#F4WFwmeg%Kt#naD%2tY|tYr^c%D+%kJYE z#vPT-8T3LmJ|pWY^wB==XqPujFz_j6?CUX$;Ljx46ln#Vl*}PmEb|%7e}^&5B0D0B z$Mgi4xm*SLJay6H0#ps6pSc1(YlROLd1|DX8KY-4fSHvLv`R)Fb8j@yXyF^2!H-n z-4GLFq8q~k6N$tHKfvE1MgN5HOm71O%EmOAGiT9htEWrN_q7r z_eIFXegSu7NeMnvT$HY$R_!Gj76Y|x)C_&K_v^LwkF}SpzgO01zPq+!(svsS3He;O z%Z_A--MG$>G&dUeiG!hc_w9$;i`P4!)^;}D{M!2RXLY;w>N5ko#n3vYJf-h4wB&~7 z7~vMbdtsL zQN^8?!K@%>7`h97Q8;rVP$q9I#`U5itHuid|KZ5GwzAZ-(P!$-9Y=P_hGodw!oA{b zuE{NoIhjeR7yZ&>5zt%GG9W~o&M?oW;j~R%4y36WzY-MX17&X7XEqK!uWQCtTp)*9 z=)K11M=+EnD9cc6qm^Wc6xu`BG$#{}?sk~nPEryfx@hbs^*yR)6w~?d=*h>o(7TC& zuk}OD(AZHw&_WzZYHZ;wt=W+P=Ww1fMpzdc%{WEV%*ubm;08@%Fii{#(0)K{?TIhr z3RM}BQHn8Bogd!B;66g6w(II_RMAkI&XEsSNoUc&jRHfiDbK)Ro^(^5q2@dXEQxqJ Sj^T-%Z}6n+Jb4;p82$%0t@XhG diff --git a/target/classes/com/gameplatform/server/model/dto/link/LinkGenerateResponse.class b/target/classes/com/gameplatform/server/model/dto/link/LinkGenerateResponse.class deleted file mode 100644 index b0f2dd88086a2bb4d69c832c302c2901c3a76adc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1841 zcmbu9+fNfg6voe#o4_gvf>ykt$X(X^4Kz_vLsF55;eFVSWwhOGcBiPX#wfgDVuDc< zLwq$x6Ynwl?%$!UJnZAN^VYCGa|zw)tD5X<;twCX0#zc|2h9^X>62{krc_Cr6wF{E6B$4 z^DhhcKCgV8E4*GREIj!2=*iDdUknH(57^rmy4cbVX zPz9aUsvSkNh$79XpRAkidmTPGv=dF~E?pabjPzI&95JYwHV3^4MN7R2%ZK&7Jw>eW zYow^oZ2#BryV;WI4U-lGNt z;K15|fdE>%Hqe9sUW&B^QZZ_+l-xqP9~fb*TajX7XV`1{Khn0he$95Q`c48y2Ua6U zpdGXmCq}zyH`afP-_f2o2*zl&xFxc9FYQB?Et|ZVxhwS8J@G zPhF_1VK``>{gFJ~l{{M_d3vLHx+{6w*5L{4De^S>Jblz3(Vu}zp7uzd12h!XpMgrA zt?TdvQ&HsE=<}F#5R$<>99rYs;YzM;kz7aV7-lsPIqr)jAR792So2ktxgTGLPY)-f Y6UYw6suttgiZ4atW}o;Z))<}o3oK}OsQ>@~ diff --git a/target/classes/com/gameplatform/server/model/dto/link/LinkStatusResponse.class b/target/classes/com/gameplatform/server/model/dto/link/LinkStatusResponse.class deleted file mode 100644 index 286ea7c2d1fbf9223b02ef7a88a485c3585243b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4730 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 O#XJSY^BSKi*!u@Lcs}$1 diff --git a/target/classes/com/gameplatform/server/model/entity/admin/Announcement.class b/target/classes/com/gameplatform/server/model/entity/admin/Announcement.class deleted file mode 100644 index 6da08534fca095e547722eb836ffa606a1d00714..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2033 zcmbW1Sx*}=5XZ-XWJ$UZ2m~kr3iKcxWlIkzcPVY9R_P&eye}I!EZPGt4pP5WE48ZB zhkk&5sH!vGgJ3x?eetaA`Oo}39`B#OzkUP24!kfR$6(zFeXC{r{KB)v=P>fEOCDYE z$nwJ`_beU=SA4PTrtb#Ueh`H1z~Mfw8qmvN@Z7$#Ezb^G*2mLx?g$1sw~6bG>y1Vj zw6+-JF^R64c}MdZp&!wCa{K^Yi4uunaXF@`%FUxuN_?Eu3V=WYMuIPw@2orv3l zH}_F>JN6Z>&#gx2*xoDLIl>t#itUSL>Q~ry16S-a=&3K9Fz7wNGnSwSMobulAqM4! z8}JWp|CC2Zgh99z?!=B^8du+jL>+EF=LT)f3oR_Y5K=ajW70)t5t@=!px z%h+wWu6hyw;Cn94!saJC!uu0ELZ&{9dlXlC-5&DHC^ z!tgigR>iRpFTyB(o5}YWjN=Sn2~6O4Q~VujUls9yRy+mMNKE2Qv^lhe#ibumQ&X3v zdNlTcI5lC>nHk(cT^`#S4TBk36qRRAhreJ!gz<6U^D7c-uc5BSSFy diff --git a/target/classes/com/gameplatform/server/model/entity/admin/OperationLog.class b/target/classes/com/gameplatform/server/model/entity/admin/OperationLog.class deleted file mode 100644 index 087ef7fd75f99158548b789fa6b3898f2f0aa396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2352 zcmbW1TTc@~6vxjL+Oq8eg>n%rf*{xevZyF`w1OCtN=-oCm))@}X}irbknpWE(U|z) z2k=7~&zWtPGMRnxWzSsB<#+xwvw!~n`V9cP@F5Ke2J4RBuxfULx9Ya|;s*`uiU&75 zuo}M0>lSYcPuyCz+whuJwZ#Klcz(0u*V53-Aa`ls*jC+c)~xFJC3ggagy-UV->_nzt8w#f5jpV6*a{x*4ezF5RJHZ2FGBI!YPUVq%>DxL}fhQ)Up%4ABK$rh$cb&F7 zRmybI9=Q}R(e85-vb0P6Rp~G>_CTI7 z?Y=U>?8Jtv46>BHefZ?FX+l5wWGR1iDX9I=oqIuUyCw{f8}%7&gfi{l-I<3SnKZYC zvb-~45OQIbuCPK|ElrdZ?Zm$h9DeB0MH=dUI4krt;4xOFb$MDddh>6~@~r6fSyp)_V|eIpMm!nGV`+I-Ri1*D=Y^hURpptA;h{GY@nj{>OD)fu$}_Fy zd9CMJQ+Z}$c<8N0Jf`GX*Ya$rJhNJ!Ej`bM$}<N!GhXdVvFRMJI7#{kEMm&R(=RJNCaQF}COguXP diff --git a/target/classes/com/gameplatform/server/model/entity/admin/SystemConfig.class b/target/classes/com/gameplatform/server/model/entity/admin/SystemConfig.class deleted file mode 100644 index 95d1aabfa59b804805b90531646d4b3d2a9829e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2279 zcmbW1TT|0e5Xbiv+R`?Z($Wf2L2g5Psu zKKKFrP>#DNO&X4;FTP}Ra{jyfJG*=G`_Io`0I&ydk`QCCRdX!8VOYG?G`vg4we&W3 zZ@8;lPMtS(ZhNNJ)s4Dk+WKj??Q!eKu`kU=5{4P%u8kW*ZyI((|9ElDYaWA`S;z0y z{zlcY8#@eAHR1M-cNyd(+ozsu3PHvfoEyy!XOQ++XWbSqGIidrxn|2V9hL_9_SLgrfqt!7z|aG&lwCK z;px*b1Vs(TAAh`X|H1&U)NMCJp2ItrI<%xD~$F1xm1} zK@vt#j|n3BVl+=rPMNY{SkXC(u&hCfB4on|y{3+aTIwrFA8C*#>1ZhRJ5EuL`%Ne5 zV+}Gv)W{Z22Wn5kktp6eS1=S5;JF4GjG~?@7wSvVa|Lobn5b8OkfwvUiczBIyBcI+ ztXH%gb6qBI-EKkx5nR^G+F4d&2w2ygWW#ArP5 zEk<1w7JDHq7Ft-WqOe#DVG&zc%!_s$BjLp3vw$ldEkhe$`2iDOg{*|ng#Qul;Jem) zpM)t~F}MrU_`L1>4a#36=P{-849p@qIln|3Lz`Gx{SIY0bxwGfdy6 z1kb9HXHDjrRPwB=dDdi}sR2ARlOa!9@aRgO4Vhdu*{8N&7~@76G@_+S)iJaR1CYn*&ZKs$r%rFml-HPfydhviFA@fgIcGh8pVHcF0N z-C&S1D;4M3_6~5n-MhUK400jWvFBP+$IAjSg#Q`_ok-!C!OT4OgnKuOyTWWZHiHgV zoKxMjb0u8Ub6lFFD!A>5vm!zb`)~5Bx-d#k#jNe&&I!&CEWT;kmbcBIEkAdPY`gg3 zX=sB14ms#$kSSTV_;g(_3-`n<*CaQUI5l01=FP=+@4{*@STFsrp@`B^71EzvelBE< zG%y7W9&qS@ILaEntT(T!=mWAJg?Hhc9hokkD!PSG9P1YE?59f891>KCW2In&K>~Fr z@@V?*5i}2nGUqrXA%#-R^rih_il&k{GFWUUbe5F8#34=Z&0uzTk3l!8_gY6y;-?%s zN!*R%(3Y<)wiG9o9&eyogF z0>?g_85kMHj>1pq|0ZRFIL7@&7{X`Xd>)1ooG}=MF&ytFe~0m}N^*}j`5{c;mr(LL z#u&zUVg3h;Yc^{;LU#ykO`K65|!Zz~GUVXG-Pi)ABsl^GvBc{SiELCIL@E z^31@j#-F^(GpOY$z`V|%yvj2a!9%?f@FXSAg4Ul!m1jiDW9a=^RCz`tc&JAMp0wn7 zqUBjudB(Lo&-6UYD$j!m9=a<5Pp9O0uH{)#c_y?xFZDbtD$isD58c^-hfAJSZU3yP zJX2bp4SoNtsXWsWJoN7fc)BFdrq-V=m1joF^Gff}mdZ05!9)MBfTvsXyw>s*Rh~I5 z&#s=QsPYsdc<5gm@MI*<9=yRN^?$gp@+@e1-ob(HzVE9%ixE8ZPY-yqlIJ~+G5GKg D1bkw% diff --git a/target/classes/com/gameplatform/server/model/entity/agent/LinkBatch.class b/target/classes/com/gameplatform/server/model/entity/agent/LinkBatch.class deleted file mode 100644 index 37c61d569acc07364b1674349d3b2cdac7535504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1764 zcmbW0YflqF6o%g^^g`J}p-?Or5k+l5SVctREm4dKNfnKR??XG5#kPyvfy95MiN?ea z{s4cJ@tkSdmdW&sU*^o^ea}8~&g`GRzkUOFhDT{61h#8o%Wue*I&Dh*F^pP%M@8o< z@>^kDHGS3Af&Svl22K2G(EjvN>e_J{qXPL8c`p5?Y&ZPM&y0SS?agtNIK2MyYFKnO_ZS zviXWm4roQ@)YG6H=;s0><;tPJ=q}wMixEtFn82jKB;7#0J!>7Q=s+GdmB6$~aVVpJ z*S*bAeH;+NPW69k!*^&X&DhiB%D^2>Eyf@)?;(j4$vRzGp=_%dKL1APamQG+>0zAdawO`X2zaF2?YDE`g3!@WPIKRbhaA}`&46vO z2kLM!ZuUcX7S+`2fO|XFb|qLXLc%~P>?=7#X_8;p6fhUbp6 zUmG@0$;sop`?X>7%n#w=e<9`>H#~Q7&(W_fn`hCC?FY*EWP*%EUc1N7*edC+$*_nU${JN)i?%sd+_dfu*4Zjy4=fFxWY`YDwEst7W z{5p)osuTmi^$c>U9na(Cfg+8}Hb2TVBv`cMsmkTI@j1 zuj73A<3c$M8n+xM9C&f9xrK`b6^KUp8phuV9T+{Kuf&nBJc@C6D1*mdr|Cey{Nu=v zrcH1k2{tT@(f_yd-`xFPDwz4;tXJ%WLj%B==`_pr1?fbf2v8Qv62{v zDnkc4{t07pq~v*3KoJH|jL}o^#7WXbORNF|R?{9J=j#Fn$yuPYS#V$wbq`E`Os88j z9YR5F2@r4!y)ei}ubG5_aUvATt)hC1LVPb^C{04oYQ>&vI#S#hFq|s%tWIY;?M4zk z7BG^gV-|F+%eqrZRTglXc)FFS1RQ@p9M^$I?vijLzKnCRu<1oSuDD;SXyPVddgybl*JM#i#aNbIVg*aXwTx#__^Zq48FN& z9khK5?_lb0C7Z@)UQfadjzuy)3+M37f%9+ypPxGa1G9fw&J(QjS8xe4CFeD?IkfqO z#kVkPZ#}8JC$$2ZX=}owS~+kT$9?#XqjBJCmS@i9Im7bI^E`7l&r}8votfb&D4qqD zXVK=FW_hmgJc~BZOa>42j^XK7JWJ}3?eki;dCsvs-@*!aUduMm`3xTFVZ&2YJl9yB zRhws)<+;K0tlB&mGkEA*GCYHd=R3HGQ+9pUY@SOj&pQ5lVETE@=DD1~L*KOF5sK#y zTc5i&&m7CM!Pn=m%~Q(Yp}WQK3@M&_EYGIRv%vB^;CVJ}p2Z9vy5kJbu;O{h@;tJ6 zuCP2?JkKMWXDNe+?pnh$qIiB_`{#+xv&`~r^ZoP0=DC`|LwCO6IjwkhSe{**XNBeY zk>}a9d9G#f&~K078C5)cEKkMexz6%D<9RAJ&y5To`VBNZV~S^=<#}%N++=xP@;uLN tp0x}f`Ykp*BMGog5X#b*wF`yW~rrYZmc diff --git a/target/classes/com/gameplatform/server/model/entity/agent/table/LinkBatchTableDef.class b/target/classes/com/gameplatform/server/model/entity/agent/table/LinkBatchTableDef.class new file mode 100644 index 0000000000000000000000000000000000000000..a2d8253d1798a39aa1c66d435372ad502fe1c6d6 GIT binary patch literal 2867 zcmeHJ-A@xi5T7m3mICr6D1NTrtpcaU7X?X5dr0Ha0==T>L$f`WcHusny)CgZ{#_=T z=)3VB@t-ix9Y>1N2Z<*7(1+XEoy`7b`rGNueEI(2697DghY5%gShhSzt22i;ZKifT z>1aNe2V827x5I6XyGp3G#_G7y6sy@>GlaXp%#_tIgJYiWCZM0d*d9Azn$6t0R;ulB zOA$yJh2rz-a@NeP6382W?r4EPtdJ)#Vr;ayZ09_?<+!LEFbivXnLsl8OfQ<%z$Cd* z$rjCmxs73j5md{CS2`YYn|jvN^VO_LV5qdNZ)VNXW_V>JujeZ{v$|d?6iq}M${I#B zS28MVMLdn>^_6VJFguzvuYU<6z9?LwmI(BvGg}1ubI4!<&f(n-H@cLbOu`Hq_*QWx z_dWZ7?@*+sDUg5RxwI)gq}B1C(A1#W;8ZwGPpZIV-f7p+#^1I18)`Av^%SjfdW3R% z^XUD$U{U2!Mpe7XQ-jC2?pglCc#oxChV=d&VHN%dl_4mO4p$9tht|0&VhejARHJM) zxWm#JDty{?=5T%!9KI=4jM zzB?Uy3Z~)WFigTF0#j+D(+mzhECkJB6ocZ$mQ&+0Y^ww&49{Zr7Ly_<(~+`YHH1&# zaTk=6xFj-LC6iX8oq%~9K91Fu z1l-4g=4jd?FuW#wA5+uBWcJ}2;J|?c-4M*c0K{=O4hcwxaxjvqNDf7EIFcigJQK;$ zNRCBv93~K_4?Rr6SzM>^^e8+7q&~v*_Qd)3aN#p*V{jSQINAjES8yE;_bIp<#uP&Y zidIJm{b+GIgqwI{qz`{Cz;*m?;78yV+&%^xL){_hoi1U`cL^&19UzcF(Fb>Njln&b OMG5c#zc`-fK>GoKjb;e| literal 0 HcmV?d00001 diff --git a/target/classes/com/gameplatform/server/model/entity/agent/table/LinkTaskTableDef.class b/target/classes/com/gameplatform/server/model/entity/agent/table/LinkTaskTableDef.class new file mode 100644 index 0000000000000000000000000000000000000000..e7856fbcb2ba08ae201331e1dcf49187a91054bf GIT binary patch literal 3726 zcmeHKZF3tn5MDWn?Oc+kO$ksaROO|$q0Iqpd1*^#uIEea$>kjEb6SQE9@$ZBwfExD z$r(Hhzl#}|f$#kb{1=A3vy9W!AIQ+o@WCIXXSH7K>UL%6(euB4{T%?lg|7>cBVcvo z(Co304+5r+V;PzWmnU4BVSK~`lSfLZk;!@}n2L1*Zn`3R=CcGFjw<}P0E+}JK4mA& z3|Q1N>z${(s|YN+HE*x&Tg^QJw)>yMJRp#(RS2xP-wnAO*>NxoBUBdbdc|pbbprW@ zvsIQu&a;qK)Y_A}gL>$q9 zjIk(Ta-SN@exFkj4q~ZNldW*nL7U__;6KtXi=tT34yO|@=Qr2YpW%zDm@=wH18yvz zs@2@`g^bU$G~Xffe@AwT&rgQ=$uPOi=6A{jsq592kpNFhe zrXr!k=!hSS2uTGpL8{O`J)`Ma#y2JlQ&%=aAEl;}BI@0urH4_R&D*BW%JlX&{psg( zIXB=cTwjGN@Bx9%k~^h8;{Xp*dbEy9;@&XqaGB9i0vm4JWx*knA|)nTxv2UgA@I!% zFE9IjS(8S}Cs}@wkwus=0!u6q2}8oWpJnoZNmMH?F-(qO_jpFE@+)A!Mc5+n{9n?( zX=(nqRUT(D&6v@QhqB9eM1bktJiFJn()y#m7Iot&5sAWwNL6sjWVb&mz+D0>r*6># ze2G+l@-iW?x-XIhccqWpIDzYc^cvqjmvD0}K|YfTP|R>yqoHv{hjaZ}@)8sCDqG42Ac=nA}p{ku52n~edC-{9)^8}I)D^bgeL;6v>5Xp`E1 zg#BtJ8}M=V4LS611Fa?=7SZB-9zMYtYYT7_p@glBjlidH>y*c&oQ&sf&|8OutY bE)g&h7T`1NbMQHQfe7#wwmgpSz`ef#t+#?T literal 0 HcmV?d00001 diff --git a/target/classes/com/gameplatform/server/security/JwtAuthenticationFilter.class b/target/classes/com/gameplatform/server/security/JwtAuthenticationFilter.class deleted file mode 100644 index d04d60d4159d9a8c590455476d6e896a62056c29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7745 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 diff --git a/target/classes/com/gameplatform/server/service/UserService.class b/target/classes/com/gameplatform/server/service/UserService.class deleted file mode 100644 index 395a01335344e97237124e93d464f9200e242ac0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7259 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 diff --git a/target/classes/com/gameplatform/server/service/account/AccountService.class b/target/classes/com/gameplatform/server/service/account/AccountService.class deleted file mode 100644 index 7635ee904d60e6bc46380ba89bfe0e4eeec16cf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11316 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 HM(fuAA@N!) diff --git a/target/classes/com/gameplatform/server/service/external/ScriptClient.class b/target/classes/com/gameplatform/server/service/external/ScriptClient.class deleted file mode 100644 index 67256bc32f9fcb4088c454dcd838c1dbeae078ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6202 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 bf`77YrYETO6x%1+I&A;N_FlICF0cGQ$a6#~ diff --git a/target/classes/com/gameplatform/server/service/link/LinkGenerationService$GenerateResult.class b/target/classes/com/gameplatform/server/service/link/LinkGenerationService$GenerateResult.class deleted file mode 100644 index 5c43861ea568b5d4e409fca0b788541cd0064986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1760 zcmb`GTT|0O6vxlDrG=6Tf}&g$(Fz5Wc)`m6GNX87td+40?`gW0#WZ1(Eu&w?C-1)K zjE*xt_yPP-j{n`XDa7#N__8NCd(MAnt1N%5)cs`BgZM%RrRh=NRaj*Xm&T~!1Z z49Zh~SeHn&QdM)4P_k|jevBU?npvIq(vF_p} ztvOZ@@E}Lm7%lz#$S^u`@EPJ6Rd^sDdV!=VR3VMWo}rW)5qzaoYqdplv_**!W$5n$ zd=R7otb_2Fune|m?mHd*qCUh$==J35~Z;R|Q+5~9Pg%HjbRy2N=ca~W%juFzH3JT@6E(sf+y IhW0Q10pC+xMgRZ+ diff --git a/target/classes/com/gameplatform/server/service/link/LinkGenerationService.class b/target/classes/com/gameplatform/server/service/link/LinkGenerationService.class deleted file mode 100644 index bc18a572c4289d59a0c22de4b283fd6ab4f73ab7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9653 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 diff --git a/target/classes/com/gameplatform/server/service/link/LinkStatusService.class b/target/classes/com/gameplatform/server/service/link/LinkStatusService.class deleted file mode 100644 index 0f07c54a01d059aefa5f948a7392fe207a2ff19f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7952 zcmcIpd3;pYb^eZK&>Ia8BnE?#F(5D)Z7^Q3L4XmG01+)%BZP(P;HQ}e0+d?h-I-7TKro+BeHWQ5nNuGNuLeZfFubwiM$P-pKI-j-%LYY)FG1N45 zW;1E{Hijv5G_#o+s;%o2cw4N9>BoF5&~TOD>dE@rW`r|V>adQ5xSApinHfiqf>pIH z7A-L&oo=d|s_qI1s&&jlxrW7pc}1~z7-^+9Kd!+N9ZOLqDBozyrq0ypm<`>B6%@3q zZI2Htxjgp7D;Lk6nT_jFt6{ZZPLUcZ>8L|Jw*_DkCn5kZ4 zAV%{Nw_zjJXQZO)J3pDIy>fK9aC+s3+>os6^TUHB$`o64Xz;1gRvi`a6EvCOXqq~n zmb7x+>3x)HZ^4aj3+6#x*O4-9KnBBB$_ys61F>j& zm_ee`N?0UI71@w*JHm`-HcoqmIQ=3PjAX3Ifv3kzC#^)0 zU}SnDT}COTBroDSY$d|kR7%C67BW(>X!4^AyEJqQ7SEs-9e1Kfpbw_3c;TpEb6!(+ zd?`hIMzxW3FZwj>7A&8@IvpN1BiR@&5-N<+I`-f$hTQ=xn~0c^Hin8!G%Q$IJBde$ z!}cBb>bM&}A()-c4y41W=z!Us5H#0L1VgFQlNe0FOL>@9?y{7_O~DQQGGc9?h{^7f z_?k9*Toyup3?QO`%5bGH2kSaa3@TSkMdO02sH-Uws?)2oAKLq@DQHI$7LLT!h_W-=4C5xZr5-ePoE`;p9*|;AMYIs0!^R$|uK5y&zIDS&OLo^ZDdRS#Y zW&idPyz4F#8>q-==J2HAfH6UERL4VjnAtRLjF>I-TqCn5ni=LOoiP#_>g@WG{E7z4 z$2⁣ZqtuInz~bkd>50$0PW(z|X*HhxYaefj$999TqEv+4w1ZR>Nlmw_LG4U8zFH zWB43XpQBL4V~6{4Hj5uwl{Wn*4L>bdR@6!!#;O1`$1$wD;PX1ZfG^Su4j8el*-gKh zpx^>@TxiNGIDj%7_2Y3QH9RR;Kdk~T=gNK@#}Z|(r*-_ia$Hp^Ip|VL&*=D)a-)j0 zd-lsZzJjmPLYy79(EO>|V=g|1ujzQMK-ejP72y|je7!)}nf2jC!h7uLuU~rR#3kDs zRl)QP9WSfuNT*ocsaA8)$i^~?z&CZAR0QTw28TeanGP$4-_r3KatymX(sn2rO_|Ls ztQHpll!?Yo7S&99tu#k3zZk5KV^qg!oKeBred^l$rAi!9mB#CML&Le509YF3w$gN* z$G06Z@66J@=#(m6xdUcIhieztFAq!gfcrH+8(F82G3Mb{;S*UUC5+qMZ$8Y0zxHp=}^eKSaLAu?KxABew?(Yc}*0xV4 z?;q&+L&a&X;$&rv*e;87D8w=Rv5r3}K%&PSVnA1-eNV@q6(CWVJ%+!~@t10^0zjt` z9%jke9#Px>TF2k0?K*s&+t_iX!2U+<9~E~fd92KWAh+OOhKI+gyG>7YsO%U{WB59b$k8zp@=37<<5h}Hs)5# zikU`&78AZ#7uN1|TP(k*5GGz-W=Xko-s9hCw@&Tm`IBk%b4+` zl`>*^`F8Wkrps*6d7V&OOLtdmh=I`|XDgz_{w6;O&()<;__ERl%*;X4WVYYrR>JtP z-aNnj8)+iV@x{8GehJ7`n#?C0i(y%Xc%_vEg88*O-CD7Ozf#H7x-3$WZazWKW5x}> z^AbZLlZ9s_?UQQ+ce=|5r=Ym_jn9ld^0=#%Xsk)wPk&YwjWw)y?3fg>zfzNEa#FFq zR+l9z1Lu59D4JHq&bAWTov|`^w=)WkqF!4bklAd9I0I>v@k`_;9ow)yz&_9|y4))3 zSWvS1i!lc*E93zCku#W0gjLNO+?F4xw}srU%X-8jf8q6PgH53#MWYx-C0<=@4ns4HjOsmn*C!^se?usAVO7sOE!xJ#FA z^|sLmoXBhEPEx|xSo2AbE+OeG;K`pWjf!WX~e5X6)0a$6kE)!ue;%j=t<# z9Z+5B_Q)pI0=AM_O|;22Dmh)HT=H_SrEv?fvJ$yZm+i8HmONY~JLsP6iG-Q5JHRHx z6Cc;Brs%p9UNt!?SUU4oy0-&vEN3z1VZY7Gelfer90gQc(*9*rlE2rejxl%5;kXQQ z*{bxR5>=d;$C=0N(?D-PMiF=wi_YSj{!_U2RV+J+Wr5{^>rP{p2Yb{#ep4)i}q{f>y4RfUOj2Ea}=Q*`d{H>8Pvt*+I-fK;##V7 zjm>+Zb7-9RJlunil7ZqlOZcG;! z%o#kPcKz)6vp7!sKDEJH?d8(X2=&jh>4f@8F(->dr)8-J)m~*ok8Q)pa2>}t z(Uv!35!Uf*J*~NcGfminJJ?O$f*v$ukQTHElS2f`QS88@#Kf1d6ECpSeG(lwi%z`5 z-QPnuE?^hF&kpnZJo!WRgT3gJO6-wp^vhE0l}6kx>)5sje}*_r%-tR~7TNvl@sP)<&Msh0+5 z9D(jvKDXintk!Vs1FX{U`iFQ&!*LDoi_Z;Eku^nkkhN3XL4q^5!+yF$lJ2noO5H)^ zhAG^3^Nz~-7SuQ7 SELECT COUNT(1) FROM link_batch + + diff --git a/target/classes/mapper/agent/LinkTaskMapper.xml b/target/classes/mapper/agent/LinkTaskMapper.xml index a71bebe..9c9e3eb 100644 --- a/target/classes/mapper/agent/LinkTaskMapper.xml +++ b/target/classes/mapper/agent/LinkTaskMapper.xml @@ -110,4 +110,64 @@ ORDER BY expire_at ASC LIMIT #{size} + + + + diff --git a/target/generated-sources/annotations/com/gameplatform/server/model/entity/agent/table/LinkBatchTableDef.java b/target/generated-sources/annotations/com/gameplatform/server/model/entity/agent/table/LinkBatchTableDef.java new file mode 100644 index 0000000..bafd81e --- /dev/null +++ b/target/generated-sources/annotations/com/gameplatform/server/model/entity/agent/table/LinkBatchTableDef.java @@ -0,0 +1,50 @@ +package com.gameplatform.server.model.entity.agent.table; + +import com.mybatisflex.core.query.QueryColumn; +import com.mybatisflex.core.table.TableDef; + +// Auto generate by mybatis-flex, do not modify it. +public class LinkBatchTableDef extends TableDef { + + public static final LinkBatchTableDef LINK_BATCH = new LinkBatchTableDef(); + + public final QueryColumn ID = new QueryColumn(this, "id"); + + public final QueryColumn TIMES = new QueryColumn(this, "times"); + + public final QueryColumn AGENT_ID = new QueryColumn(this, "agent_id"); + + public final QueryColumn QUANTITY = new QueryColumn(this, "quantity"); + + public final QueryColumn BATCH_SIZE = new QueryColumn(this, "batch_size"); + + public final QueryColumn CREATED_AT = new QueryColumn(this, "created_at"); + + public final QueryColumn OPERATOR_ID = new QueryColumn(this, "operator_id"); + + public final QueryColumn DEDUCT_POINTS = new QueryColumn(this, "deduct_points"); + + /** + * 所有字段。 + */ + public final QueryColumn ALL_COLUMNS = new QueryColumn(this, "*"); + + /** + * 默认字段,不包含逻辑删除或者 large 等字段。 + */ + public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, TIMES, AGENT_ID, QUANTITY, BATCH_SIZE, CREATED_AT, OPERATOR_ID, DEDUCT_POINTS}; + + public LinkBatchTableDef() { + super("", "link_batch"); + } + + private LinkBatchTableDef(String schema, String name, String alisa) { + super(schema, name, alisa); + } + + public LinkBatchTableDef as(String alias) { + String key = getNameWithSchema() + "." + alias; + return getCache(key, k -> new LinkBatchTableDef("", "link_batch", alias)); + } + +} diff --git a/target/generated-sources/annotations/com/gameplatform/server/model/entity/agent/table/LinkTaskTableDef.java b/target/generated-sources/annotations/com/gameplatform/server/model/entity/agent/table/LinkTaskTableDef.java new file mode 100644 index 0000000..aa326a9 --- /dev/null +++ b/target/generated-sources/annotations/com/gameplatform/server/model/entity/agent/table/LinkTaskTableDef.java @@ -0,0 +1,62 @@ +package com.gameplatform.server.model.entity.agent.table; + +import com.mybatisflex.core.query.QueryColumn; +import com.mybatisflex.core.table.TableDef; + +// Auto generate by mybatis-flex, do not modify it. +public class LinkTaskTableDef extends TableDef { + + public static final LinkTaskTableDef LINK_TASK = new LinkTaskTableDef(); + + public final QueryColumn ID = new QueryColumn(this, "id"); + + public final QueryColumn CODE_NO = new QueryColumn(this, "code_no"); + + public final QueryColumn REGION = new QueryColumn(this, "region"); + + public final QueryColumn STATUS = new QueryColumn(this, "status"); + + public final QueryColumn AGENT_ID = new QueryColumn(this, "agent_id"); + + public final QueryColumn BATCH_ID = new QueryColumn(this, "batch_id"); + + public final QueryColumn LOGIN_AT = new QueryColumn(this, "login_at"); + + public final QueryColumn EXPIRE_AT = new QueryColumn(this, "expire_at"); + + public final QueryColumn REFUND_AT = new QueryColumn(this, "refund_at"); + + public final QueryColumn CREATED_AT = new QueryColumn(this, "created_at"); + + public final QueryColumn MACHINE_ID = new QueryColumn(this, "machine_id"); + + public final QueryColumn REVOKED_AT = new QueryColumn(this, "revoked_at"); + + public final QueryColumn TOKEN_HASH = new QueryColumn(this, "token_hash"); + + public final QueryColumn UPDATED_AT = new QueryColumn(this, "updated_at"); + + /** + * 所有字段。 + */ + public final QueryColumn ALL_COLUMNS = new QueryColumn(this, "*"); + + /** + * 默认字段,不包含逻辑删除或者 large 等字段。 + */ + public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, CODE_NO, REGION, STATUS, AGENT_ID, BATCH_ID, LOGIN_AT, EXPIRE_AT, REFUND_AT, CREATED_AT, MACHINE_ID, REVOKED_AT, TOKEN_HASH, UPDATED_AT}; + + public LinkTaskTableDef() { + super("", "link_task"); + } + + private LinkTaskTableDef(String schema, String name, String alisa) { + super(schema, name, alisa); + } + + public LinkTaskTableDef as(String alias) { + String key = getNameWithSchema() + "." + alias; + return getCache(key, k -> new LinkTaskTableDef("", "link_task", alias)); + } + +} diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index ee336ee..5e8bc98 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,41 +1,4 @@ -com\gameplatform\server\mapper\agent\LinkTaskMapper.class -com\gameplatform\server\exception\GlobalExceptionHandler$2.class -com\gameplatform\server\service\link\LinkGenerationService.class -com\gameplatform\server\mapper\agent\AgentPointsTxMapper.class -com\gameplatform\server\config\CorsConfig.class -com\gameplatform\server\exception\GlobalExceptionHandler.class -com\gameplatform\server\model\dto\common\PageResult.class -com\gameplatform\server\service\UserService.class -com\gameplatform\server\controller\auth\AuthController.class -com\gameplatform\server\GamePlatformServerApplication.class -com\gameplatform\server\service\link\LinkGenerationService$GenerateResult.class -com\gameplatform\server\mapper\admin\AnnouncementMapper.class -com\gameplatform\server\service\auth\AuthService.class -com\gameplatform\server\config\SwaggerConfig.class -com\gameplatform\server\mapper\account\UserAccountMapper.class -com\gameplatform\server\service\account\AccountService.class -com\gameplatform\server\security\JwtAuthenticationFilter.class -com\gameplatform\server\service\external\ScriptClient.class -com\gameplatform\server\model\dto\link\LinkGenerateResponse.class -com\gameplatform\server\controller\auth\AuthController$1.class -com\gameplatform\server\model\dto\link\LinkGenerateRequest.class -com\gameplatform\server\model\entity\admin\Announcement.class -com\gameplatform\server\model\entity\agent\AgentPointsTx.class -com\gameplatform\server\controller\admin\AccountController.class -com\gameplatform\server\model\dto\auth\LoginRequest.class -com\gameplatform\server\model\entity\account\UserAccount.class -com\gameplatform\server\model\dto\auth\LoginResponse.class -com\gameplatform\server\model\entity\agent\LinkTask.class -com\gameplatform\server\controller\link\LinkController.class -com\gameplatform\server\exception\GlobalExceptionHandler$1.class -com\gameplatform\server\mapper\agent\LinkBatchMapper.class -com\gameplatform\server\security\JwtService.class -com\gameplatform\server\mapper\admin\OperationLogMapper.class -com\gameplatform\server\model\entity\agent\LinkBatch.class -com\gameplatform\server\security\SecurityConfig.class -com\gameplatform\server\model\entity\admin\OperationLog.class -com\gameplatform\server\model\dto\account\AccountResponse.class -com\gameplatform\server\model\dto\account\AccountCreateRequest.class -com\gameplatform\server\controller\link\QrProxyController.class -com\gameplatform\server\model\dto\account\AccountUpdateRequest.class -com\gameplatform\server\model\dto\account\ResetPasswordRequest.class +com\gameplatform\server\model\entity\agent\table\LinkTaskTableDef.class +com\gameplatform\server\service\link\FlexLinkListService.class +com\gameplatform\server\service\link\OptimizedFlexLinkListService.class +com\gameplatform\server\model\entity\agent\table\LinkBatchTableDef.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 4966aa4..a62f2fe 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,37 +1,55 @@ D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\agent\AgentPointsTxMapper.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\admin\AnnouncementMapper.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\security\SecurityConfig.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\account\ResetPasswordRequest.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\link\FlexLinkListService.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\account\AccountService.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\auth\AuthService.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\auth\LoginRequest.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\controller\admin\AccountController.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\external\ScriptClient.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\agent\LinkBatchMapper.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\controller\link\QrProxyController.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\controller\admin\SystemConfigController.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\agent\LinkTaskMapper.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\config\SwaggerConfig.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\admin\SystemConfig.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\account\AccountResponse.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\admin\OperationLog.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\link\LinkListItem.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\UserService.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\controller\auth\AuthController.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\security\JwtService.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\config\CorsConfig.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\common\PageResult.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\link\LinkGenerateResponse.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\GamePlatformServerApplication.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\link\LinkGenerateRequest.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\agent\LinkTask.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\link\SimplifiedFlexLinkListService.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\account\AccountUpdateRequest.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\admin\Announcement.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\security\JwtAuthenticationFilter.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\agent\AgentPointsTx.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\auth\LoginResponse.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\controller\link\LinkController.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\admin\OperationLogMapper.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\link\LinkListService.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\admin\SystemConfigConverter.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\flex\agent\LinkTaskFlexMapper.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\agent\LinkBatch.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\link\LinkListResponse.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\security\SecurityConfig.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\account\ResetPasswordRequest.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\link\LinkStatusService.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\auth\LoginRequest.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\admin\SystemConfigResponse.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\controller\link\QrProxyController.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\config\SwaggerConfig.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\admin\OperationLog.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\controller\auth\AuthController.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\security\JwtService.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\config\CorsConfig.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\admin\SystemConfigRequest.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\link\LinkGenerateResponse.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\GamePlatformServerApplication.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\agent\LinkTask.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\admin\Announcement.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\link\LinkStatusResponse.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\admin\SystemConfigService.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\link\LinkListRequest.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\link\LinkGenerationService.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\exception\GlobalExceptionHandler.java -D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\agent\LinkBatch.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\admin\SystemConfigMapper.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\account\UserAccountMapper.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\service\link\OptimizedFlexLinkListService.java +D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\mapper\flex\agent\LinkBatchFlexMapper.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\dto\account\AccountCreateRequest.java D:\project\gamePlatform\server\src\main\java\com\gameplatform\server\model\entity\account\UserAccount.java