Skip to content

【营销】秒杀活动 ​

秒杀功能,主要由 yudao-module-promotion 后端模块的 seckill 实现,包括两部分:秒杀配置(场次)、秒杀活动。如下图所示: 表关系

# 1. 秒杀配置 ​

秒杀配置,由卖家在管理后台配置,设置可参与秒杀的时间段(场次),由 SeckillConfigService 类实现。

# 1.1 表结构 ​

省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段 CREATE TABLE promotion_seckill_config ( id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '秒杀时段名称', start_time varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '开始时间点', end_time varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '结束时间点', slider_pic_urls varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '秒杀主图', status tinyint NOT NULL DEFAULT '0' COMMENT '活动状态', PRIMARY KEY (id) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='秒杀时段';

# 1.2 管理后台 ​

对应 [商城系统 -> 营销中心 -> 秒杀活动 -> 秒杀时段] 菜单,对应 yudao-ui-admin-vue3 项目的 views/mall/promotion/seckill/config 目录。如下图所示: 管理后台

# 2. 秒杀活动 ​

秒杀活动,由卖家在管理后台配置,提供给买家参与秒杀,由 SeckillActivityService 类实现。

# 2.1 表结构 ​

一个秒杀活动,对应一条 promotion_seckill_activity 表记录,对应一个商品 SPU。而每个商品 SKU 在该秒杀下可以单独配置秒杀价格、库存,所以会有多条 promotion_seckill_product 子表记录。 省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段 CREATE TABLE promotion_seckill_activity ( id bigint NOT NULL AUTO_INCREMENT COMMENT '秒杀活动编号', name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '秒杀活动名称', sort int NOT NULL DEFAULT '0' COMMENT '排序', remark varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注', config_ids varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '秒杀时段 id 数组', spu_id bigint NOT NULL DEFAULT '0' COMMENT '秒杀活动商品', status tinyint NOT NULL DEFAULT '0' COMMENT '活动状态', total_limit_count int DEFAULT '0' COMMENT '总限购数量',
single_limit_count int DEFAULT '0' COMMENT '单次限够数量', start_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '活动开始时间', end_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '活动结束时间', stock int DEFAULT '0' COMMENT '秒杀库存', total_stock int DEFAULT '0' COMMENT '秒杀总库存',
PRIMARY KEY (id) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='秒杀活动'; ① config_ids 字段:秒杀时段 id 数组,由 promotion_seckill_config 表的 id 字段组成的数组。 ② spu_id 字段:商品 SPU ID,对应商品 SPU 表的 id 字段。 注意:一个秒杀活动,只能对应一个商品 SPU,不能对应多个商品 SPU!!! ③ status 字段:活动状态,由 CommonStatusEnum 枚举,只有开启、禁用两个状态。禁用时,无法参与秒杀。 ④ stock、total_stock 字段:秒杀库存、秒杀总库存。业务上考虑秒杀价格可能较低,一般少量库存参与秒杀。 CREATE TABLE promotion_seckill_product ( id bigint NOT NULL AUTO_INCREMENT COMMENT '秒杀参与商品编号', activity_id bigint NOT NULL DEFAULT '0' COMMENT '秒杀活动 id', config_ids varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '秒杀时段 id 数组', activity_status tinyint NOT NULL DEFAULT '0' COMMENT '秒杀商品状态', activity_start_time datetime NOT NULL COMMENT '活动开始时间点', activity_end_time datetime NOT NULL COMMENT '活动结束时间点', spu_id bigint NOT NULL DEFAULT '0' COMMENT '商品 spu_id', sku_id bigint NOT NULL DEFAULT '0' COMMENT '商品 sku_id', seckill_price int NOT NULL DEFAULT '0' COMMENT '秒杀金额,单位:分', stock int NOT NULL DEFAULT '0' COMMENT '秒杀库存', PRIMARY KEY (id) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='秒杀参与商品'; ① 【活动信息】activity_id 字段:秒杀活动编号,对应 promotion_seckill_activity 表的 id 字段。其它 activity_* + spu_id 字段,都是冗余字段,方便查询。 ② 【SKU 信息】sku_id 字段:商品 SKU 编号,对应商品 SKU 表的 id 字段。seckill_price 字段:秒杀价格,单位分。stock 字段:秒杀库存。

# 2.2 管理后台 ​

对应 [商城系统 -> 营销中心 -> 秒杀活动 -> 秒杀商品] 菜单,对应 yudao-ui-admin-vue3 项目的 views/mall/promotion/seckill/activity 目录。如下图所示: 管理后台

# 2.3 移动端 ​

① 点击 uni-app 首页的 [秒杀] 菜单,进入秒杀列表页,对应 pages/activity/seckill/list.vue 目录。如下图所示: 秒杀列表 ② 点击某个秒杀,进入秒杀详情页,对应 pages/goods/seckill.vue 目录。如下图所示: 秒杀详情 ③ 点击「立即购买」按钮,选择商品后,进入确认订单页,如下图所示: 确认订单 点击「提交订单」按钮后,会创建一条 trade_order 订单记录:

  • trade_order 的 type 字段为秒杀类型,seckill_activity_id 字段为秒杀活动编号
  • 秒杀优惠金额的计算,由 TradeSeckillActivityPriceCalculator 类实现
  • 秒杀在订单的自定义处理逻辑,由 TradeSeckillOrderHandler 类实现 后续的逻辑,就是普通订单的流程,就不重复赘述了~ .pageB img{width:80px!important;} .wwads-horizontal .wwads-text, .wwads-content .wwads-text{line-height:1;} 【营销】拼团活动 【营销】砍价活动 ← 【营销】拼团活动 【营销】砍价活动→ Theme by Vdoing | Copyright © 2019-2026 芋道源码 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式 × .windowRB{ padding: 0;} .windowRB .wwads-img{margin-top: 10px;} .windowRB .wwads-content{margin: 0 10px 10px 10px;} .custom-html-window-rb .close-but{ display: none; }
最近更新