You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.2 KiB
5.2 KiB
优惠券功能使用指南
功能概述
本系统实现了完整的优惠券功能,包括优惠券模板管理、用户优惠券管理、优惠券使用、统计分析等功能。
核心功能
1. 优惠券模板管理
- 创建优惠券模板(满减券、折扣券、免费券)
- 设置发放数量限制和个人领取限制
- 配置适用范围(全部商品、指定商品、指定分类)
- 设置有效期(领取后生效或固定时间)
2. 用户优惠券管理
- 用户主动领取优惠券
- 系统自动发放优惠券
- 优惠券使用和退还
- 优惠券状态管理(未使用、已使用、已过期)
3. 订单优惠券功能
- 获取订单可用优惠券
- 计算优惠券优惠金额
- 验证优惠券适用性
- 推荐最优优惠券组合
4. 业务场景支持
- 新用户注册赠送
- 生日优惠券发放
- 消费返券
- 活动批量发放
数据库表结构
优惠券模板表 (shop_coupon)
- id: 主键
- name: 优惠券名称
- description: 优惠券描述
- type: 优惠券类型(10满减券 20折扣券 30免费券)
- reduce_price: 满减金额
- discount: 折扣率(0-100)
- min_price: 最低消费金额
- total_count: 发放总数量(-1无限制)
- issued_count: 已发放数量
- limit_per_user: 每人限领数量(-1无限制)
- expire_type: 到期类型(10领取后生效 20固定时间)
- expire_day: 有效天数
- start_time: 有效期开始时间
- end_time: 有效期结束时间
- apply_range: 适用范围(10全部商品 20指定商品 30指定分类)
- apply_range_config: 适用范围配置(JSON格式)
- enabled: 是否启用
- status: 状态
用户优惠券表 (shop_user_coupon)
- id: 主键
- coupon_id: 优惠券模板ID
- user_id: 用户ID
- name: 优惠券名称
- type: 优惠券类型
- reduce_price: 满减金额
- discount: 折扣率
- min_price: 最低消费金额
- start_time: 有效期开始时间
- end_time: 有效期结束时间
- status: 使用状态(0未使用 1已使用 2已过期)
- use_time: 使用时间
- order_id: 使用订单ID
- order_no: 使用订单号
- obtain_type: 获取方式(10主动领取 20系统发放 30活动赠送)
- obtain_source: 获取来源描述
API接口说明
优惠券模板管理
GET /api/shop/shop-coupon/page
- 分页查询优惠券模板POST /api/shop/shop-coupon
- 创建优惠券模板PUT /api/shop/shop-coupon
- 更新优惠券模板DELETE /api/shop/shop-coupon/{id}
- 删除优惠券模板
用户优惠券管理
GET /api/shop/user-coupon/my
- 获取当前用户优惠券GET /api/shop/user-coupon/my/available
- 获取可用优惠券POST /api/shop/user-coupon/receive/{couponId}
- 领取优惠券PUT /api/shop/user-coupon/use
- 使用优惠券PUT /api/shop/user-coupon/return/{orderId}
- 退还优惠券
优惠券业务功能
POST /api/shop/coupon-business/available-for-order
- 获取订单可用优惠券POST /api/shop/coupon-business/calculate-order-amount
- 计算使用优惠券后的订单金额POST /api/shop/coupon-business/recommend-best-combination
- 推荐最优优惠券组合POST /api/shop/coupon-business/batch-issue-activity
- 批量发放活动优惠券
使用示例
1. 创建优惠券模板
{
"name": "新用户专享券",
"description": "新用户注册即可领取",
"type": 10,
"reducePrice": 20.00,
"minPrice": 100.00,
"totalCount": 1000,
"limitPerUser": 1,
"expireType": 10,
"expireDay": 30,
"applyRange": 10,
"enabled": 1
}
2. 用户领取优惠券
// 前端调用
POST /api/shop/user-coupon/receive/1
3. 订单使用优惠券
{
"goodsItems": [
{
"goodsId": 1,
"categoryId": 1,
"price": 150.00,
"quantity": 1
}
],
"totalAmount": 150.00
}
4. 计算优惠金额
// 获取可用优惠券
POST /api/shop/coupon-business/available-for-order
// 计算优惠金额
POST /api/shop/coupon-business/calculate-order-amount?userCouponId=1
定时任务
系统包含以下定时任务:
-
过期优惠券处理 - 每天凌晨2点执行
- 自动更新过期优惠券状态
-
优惠券到期提醒 - 每天上午10点执行
- 提醒用户即将过期的优惠券
-
生日优惠券发放 - 每天凌晨1点执行
- 为当天生日的用户发放生日优惠券
配置说明
优惠券类型配置
TYPE_REDUCE = 10
- 满减券TYPE_DISCOUNT = 20
- 折扣券TYPE_FREE = 30
- 免费券
适用范围配置
APPLY_ALL = 10
- 全部商品APPLY_GOODS = 20
- 指定商品APPLY_CATEGORY = 30
- 指定分类
获取方式配置
OBTAIN_RECEIVE = 10
- 主动领取OBTAIN_SYSTEM = 20
- 系统发放OBTAIN_ACTIVITY = 30
- 活动赠送
注意事项
- 数据一致性:优惠券使用和退还操作需要保证数据一致性
- 并发控制:优惠券领取需要考虑并发情况,避免超发
- 性能优化:大量用户时需要考虑查询性能优化
- 业务规则:根据实际业务需求调整优惠券规则和限制
扩展功能
可以根据业务需要扩展以下功能:
- 优惠券分享功能
- 优惠券兑换码功能
- 优惠券组合使用
- 优惠券使用统计分析
- 优惠券营销活动管理