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

50 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 目标范围
- 在“创建活动”时新增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_cards``allow_coupons`int或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`设置字段,`ModifyActivity``updates`包含这两列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_cards``activityForm.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.ts``createActivity`/`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`拒绝卡效果并记录原因。
请确认以上方案,确认后我将按此实现并同步更新相关文档(说明文档、接口文档与前端表单)。