营销活动中心功能说明
更新日期:2026-05-22。
本文记录后端服务在 WinTradeCloudService 中的营销活动中心能力。当前代码主要分布在 wt-market、wt-business、wt-user、wt-client、wt-admin、wt-message 和 wt-quartz。
功能范围
营销活动中心把平台运营、商户经营、消费者领券、订单优惠、预算核算和补贴结算串成一条业务链路。
| 能力 | 说明 | 主要入口 |
|---|---|---|
| 平台营销活动 | 平台创建、启动、暂停、恢复、结束、关闭未使用券、结算归档和取消营销活动 | AdminPlatformMarketingActivityController |
| 商户营销活动 | 商户创建和维护自己的店铺活动,活动状态流转与平台活动一致 | MerchantMarketingActivityController |
| 平台活动参与 | 支持平台批量邀请商户、商户通过报名向导创建或选择商户活动并提交 SKU、平台审核通过或拒绝,审核通过后自动补齐平台活动店铺和 SKU 范围 | AdminPlatformMarketingScopeController、MerchantMarketingScopeController |
| 活动范围 | 支持按店铺和 SKU 绑定活动参与范围;标准平台活动流程由报名审核生成范围,平台也可手工补录范围用于重点商品预置或运营复核 | MarketingActivityScopeResolver |
| 优惠券 | 支持平台券、商户券、券组、券池、发券记录、用券记录和分摊记录 | 平台营销接口、商户营销接口、个人卡券钱包接口 |
| 活动价 | 支持平台活动价和商户活动价,商品当前价格试算会优先匹配活动价 | MarketingActivityPriceComponent |
| 订单优惠 | 下单预览、创建、支付、取消、超时和退款链路接入优惠券锁定、使用和释放 | MarketingCouponOrderComponent |
| 预算核算 | 支持平台和商户预算池、充值、冻结、解冻、人工调账、对账、低预算预警和剩余预算退回 | MarketingBudgetAccountingComponent |
| 补贴结算 | 支持营销补贴确认、作废、标记需调账、人工调账完成、异常结案和确认后推进商户结算入账 | MarketingSubsidyConfirmComponent、MarketingSubsidySettlementAdvanceComponent |
| 成本报表 | 定时生成活动成本日报,供平台和商户查询 | MarketingActivityCostDailyReportTaskComponent |
设计目标
| 目标 | 说明 |
|---|---|
| 活动可配置 | 平台和商户可以分别配置活动、范围、券池、活动价和预算 |
| 优惠可追踪 | 用户从领券、锁券、用券到释放都有卡券流水和用券记录 |
| 成本可核算 | 平台承担、商户承担、预算预占、预算使用和结算后调整可对账 |
| 补贴可治理 | 营销产生的商户补贴可以人工确认、作废、异常结案和结算推进 |
| 状态可恢复 | 活动、卡券、订单、预算和补贴都有可查询状态,支持异常后继续处理 |
| 消息可触达 | 卡券过期、预算预警、补贴待确认等事件可以进入消息和待办体系 |
多端入口
| 端别 | 基础路径 | 主要用户 | 覆盖能力 |
|---|---|---|---|
| 平台管理端 | /api/v1/marketing/admin |
平台管理员 | 平台活动、商户报名、平台券、平台预算、活动价、补贴确认、成本日报、商户券记录查询 |
| 商户端 | /api/v1/merchant/marketing |
商户 | 商户活动、平台活动报名、商户券、商户预算、商户活动价、平台活动价成本确认、商户侧成本和补贴记录 |
| 消费者端 | /api/v1/user/personal/coupon-wallet |
个人用户 | 我的卡券、卡券流水、可领取优惠券、领取平台券和商户券 |
| 订单端 | /api/v1/personal/order |
个人用户 | 购物车和单商品订单预览、可用券查询、带券下单和支付 |
业务分层
营销活动中心不是单一 Controller,而是跨 wt-market、wt-business、wt-user、wt-message 和 wt-quartz 的组合能力。
| 层级 | 主要模块 | 职责 |
|---|---|---|
| 活动资料层 | wt-market |
保存平台活动、商户活动、活动范围、优惠券、券池、活动价、预算池、成本报表和补贴记录 |
| 交易聚合层 | wt-business |
在价格试算、订单创建、支付、取消、退款和结算中调用营销组件 |
| 用户资产层 | wt-user |
保存个人卡券钱包、卡券项和卡券流水 |
| 消息触达层 | wt-message |
承接优惠券过期提醒、预算预警、补贴待确认等营销事件 |
| 定时调度层 | wt-quartz |
周期性处理活动到期、券过期、预算预警、预算对账和成本日报 |
推荐按以下顺序理解代码:
- 先看
AdminPlatformMarketingActivityController和MerchantMarketingActivityController,确认平台和商户活动主档状态流转。 - 再看
AdminPlatformMarketingScopeController和MerchantMarketingScopeController,确认平台邀请、商户报名、审核和活动范围。 - 再看
PersonalCouponWalletController,确认消费者如何领取和查看卡券。 - 再看
OrderAbstractServiceImpl和MarketingCouponOrderComponent,确认优惠券如何接入订单。 - 最后看
MarketingBudgetAccountingComponent、MarketingSubsidyConfirmComponent和定时任务,确认成本、预算和补贴如何闭环。
关键状态
营销活动中心新增多个状态枚举,联调时建议前端按后端枚举展示,不要在前端自行推断状态。
| 状态对象 | 代表枚举 | 常见状态语义 |
|---|---|---|
| 活动状态 | MarketingActivityStatus |
草稿、待开始、进行中、暂停、已结束、已结算、已取消 |
| 平台活动参与状态 | MarketingActivityParticipationStatus |
已邀请、已申请、已通过、已拒绝、已退出、已移除 |
| 优惠券状态 | PersonalCouponStatus |
可用、已锁定、已使用、已过期、已退回 |
| 发券状态 | CouponIssueStatus |
待发放、发放成功、发放失败 |
| 用券状态 | CouponUseStatus |
已锁定、已使用、已释放、已退回 |
| 预算流水状态 | ActivityBudgetTransactionStatus |
成功、失败、处理中 |
| 补贴确认状态 | MarketingSubsidyConfirmStatus |
待确认、部分确认、已确认、已作废、异常结案 |
| 补贴结算推进状态 | MarketingSubsidySettlementAdvanceStatus |
待推进、已推进、推进失败 |
活动状态建议按下面口径使用:
| 动作 | 前置状态 | 结果 | 说明 |
|---|---|---|---|
| 创建活动 | 无 | 草稿或待开始 | 具体初始状态以后端 Service 为准 |
| 启动活动 | 未开始或已暂停 | 进行中 | 启动前需要活动时间、范围、预算和策略满足要求 |
| 暂停活动 | 进行中 | 暂停 | 暂停后不应继续参与价格计算和领券 |
| 恢复活动 | 暂停 | 进行中 | 恢复时会重新校验活动有效性 |
| 结束活动 | 进行中或暂停 | 已结束 | 到期任务也会自动结束活动 |
| 关闭未使用券 | 已结束 | 已结束 | 归档前可提前作废仍可用的钱包券,避免活动归档后继续产生权益 |
| 结算归档 | 已结束 | 已结算 | 归档前需要钱包券、订单、预算、补贴和结算推进均满足结清条件 |
| 取消活动 | 未开始且无业务引用 | 已取消 | 已被领券、用券或产生成本的活动不应直接取消 |
平台管理能力
平台管理端新增的营销接口用于运营人员统一维护平台营销活动。
| 模块 | 关键动作 | 说明 |
|---|---|---|
| 平台活动 | 分页、详情、创建、修改、删除、启动、暂停、恢复、结束、关闭未使用券、结算归档、取消 | 活动状态由后端 Service 控制,结算归档前会执行结算校验;后台配置向导要求维护 1:1、16:9、2:1 三张主宣传图 |
| 商户报名 | 报名分页、详情、批量邀请、审核通过、拒绝 | 审核通过后自动把商户填报的店铺和 SKU 加入平台活动参与范围;邀请报名页使用 /merchant-marketing/platform-activity-apply-workflow |
| 活动范围 | 店铺范围、SKU 范围的分页、详情、创建、批量创建、修改和删除 | 标准流程由商户报名审核生成范围,手工维护主要用于平台预置重点范围或复核修正 |
| 活动公告 | 活动与公告关联的维护 | 用于把营销活动和公告内容绑定 |
| 平台优惠券 | 券组、券、用券策略、策略目标、券池的维护 | 券池负责发行额度、可领数量和预算占用 |
| 发券和用券记录 | 平台发券、平台用券、平台分摊、商户发券、商户用券、商户分摊记录查询 | 用于审计优惠券从发放到使用的全链路 |
| 平台预算 | 预算池、预算流水、预算充值、手工账务、剩余预算退回、结算后调整 | 平台营销成本进入预算池和流水体系 |
| 平台活动价 | 活动价格策略维护、成本确认记录和活动价分摊记录 | 当前价格计算会读取生效活动价 |
| 补贴确认 | 补贴确认、作废、标记需调账、人工调账完成、异常结案、动作记录和补贴结算推进 | 平台可以人工治理营销补贴金额 |
| 活动成本日报 | 成本日报分页和详情 | 支撑活动成本统计和复核 |
平台运营推荐通过 营销中心 / 平台营销活动配置向导 按以下顺序配置:
- 创建平台活动,录入活动名称、活动编码、活动时间、活动状态、活动说明和
1:1、16:9、2:1三张主宣传图。 - 按需手工补录活动参与店铺和 SKU。标准报名流程可以跳过,等商户报名审核通过后自动生成范围。
- 先保存预算池,确保后续券池有明确预算来源。
- 如活动包含优惠券,创建券组、券定义、用券策略和券池,券池必须绑定已保存的预算池。
- 如活动包含平台活动价,创建平台活动价策略,并确认成本承担方和商户确认规则;没有平台预选 SKU 时可以先跳过,等报名生成 SKU 范围后再补充。
- 批量邀请目标商户,报名页面地址使用
/merchant-marketing/platform-activity-apply-workflow。 - 商户报名后,平台审核通过,系统会把商户填报的店铺和 SKU 同步进入平台活动范围。
- 发布前检查预算池、券池、优惠券池预算绑定、审核通过报名或手工 SKU 范围,再启动活动。
- 活动运行期间查看发券记录、用券记录、活动价分摊、成本日报和预算流水。
- 活动结束后关闭未使用券、执行补贴确认、剩余预算退回、结算后调整和活动归档。
平台端需要重点控制两个边界:
| 边界 | 说明 |
|---|---|
| 预算边界 | 预算不足时不应继续放大活动成本,券池发放、活动价使用和补贴确认都需要可追踪预算来源 |
| 结算边界 | 活动归档前需要确认发券、用券、退款、补贴、结算推进和预算退回均有明确状态 |
商户经营能力
商户端新增营销接口用于商户自主管理店铺营销。
| 模块 | 关键动作 | 说明 |
|---|---|---|
| 商户活动 | 分页、详情、创建、修改、启动、暂停、恢复、结束、关闭未使用券、结算归档、取消 | 所有查询和写入会按当前商户账号校验归属 |
| 平台活动报名 | 报名分页、提交报名 | 商户推荐通过报名向导选择已邀请的平台活动,创建或选择商户活动,选择参与 SKU 后提交报名 |
| 活动范围 | 店铺范围和 SKU 范围维护 | 商户只能维护自己名下活动和店铺商品 |
| 商户优惠券 | 券组、券、用券策略、策略目标、券池维护 | 支持商户自发券和用户领券 |
| 发券和用券记录 | 发券记录、用券记录、分摊记录查询 | 商户可查看本店优惠券使用成本 |
| 商户预算 | 预算池、预算流水、充值、手工账务、剩余预算退回、结算后调整 | 预存预算可从商户钱包充值进入活动预算池 |
| 商户活动价 | 活动价策略维护、活动价分摊查询 | 创建和修改时会校验商户活动价合法性 |
| 平台活动价成本确认 | 商户维护平台活动价成本确认记录 | 用于平台活动价涉及商户成本承担时的确认 |
| 补贴记录 | 补贴确认记录、动作记录和结算推进记录查询 | 商户只能查看自身补贴数据 |
| 成本日报 | 活动成本日报查询 | 商户可按自身活动和店铺查看成本 |
商户运营推荐配置顺序:
- 如参与平台活动,进入
商户营销 / 平台活动报名向导,先选择已邀请的平台活动。 - 在向导中创建新的商户活动,或选择已有商户活动;创建时会带入平台活动和店铺信息。
- 选择本店参与活动的 SKU 并提交报名,报名必须包含 SKU。
- 等待平台审核通过;通过后系统会把店铺和报名 SKU 写入平台活动范围。
- 如活动以优惠券为主,创建商户券、券池和用券策略。
- 如活动以价格折扣为主,创建商户活动价策略。
- 给商户活动预算池充值,充值资金来自商户钱包。
- 启动活动,并在活动期内查看领券、用券、预算流水和成本日报。
- 活动结束后查看补贴确认和结算推进记录,核对实际承担成本。
商户侧所有查询和写入都必须限制在当前商户账号下。接口已经在 Controller 中调用 getMerchantAccountId() 并校验归属,前端仍然需要避免把其他商户 ID 混入请求。
消费者卡券能力
个人用户新增卡券钱包,优惠券生命周期从领取进入钱包开始。
| 能力 | 路径 | 说明 |
|---|---|---|
| 我的卡券钱包 | GET /api/v1/user/personal/coupon-wallet |
查询或创建当前个人账户的钱包 |
| 我的卡券分页 | GET /api/v1/user/personal/coupon-wallet/item/page |
查询个人卡券列表 |
| 我的卡券详情 | GET /api/v1/user/personal/coupon-wallet/item/{walletItemId} |
查询单张卡券详情并校验归属 |
| 卡券流水分页 | GET /api/v1/user/personal/coupon-wallet/log/page |
查询领取、锁定、使用、释放、过期等流水 |
| 可领取平台券 | GET /api/v1/user/personal/coupon-wallet/claimable/platform/page |
查询当前用户可领取的平台券池 |
| 可领取商户券 | GET /api/v1/user/personal/coupon-wallet/claimable/merchant/page |
查询当前用户可领取的商户券池 |
| 领取平台券 | POST /api/v1/user/personal/coupon-wallet/claim/platform/{couponPoolId} |
领取平台活动优惠券 |
| 领取商户券 | POST /api/v1/user/personal/coupon-wallet/claim/merchant/{couponPoolId} |
领取商户活动优惠券 |
消费者卡券生命周期:
| 阶段 | 触发动作 | 结果 |
|---|---|---|
| 可领取 | 活动、券池、时间、库存和用户领取限制满足条件 | 出现在可领取平台券或商户券列表 |
| 已领取 | 用户调用领取接口 | 生成 PersonalCouponWalletItem 和领取流水 |
| 已锁定 | 用户创建订单并选择该券 | 卡券绑定订单,避免重复使用 |
| 已使用 | 订单支付成功 | 生成用券记录和分摊记录 |
| 已释放 | 订单取消、支付失败或待支付超时 | 卡券回到可用或按释放策略结束 |
| 已过期 | 超过有效期且未使用 | 定时任务置为过期,并可触发过期提醒 |
| 已退回 | 退款或售后完成 | 按退款策略处理卡券和预算成本 |
卡券展示建议至少包含:券名称、优惠类型、优惠金额或折扣、适用范围、有效期、状态、来源活动、所属商户店铺、是否即将过期。
订单接入逻辑
订单链路现在支持平台券和商户券。
- 订单预览时,前端可以传入
platformCouponWalletItemId和merchantCouponWalletItems。 - 后端先完成商品价格、库存、运费和地址试算。
MarketingCouponOrderComponent在试算结果上叠加优惠券优惠金额。- 创建正式订单时,系统锁定本次使用的优惠券。
- 支付前会校验已锁定优惠券仍然有效,校验失败会在新事务中释放优惠券。
- 支付成功后,优惠券标记为已使用,并生成用券记录和分摊记录。
- 订单取消、支付失败、待支付超时或退款完成时,系统按释放原因处理优惠券。
- 支付成功后会创建待确认营销补贴,后续由补贴确认和结算推进流程处理。
涉及字段:
| 对象 | 新增字段 | 用途 |
|---|---|---|
| 订单创建请求 | platformCouponWalletItemId |
使用一张平台券 |
| 订单创建请求 | merchantCouponWalletItems |
跨店订单按店铺使用商户券 |
| 订单试算结果 | couponDiscountAmount |
优惠券总优惠金额 |
| 订单试算结果 | platformCouponAmount |
平台承担优惠金额 |
| 订单试算结果 | merchantCouponAmount |
商户承担优惠金额 |
| 订单项 | merchantSettlementBaseAmount |
商户结算基数 |
| 订单项 | promotionId、promotionData |
营销活动快照 |
订单请求约束:
| 字段 | 约束 |
|---|---|
platformCouponWalletItemId |
一个订单最多使用一张平台券 |
merchantCouponWalletItems |
跨店订单按店铺传入,每个 merchantShopId 最多一张商户券 |
merchantCouponWalletItems[].merchantShopId |
必须属于本次订单实际成功试算的店铺 |
merchantCouponWalletItems[].walletItemId |
必须属于当前个人账户,且状态为可用 |
accountAddressId |
参与运费试算,优惠券适用门槛应以试算后的订单金额为准 |
订单金额口径:
| 金额字段 | 说明 |
|---|---|
totalPrice |
商品货架原总金额 |
totalDiscountPrice |
价格策略或活动价产生的商品优惠 |
couponDiscountAmount |
优惠券产生的优惠总额 |
platformCouponAmount |
平台承担的优惠券金额 |
merchantCouponAmount |
商户承担的优惠券金额 |
totalPayPrice |
用户最终应付金额,包含商品、运费和优惠结果 |
merchantSettlementBaseAmount |
商户结算时的基数,活动价和商户承担优惠会影响该值 |
活动价计算
商品当前价格计算新增活动价优先逻辑。
- 查询 SKU 所属 SPU、店铺货架和库存。
- 先通过
MarketingActivityPriceComponent查找匹配的平台活动价或商户活动价。 - 若命中活动价,则写入活动价、优惠金额、结算基数和
promotionData。 - 若未命中活动价,则回退到原有会员价、阶梯价、促销价等价格策略。
- 最后叠加国内和国际运费,得到
totalPayPrice。
活动价会记录成本承担方、结算扣减规则和活动来源,便于后续预算核算和补贴处理。
活动价匹配建议按以下维度排查:
| 维度 | 排查点 |
|---|---|
| 活动有效性 | 活动状态、开始时间、结束时间、是否暂停、是否已结算或取消 |
| 范围有效性 | 店铺是否在活动范围内,SKU 是否在活动范围内 |
| 策略有效性 | 活动价策略是否启用、是否人工关闭、是否在生效时间内 |
| 数量条件 | 阶梯或最小购买数量是否满足 |
| 成本规则 | 成本承担方、是否影响商户结算基数、是否需要商户确认 |
| 冲突处理 | 同一 SKU 命中多个活动价时,需要以后端排序和冲突组规则为准 |
预算和补贴
营销预算用于控制活动成本,补贴用于承接商户结算中的营销补偿。
| 能力 | 说明 |
|---|---|
| 预算池 | 平台和商户分别有预算池实体,记录总额、余额、预占、已用、冻结和已退回金额 |
| 预算流水 | 所有充值、预占、使用、释放、冻结、解冻、调账、退回和结算后调整都落流水 |
| 预算充值 | 平台预算从平台交易钱包划转,商户预存预算从商户钱包扣款 |
| 预算对账 | 定时检查预算池金额和流水汇总是否一致 |
| 低预算预警 | 定时检查低预算池并触发提醒能力 |
| 成本日报 | 汇总活动成本,形成按日成本报表 |
| 补贴确认 | 对营销产生的待确认补贴进行人工确认、作废或异常结案 |
| 结算推进 | 补贴确认完成后,可以推进店铺级结算入账 |
预算流水建议按业务类型核对:
| 业务类型 | 核对方式 |
|---|---|
| 充值 | 核对平台交易钱包或商户钱包是否同步扣款或划转 |
| 预占 | 核对券池发券、订单锁券或活动价使用前是否冻结预算 |
| 使用 | 核对订单支付成功后预算是否从预占转为已用 |
| 释放 | 核对订单取消、超时或支付失败后预算是否释放 |
| 退回 | 核对活动结清后剩余预算是否退回到对应钱包 |
| 结算后调整 | 核对活动归档后退款或人工复核差异是否形成冲销流水 |
补贴治理建议:
- 支付成功后生成待确认补贴记录。
- 平台查看补贴确认列表,核对订单、订单项、活动、预算池、商户、店铺和应收补贴金额。
- 金额无误时执行确认,写入确认人、确认时间和确认流水。
- 金额异常但仍需人工追踪时执行作废或异常结案,并记录治理说明。
- 补贴确认完成后,执行补贴结算推进,把补贴纳入店铺级结算入账。
- 后续发生退款或复核差异时,通过结算后调整记录成本冲销。
定时任务
| 任务类 | 方法 | 作用 |
|---|---|---|
MarketingActivityTask |
endExpiredActivities |
自动结束已到期活动 |
MarketingCouponTask |
expireCoupons |
将已过期卡券置为过期 |
MarketingCouponTask |
remindExpiringCoupons |
对即将过期卡券生成提醒 |
MarketingOrderTask |
closeTimeoutPendingPaymentOrders |
关闭超时未支付订单并释放优惠券 |
MarketingBudgetTask |
warnLowBudgets |
低预算预警 |
MarketingBudgetTask |
reconcileBudgets |
预算池对账 |
MarketingBudgetTask |
generateDailyCostReport |
生成活动成本日报 |
定时任务联调时需要确认调度参数和运行频率。当前任务类只提供可被 Quartz 调用的方法,具体 cron 表达式需要在系统定时任务配置中维护。
数据模型概览
新增数据模型分布在 wt-market、wt-user 和 wt-business。
| 模块 | 代表实体 | 说明 |
|---|---|---|
| 活动 | PlatformMarketingActivity、MerchantMarketingActivity |
平台活动和商户活动 |
| 活动范围 | PlatformMarketingActivityShopRel、PlatformMarketingActivitySkuRel、MerchantMarketingActivityShopRel、MerchantMarketingActivitySkuRel |
活动参与店铺和 SKU |
| 优惠券 | PlatformActivityCoupon、MerchantActivityCoupon、PlatformActivityCouponPool、MerchantActivityCouponPool |
券定义和发放池 |
| 用券策略 | PlatformCouponUseStrategy、MerchantCouponUseStrategy、PlatformCouponUseStrategyTarget、MerchantCouponUseStrategyTarget |
优惠券适用规则和目标 |
| 用券记录 | PlatformCouponIssueRecord、MerchantCouponIssueRecord、PlatformCouponUseRecord、MerchantCouponUseRecord |
发券和用券审计 |
| 预算 | PlatformActivityBudgetPool、MerchantActivityBudgetPool、PlatformActivityBudgetTransaction、MerchantActivityBudgetTransaction |
预算池和预算流水 |
| 活动价 | PlatformActivityPriceStrategy、MerchantActivityPriceStrategy、MarketingActivityPriceUseAllocationRecord |
活动价策略和分摊记录 |
| 补贴 | MarketingSubsidyConfirmRecord、MarketingSubsidyConfirmActionRecord、MarketingSubsidySettlementAdvanceRecord |
补贴确认和结算推进 |
| 卡券钱包 | PersonalCouponWallet、PersonalCouponWalletItem、PersonalCouponWalletLog |
个人优惠券钱包、卡券和流水 |
数据关系
核心关系说明:
| 关系 | 说明 |
|---|---|
| 活动与范围 | 活动通过店铺范围和 SKU 范围限制生效对象 |
| 活动与券池 | 券池决定优惠券发行数量、每人限制、预算占用和发放时间 |
| 卡券与订单 | 卡券被订单锁定后不能重复使用,支付成功后变成已使用 |
| 订单与分摊 | 平台券、商户券和活动价优惠需要分摊到订单项,支撑成本统计 |
| 分摊与预算 | 分摊金额进入预算流水,用于活动成本和预算余额核算 |
| 订单与补贴 | 商户需要补贴的营销优惠会生成补贴确认记录 |
| 补贴与结算 | 补贴确认完成后推进到商户结算,形成入账依据 |
联调注意事项
- 这次后端提交新增了大量实体和 Repository,需要确认数据库迁移脚本已经同步,否则可能出现缺表或缺字段。
- 前端下单必须区分平台券和商户券,跨店订单每个店铺最多传一张商户券。
- 商品价格展示应以后端当前价格接口为准,不要在前端自行重算活动价或优惠券金额。
- 预算充值和剩余预算退回会影响钱包和预算流水,联调时需要同时核对钱包流水、预算流水和活动成本数据。
- 补贴确认是人工治理流程,作废和异常结案不会自动释放结算入账,需要运营明确后续处理口径。
验收清单
| 场景 | 验收口径 |
|---|---|
| 平台活动 | 平台能创建活动、绑定范围、配置券池或活动价、充值预算并启动活动 |
| 商户活动 | 商户只能操作自己的活动、券、预算和活动价,不能访问其他商户数据 |
| 用户领券 | 用户能看到可领取券,领取后卡券钱包新增卡券和流水 |
| 可用券查询 | 订单试算后能返回符合金额、范围、时间和状态的可用券 |
| 带券下单 | 创建订单后卡券进入锁定状态,重复使用同一张券会失败 |
| 支付用券 | 支付成功后卡券变为已使用,用券记录、分摊记录和预算流水完整 |
| 取消释放 | 取消、支付失败或超时关闭后卡券和预算能按规则释放 |
| 活动价 | 命中活动价的商品当前价格包含活动快照和结算基数 |
| 预算对账 | 预算池余额、预占、已用、冻结、退回与流水汇总一致 |
| 补贴确认 | 补贴确认、作废、异常结案和结算推进都有动作记录 |
| 成本日报 | 活动结束后能按日查询平台和商户活动成本 |
待完善事项
| 事项 | 说明 |
|---|---|
| 数据库迁移 | 当前后端新增大量实体,需要确认建表和字段迁移脚本同步 |
| 前端页面 | admin、client 和商户端需要补齐营销活动、卡券钱包、预算和补贴页面 |
| 权限菜单 | 新增 admin:marketing:* 和 client:merchant:marketing-* 权限需要配置菜单和角色 |
| 消息模板 | 优惠券过期、预算预警、补贴待确认需要补齐消息模板和路由 |
| 运营规则 | 补贴作废、异常结案、结算后调整等人工治理动作需要明确 SOP |