# 《拼团交易平台系统》第3-3节:小商城对接营销锁单

作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/1QJTP (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

# 一、本章诉求

从本章开始,我们会进入到2套系统的对接,陆续完成星球「码农会锁」里的小型支付商城拼团在业务流程层面完成接口对接。

通过这样的学习,你可以积累到关于微服务间是如何通信和流程衔接的。在这公司里也是非常常见的设计和开发方式。

那么,本节我们先来完成商品下单过程中,营销锁单的接口对接。小型支付商城选择的是 s-pay-mall-ddd 工程,单独拿出一套命名为 s-pay-mall-ddd-market 方便大家学习。

前置学习;在开始这部分对接前,需要对星球的《小型支付商城系统》有所学习。课程地址:https://t.zsxq.com/3X9GA (opens new window)

# 二、业务流程

如图,两套微服务对接节点;

  • 左侧,小型支付商城,用户下单过程。增加一个营销锁单,从营销锁单中获取拼团营销拿到的优惠价格。之后小型商城继续往下走,创建支付订单。

  • 右侧,拼团交易平台,提供营销锁单流程,锁单目标、优惠试算,规则过滤,最终落库和返回结果(订单ID、原始价格、折扣金额、支付金额、订单状态)。

  • 功能改造点;

    • 【拼团系统】lockMarketPayOrder 营销拼团锁单,增加返回字段值。原来只返回了优惠金额,为了方便使用方不需要自己在做计算,可以直接返回,原始价格、折扣金额、支付金额。这样的话,拼团就需要在 group_buy_order_list 表增加 pay_price,这样就更方便的拿到这个值了。
    • 【小型商城】基于 Retrofit2,在 infrastructure 基础设施层,封装对拼团接口的对接。Call<Response<LockMarketPayOrderResponseDTO>> lockMarketPayOrder(@Body LockMarketPayOrderRequestDTO requestDTO); 并在 app 启动层的配置里,修改 Retrofit2Config 提供 groupBuyMarketService 服务。
    • 【小型商城】对 AliPayController#createPayOrder 创建订单服务的接口入参类,添加拼团队伍ID、活动ID、营销标识。如果前端前端没有拿到拼团活动信息则传递无营销。
    • 【小型商城】对 AbstractOrderService#createOrder 创建订单的过程中,通过 port 端口,添加 port.lockMarketPayOrder(userId, teamId, activityId, productId, orderId); 锁单。
    • 【小型商城】对于锁单返回的支付金额,为拼团交易订单金额。最终营销标识、优惠金额、支付金额,都会更新到 pay_order 表中,这个表要增加这样3个字段。