refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
50 lines
3.5 KiB
Markdown
50 lines
3.5 KiB
Markdown
## 目标范围
|
||
- 在“创建活动”时新增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`拒绝卡效果并记录原因。
|
||
|
||
请确认以上方案,确认后我将按此实现并同步更新相关文档(说明文档、接口文档与前端表单)。 |