现状代码架构 — 总览

本目录是对现有代码仓库的客观还原,只记录代码实证。看不到的写「未见/待确认」,代码引用但本地缺失的标「未推送」,不臆断。不做改造映射(现状→MVP gap 是另一阶段)。
本文是目录入口 + 全局地图:技术栈/部署/服务全景/缺口。深入内容见各专篇(见文末「文档索引」)。

来源与范围

内容
厂商宇信科技(包名 com.yusys.*),现金贷平台产品
后端仓库backend-cashloan(GitLab),10 个独立 Git 库
前端仓库frontend-cashloan:android(原生 roovault)+ h5(Vue2 wp_h5),混合架构——见 12-前端现状
官方服务全集system.png13 个服务。本地 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)
ORMMyBatis-Plus 3.5.5(部分 jOOQ)
消息/事件Spring Cloud Stream(事件驱动,见「关键事件」与 14
分布式 IDdynamic-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职责官方状态本地代码
业务系统bnsbusiness-system主业务逻辑、业务编排,对接前端项目改造中有(197 java)
业务网关bns-gatewaybusiness-gateway业务前置/会话/鉴权/聚合。= 前端调的 blc-service项目改造中有(11 java,网关轻量)
决策引擎res(未给)风控决策流在线编辑/测试/部署(风控决策本体)项目改造中
账务系统fcsfund-control放还款账务、合同、日终、代扣批;另含客户/额度/借据编译可部署
产品工厂pfsproduct-factory产品期数/利率/费项、合同、客户分级、销账配置编译可部署
支付中台plutus-pmtpayment-middle三方通道接入、放还款(含 NIBSS SOAP)编译可部署
绑卡中台plutus-imscardbind-middle客户银行卡/账户绑定/查询编译可部署
欺诈检测fdsfraud-detection黑灰名单、冻结、欺诈案件(电核/外访/审核)编译可部署
序号生成cometdynamic-serial分布式唯一序号(雪花)编译可部署
中台网关middle-infrmiddle-gateway中台网关、Eureka/Hystrix/Zipkin、三方交互编译可部署
基础依赖basebusiness-base工具/注解/拦截器/动态数据源(基础库)
聚合系统aggagg-vars风控变量计算项目初始化空壳
征信系统crscredit-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
触达 mdutfcs/pmt/ims短信/推送触达MQ mdut-business-node-cn
支付编排 zoofcs放款/还款请求与回流MQ zooPaymentProcess/Result(现网放款实走 plutus 通道,见 04-放款
邀请 tank-aggfcs邀请/拉新聚合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含义
plutusLoanApplyOutputplutus-pay-charge放款申请 → 支付扣费
beforePaymentPlutusOutputplutusDoRepaySingle单笔代扣还款
beforePaymentOutputzooPaymentProcess发起支付(旧 zoo 编排)
afterPaymentInputzooPaymentResult支付结果回流
offlineRefundPayOutputofflineRefundPay线下退款(RF)
paidOffOutputloan-paid-off借据结清事件
PaidOffSmsOutputmdut-business-node-cn结清短信(触达)
couponStatusOutputmkt-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 并归档至 _归档/

官方资料(出处)