# 《拼团交易平台系统》第3-4节:小商城对接营销结算
作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/0V186 (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# 一、本章诉求
处理小型支付商城在用户完成支付后,调用拼团营销组队结算,并接收组队完成的回调消息执行后续交易结算发货。—— 这里一个是拼团结算,一个是交易结算
也就是说每一笔用户支付完成,拼团组队也就有一人推进了组队的进度,直至组队完成,即可回调交易系统进行通知组队完成,进行后续发货流程。
# 二、业务流程
如图,拼团交易结算流程;

上半部分,是拼团交易过程,进行营销锁单。是咱们上一节实现的。
下办部分,是拼团结算过程,进行营销结算。本节我们要做的新流程。
功能改造点;
- 基础设施层 infrastructure gateway 下的 IGroupBuyMarketService 增加营销拼团结算方法(顺便加入拼团中DTO对象)。
- 修改 OrderService#changeOrderPaySuccess 方法,判断订单是否有营销,无营销的继续走老流程。有营销则通过 port 适配调用基础设施层拼团的结算方法。
- 在 trigger 层,AliPayController 增加 groupBuyNotify 回调方法。并把地址配置到 application-dev.yml 中。这样拼团系统在接收小型商城的用户订单组队完成后,就可以接收回调方法了。
- domain order 领域服务,增加 changeOrderMarketSettlement 修改订单状态方法,增加一个拼团结算的状态。之后发送MQ消息,这个时候就每一笔分别结算发货了。
- domain 领域服务,增加 goods 商品领域,模拟发货和修改订单状态。这个方法交给,OrderPaySuccessListener 接收到结算消息后进行调用。
- 注意;为了方便拼团测试,我们可以把拼团活动的组队人数修改为1个。