管理端与决策端分离部署,多模块清晰职责,多级缓存与多租户隔离贯穿整个链路。
前后端分离,Admin 与 Engine 双服务部署,共享数据层与缓存层。
围绕风控决策全链路,划分为 8 大功能模块,按业务能力组织,开箱即用。
以「模型」为根组织决策资产,每个模型下挂载多种策略类型 (规则引擎、决策树、评分卡、决策表、名单匹配、规则集), 支持草稿 / 发布 / 下线状态流转。
基于 Vue Flow 的可视化 DAG 编辑器,支持节点拖拽、条件分支、并行执行。 DRAFT 状态可直接仿真,节点轨迹实时可见,不写入生产日志。
集中化特征注册、定义与版本管理;支持原始特征、衍生特征、 时间窗口聚合特征;多模型共享同一特征源,避免重复加工。
独立部署的高性能决策端(:8081),基于 Aviator 表达式引擎, 支持 Caffeine + Redis 多级缓存,单次决策稳定毫秒级响应。
统一管理黑/白/灰名单,支持手机号、设备号、IP、身份证等多种命中维度, 批量导入导出,支持过期自动失效。
实时指标大盘、规则命中统计、特征监控、SLA 告警; 支持企业微信、邮件多渠道通知,第一时间发现策略异常。
模型/策略一键打版本快照,支持灰度发布、流量分配、 Champion-Challenger 对比,一键回滚到任意历史版本。
MyBatis-Plus 拦截器行级租户隔离 + RBAC 角色权限模型 + API Key 管理 + 操作审计日志,满足 SaaS 化部署与合规要求。
预置互金、消金、反欺诈等行业模板(决策流、策略、规则集合), 一键导入到当前租户,开箱即用。支持自定义模板共享。
统一在最新稳定版本上,避免技术债。后端 Java 17 + Spring Boot 3,前端 Vue 3 + Vite。
所有模块共同遵守的工程约束。
需要隔离的表必须有 tenant_id,通过 TenantLineInnerInterceptor 自动注入 WHERE 条件。继承 TenantBasePO,唯一键用 uk_tenant_id_code。
主表用 TenantBasePO;子表/明细表用 BasePO 并加入 IGNORE_TABLES, 通过外键关联父表隔离,避免重复注入 tenant_id。
所有 DDL 变更通过 V{n}__{desc}.sql 管理,版本号严格递增。 表必须包含 id、create_time、update_time、is_deleted 字段。
Admin 端修改后通过 Redis Pub/Sub 通知所有 Engine 节点清理 Caffeine 缓存, 条件 Bean 必须用 @Configuration + @Bean。
每个阶段完成后执行 mvn compile;前端执行 npm run build (含 vue-tsc 类型检查),保证主分支始终可构建。
所有 Controller 返回 R<T>,分页用 PageResult<T>。 用户上下文统一通过 SecurityContextHolder 获取。