Biz-SIP中间件之xbank项目实战(1)——项目简介
xbank项目版本库:https://gitee.com/szhengye/xbank.git
体验Biz-SIP示例项目xbank
1. 示例项目xbank简介
xbank是一家商业银行,面向个人客户和公司客户,其中个人客户业务包括存款、贷款、缴费等业务;银行业务渠道除了传统柜面以外,还有网上银行、手机银行、ATM、POS等,最近准备上一个针对银行合作伙伴的基于OPENAPI网关的开放平台渠道。
本示例项目是以个人客户中的存款查询和缴费业务为例子,渠道采用OPENAPI开放接口,后台系统对接个人客户存款系统和个人客户信息系统,第三方对接缴费平台,来演示如何打造基于Biz-SIP中间件的银行业务中台。

按DDD分层架构,应用架构图如下所示:

3. xbank示例项目模板介绍
打开示例项目,如下图:

xbank项目分为以下模块:
- xbank-source:适配层模块,存放外部适配接入的适配层实现。
- xbank-openapi-source:OPENAPI接入的适配层子模块
- xbank-app:应用层模块,存放应用层的服务实现。
- xbank-sink:领域层模块,存放按领域划分的领域服务实现。
- xbank-account-sink:账户域子模块
- xbank-customer-sink:客户域子模块
- xbank-payment1-sink:缴费域子模块(存储转发)
- xbank-payment1-sink:缴费域子模块(交易补偿)
- xbank-infrastructure:基础设施层模块,存放对数据库、内容存储、HSM等基础设施的访问能力实现。
- xbank-account-db:账户数据库访问子模块
- xbank-customre-db:客户数据库访问子模块
- xbank-client:接口模块,存放各层之间的服务接口,以及相关数据DTO。
- xbank-account-sink-client:账户域服务接口子模块
- xbank-customer-sink-client:客户域服务接口子模块
- xbank-app-client:应用服务接口子模块
各层之间调用关系如下所示:

4. 创建数据库
执行项目中xbank-infrastructure/xbank-sql/xbank.sql脚本,以建立xbank演示库。
5. 启动xbank项目
- 启动应用层服务整合器
- 执行xbank-app模块中的XbankAppApplication
- 启动领域层领域服务
- 执行xbank-customer-sink子模块中的CustomerSinkApplication
- 执行xbank-account-sink子模块中的AccountSinkAppliction
- 启动适配层OPENAPI接入服务
- 执行xbank-openapi-source子模块中的OpenapiSourceApplication
4. 测试接口
4.1 查询客户信息
$ curl -H "Content-Type:application/json" -H "Biz-Service-Id:sink/customer" -X POST --data '{"methodName":"getCustomer","params":["001"]}' http://localhost:8888/api|jq
{
"code": 0,
"message": "success",
"extMessage": null,
"traceId": "2d3ed69623f8480a9d95bcd3ca03a4d3",
"parentTraceId": null,
"timestamp": 1630677591308,
"data": {
"result": {
"sex": "1",
"customerName": "张三",
"customerId": "001",
"age": 30
}
}
}
4.2 查询账户列表
$ curl -H "Content-Type:application/json" -H "Biz-Service-Id:sink/account" -X POST --data '{"methodName":"getAccountListByCustomerId","params":["001"]}' http://localhost:8888/api|jq
{
"code": 0,
"message": "success",
"extMessage": null,
"traceId": "748b76566a5e436e9c2990cf9776789f",
"parentTraceId": null,
"timestamp": 1630677747532,
"data": {
"result": [
{
"accountId": "0001",
"balance": 100,
"customerId": "001"
},
{
"accountId": "0002",
"balance": 200,
"customerId": "001"
}
]
}
}
4.3 查询客户信息和账户列表
$ curl -H "Content-Type:application/json" -H "Biz-Service-Id:app/personal" -X POST --data '{"methodName":"getCustomerAndAccountList","params":["001"]}' http://localhost:8888/api|jq
{
"code": 0,
"message": "success",
"extMessage": null,
"traceId": "4fa2f86c23ce4b24abb1b0d23833c14f",
"parentTraceId": null,
"timestamp": 1630677780246,
"data": {
"result": {
"accountList": [
{
"accountId": "0001",
"balance": 100,
"customerId": "001"
},
{
"accountId": "0002",
"balance": 200,
"customerId": "001"
}
],
"customer": {
"sex": "1",
"customerName": "张三",
"customerId": "001",
"age": 30
}
}
}
}
Biz-SIP官方网站:http://bizsip.bizmda.com
Gitee:https://gitee.com/szhengye/biz-sip
浙公网安备 33010602011771号