现状代码架构 — 总览
本目录是对现有代码仓库的客观还原,只记录代码实证。看不到的写「未见/待确认」,代码引用但本地缺失的标「未推送」,不臆断。不做改造映射(现状→MVP gap 是另一阶段)。
本文是目录入口 + 全局地图:技术栈/部署/服务全景/缺口。深入内容见各专篇(见文末「文档索引」)。
来源与范围
| 项 | 内容 |
|---|---|
| 厂商 | 宇信科技(包名 com.yusys.*),现金贷平台产品 |
| 后端仓库 | backend-cashloan(GitLab),10 个独立 Git 库 |
| 前端仓库 | frontend-cashloan:android(原生 roovault)+ h5(Vue2 wp_h5),混合架构——见 12-前端现状 |
| 官方服务全集 | 据 system.png 共 13 个服务。本地 10 repo = 8 可部署 + 2 空壳(agg/crs,「项目初始化」);缺 bns / bns-gateway / res(「项目改造中」,未推送) |
技术栈
| 层 | 选型 |
|---|---|
| 语言/运行时 | Java,Spring Boot |
| 微服务框架 | Spring Cloud Netflix:Eureka(注册)、Gateway(网关)、Hystrix(熔断)、Turbine、Zipkin(链路) |
| 服务间调用 | OpenFeign(HTTP),目标地址由 Apollo 注入 url=${ENV}(显式 URL 而非 Eureka 服务名发现);带 Hystrix fallback(*ServiceHystrix) |
| 配置中心 | Apollo——DB 连接、网关路由等均在 Apollo,代码仓库内取不到 |
| 数据库 | MySQL 8.0.33 + HikariCP;分库分表 ShardingSphere(pmt/ims 分片库 plutus_N) |
| ORM | MyBatis-Plus 3.5.5(部分 jOOQ) |
| 消息/事件 | Spring Cloud Stream(事件驱动,见「关键事件」与 14) |
| 分布式 ID | dynamic-serial(idg/comet)+ Snowflake |
| 任务调度 | XXL-Job |
部署形态
每个业务服务拆为最多 3 个部署单元:
| 单元 | 后缀 | 职责 |
|---|---|---|
| Web | -web | 对外 HTTP API(Controller),网关路由入口 |
| Service | -service | 核心业务 + 对内能力(实现 service-api,供其它服务 Feign 调) |
| Job | -job | 定时任务 |
模块统一分层:business / facility(外联,含 Feign client)/ service + service-api(实现+契约)/ repos / pojo / web / job。Apollo 多环境:dev/uat/prod,集群 athena/hades/zeus/apollo。生产部署见 Apollo(含 AWS eu-west-1 与华为云)。
服务全景
以
system.png官方 13 服务为准,叠加本地实证。本地代码:有=可部署、空壳=仅启动类、无=未推送。服务依赖/能力详见 00-总览,数据模型见 11-数据模型现状。
| 模块(官方) | 代码 | gitlab repo | 职责 | 官方状态 | 本地代码 |
|---|---|---|---|---|---|
| 业务系统 | bns | business-system | 主业务逻辑、业务编排,对接前端 | 项目改造中 | 有(197 java) |
| 业务网关 | bns-gateway | business-gateway | 业务前置/会话/鉴权/聚合。= 前端调的 blc-service | 项目改造中 | 有(11 java,网关轻量) |
| 决策引擎 | res | (未给) | 风控决策流在线编辑/测试/部署(风控决策本体) | 项目改造中 | 无 |
| 账务系统 | fcs | fund-control | 放还款账务、合同、日终、代扣批;另含客户/额度/借据 | 编译可部署 | 有 |
| 产品工厂 | pfs | product-factory | 产品期数/利率/费项、合同、客户分级、销账配置 | 编译可部署 | 有 |
| 支付中台 | plutus-pmt | payment-middle | 三方通道接入、放还款(含 NIBSS SOAP) | 编译可部署 | 有 |
| 绑卡中台 | plutus-ims | cardbind-middle | 客户银行卡/账户绑定/查询 | 编译可部署 | 有 |
| 欺诈检测 | fds | fraud-detection | 黑灰名单、冻结、欺诈案件(电核/外访/审核) | 编译可部署 | 有 |
| 序号生成 | comet | dynamic-serial | 分布式唯一序号(雪花) | 编译可部署 | 有 |
| 中台网关 | middle-infr | middle-gateway | 中台网关、Eureka/Hystrix/Zipkin、三方交互 | 编译可部署 | 有 |
| 基础依赖 | base | business-base | 工具/注解/拦截器/动态数据源(基础库) | — | 有 |
| 聚合系统 | agg | agg-vars | 风控变量计算 | 项目初始化 | 空壳 |
| 征信系统 | crs | credit-reporting | 三方接入:KYC/征信/活体/人脸/短信 | 项目初始化 | 空壳 |
命名对照:fcs=账务(实证兼客户/额度/借据/还款)、plutus-pmt=pmt、plutus-ims=ims、middle-infr=infr、comet=idg。
服务依赖拓扑图(三种边:Feign/事件/HTTP)+ 入向被依赖 + 外部节点:见 00-总览(早期此处的简版拓扑图已并入 14)。
未拿到代码的部分
官方服务(未推送/空壳)
| 服务 | 官方状态 | 本地 | 说明 |
|---|---|---|---|
| res 决策引擎 | 项目改造中 | 无(无 res 目录) | 风控决策本体;授信/借款/放款/提额的”风控决策”缺口归此 |
| agg 聚合系统 | 项目初始化 | 空壳(3 java) | 风控变量计算,仅启动类 |
| crs 征信系统 | 项目初始化 | 空壳(3 java) | 三方接入(KYC/活体/短信/征信),仅启动类 |
校正:bns 业务系统(197 java)、bns-gateway 业务网关(11 java,网关轻量)已推送可读,早期标注的”bns 未推送”不成立。bns 的风控/BVN/互斥/人脸调用在代码里均注释(目标 res/大数据/crs,见 00-总览 结构性发现 1)。
外部依赖(代码引用,本地未给代码)
| 外部依赖 | 引用方/入口 | 疑似职责 | 状态校正 |
|---|---|---|---|
| 登录认证 | 前端 → blc-service user/ | 注册/登录/验证码/PIN | ⚠ 校正:当前前端登录已收敛 blc-service user/(token),早期「独立 auth 服务 + Afmobi TGT + loginLib」已不成立(见 12-前端现状/01-注册登录);后端是否接 TUDC(tudcAux)待确认 |
| 大数据平台 | 前端 + fcs(bridge) | 埋点/增信/大数据授信/设备数据/BVN | /dc/ /ccs/ /sdk-adapter + TANK_BRIDGE_SERVICE |
| 触达 mdut | fcs/pmt/ims | 短信/推送触达 | MQ mdut-business-node-cn |
| 支付编排 zoo | fcs | 放款/还款请求与回流 | MQ zooPaymentProcess/Result(现网放款实走 plutus 通道,见 04-放款) |
| 邀请 tank-agg | fcs | 邀请/拉新聚合 | Feign TANK_AGG_SERVICE(业务定不做) |
| 营销 mkt | 前端经网关 / fcs | 优惠券中台:couponCalc/规则/列表/使用/创建/状态 | /mkt/coupon/*(11 路由)+ MQ mkt-coupon-status,详见 08-旁路-优惠券减免 |
bridge-service(Transsnet,env
TANK_BRIDGE_SERVICE):fcs 接 4 个 Feign(风控/优惠券/大数据/发布),唯一活跃是IPublishClient.saveEventLog(放款/还款上报事件日志);风控决策/大数据 BVN/额度/营销/优惠券全部注释或空壳。判断/核验缺口的真实归属是 res(风控决策)/大数据/crs(KYC),不是 bridge。bns 不接 bridge。
有代码的外部节点(非缺口):NIBSS(pmt SOAP 双向)、华为云 OBS(bns/fds/pmt 对象存储)、DXA(fds 用户/组织)、支付通道(11 家)、大数据(pmt HTTP)——全集与依赖详见 00-总览 > 外部节点清单。
关键事件(Spring Cloud Stream,destination 索引)
完整事件边(publisher→consumer 配对、跨服务)见 00-总览。本表为 destination 速查。
| 绑定 | destination | 含义 |
|---|---|---|
| plutusLoanApplyOutput | plutus-pay-charge | 放款申请 → 支付扣费 |
| beforePaymentPlutusOutput | plutusDoRepaySingle | 单笔代扣还款 |
| beforePaymentOutput | zooPaymentProcess | 发起支付(旧 zoo 编排) |
| afterPaymentInput | zooPaymentResult | 支付结果回流 |
| offlineRefundPayOutput | offlineRefundPay | 线下退款(RF) |
| paidOffOutput | loan-paid-off | 借据结清事件 |
| PaidOffSmsOutput | mdut-business-node-cn | 结清短信(触达) |
| couponStatusOutput | mkt-coupon-status | 优惠券状态(营销) |
现金贷业务闭环结论
逐阶段时序、接口落地、分支与缺口见 00-总览(每阶段含分支清单)。此处仅给一页结论。
- 核心资金链路本地完整可见:用信/放款/账务/还款(多 TxnType)/逾期罚息/结清/支付通道/产品/额度/绑卡。
- 缺口集中三向:① 核验(BVN/KYC/人脸——空转或注释)② 判断(授信风控决策/借款互斥/提额定价/agg 变量——注释,归属 res/大数据/agg)③ 外部接入(登录认证/大数据/触达 mdut/征信 crs)。
- 未覆盖:res(未推送)、agg/crs(空壳)、登录认证/大数据/mdut(外部缺口)、完整催收作业(Phase 2)。bns/bns-gateway/pfs 等已推送可读。
与口述现状的偏差(客观标注)
| 项 | 口述 | 代码实证 |
|---|---|---|
| 支付网关 | 缺失,全新建 | 已存在(payment-middle),集成 11 家尼日利亚通道 + NIBSS |
| 额度中心 | 独立模块 | 非独立服务,是 fund-control 内的客户额度能力 |
| 信贷核心「7 模块」 | 7 个模块 | 实为 fund-control(客户+额度+账务+还款)+ product-factory(产品+合同) |
| 风控决策引擎 | 已有 | 决策本体 = 官方 res(项目改造中、未推送);本地仅 fds;agg/crs 空壳 |
| 业务网关 | 已有(后端) | 前端入口 = bns-gateway(= blc-service,改造中、未推送) |
| 登录认证 | 独立服务(TGT) | ⚠ 当前前端登录收敛 blc-service user/(token),早期独立 auth/TGT 已不成立(见 12/16) |
| 现金贷 App 技术栈 | Flutter | 原生 Android(roovault) + H5(Vue2) 混合 |
| KYC/实名 | (未明确) | 规划在 crs(空壳);现网走大数据平台(缺口) |
文档索引
| 文档 | 视角 |
|---|---|
| 11-数据模型现状 | 各服务表结构 DDL(数据层) |
| 12-前端现状 | 前端静态盘点(模块/接口/SDK/技术栈) |
| 00-总览 | 现金贷后端业务时序 + 分支清单 + 缺口(动态) |
| 00-总览 | 服务间依赖拓扑(Feign/事件/HTTP)+ 入向 + 外部节点 |
| 00-总览 | 手机分期二次开发落地蓝图(基于现状) |
| 00-总览 | 前端↔后端交互时序 + 分支清单 |
| README | 三方对接梳理(支付通道等,接入能力 + 官方文档对照) |
| 18-缺口总览 | 全部缺口汇总(A 现金贷跑通 / B 手机分期增量,按服务+类型+是否阻断) |
早期的逐服务现状卡片(01–09)与业务流交互(10)已并入 13/14 并归档至
_归档/。
官方资料(出处)

