本文引用的文件
本文面向使用后端交易数据的开发者、分析师和调查人员,整理交易相关控制器的对外 API。重点覆盖:
每个接口均说明 HTTP 方法、URL、请求体结构、主要返回字段、分页方式、排序方式和常见错误处理思路,并补充交易数据与人员、账户、交易对手、治理树之间的关系说明。
交易类接口集中在 com.zsjz.ai.module.trans.controller 包下,采用 Spring REST 风格,统一通过 POST 或 GET 暴露,并以统一结果对象包装返回。
graph TB
subgraph "交易控制器层"
TF["TransFundFlowController<br/>资金流向"]
TFF["TransFastFundFlowController<br/>快速流水"]
TFD["TransFixedDepositController<br/>固定存款"]
TFT["TransFinancialController<br/>金融分析"]
CK["CashKeyController<br/>现金关键字配置"]
TR["TransRecordController<br/>交易记录"]
end
subgraph "服务层与模型"
SVC["Service 业务逻辑"]
DTO["DTO/Query 请求与响应对象"]
end
TF --> SVC
TFF --> SVC
TFD --> SVC
TFT --> SVC
CK --> SVC
TR --> SVC
SVC --> DTO
图示来源
章节来源
交易数据在系统中通常围绕以下实体展开:
典型关系如下:
erDiagram
PERSON ||--o{ ACCOUNT : "拥有或关联"
ACCOUNT ||--o{ TRANSACTION : "发生交易"
PERSON ||--o{ TRANSACTION : "作为交易一方"
TRANSACTION ||--o{ COUNTERPARTY : "对应交易对手"
GOVERN_TREE ||--o{ TRANSACTION : "数据归属或权限范围"
该关系有助于理解不同接口的查询维度:
图示来源
TransFundFlowController/trans/fundsFlow| 序号 | 方法 | URL | 请求体类型 | 主要用途 | 主要返回字段 | 分页 | 排序 |
|---|---|---|---|---|---|---|---|
| 1 | POST | /trans/fundsFlow/getTransFundFlowPage |
TransRecordQuery |
分页查询资金流向数据 | 资金流向列表、总数、当前页、每页条数 | 支持 | 通常依赖 Query 中的排序字段 |
| 2 | POST | /trans/fundsFlow/graph |
TransFlowGraphQuery |
资金流向图分析 | 树形节点、节点关系、汇总金额 | 不适用 | 不适用 |
| 3 | POST | /trans/fundsFlow/trace |
TransFlowGraphQuery |
资金流向追溯分析 | 追溯链、上游下游账户、关键中转节点 | 不适用 | 不适用 |
请求参数要点
TransRecordQuery,通常包含账户、人员、时间范围、金额范围、交易对手、治理范围等筛选条件。TransFlowGraphQuery,通常以账户或人员为起点,限制深度、时间范围和金额阈值。响应字段要点
Page 对象,包含列表、总数、页码、每页大小等。TransFlowDTO,用于展示资金流动拓扑。章节来源
TransFastFundFlowController/trans/fastFundFlow| 序号 | 方法 | URL | 请求体类型 | 主要用途 | 主要返回字段 | 分页 | 排序 |
|---|---|---|---|---|---|---|---|
| 1 | POST | /trans/fastFundFlow/statFirstTransFastFundFlow |
TransFastFundFlowQuery |
统计首次资金快转流水 | 银行统计、交易明细、首笔快转标识 | 不适用 | 不适用 |
请求参数要点
响应字段要点
TransFastFundFlowDTO,包含银行维度的统计信息和具体交易明细。章节来源
TransFixedDepositController/trans/fixedDeposit| 序号 | 方法 | URL | 请求体类型 | 主要用途 | 主要返回字段 | 分页 | 排序 |
|---|---|---|---|---|---|---|---|
| 1 | POST | /trans/fixedDeposit/statFirstTransFixedDeposit |
TransFixedDepositQuery |
统计首层定期存款汇总 | 人员姓名、账户、收入总额、支出总额 | 否 | 否 |
| 2 | POST | /trans/fixedDeposit/statSecondTransFixedDepositList |
TransFixedDepositQuery |
统计第二层定期存款明细 | 明细列表、账户变动明细 | 是 | 是 |
请求参数要点
响应字段要点
List<TransPersonFixedDepositDTO>。Page<TransPersonFixedDepositDetailDTO>,包含分页字段。章节来源
TransFinancialController/trans/financial| 序号 | 方法 | URL | 请求体类型 | 主要用途 | 主要返回字段 | 分页 | 排序 |
|---|---|---|---|---|---|---|---|
| 1 | POST | /trans/financial/statFirstTransFinancial |
TransFinancialQuery |
统计首笔交易金融数据 | 金融统计项、金额、频次、账户或人员聚合 | 是 | 是 |
请求参数要点
响应字段要点
Page<TransFinancialDTO>,适合前端表格分页展示。章节来源
CashKeyController/trans/cashKey| 序号 | 方法 | URL | 请求体类型 | 主要用途 | 主要返回字段 | 分页 | 排序 |
|---|---|---|---|---|---|---|---|
| 1 | GET | /trans/cashKey/list |
无 | 获取所有现金关键字 | 现金关键字列表 | 否 | 否 |
| 2 | POST | /trans/cashKey/createOrUpdate |
TransCashKey |
创建或更新现金关键字 | 布尔值,表示是否成功 | 否 | 否 |
| 3 | GET | /trans/cashKey/delete |
id 查询参数 |
根据 ID 删除现金关键字 | 布尔值,表示是否成功 | 否 | 否 |
请求参数要点
TransCashKey 实体,通常包含 ID、关键字内容、启用状态等。id 指定要删除的记录。响应字段要点
List<TransCashKey>。Boolean,表示保存或删除是否成功。章节来源
以下控制器在当前仓库中已存在,但本文未逐行展开其源码。实际使用时应参考对应 Controller、Service、DTO 和 Mapper 定义确认具体字段和行为:
TransBigController、TransBigService、TransBigQuery、TransBigDTOTransFrequencyController、TransFrequencyService、TransFrequencyQuery、TransFrequencyDTOTransContinuousController、TransContinuousService、TransContinuousQuery、TransContinuousDTOTransCardHoldController、TransCardHoldServiceTransSensitiveController、TransSensitiveService、TransSensitiveDTOTransRecordController、TransRecordService、TransRecordQuery、TransRecord这些接口通常遵循相同约定:
Page<T>。Result<Boolean> 或 Result<Void>。current、size、total、pages、records。sortField、orderDirection。章节来源
以资金流向分页接口为例,说明如何按账户查询交易。
/trans/fundsFlow/getTransFundFlowPage请求体示例
{
"account": "示例账户",
"startTime": "2025-01-01 00:00:00",
"endTime": "2025-12-31 23:59:59",
"minAmount": 0,
"maxAmount": 1000000,
"current": 1,
"size": 20
}
主要字段说明
account:账户或卡号,用于限定交易主体。startTime、endTime:时间范围,必须满足时间格式要求。minAmount、maxAmount:金额范围,用于过滤小额或异常大额交易。current、size:分页参数。响应示例
{
"code": 200,
"message": "success",
"data": {
"records": [],
"total": 0,
"current": 1,
"size": 20
}
}
注意事项
/trans/fundsFlow/graph 或 /trans/fundsFlow/trace。章节来源
以快速流水接口为例,说明如何按人员查询资金快转行为。
/trans/fastFundFlow/statFirstTransFastFundFlow请求体示例
{
"personId": "示例人员ID",
"cardNo": "示例卡号",
"startTime": "2025-06-01 00:00:00",
"endTime": "2025-06-30 23:59:59",
"thresholdAmount": 50000
}
主要字段说明
personId:人员标识。cardNo:人员关联的银行卡号。startTime、endTime:快转行为观察窗口。thresholdAmount:快转金额阈值,用于判断是否构成快速流转。响应示例
{
"code": 200,
"message": "success",
"data": {
"bankStats": [],
"transactionDetails": []
}
}
调查意义
章节来源
Page<T>,字段包括:
records:当前页数据列表。total:符合条件的总记录数。current:当前页码。size:每页条数。pages:总页数。current=1、size=20。size≤100。total 计算总页数并禁用无效页码。sortField:排序字段名。orderDirection:升序或降序。大多数接口返回统一包装对象,典型结构如下:
{
"code": 200,
"message": "success",
"data": {}
}
code:业务状态码。message:提示信息。data:业务数据,可能是列表、分页对象、树形结构或布尔值。章节来源
| 错误类型 | 可能原因 | 排查建议 |
|---|---|---|
| 请求参数缺失 | 未传必要字段,如账户、人员、时间范围 | 检查 JSON 字段名是否与接口定义一致 |
| 时间格式错误 | 时间字符串不符合服务端解析格式 | 使用标准日期时间格式,避免时区歧义 |
| 金额格式错误 | 金额字段为空、非数字或负数 | 校验最小值、最大值和数值类型 |
| 时间范围过长 | 查询跨度太大导致性能问题 | 缩短时间范围,分批次查询 |
| 数据量过大 | 未分页或分页 size 过大 | 调整 current、size,增加更多筛选条件 |
| 权限不足 | 当前用户无权访问该案件或数据源 | 检查登录身份、案件归属、数据源权限 |
| 配置缺失 | 现金关键字、金融关键词未配置 | 调用配置接口查看或新增关键字 |
flowchart TD
Start["收到接口错误"] --> CheckParam["检查请求参数是否完整"]
CheckParam --> ParamValid{"参数是否合法"}
ParamValid -->|否| FixParam["修正字段名、类型或必填项"]
ParamValid -->|是| CheckTime["检查时间范围和时间格式"]
CheckTime --> TimeValid{"时间是否有效"}
TimeValid -->|否| FixTime["修正时间格式或缩短时间范围"]
TimeValid -->|是| CheckAmount["检查金额范围和格式"]
CheckAmount --> AmountValid{"金额是否有效"}
AmountValid -->|否| FixAmount["修正金额字段"]
AmountValid -->|是| CheckDataSize["检查数据量和分页设置"]
CheckDataSize --> SizeValid{"是否合理分页"}
SizeValid -->|否| AdjustPage["调整 current 和 size"]
SizeValid -->|是| CheckPermission["检查用户权限和数据源"]
CheckPermission --> PermValid{"是否有权限"}
PermValid -->|否| FixAuth["检查登录、案件和数据源权限"]
PermValid -->|是| LogCheck["查看后端日志和服务端错误"]
FixParam --> End["重新调用"]
FixTime --> End
FixAmount --> End
AdjustPage --> End
FixAuth --> End
LogCheck --> End
图示来源
章节来源
调查价值
常与高频、大额、快速流水组合使用,形成风险画像。
flowchart TD
Raw["原始交易数据"] --> HighFreq["高频交易分析"]
Raw --> BigAmt["大额交易分析"]
Raw --> Sensitive["敏感交易分析"]
HighFreq --> RiskProfile["风险画像"]
BigAmt --> RiskProfile
Sensitive --> RiskProfile
RiskProfile --> Investigation["调查分析与取证"]
[本图为概念性流程图,不直接映射具体源码文件]
章节来源
交易数据接口体系以账户、人员、交易对手和治理范围为基本查询维度,提供资金流向、快速流水、固定存款、金融分析、现金关键字配置等能力。实际使用中应: