Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(抽奖动态): 修复抽奖动态未渲染问题并优化文案展示 fix(用户概览): 修复用户概览无数据显示问题 feat(新用户列表): 在新用户列表显示称号明细 refactor(待办事项): 移除代办模块并全宽展示实时动态 feat(批量操作): 限制为单用户操作并在批量时提醒 fix(称号分配): 防重复分配称号的改造计划 perf(接口性能): 优化新用户和抽奖动态接口性能 feat(订单漏斗): 优化订单转化漏斗指标计算 docs(测试计划): 完善盲盒运营API核查与闭环测试计划
1.2 KiB
1.2 KiB
目标
- 当为用户分配一个已拥有且未过期的称号时,后端拒绝并提示“用户已拥有该称号”;避免连续多次分配同一称号。
- 前端在分配提交前做快速拦截与友好提示。
后端改造
- 修改
AssignUserTitle处理器:internal/api/admin/titles_admin.go- 在创建/更新前,查询
user_titles:user_id+title_id的记录,若active=1且expires_at为空或晚于当前时间 → 直接返回 400(或业务码 30117)提示“用户已拥有该称号”。 - 保留过期的场景可重新分配;仅阻止“未过期且已激活”的重复分配。
- 在创建/更新前,查询
- 响应格式:保持现有错误响应结构,统一错误消息文案。
前端改造(可选)
- 在
UserAssignmentDialog.vue提交前判断:若选中用户当前头衔包含待分配的称号 ID,则ElMessage.warning('该用户已拥有该称号')并阻止提交。 - 若列表已有
current_titles字段,直接使用;否则请求GET /api/admin/users/:user_id/titles取当前有效称号。
验收
- 对同一用户、同一称号:首次分配成功;再次分配立刻被后端拒绝并提示。
- 过期称号可重新分配;前端也能提示并拦截重复操作。