# 《拼团交易平台系统》第2-26节:未支付退单流程(枚举策略模式应用)
作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/MVr1a (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# 一、本章诉求
退单,分为退掉拼团组队记录和外部对接的商城(也可以是其他平台)退单。当前我们在处理的流程为退掉拼团的组队记录,在这部分流程中,还包括;未支付退单
、已支付未成团退单
、已支付已成团退单
。
本节我们先来串联未支付退单
部分,搭建此部分的领域功能服务逻辑,以及编写出退单策略框架结构。整体的功能实现,后续还会引入责任链进行优化处理。可以先对照使用责任链和不使用时候的代码实现方式。
# 二、功能流程
如图,退单流程设计领域结构。

- 首先,在 trade 领域层,新增加一个逆向流程接口,之后在领域层增加退单策略。
- 之后,退单策略分为三个实现类,
未支付退单
、已支付未成团退单
、已支付已成团退单
,本节先实现其中未支付退单。由未支付退单,一定是这个人参与了锁单,但拼团未完成。 - 最后,在仓储层实现实现对数据库的事务操作。更新退单记录,更新拼团锁单量扣减。
- 此外,本部分在后续章节还要迭代,使用设计模式的方式优化实现逻辑。因为整个退单的步骤也比较多,还包括了后需要发送 MQ 消息的过程。