奖励规则功能优化方案
一、现状分析
1.1 当前功能
| 模块 |
功能 |
状态 |
| 规则管理 |
创建/编辑/删除/启用/禁用 |
✅ 已实现 |
| 规则类型 |
每日/每周/每月/任务/好评奖励 |
✅ 已实现 |
| 触发条件 |
任务数量/评分/五星数量 |
✅ 已实现 |
| 定时执行 |
每日/每周/每月定时检查 |
✅ 已实现 |
| 奖励发放 |
积分奖励+通知 |
✅ 已实现 |
1.2 存在的问题
- 奖励类型单一:目前只支持积分奖励,缺少徽章、称号等多样化奖励
- 触发条件有限:仅支持简单的数值比较,缺少复合条件、时间条件等
- 缺乏奖励记录:无法追溯历史奖励发放情况
- UI体验一般:配置界面不够直观,缺乏可视化编辑
- 无预览功能:无法预估规则影响范围和预期奖励
- 缺少数据统计:管理员无法看到奖励发放的整体数据
二、优化目标
- 丰富奖励类型:支持积分、徽章、称号、经验值等多种奖励
- 增强触发条件:支持更灵活的条件组合
- 完善奖励追溯:记录每一次奖励发放
- 提升用户体验:可视化配置、实时预览
- 数据分析支持:奖励发放统计和效果分析
三、功能设计
3.1 奖励类型扩展
| 奖励类型 |
说明 |
示例 |
| 积分 (score) |
通用积分奖励 |
+50 积分 |
| 经验值 (exp) |
用户等级经验 |
+100 经验 |
| 徽章 (badge) |
特殊成就标识 |
"效率之星" 徽章 |
| 称号 (title) |
显示在用户名旁 |
"设计大师" |
| 特权 (privilege) |
临时功能权限 |
7天优先接单权 |
| 实物兑换券 (coupon) |
可兑换实物 |
咖啡券 x1 |
3.2 触发条件扩展
基础条件
| 条件类型 |
参数 |
说明 |
| task_count |
任务数量 |
完成任务数 ≥ N |
| score_earned |
获得积分 |
累计获得积分 ≥ N |
| five_star_rate |
好评率 |
好评率 ≥ N% |
| on_time_rate |
准时率 |
准时完成率 ≥ N% |
| consecutive_days |
连续天数 |
连续 N 天完成任务 |
| first_task |
首单 |
首次完成任务 |
| login_days |
登录天数 |
本月登录天数 ≥ N |
复合条件(AND/OR)
{
"logic": "AND",
"conditions": [
{ "type": "task_count", "operator": ">=", "value": 10 },
{ "type": "five_star_rate", "operator": ">=", "value": 90 }
]
}
时间范围条件
{
"type": "task_count",
"operator": ">=",
"value": 5,
"timeRange": "today" // today/this_week/this_month/custom
}
3.3 新增功能模块
3.3.1 奖励发放记录表 reward_record
| 字段 |
类型 |
说明 |
| id |
bigint |
主键 |
| user_id |
bigint |
用户ID |
| rule_id |
bigint |
规则ID |
| rule_name |
varchar |
规则名称(冗余) |
| reward_type |
varchar |
奖励类型 |
| reward_value |
varchar |
奖励内容(JSON) |
| trigger_data |
text |
触发时的数据快照 |
| create_time |
datetime |
发放时间 |
3.3.2 奖励统计面板
- 今日奖励:今日发放奖励次数、总积分
- 本周奖励:本周奖励趋势图
- 规则效果:各规则触发次数排行
- 用户受益:获奖用户排行榜
3.3.3 用户奖励中心
- 我的奖励历史
- 我的徽章墙
- 我的称号
- 奖励日历(按日期查看获奖记录)
四、UI/UX 设计
4.1 规则配置页面重构
┌─────────────────────────────────────────────────────────────┐
│ 自动奖励规则管理 [+ 新建规则] │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─ 筛选 ─────────────────────────────────────────────────┐ │
│ │ 类型: [全部 ▼] 状态: [全部 ▼] 搜索: [___________] │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ 规则卡片 ──────────────────────────────────────────────┐ │
│ │ 🏆 每日任务达人 [启用 ○] [编辑] │ │
│ │ ───────────────────────────────────────────────────── │ │
│ │ 📋 触发: 每天完成 ≥ 5 个任务 │ │
│ │ 🎁 奖励: +20 积分 │ │
│ │ 👥 范围: 全体用户 │ │
│ │ 📊 统计: 本周触发 127 次 | 共奖励 2,540 积分 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ 规则卡片 ──────────────────────────────────────────────┐ │
│ │ ⭐ 五星好评奖励 [启用 ○] [编辑] │ │
│ │ ───────────────────────────────────────────────────── │ │
│ │ 📋 触发: 获得 5 星评价 │ │
│ │ 🎁 奖励: +10 积分 + "好评之星" 徽章 │ │
│ │ 👥 范围: 设计师 │ │
│ │ 📊 统计: 本周触发 89 次 | 共奖励 890 积分 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
4.2 可视化规则编辑器
┌─────────────────────────────────────────────────────────────┐
│ 新建奖励规则 [X 关闭] │
├─────────────────────────────────────────────────────────────┤
│ │
│ 基本信息 │
│ ├─ 规则名称: [每周效率之星_______________] │
│ ├─ 规则描述: [每周完成20个任务的设计师奖励] │
│ └─ 规则类型: ○每日 ●每周 ○每月 ○即时 ○好评 │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ 触发条件 [+ 添加条件] │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ [完成任务数 ▼] [≥ ▼] [20____] [本周内 ▼] [✕] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │ │
│ ├─ 逻辑: ○ 满足全部条件(AND) ○ 满足任一条件(OR) │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ 奖励设置 [+ 添加奖励] │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ [积分 ▼] 值: [100___] [✕] │ │
│ ├───────────────────────────────────────────────────────┤ │
│ │ [徽章 ▼] 选择: [效率之星 ▼] [✕] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ 适用范围 │
│ ├─ ○ 全体用户 │
│ ├─ ● 指定角色: [☑设计师 ☐需求方 ☐部门负责人] │
│ └─ ○ 指定部门: [选择部门...] │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ 规则预览 │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 📋 当设计师在本周内完成任务数 ≥ 20 时 │ │
│ │ 🎁 自动发放: 100 积分 + "效率之星" 徽章 │ │
│ │ 👥 预计影响: 约 23 人可能获得此奖励 │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ [取消] [保存规则] │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
4.3 奖励统计面板
┌─────────────────────────────────────────────────────────────┐
│ 奖励数据统计 [本月 ▼] │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 1,234 │ │ 15,680 │ │ 89% │ │ 47 │ │
│ │ 奖励次数 │ │ 发放积分 │ │ 规则命中率│ │ 获奖人数 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ┌─ 奖励趋势 ───────────────────────────────────────────┐ │
│ │ ▂▃▄▅▆▇█▇▆▅▄▃▂▁▂▃▄▅▆▇█▇▆▅▄▃▂ │ │
│ │ 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ 规则触发排行 ─────────┐ ┌─ 获奖用户排行 ─────────┐ │
│ │ 1. 五星好评奖励 423次 │ │ 1. 张三 +580 积分 │ │
│ │ 2. 每日任务达人 312次 │ │ 2. 李四 +520 积分 │ │
│ │ 3. 每周效率之星 89次 │ │ 3. 王五 +490 积分 │ │
│ │ 4. 连续签到奖励 67次 │ │ 4. 赵六 +450 积分 │ │
│ │ 5. 首单奖励 45次 │ │ 5. 钱七 +420 积分 │ │
│ └───────────────────────┘ └───────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
五、技术实现
5.1 数据库变更
-- 1. 新增奖励发放记录表
CREATE TABLE reward_record (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL COMMENT '用户ID',
rule_id BIGINT COMMENT '规则ID',
rule_name VARCHAR(100) COMMENT '规则名称',
reward_type VARCHAR(50) NOT NULL COMMENT '奖励类型',
reward_value TEXT COMMENT '奖励内容JSON',
trigger_data TEXT COMMENT '触发数据快照',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_id (user_id),
INDEX idx_rule_id (rule_id),
INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='奖励发放记录';
-- 2. 扩展奖励规则表
ALTER TABLE reward_rule ADD COLUMN reward_exp INT DEFAULT 0 COMMENT '奖励经验值';
ALTER TABLE reward_rule ADD COLUMN reward_title VARCHAR(50) COMMENT '奖励称号';
ALTER TABLE reward_rule ADD COLUMN reward_privilege TEXT COMMENT '奖励特权JSON';
ALTER TABLE reward_rule ADD COLUMN max_times_per_user INT DEFAULT 0 COMMENT '每用户最大获得次数(0=无限)';
ALTER TABLE reward_rule ADD COLUMN total_budget INT DEFAULT 0 COMMENT '总预算积分(0=无限)';
ALTER TABLE reward_rule ADD COLUMN used_budget INT DEFAULT 0 COMMENT '已使用预算';
ALTER TABLE reward_rule ADD COLUMN trigger_count INT DEFAULT 0 COMMENT '触发次数';
ALTER TABLE reward_rule ADD COLUMN start_time DATETIME COMMENT '生效开始时间';
ALTER TABLE reward_rule ADD COLUMN end_time DATETIME COMMENT '生效结束时间';
-- 3. 用户徽章表
CREATE TABLE user_badge (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
badge_code VARCHAR(50) NOT NULL COMMENT '徽章代码',
badge_name VARCHAR(100) NOT NULL COMMENT '徽章名称',
badge_icon VARCHAR(255) COMMENT '徽章图标',
source_type VARCHAR(50) COMMENT '来源类型',
source_id BIGINT COMMENT '来源ID',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_user_badge (user_id, badge_code),
INDEX idx_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户徽章';
-- 4. 用户称号表
CREATE TABLE user_title (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
title_code VARCHAR(50) NOT NULL COMMENT '称号代码',
title_name VARCHAR(100) NOT NULL COMMENT '称号名称',
is_active INT DEFAULT 0 COMMENT '是否激活显示',
expire_time DATETIME COMMENT '过期时间',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_user_title (user_id, title_code),
INDEX idx_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户称号';
5.2 后端 API 变更
| 接口 |
方法 |
说明 |
| /api/reward-rules |
GET |
获取规则列表(增加统计数据) |
| /api/reward-rules/stats |
GET |
获取奖励统计数据 |
| /api/reward-rules/preview |
POST |
预览规则影响范围 |
| /api/reward-records |
GET |
获取奖励发放记录 |
| /api/reward-records/my |
GET |
获取我的奖励记录 |
| /api/users/{id}/badges |
GET |
获取用户徽章 |
| /api/users/{id}/titles |
GET |
获取用户称号 |
| /api/users/{id}/titles/active |
PUT |
设置激活称号 |
5.3 前端组件
- RewardRuleEditor.vue - 可视化规则编辑器
- RewardStats.vue - 奖励统计面板
- RewardRecordList.vue - 奖励记录列表
- UserBadgeWall.vue - 用户徽章墙
- UserTitleSelect.vue - 用户称号选择器
六、实施计划
第一阶段:基础优化(预计 2 天)
第二阶段:功能扩展(预计 3 天)
第三阶段:统计分析(预计 2 天)
第四阶段:用户中心(预计 2 天)
七、预期效果
- 管理效率提升:可视化配置,减少配置错误
- 激励效果增强:多样化奖励,提升用户参与度
- 数据驱动决策:清晰的统计数据,优化奖励策略
- 用户体验优化:清晰的奖励反馈,增强成就感
八、风险与应对
| 风险 |
影响 |
应对措施 |
| 奖励发放过多 |
积分通胀 |
设置规则预算上限 |
| 条件配置复杂 |
用户困惑 |
提供常用模板 |
| 性能压力 |
系统变慢 |
异步处理+缓存 |
| 规则冲突 |
重复奖励 |
优先级+互斥设置 |
文档版本:v1.0
创建时间:2026-01-04