# 疑似敏感交易最低金额门槛后端实施记录

## 修改背景

疑似敏感交易原先只要支出流水摘要或对手方命中赌博、游戏、彩票等敏感关键词，且支出金额大于 0 即会命中，导致 20 元、50 元等小额支出也进入疑似敏感交易明细。

参考本地知识库中 LSFX 的个人敏感支出口径，敏感类规则通常会结合金额条件控制误报。本次按业务确认，不新增模型参数，不改数据库脚本，直接在后端规则查询中固定最低金额门槛。

## 修改内容

1. 员工疑似敏感交易 `GAMBLING_SENSITIVE_KEYWORD`
   - 命中条件由 `AMOUNT_DR > 0` 调整为 `AMOUNT_DR >= 200`。
   - 命中原因追加“达到敏感交易最低金额 200 元”。

2. 外部人员疑似赌博摘要 `EXTERNAL_GAMBLING_MEMO`
   - 命中条件由交易金额大于 0 调整为交易金额 `>= 200`。
   - 交易金额仍按收入、支出两侧最大值判断。
   - 命中原因追加“达到敏感交易最低金额 200 元”。

3. 后端单测
   - 增加 Mapper XML 断言，确保两类敏感关键词规则都保留 200 元最低金额门槛。

## 影响范围

- 影响员工疑似赌博模型下的“疑似敏感交易”流水命中。
- 影响外部人员可疑赌博模型下的“外部人员疑似赌博摘要”流水命中。
- 不新增模型参数，不改 `ccdi_model_param`，不需要执行数据库脚本。
- 低于 200 元的敏感词流水不再命中上述两类规则。

## 验证情况

- 已补充后端 Mapper XML 单测断言。
- `mvn -pl ccdi-project -DskipTests compile` 执行通过。
- 已执行 Mapper 静态校验，确认员工疑似敏感交易和外部人员疑似赌博摘要均包含 `>= 200` 最低金额条件。
- 尝试执行 `mvn -pl ccdi-project "-Dtest=CcdiBankTagAnalysisMapperXmlTest,BankTagRuleConfigResolverTest,CcdiBankTagServiceImplTest" test`，但在 `testCompile` 阶段被既有无关测试编译错误阻断：`CcdiFileUploadServiceImplTest` 仍使用旧版 `LsfxAnalysisClient.uploadFile` 参数签名，`CcdiBankStatementTest` 仍调用当前 `BankStatementItem` 不存在的旧 setter。
