bindbox-game/.trae/documents/活动创建新增“是否可用道具卡_优惠券”方案.md
邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

3.5 KiB
Raw Blame History

目标范围

  • 在“创建活动”时新增2个可配置属性是否可以使用道具卡是否可以使用优惠券
  • 属性保存到activities表,默认启用(向后兼容现有活动)。
  • 管理端创建/编辑表单与接口支持读写这两个属性;详情接口返回这两个属性。
  • 暂不实现具体“应用道具卡/优惠券”的核销/抵扣逻辑,仅提供全局开关位,后续业务在下单/抽奖流程使用该开关位做限制。

数据库与模型

  • 新增activities表列:
    • allow_item_cards TINYINT(1) NOT NULL DEFAULT 1 注释“是否允许使用道具卡1是0否”。
    • allow_coupons TINYINT(1) NOT NULL DEFAULT 1 注释“是否允许使用优惠券1是0否”。
  • 对齐模型:在Activities结构体中新增同名字段并JSON映射internal/repository/mysql/model/activities.gen.go:15
  • 启动时DDL修复仿照main.go已有字段修复逻辑添加这两列main.go:38-58

后端接口改动

  • 管理端创建/修改请求增加字段:
    • createActivityRequest/modifyActivityRequest新增allow_item_cardsallow_couponsint或bool保持与is_boss的风格一致为int32的0/1。位置参考internal/api/admin/activities_admin.go:14-34, 156-176。
  • 传递至服务层:
    • CreateActivityInput/ModifyActivityInput新增同名字段internal/service/activity/activity.go:110-154
    • CreateActivity设置字段,ModifyActivityupdates包含这两列internal/service/activity/activity_create.go:13-55, internal/service/activity/activity_modify.go:11-48
  • 详情返回:
    • 管理端与APP端activityDetailResponse新增两个字段并赋值internal/api/admin/activities_admin.go:41-62 与 internal/api/activity/activities_app.go:41-62
  • DrawConfig无需改动仅开奖相关internal/service/activity/draw_config_save.go:9-16

前端管理端改动

  • 创建向导页wizard/index.vue
    • 在“活动基本信息”区域新增两个ElSwitch,绑定activityForm.allow_item_cardsactivityForm.allow_coupons,默认true
    • submitActivity()params包含这两个字段web/admin/src/views/activity/wizard/index.vue:777-804
  • 活动管理页manage/index.vue
    • 编辑对话框form新增两个字段与对应ElSwitch,支持修改与展示。
  • 接口类型与调用:
    • web/admin/src/api/adminActivities.tscreateActivity/updateActivity入参类型新增allow_item_cards?allow_coupons?并透传adminActivities.ts:3-22, 26-49

APP端可选展示

  • GetActivityDetail响应新增两个布尔位,前端可据此展示“本活动不支持优惠券/道具卡”文案internal/api/activity/activities_app.go:140-186

兼容与默认

  • 新增列默认值为1历史活动即视为允许管理端可随时改为0禁止。
  • 未提供值的创建请求按默认启用处理。

校验与测试

  • 后端单测/集成测试:
    • 创建活动带allow_* → 详情返回一致;修改后值变更正确。
  • 前端回归:
    • 创建向导能设置并成功保存;编辑页能读取并更新。

后续接入点(不在本次范围,供后续实现)

  • 下单/支付阶段应用优惠券时:在订单创建前根据活动allow_coupons拒绝并提示。
  • 抽奖策略PostEffects()应用道具卡时:根据活动allow_item_cards拒绝卡效果并记录原因。

请确认以上方案,确认后我将按此实现并同步更新相关文档(说明文档、接口文档与前端表单)。