Skip to content

BCVS 信核系统

一、系统概述

BCVS(Bank Credit Verification System,信核系统)是微众银行旗下的信用核验系统,负责在信贷业务流程中对客户进行多维度身份核验,涵盖电核(电话核验)、面核(面对面/视频核验)、刷脸识别、征信查询、公安核查等核心业务能力。

属性
组织标识cn.webank.cnc.cvs
系统编号U568(service)/ U562(web)
代码规模约 2,257 个 Java 源文件
技术栈Spring Boot + MyBatis + RMB + ElasticSearch + Redis + WebSocket
代码仓库git@git.weoa.com:cnc/ccvs.git

系统能力概览

能力域说明
电核(AF)自动/人工电话核验,含外呼、接听、通话记录
面核(FAC)视频面核,含微信视频、腾讯云实时音视频
刷脸识别人脸比对、人脸质检、活体检测、降级处理
征信查询人行征信、鹏元征信、公安联网核查
风控策略策略引擎(Experian DA)、规则决策
答题核验问答式核验(QE)、动态问题生成
工单管理全生命周期工单流转、分配、审批、挂起、退单
外部集成25+ 外部系统的 RMB/HTTP 调用

二、模块结构

bcvs/
├── pom.xml              # 父 POM
├── bcvs-sdk/            # 核心业务 SDK 模块
├── bcvs-service/        # 后端服务模块(RMB 消息处理、后台任务)
├── bcvs-web/            # Web 前端接口模块(REST API、WebSocket)
├── conf/                # 生产环境配置
├── conf-dev/            # 开发环境配置
├── bin/                 # 部署脚本
├── dbScript/            # 数据库脚本
└── metadata/            # 数据库元数据(建表 SQL)

2.1 bcvs-sdk 模块

定位:核心业务逻辑层,包含全部业务领域逻辑、DAO、服务接口和外部系统调用客户端。

关键依赖

依赖用途
zcnc-sdk-starter-core微众云原生 SDK 核心
zcnc-sdk-starter-rcsRCS(监管报送)SDK
zrisk-sdk-pub / zrisk-sdk-qe / zrisk-sdk-pbc2风控 SDK(策略引擎、答题、人行)
DA / DA390Experian 策略引擎
ecif-cipher-aesECIF 加密
shardbatis分表路由

2.2 bcvs-service 模块

定位:后端服务进程,处理 RMB 消息驱动型业务逻辑、定时任务、异步处理。

主要职责:RMB 同步/异步消息接收与处理、批量工单处理、自动派单、定时任务、后台业务逻辑

2.3 bcvs-web 模块

定位:Web 服务进程,提供 REST API 接口,面向前端工作台和运营管理系统。

主要职责:REST Controller(25 个)、WebSocket 实时通信、HTTP 拦截器、定时任务

三、包架构

3.1 基础架构包

包路径说明关键类
cn.webank.cnc.cvs.base基类BaseService, BaseSao, BaseHandler, AbstractHandler
cn.webank.cnc.cvs.annotation自定义注解@RmbOutFlag, @RmbInFilterFlag, @ReportBizType
cn.webank.cnc.cvs.aspectAOP 切面RmbOutAspect, RmbInAspect
cn.webank.cnc.cvs.constants常量BaseConstant, PrmConstant, AssignRecConstant
cn.webank.cnc.cvs.enums枚举47 个枚举类
cn.webank.cnc.cvs.utils工具类BizSeqNoUtils, CaseUtil, CaseExtUtil

