@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