# 流水分析接口测试脚本 ## 环境配置 - **Mock Server 地址**: http://localhost:8000 - **后端服务地址**: http://localhost:8080 - **测试账号**: admin / admin123 ## 测试说明 本测试脚本用于验证 ccdi-lsfx 模块的 form-data 接口改造。所有接口已从 JSON 格式改为 multipart/form-data 格式。 --- ## 1. 获取 Token **接口说明**: 获取访问令牌 **请求示例**: ```bash curl -X POST "http://localhost:8080/lsfx/test/getToken" \ -H "Content-Type: multipart/form-data" \ -F "projectNo=902000_202603021400" \ -F "entityName=902000_202603021400" \ -F "userId=testuser" \ -F "userName=测试用户" \ -F "orgCode=ORG001" \ -F "entityId=ENTITY001" \ -F "role=审查人员" \ -F "analysisType=流水分析" \ -F "departmentCode=DEPT001" ``` **预期响应**: ```json { "code": 200, "msg": "操作成功", "data": { "projectId": 123, "token": "mock-token-xxx", "groupId": 456 } } ``` --- ## 2. 上传文件 **接口说明**: 上传银行流水文件 **请求示例**: ```bash curl -X POST "http://localhost:8080/lsfx/test/uploadFile" \ -H "Content-Type: multipart/form-data" \ -F "groupId=456" \ -F "file=@test-data.xlsx" ``` **预期响应**: ```json { "code": 200, "msg": "操作成功", "data": { "uploadLogList": [ { "logId": 789, "fileName": "test-data.xlsx", "uploadTime": "2026-03-03 14:00:00" } ] } } ``` --- ## 3. 拉取行内流水 **接口说明**: 从核心系统拉取行内流水数据 **请求示例**: ```bash curl -X POST "http://localhost:8080/lsfx/test/fetchInnerFlow" \ -H "Content-Type: multipart/form-data" \ -F "groupId=456" \ -F "customerNo=CUST001" \ -F "dataChannelCode=CHANNEL001" \ -F "requestDateId=20260303" \ -F "dataStartDateId=20260101" \ -F "dataEndDateId=20260303" \ -F "uploadUserId=testuser" ``` **预期响应**: ```json { "code": 200, "msg": "操作成功", "data": { "code": "SUCCESS", "message": "拉取成功", "fetchTime": "2026-03-03 14:00:00" } } ``` --- ## 4. 检查解析状态 **接口说明**: 检查文件解析状态 **请求示例**: ```bash curl -X POST "http://localhost:8080/lsfx/test/checkParseStatus" \ -H "Content-Type: multipart/form-data" \ -F "groupId=456" \ -F "inprogressList=789,790,791" ``` **预期响应**: ```json { "code": 200, "msg": "操作成功", "data": { "parsing": false, "pendingList": [ { "logId": 789, "fileName": "test-data.xlsx", "status": "COMPLETED" } ] } } ``` --- ## 5. 获取银行流水 **接口说明**: 分页获取银行流水明细 **请求示例**: ```bash curl -X POST "http://localhost:8080/lsfx/test/getBankStatement" \ -H "Content-Type: multipart/form-data" \ -F "groupId=456" \ -F "logId=789" \ -F "pageNow=1" \ -F "pageSize=20" ``` **预期响应**: ```json { "code": 200, "msg": "操作成功", "data": { "totalCount": 100, "totalPage": 5, "currentPage": 1, "pageSize": 20, "list": [ { "transactionDate": "2026-01-15", "transactionAmount": 10000.00, "balance": 50000.00, "summary": "转账收入" } ] } } ``` --- ## 测试步骤 ### 步骤 1: 启动 Mock Server 确保 Mock Server 已启动并监听在 `http://localhost:8000`。 ```bash # 示例:如果使用 Python Flask python lsfx-mock-server/app.py ``` ### 步骤 2: 启动后端服务 ```bash cd ruoyi-admin mvn spring-boot:run ``` 或使用 Windows 脚本: ```bash ry.bat ``` ### 步骤 3: 获取访问 Token ```bash curl -X POST "http://localhost:8080/login/test?username=admin&password=admin123" ``` 记录返回的 token。 ### 步骤 4: 执行接口测试 按照上述接口顺序依次测试。 ### 步骤 5: 验证日志 检查后端日志,确认: - ✅ 所有请求都使用了 `postFormData` 方法 - ✅ Content-Type 为 `multipart/form-data` - ✅ 响应正常解析 --- ## 常见问题 ### Q1: 接口返回 401 Unauthorized **解决方案**: 先调用登录接口获取 token,并在后续请求中添加 Authorization header。 ### Q2: 接口返回 400 Bad Request **可能原因**: - 参数名称错误 - 缺少必填参数 - 参数格式不正确 **解决方案**: 检查请求参数是否完整且格式正确。 ### Q3: 文件上传失败 **可能原因**: - 文件路径错误 - 文件大小超过限制(默认 10MB) **解决方案**: - 使用绝对路径或正确的相对路径 - 检查文件大小 --- ## 技术要点 ### Form-Data 格式说明 本次改造将所有接口从 JSON 格式改为 multipart/form-data 格式: **改造前(JSON)**: ``` Content-Type: application/json { "projectNo": "902000_202603021400", "entityName": "902000_202603021400", ... } ``` **改造后(Form-Data)**: ``` Content-Type: multipart/form-data; boundary=----WebKitFormBoundary ------WebKitFormBoundary Content-Disposition: form-data; name="projectNo" 902000_202603021400 ------WebKitFormBoundary Content-Disposition: form-data; name="entityName" 902000_202603021400 ------WebKitFormBoundary ... ``` ### ObjectUtil 工具类 改造中新增了 `ObjectUtil` 工具类,用于简化对象转 Map 的操作: ```java // 改造前 Map params = new HashMap<>(); params.put("projectNo", request.getProjectNo()); params.put("entityName", request.getEntityName()); // ... 手动添加所有字段 // 改造后 Map params = ObjectUtil.toMapIgnoreNull(request); // 只需手动添加特殊字段 ``` --- ## 测试清单 - [ ] 接口1:获取 Token - 通过 - [ ] 接口2:上传文件 - 通过 - [ ] 接口3:拉取行内流水 - 通过 - [ ] 接口4:检查解析状态 - 通过 - [ ] 接口5:获取银行流水 - 通过 - [ ] 日志验证 - 所有接口都使用 postFormData - [ ] 异常处理 - 正常捕获并处理异常 --- ## 测试结果记录 **测试日期**: 2026-03-03 **测试环境**: - Mock Server: http://localhost:8000 - 后端服务: http://localhost:8080 **测试结论**: _待填写_ **问题记录**: _待填写_