482 lines
16 KiB
Plaintext
482 lines
16 KiB
Plaintext
@startuml PSBC_Point_Service
|
||
|
||
skinparam sequenceMessageAlign center
|
||
skinparam responseMessageBelowArrow true
|
||
skinparam ParticipantPadding 10
|
||
skinparam BoxPadding 10
|
||
|
||
title 邮储银行幸福点权益服务 - 完整业务流程时序图
|
||
|
||
' ========== 参与者定义 ==========
|
||
actor "客户" as Customer
|
||
participant "手机银行/\n电话银行" as MobileBank
|
||
participant "CRM零售" as CRM
|
||
participant "渠道二期" as Channel2
|
||
participant "ESB" as ESB
|
||
participant "个人综合\n积分系统" as PointSystem
|
||
participant "服务开放\n平台" as OpenPlatform
|
||
participant "服务商系统" as ServiceProvider
|
||
database "定时任务" as Scheduler
|
||
database "对账文件" as ReconFile
|
||
|
||
note over PointSystem
|
||
权益服务状态码说明
|
||
----
|
||
100 - 服务未预约
|
||
200 - 服务已预约
|
||
300 - 服务已完成
|
||
400 - 服务已取消
|
||
500 - 服务已过期
|
||
end note
|
||
|
||
' ==================== 流程1: 服务兑换流程 ====================
|
||
== 流程1: 服务兑换流程 ==
|
||
|
||
note over Customer, PointSystem
|
||
业务说明: 客户通过渠道兑换权益服务,扣除幸福点,获取权益码
|
||
前置条件: 客户为高端客户(AUM>=50W)
|
||
end note
|
||
|
||
group 链路A: 手机银行/电话银行渠道
|
||
Customer -> MobileBank: 1.选择权益服务发起兑换
|
||
activate MobileBank
|
||
|
||
MobileBank -> Channel2: 2.调用渠道二期转发请求
|
||
activate Channel2
|
||
|
||
Channel2 -> ESB: 3.转发至ESB总线
|
||
activate ESB
|
||
|
||
ESB -> PointSystem: 4.调用积分系统兑换接口
|
||
activate PointSystem
|
||
|
||
PointSystem -> PointSystem: 5.校验客户幸福点余额
|
||
PointSystem -> PointSystem: 6.扣除客户幸福点
|
||
PointSystem -> PointSystem: 7.状态:未预约(100)
|
||
|
||
PointSystem --> ESB: 8.返回兑换结果
|
||
deactivate PointSystem
|
||
|
||
ESB --> Channel2: 9.返回结果
|
||
deactivate ESB
|
||
|
||
Channel2 --> MobileBank: 10.返回结果
|
||
deactivate Channel2
|
||
|
||
MobileBank --> Customer: 11.显示兑换成功
|
||
deactivate MobileBank
|
||
end
|
||
|
||
group 链路B: CRM零售渠道(不经过渠道二期)
|
||
Customer -> CRM: 1.理财经理为客户发起兑换
|
||
activate CRM
|
||
|
||
CRM -> ESB: 2.直接调用ESB总线
|
||
activate ESB
|
||
|
||
ESB -> PointSystem: 3.调用积分系统兑换接口
|
||
activate PointSystem
|
||
|
||
PointSystem -> PointSystem: 4.校验客户幸福点余额
|
||
PointSystem -> PointSystem: 5.扣除客户幸福点
|
||
PointSystem -> PointSystem: 6.状态:未预约(100)
|
||
|
||
PointSystem --> ESB: 7.返回兑换结果
|
||
deactivate PointSystem
|
||
|
||
ESB --> CRM: 8.返回结果
|
||
deactivate ESB
|
||
|
||
CRM -> CRM: 9.生成二维码供客户扫描
|
||
CRM --> Customer: 10.展示二维码
|
||
deactivate CRM
|
||
end
|
||
|
||
' ==================== 流程2: 服务预约使用流程 ====================
|
||
== 流程2: 服务预约使用流程 ==
|
||
|
||
note over Customer, ServiceProvider
|
||
业务说明: 客户使用权益码预约服务商提供的服务
|
||
关键规则: 权益码20分钟内有效,超时需重新生成
|
||
end note
|
||
|
||
group 手机银行渠道预约
|
||
Customer -> MobileBank: 1.进入权益使用页面
|
||
activate MobileBank
|
||
|
||
MobileBank -> PointSystem: 2.调用积分系统生成服务使用链接
|
||
activate PointSystem
|
||
PointSystem -> PointSystem: 3.生成加密链接\n【权益码+服务类型AES加密】\n【有效期20分钟】
|
||
PointSystem --> MobileBank: 4.返回加密链接
|
||
deactivate PointSystem
|
||
|
||
MobileBank --> Customer: 5.跳转服务商页面(携带加密参数)
|
||
deactivate MobileBank
|
||
end
|
||
|
||
group CRM零售渠道预约
|
||
Customer -> CRM: 1.理财经理为客户发起预约
|
||
activate CRM
|
||
|
||
CRM -> PointSystem: 2.调用积分系统生成预约链接
|
||
activate PointSystem
|
||
PointSystem -> PointSystem: 3.生成加密链接\n【权益码+服务类型AES加密】\n【有效期20分钟】
|
||
PointSystem --> CRM: 4.返回加密链接
|
||
deactivate PointSystem
|
||
|
||
CRM -> CRM: 5.将链接转成二维码图片
|
||
CRM --> Customer: 6.展示二维码供客户扫描
|
||
deactivate CRM
|
||
end
|
||
|
||
group 服务商侧处理
|
||
Customer -> ServiceProvider: 7.点击链接/扫码进入服务商页面\n【request字段携带加密数据】
|
||
activate ServiceProvider
|
||
|
||
ServiceProvider -> ServiceProvider: 8.AES解密request字段
|
||
ServiceProvider -> ServiceProvider: 9.获取权益码、服务类型参数
|
||
|
||
Customer -> ServiceProvider: 10.客户点击"使用"按钮
|
||
|
||
ServiceProvider -> OpenPlatform: 11.调用服开平台预约接口
|
||
activate OpenPlatform
|
||
|
||
OpenPlatform -> ESB: 12.转发预约请求
|
||
activate ESB
|
||
|
||
ESB -> PointSystem: 13.调用积分系统预约接口
|
||
activate PointSystem
|
||
|
||
alt 20分钟内完成预约
|
||
PointSystem -> PointSystem: 14.校验权益码有效性
|
||
PointSystem -> PointSystem: 15.更新订单状态\n未预约(100)→已预约(200)
|
||
PointSystem --> ESB: 16.返回预约成功
|
||
ESB --> OpenPlatform: 17.返回成功
|
||
OpenPlatform --> ServiceProvider: 18.返回预约成功
|
||
ServiceProvider --> Customer: 19.显示预约成功
|
||
else 超过20分钟权益码失效
|
||
PointSystem --> ESB: 权益码已失效
|
||
ESB --> OpenPlatform: 返回失败
|
||
OpenPlatform --> ServiceProvider: 返回失败
|
||
|
||
alt 手机银行/电话银行渠道
|
||
ServiceProvider --> Customer: 提示"当前页面停留时间过长,\n请您重新进入该页面"
|
||
else CRM渠道
|
||
ServiceProvider --> Customer: 提示"二维码20分钟内有效,\n现已超时失效,\n请联系理财经理重新生成二维码!"
|
||
end
|
||
|
||
note right: 超时后需重新走流程1-6\n生成新的20分钟有效权益码
|
||
end
|
||
deactivate PointSystem
|
||
deactivate ESB
|
||
deactivate OpenPlatform
|
||
deactivate ServiceProvider
|
||
end
|
||
|
||
' ==================== 流程3: 服务取消流程(已预约) ====================
|
||
== 流程3: 服务取消流程(已预约) ==
|
||
|
||
note over Customer, ServiceProvider
|
||
业务说明: 客户取消已预约的服务
|
||
关键规则: 取消前需查询是否有过期幸福点并提示客户
|
||
状态变更: 已预约(200) → 已取消(400)
|
||
end note
|
||
|
||
Customer -> MobileBank: 1.发起服务取消
|
||
activate MobileBank
|
||
|
||
MobileBank -> PointSystem: 2.调用积分系统生成取消链接
|
||
activate PointSystem
|
||
PointSystem -> PointSystem: 3.生成加密链接\n【权益码+服务类型AES加密放入request】
|
||
PointSystem --> MobileBank: 4.返回加密链接
|
||
deactivate PointSystem
|
||
|
||
MobileBank --> Customer: 5.跳转服务商取消页面
|
||
deactivate MobileBank
|
||
|
||
Customer -> ServiceProvider: 6.进入服务商取消页面
|
||
activate ServiceProvider
|
||
|
||
ServiceProvider -> ServiceProvider: 7.AES解密request字段\n获取权益码、服务类型
|
||
|
||
ServiceProvider -> OpenPlatform: 8.查询订单过期幸福点情况
|
||
activate OpenPlatform
|
||
|
||
OpenPlatform -> ESB: 9.转发查询请求
|
||
activate ESB
|
||
|
||
ESB -> PointSystem: 10.查询订单幸福点过期情况
|
||
activate PointSystem
|
||
PointSystem --> ESB: 11.返回过期幸福点信息
|
||
deactivate PointSystem
|
||
|
||
ESB --> OpenPlatform: 12.返回查询结果
|
||
deactivate ESB
|
||
|
||
OpenPlatform --> ServiceProvider: 13.返回过期信息
|
||
deactivate OpenPlatform
|
||
|
||
alt 存在过期幸福点
|
||
ServiceProvider --> Customer: 14.提示"存在已过期幸福点,\n取消后只退还未过期部分,\n是否继续取消?"
|
||
|
||
alt 客户放弃取消
|
||
Customer -> ServiceProvider: 放弃取消
|
||
ServiceProvider --> Customer: 返回服务详情页
|
||
else 客户坚持取消
|
||
Customer -> ServiceProvider: 确认取消
|
||
|
||
ServiceProvider -> OpenPlatform: 15.调用积分系统取消接口
|
||
activate OpenPlatform
|
||
|
||
OpenPlatform -> ESB: 16.转发取消请求
|
||
activate ESB
|
||
|
||
ESB -> PointSystem: 17.调用取消接口
|
||
activate PointSystem
|
||
|
||
PointSystem -> PointSystem: 18.返还未过期幸福点给客户
|
||
PointSystem -> PointSystem: 19.更新订单状态\n已预约(200)→已取消(400)
|
||
PointSystem --> ESB: 20.返回取消成功
|
||
deactivate PointSystem
|
||
|
||
ESB --> OpenPlatform: 21.返回结果
|
||
deactivate ESB
|
||
|
||
OpenPlatform --> ServiceProvider: 22.返回取消成功
|
||
deactivate OpenPlatform
|
||
|
||
ServiceProvider --> Customer: 23.显示取消成功\n已退还XX幸福点
|
||
end
|
||
else 不存在过期幸福点
|
||
ServiceProvider -> OpenPlatform: 14.直接调用取消接口
|
||
activate OpenPlatform
|
||
|
||
OpenPlatform -> ESB: 15.转发取消请求
|
||
activate ESB
|
||
|
||
ESB -> PointSystem: 16.调用取消接口
|
||
activate PointSystem
|
||
|
||
PointSystem -> PointSystem: 17.返还全部幸福点给客户
|
||
PointSystem -> PointSystem: 18.更新订单状态\n已预约(200)→已取消(400)
|
||
PointSystem --> ESB: 19.返回取消成功
|
||
deactivate PointSystem
|
||
|
||
ESB --> OpenPlatform: 20.返回结果
|
||
deactivate ESB
|
||
|
||
OpenPlatform --> ServiceProvider: 21.返回取消成功
|
||
deactivate OpenPlatform
|
||
|
||
ServiceProvider --> Customer: 22.显示取消成功\n已退还全部幸福点
|
||
end
|
||
deactivate ServiceProvider
|
||
|
||
' ==================== 流程4: 服务退还流程(未预约使用) - 行内实现 ====================
|
||
== 流程4: 服务退还流程(未预约使用) 【行内实现】 ==
|
||
|
||
note over Customer, PointSystem
|
||
业务说明: 客户退还未预约使用的权益服务
|
||
关键规则: 存在过期幸福点时只退还未过期部分
|
||
状态变更: 未预约(100) → 已取消(400)
|
||
----
|
||
【行内实现】不经过服务商,直接在手机银行/CRM完成
|
||
end note
|
||
|
||
Customer -> MobileBank: 1.发起服务退还申请
|
||
activate MobileBank
|
||
|
||
MobileBank -> PointSystem: 2.查询订单是否有过期幸福点
|
||
activate PointSystem
|
||
PointSystem --> MobileBank: 3.返回过期幸福点信息
|
||
deactivate PointSystem
|
||
|
||
alt 存在过期幸福点
|
||
MobileBank --> Customer: 4.提示"存在已过期幸福点XX,\n只能退还未过期幸福点YY,\n是否继续?"
|
||
|
||
alt 客户确认退还
|
||
Customer -> MobileBank: 确认退还
|
||
else 客户取消操作
|
||
Customer -> MobileBank: 取消操作
|
||
MobileBank --> Customer: 返回服务详情页
|
||
end
|
||
end
|
||
|
||
MobileBank -> PointSystem: 5.调用积分系统退还接口
|
||
activate PointSystem
|
||
|
||
PointSystem -> PointSystem: 6.退还幸福点给客户\n(只退还未过期部分)
|
||
PointSystem -> PointSystem: 7.更新订单状态\n未预约(100)→已取消(400)
|
||
PointSystem --> MobileBank: 8.返回退还成功(退还数量)
|
||
deactivate PointSystem
|
||
|
||
MobileBank --> Customer: 9.显示退还成功\n已退还XX幸福点
|
||
deactivate MobileBank
|
||
|
||
' ==================== 流程5: 服务完成流程 ====================
|
||
== 流程5: 服务完成流程 ==
|
||
|
||
note over ServiceProvider, PointSystem
|
||
业务说明: 服务商完成服务后通知银行系统
|
||
关键规则:
|
||
1. 服务完成状态更新要求T+2日时效
|
||
2. 完成状态不支持取消,取消状态不支持完成
|
||
状态变更: 已预约(200) → 已完成(300)
|
||
end note
|
||
|
||
ServiceProvider -> ServiceProvider: 1.服务商为客户完成服务
|
||
activate ServiceProvider
|
||
|
||
ServiceProvider -> OpenPlatform: 2.后台调用服开平台\n请求服务完成
|
||
activate OpenPlatform
|
||
|
||
OpenPlatform -> ESB: 3.转发完成请求
|
||
activate ESB
|
||
|
||
ESB -> PointSystem: 4.调用积分系统服务完成接口
|
||
activate PointSystem
|
||
|
||
alt 订单状态为已预约(200)
|
||
PointSystem -> PointSystem: 5.校验订单状态
|
||
PointSystem -> PointSystem: 6.更新订单状态\n已预约(200)→已完成(300)
|
||
PointSystem --> ESB: 7.返回完成成功
|
||
else 订单状态为已取消(400)
|
||
PointSystem --> ESB: 返回失败\n"订单已取消,不支持完成操作"
|
||
else 订单状态为已完成(300)
|
||
PointSystem --> ESB: 返回失败\n"订单已完成,请勿重复操作"
|
||
end
|
||
deactivate PointSystem
|
||
|
||
ESB --> OpenPlatform: 8.返回结果
|
||
deactivate ESB
|
||
|
||
OpenPlatform --> ServiceProvider: 9.返回完成结果
|
||
deactivate OpenPlatform
|
||
|
||
ServiceProvider -> ServiceProvider: 10.记录完成状态
|
||
deactivate ServiceProvider
|
||
|
||
note right
|
||
重要提醒
|
||
----
|
||
1. 服务完成后订单进入对账阶段
|
||
2. 完成状态不可逆,无法取消
|
||
3. 需在T+2日内完成状态更新
|
||
end note
|
||
|
||
' ==================== 流程6: 服务兑换过期处理流程 ====================
|
||
== 流程6: 服务兑换过期处理流程 ==
|
||
|
||
note over Scheduler, PointSystem
|
||
业务说明: 系统自动处理超过90天未预约使用的订单
|
||
关键规则:
|
||
1. 超过90天未预约自动过期
|
||
2. 只返还未过期的幸福点
|
||
3. 服务一旦预约,权益码永久有效(不会过期)
|
||
状态变更: 未预约(100) → 已过期(500)
|
||
end note
|
||
|
||
Scheduler -> Scheduler: 1.定时任务触发\n(检测超过90天未预约订单)
|
||
activate Scheduler
|
||
|
||
Scheduler -> PointSystem: 2.扫描过期订单
|
||
activate PointSystem
|
||
|
||
PointSystem -> PointSystem: 3.查询兑换超过90天\n且状态为未预约(100)的订单
|
||
|
||
loop 遍历每笔过期订单
|
||
PointSystem -> PointSystem: 4.判断订单幸福点过期情况
|
||
|
||
alt 存在幸福点已过期
|
||
PointSystem -> PointSystem: 5.计算未过期幸福点数量
|
||
PointSystem -> PointSystem: 6.返还未过期幸福点给客户
|
||
PointSystem -> PointSystem: 7.更新订单状态\n未预约(100)→已过期(500)
|
||
PointSystem -> PointSystem: 8.记录已过期幸福点数量(不退还)
|
||
else 幸福点全部未过期
|
||
PointSystem -> PointSystem: 5.返还全部幸福点给客户
|
||
PointSystem -> PointSystem: 6.更新订单状态\n未预约(100)→已过期(500)
|
||
end
|
||
end
|
||
|
||
PointSystem --> Scheduler: 9.返回处理结果
|
||
deactivate PointSystem
|
||
|
||
Scheduler -> Scheduler: 10.记录处理日志
|
||
deactivate Scheduler
|
||
|
||
note right
|
||
特别说明
|
||
----
|
||
服务一旦预约(状态200),权益码永久有效
|
||
过期处理只针对"未预约(100)"状态的订单
|
||
end note
|
||
|
||
' ==================== 流程7: 服务对账流程 ====================
|
||
== 流程7: 服务对账流程 ==
|
||
|
||
note over PointSystem, ServiceProvider
|
||
业务说明: 每月生成对账文件供服务商下载核对
|
||
规则:
|
||
1. 每月3号生成上月对账文件
|
||
2. 只包含服务完成(300)状态的订单
|
||
示例: 服务完成时间202512210000 → 对账月份2025年12月 → 2026年1月3日推送
|
||
end note
|
||
|
||
Scheduler -> Scheduler: 1.每月3号定时任务触发
|
||
activate Scheduler
|
||
|
||
Scheduler -> PointSystem: 2.触发生成对账文件
|
||
activate PointSystem
|
||
|
||
PointSystem -> PointSystem: 3.筛选上月服务完成(300)\n状态的权益订单
|
||
|
||
PointSystem -> PointSystem: 4.汇总订单数据\n(权益码、服务类型、完成时间、金额等)
|
||
|
||
PointSystem -> ReconFile: 5.生成对账文件
|
||
activate ReconFile
|
||
|
||
PointSystem --> Scheduler: 6.返回生成成功
|
||
deactivate PointSystem
|
||
deactivate Scheduler
|
||
|
||
note over ReconFile: 对账文件已生成\n等待服务商下载
|
||
|
||
ServiceProvider -> OpenPlatform: 7.调用服开查询文件接口
|
||
activate ServiceProvider
|
||
activate OpenPlatform
|
||
|
||
OpenPlatform -> ReconFile: 8.查询对账文件列表
|
||
|
||
ReconFile --> OpenPlatform: 9.返回文件列表\n(文件名、生成时间、文件大小)
|
||
|
||
OpenPlatform --> ServiceProvider: 10.返回文件列表
|
||
deactivate OpenPlatform
|
||
|
||
ServiceProvider -> OpenPlatform: 11.调用文件下载接口\n(指定文件名)
|
||
activate OpenPlatform
|
||
|
||
OpenPlatform -> ReconFile: 12.下载指定对账文件
|
||
|
||
ReconFile --> OpenPlatform: 13.返回文件内容
|
||
deactivate ReconFile
|
||
|
||
OpenPlatform --> ServiceProvider: 14.返回对账文件
|
||
deactivate OpenPlatform
|
||
|
||
ServiceProvider -> ServiceProvider: 15.解析对账文件
|
||
ServiceProvider -> ServiceProvider: 16.与本地订单数据核对
|
||
ServiceProvider -> ServiceProvider: 17.生成对账结果报告
|
||
deactivate ServiceProvider
|
||
|
||
note right
|
||
对账文件内容
|
||
----
|
||
- 权益码
|
||
- 服务类型
|
||
- 服务完成时间
|
||
- 结算金额
|
||
- 客户信息(脱敏)
|
||
end note
|
||
|
||
@enduml
|