3.2 业务域包(biz.*

包路径业务域说明
biz.afs反欺诈/电核通知电核结果通知
biz.cases工单管理工单贷款/等待
biz.cases.opr工单操作核心域:工单提交通过/拒绝/挂起/退单,20+ 类
biz.cases.query工单查询工单提示/转单
biz.ccjs人行征信决策SQ007 征信决策
biz.cdps征信特征FIR(Feature Index Report)
biz.config参数配置KV 参数管理、超时配置
biz.cris征信信息人行征信、学历、公安核查
biz.engine策略引擎Experian DA 策略调用
biz.face刷脸核心刷脸识别核心逻辑
biz.faceindentify刷脸决策流刷脸策略:降级处理、重试、通过、超时拒绝
biz.file文件管理文件上传/清理
biz.media影像件影像件管理/统计
biz.qe答题核验QE 策略运行、答题缓存
biz.rec核查记录通话记录/挂起记录
biz.rule策略规则派单策略/核身策略/答题策略/天御策略/征信策略
biz.risk风控客户风险标记
biz.rcsRCS 报送监管报送

3.3 SAO 客户端包(sao.*

25+ 个外部系统调用客户端(详见第七章)。

3.4 DTO 包(dto.*

30+ 个 DTO 子包,包含 100+ 个 Tm* 实体类及 Example 查询条件类。

四、核心类详解

4.1 BaseService(服务基类)

路径cn.webank.cnc.cvs.base.BaseService

职责:所有业务 Service 的顶层基类,提供以下核心能力:

  1. RMB 服务号常量定义

    • ONLINE_SERVICE_ID = "06200261" — 同步 Q
    • ASYNC_SERVICE_ID = "06210040" — 异步 Q
    • ONLINE_SERVICE_ID_FOR_CALLBACK = "06201060" — 回调同步 Q
    • ONLINE_SERVICE_ID_TWO = "06201148" — 驼峰格式同步 Q
    • ONLINE_SERVICE_ID_ORDER_APPLY = "06201320" — 批量转单进件 Q
    • ASYNC_SERVICE_ID_CASE_PULL = "06210544" — 自动派单异步 Q
  2. 工单子类路由getSubService(TmBaseCase) 根据核身方式、产品号、场景查找对应的工单操作子类

    • 查找优先级:通用出件配置 > S_核身方式_产品号_场景 > S_核身方式_场景 > S_核身方式_产品号 > S_核身方式
  3. DCN 解析:通过 ECIF > 微信/QQ > 卡号 > 手机号 逐级解析 DCN

4.2 BaseSao(SAO 基类)

路径cn.webank.cnc.cvs.base.BaseSao

职责:所有外部系统调用客户端的基类

  • 同步 RMB 调用syncCall() — 通过 RmbClientUtil.sendRequest() 发送同步请求
  • 异步 RMB 调用asyncCall() — 通过 RmbClientUtil.publish() 发布异步事件
  • 序列号生成:注入 CaseSeqServiceBizSeqNoUtils

4.3 RMBMessageFactory / RMBMessageSAOFactory

  • RMBMessageFactory:构建 Message 对象(Fluent Builder 模式)
  • RMBMessageSAOFactory:构建并直接发送 RMB 消息
    • buildAndSend() — 同步发送
    • buildAndPublish() — 异步发布

4.4 工单操作服务(cases.opr)

接口ISubCaseOprBizService

方法说明
submitPass()提交通过
submitReject()提交拒绝
submitHangup()工单挂起
submitExceptionCase()提交异常工单
submitReturn()提交退单
processOverTimeCase()超时处理

子类实现(按 Bean 名称 S_核身方式 约定注册):

实现类Bean 名称说明
CaseAfOprBizServicesS_AF电核
CaseAfaOprBizServicesS_AFA电核自动
CaseFacOprBizServicesS_FAC面核
CaseMdiSopOprBizServicesS_MDI_SOP多数据源 SOP
CaseMdiXBOprBizServicesS_MDI_XB多数据源 XB
CaseTelOprBizServicesS_TEL电话核验

继承体系

CasesBaseOprBizService(公共基类)
├── CaseAfBaseOprService(电核基类)
│   └── CaseAfOprBizServices
├── CaseFacCommonOprBizServices(面核基类)
│   └── CaseFacOprBizServices
├── CaseTelBaseOprBizService(电话基类)
│   └── CaseTelOprBizServices
└── CaseMdiCommonOprBizServices(多数据源基类)
    ├── CaseMdiSopOprBizServices
    └── CaseMdiXBOprBizServices

4.5 刷脸识别服务(faceindentify)

接口ISubCaseFaceIdentifyBizService

方法说明
faceIdentifyPass()刷脸通过
faceIdentifyReject()降级拒绝
faceIdentifyRetry()重试刷脸
faceIdentifyDownVideo()降级面核
faceIdentifyDownTel()降级电核
faceIdentifyByWxRet()使用微信结论
faceIdentifyThingsAudit()事中复核

4.6 策略规则服务(rule)

服务类说明
AssignCaseStraService派单策略:决定工单分配给哪个坐席/技能组
ValidateStraService核身策略:决定核身方式(电核/面核/刷脸)
CvsQeStraService答题策略:生成核验问题
TyshAnStraService天御策略:腾讯天御反欺诈
CreStraService征信策略:征信查询决策

五、数据模型

5.1 核心实体表

实体类对应表说明
TmBaseCaseTM_BASE_CASE核心工单表:工单号、客户信息、核身方式、产品、状态、审核员
TmBaseCaseHisTM_BASE_CASE_HIS工单历史表
TmCallRecTM_CALL_REC通话记录表
TmHangupRecTM_HANGUP_REC挂起记录
TmAssignRecTM_ASSIGN_REC派单记录
TmCaseExtTM_CASE_EXT工单扩展信息
TmCaseExceptionRecTM_CASE_EXCEPTION_REC异常工单记录
TmCaseWaitTaskTM_CASE_WAIT_TASK等待任务

5.2 刷脸相关表

实体类说明
TmFaceIdentifyFlow刷脸识别流转记录
TmFaceRecordFlow刷脸记录
TmFaceQueue刷脸队列
TmFaceWorker刷脸坐席
TmFaceDegradeFlow刷脸降级流转

5.3 配置参数表

实体类说明
TmPrmConfig参数配置主表(KV 存储)
TmPrmProductConfig产品级参数配置
TmPrmQtaskConfig答题任务配置
TmQueueConfig队列配置
TmVerifyConfig核身配置
TmAssignPriorityConfig派单优先级配置

5.4 征信/风控表

实体类说明
TmPoliceCheck公安核查信息
TmPbcInfo人行信息
TmEducation学历
TmCrisTask征信任务
TmAiFeatureFlowAI 特征流转

5.5 订单表

实体类说明
TmOrder / TmOrderHis订单表/历史
TmOrderPool订单池
TmBatchOrder批量订单

5.6 枚举类(47 个)

分类枚举类
工单状态CaseScenarioEnum, CaseStatusEnum, CaseQueryTypeEnum, ActionTypeEnum
核身方式RequirementEnum, VerifySkillGroupEnum
刷脸FaceMatchEnum
风控RefuseCodeEnum, StraEnum, StrategyIdEnum, RiskMarkEnum
通话PhoneTypeEnum, PhoneStatusEnum, HangupReasonEnum

六、SAO 客户端(25+ 外部系统调用)

SAO 包外部系统说明
sao.capCAP(影像归档)影像件拉取/删除
sao.ccjsCCJS(征信决策)SQ007 征信决策查询
sao.cdpsCDPS(征信特征)FIR 特征查询
sao.cisCIS(案件信息)案件建案申请
sao.cpsCPS(核身授权)客户授权验证
sao.crcdataCRC Data监管数据报送
sao.dmDM(数据管理)客户信息/特征上报
sao.ecifECIF(企业客户信息库)客户信息查询
sao.face刷脸引擎人脸比对/刷脸结果查询
sao.mediaMMS(多媒体服务)影像件操作
sao.mesMES(管理执行系统)权益查询
sao.outgoing出件系统工单结果通知(15+ SAO)
sao.pmbankPM Bank(微信银行)微信刷脸/微信 UserID
sao.qeQE 策略引擎答题策略运行
sao.rasRAS(地址服务)地址解析
sao.rcsRCS(监管报送)刷脸结果报送
sao.regREG(注册系统)人脸注册核查
sao.risk风控系统客户风险批量查询
sao.umUM(统一用户管理)用户信息查询
sao.video视频服务视频接通/挂断

七、Controller 层(25 个 REST Controller)

Controller路径前缀说明
HomeControllerapi/home登录/首页/接单
CaseAssignControllerapi/caseAssign工单分配
CasesOprControllerapi/caseOpr工单处理(通过/拒绝/挂起/退单)
CasesQueryControllerapi/caseQuery工单查询
VdoCaseWorkControllerapi/vdoCaseWork面核管理(视频通话/IM聊天/录制)
FaceIdentifySetControllerapi/faceIdentifySet刷脸设置
QueueConfigControllerapi/queueConfig场景优先级配置
SkillGroupControllerapi/skillGroup技能组管理
UserControllerapi/user用户管理
ApprovalControllerapi/web/approval/config审批流
FileInfoControllerapi/fileInfo文件信息
RecordTokenControllerapi/recordToken录音令牌

八、RMB 集成

8.1 RMB 服务号

服务号用途
06200261同步 Q(接收上游请求)
06210040异步 Q(异步处理)
06201060回调同步 Q
06201148驼峰格式同步 Q
06201320批量转单进件 Q
06210544自动派单异步 Q
06201409AI 特征挖掘回调 Q
12201874模型特征回调 Q

8.2 消息防重

RmbViolatedBizService 通过数据库唯一索引实现消息防重,防重 ID = serviceId + scenario + consumerSeqNo + serviceCode

8.3 RMB 出站审计

通过 @RmbOutFlag 注解 + RmbOutAspect 切面实现 RMB 出站请求的自动审计落表。

九、业务流程

9.1 工单全生命周期

上游系统进件 → RMB消息接收 → 工单创建(TM_BASE_CASE) → 策略决策(核身方式)
    → 工单分配(技能组/坐席) → 电核/面核/刷脸 → 答题核验(QE)
    → 工单提交(通过/拒绝/挂起/退单) → 出件通知(上游系统)
    → 数据归档(历史表) → 文件清理

9.2 电核流程(AF)

工单分配 → 坐席拨打电话 → 通话记录(TM_CALL_REC)
    → 核查记录(TM_ACTION_REC) → 答题核验(QE)
    → 提交通过/拒绝/挂起 → 出件通知

9.3 面核流程(FAC)

工单分配 → 视频通话准备 → 接通(allowConnect) → IM聊天
    → 云端录制(createCloudRecording) → 核查记录
    → 提交通过/拒绝 → 出件通知

支持微信视频和腾讯云实时音视频。

9.4 刷脸识别流程

工单分配 → 刷脸请求 → 刷脸策略运行 → 人脸比对 → 刷脸结果
    ├── 通过 → faceIdentifyPass → 出件
    ├── 拒绝 → faceIdentifyReject → 出件
    ├── 重试 → faceIdentifyRetry → 重新刷脸
    ├── 降级面核 → faceIdentifyDownVideo → 进入面核流程
    ├── 降级电核 → faceIdentifyDownTel → 进入电核流程
    ├── 使用微信结论 → faceIdentifyByWxRet
    ├── 事中复核 → faceIdentifyThingsAudit
    └── 超时拒绝 → facIdentifyOvertimeReject

9.5 征信查询流程

工单进件 → 征信策略决策(CreStraService)
    → 人行征信(PbcInfoBizService) → 公安核查(PoliceCheckBizService)
    → 学历核查(EducationBizService) → 征信特征查询(CdpsBizService)
    → 征信决策(CcjsBizService) → 策略结果

十、配置与部署

10.1 实例类型

实例systemId说明
bcvs-serviceU568后端服务进程
bcvs-webU562Web 服务进程

10.2 关键配置

配置项默认值说明
task-executor.core-pool-size72任务执行核心线程
rmb_timeout5000msRMB 超时
faceIdentifyStraSwitchFlag1刷脸策略开关
caseParterSwitch1出件通知开关
dataCleanEnableStatusfalse数据清理开关

10.3 ElasticSearch 索引

12 个答题相关索引,命名规范为 cnces_adm_ccvsdb_tm_*

十一、外部系统集成

系统缩写集成方向说明
ECIF 企业客户信息库ECIF出站客户信息查询
CPS 核身授权系统CPS双向客户授权验证
MMS 多媒体管理系统MMS出站影像件存储/查询
CAP 内容归档平台CAP出站影像件拉取/删除
CCJS 征信决策系统CCJS出站SQ007 征信决策
CDPS 征信特征系统CDPS双向FIR 特征查询
Experian DA 策略引擎DA出站规则决策执行
公安联网核查PSC/PBC出站公安核查
RCS 监管报送RCS出站监管数据报送
PM Bank 微信银行PM出站微信刷脸
腾讯云实时音视频TRTC出站视频面核
GNS 全局命名服务GNS出站DCN 解析
TSP 数据清理平台TSP双向数据清理
FPS 文件传输FPS出站文件传输

数据库与存储

存储类型用途
TDSQL主数据库(bcvsdb
ElasticSearch答题数据存储(12 个索引)
Redis限流、缓存
CAP影像件存储

本报告基于 BCVS 系统源代码静态分析生成,覆盖了全部 2,257 个 Java 文件的结构与功能分析。