Skip to content

优惠券系统

涉及子系统:云端 API(核心)、管理后台(创建/发放)、小程序(领取/使用)
核心业务:支持多种优惠券类型,覆盖发放、领取、使用(核销)全流程


优惠券类型

类型说明示例
折扣券按比例打折9 折券
满减券满指定金额减固定金额满 100 减 20
固定金额券直接抵扣固定金额抵扣 50 元
免费体验券指定产品免费兑换(通常为体验卡)免费体验 1 次

优惠券数据模型

CouponTemplate {
  id              String       # 优惠券模板 ID
  name            String       # 券名称(如"新用户专享50元券")
  type            Enum         # DISCOUNT / CASH_MINUS / FIXED_CASH / FREE_PRODUCT
  discountRate    Decimal?     # 折扣率(type=DISCOUNT,如 0.9 = 9折)
  thresholdAmount Decimal?     # 使用门槛(满 N 元可用)
  discountAmount  Decimal?     # 优惠金额(type=CASH_MINUS / FIXED_CASH)
  freeProductId   String?      # 兑换的产品(type=FREE_PRODUCT)
  applicableProducts String[]  # 可用产品范围(空=全场通用)
  totalStock      Int?         # 总发放数量(null=不限量)
  issuedCount     Int          # 已发放数量
  usedCount       Int          # 已核销数量
  validDays       Int          # 领取后有效天数
  startAt         DateTime?    # 活动开始时间
  endAt           DateTime?    # 活动结束时间
  isActive        Boolean      # 是否启用
}

UserCoupon {
  id              String       # 用户优惠券 ID
  userId          String       # 用户 ID
  templateId      String       # 关联模板
  status          Enum         # UNUSED / USED / EXPIRED
  issuedAt        DateTime     # 发放时间
  expiresAt       DateTime     # 到期时间(issuedAt + validDays)
  usedAt          DateTime?    # 使用时间
  usedOrderId     String?      # 使用的订单 ID
}

发放方式

发放方式触发时机操作入口
注册赠券用户首次注册时自动发放云端 API 自动触发
活动发放管理员批量发放给指定用户群管理后台 → 优惠券管理
分享领取用户分享小程序,好友领取小程序分享 + 云端 API
购买赠券购买指定产品时赠送下一次用的优惠券云端 API 订单回调触发
手动发放客服处理投诉/补偿时手动发放管理后台 → 用户详情

核销流程


管理后台功能

  • 优惠券模板管理:创建/编辑/停用优惠券模板
  • 发放记录:查看每张优惠券的发放对象、领取/使用状态
  • 批量发放:按条件筛选用户群,批量发放指定优惠券
  • 核销记录:查看优惠券使用情况,关联到具体订单

小程序展示规则

  • 购买页面下方展示「可用优惠券 N 张」入口
  • 点击展开可用/不可用两个 Tab
  • 不可用券显示不可用原因(未达门槛/不适用此产品/已过期)

待确认事项

  • [ ] 注册赠券的具体方案(赠什么券、金额/折扣)
  • [ ] 是否支持优惠码(用户手动输入码领券)
  • [ ] 优惠券是否可以叠加使用(当前设计为每单仅用一张)
  • [ ] 免费体验券是否需要特殊核销逻辑(无支付流程)

健身房服务系统内部规划文档