秒杀与拼团
这篇解决什么
秒杀单人立刻买、拼团要凑人数,订单字段怎么分。读完能对上 type = 1 / type = 3,以及拼团失败为什么走 COMBINATION_CLOSE。
示意图:秒杀不写拼团记录。拼团成功前记录是进行中。取消拼团用专门的取消类型。
怎么区分
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 秒杀 | type = 1,seckillActivityId | ruoyi-office/yudao-module-mall/.../TradeOrderDO.java |
| 拼团 | type = 3,combinationActivityId / combinationRecordId / combinationHeadId | 同上 |
| 秒杀库存 | 活动 stock | SeckillActivityDO |
| 拼团价 | promotion_combination_product | CombinationProductDO |
| 秒杀冲突 | 同类 SPU 不能两个启用秒杀 | SECKILL_ACTIVITY_SPU_CONFLICTS |
| 拼团冲突 | 同类 SPU 不能两个启用拼团 | COMBINATION_ACTIVITY_SPU_CONFLICTS |
跨类型同样没有统一拦截。同一 SPU 可以同时有秒杀和拼团,用户从哪个页下单,就带哪组活动 ID。
TradeOrderUpdateServiceImpl 在核销、取消时会判断 TradeOrderTypeEnum.isCombination。拼团关闭用 TradeOrderCancelTypeEnum.COMBINATION_CLOSE。
成团与失败
秒杀没有「团」。拼团记录 headId = 0 是团长,其他人挂团长记录。状态 0 进行中,1 成功,2 失败。virtualGroup 到期可虚拟凑满。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
userSize | 几人团 | CombinationActivityDO |
limitDuration | 开团时限(小时) | 同上 |
virtualGroup | 虚拟成团 | 同上 |
| 失败退款 | 记录 FAILED 后关单 | CombinationRecordStatusEnum |
核销也要看类型
自提核销在订单服务里。拼团单未成团不要当普通待发货去核。秒杀单没有团状态,只看订单 status。
示意图:按订单类型和拼团记录。不要用秒杀时段去过滤拼团列表。
配置与操作
分别在秒杀商品页和拼团商品页配。没有「秒杀与拼团」菜单。秒杀 type=1 不写拼团记录;拼团 type=3 要凑 userSize,失败走 COMBINATION_CLOSE。
自提核销要看订单类型,未成团不要当普通待发货去核。开启见 商城功能设计。

本系统截图:秒杀商品。

本系统截图:拼团商品。
