Skip to content

会员积分 PRD

文档信息

项目内容
产品名称PMForge - 会员积分
文档版本v2.0
创建日期2026-09-21
最后更新2026-09-24
文档状态评审中
优先级P1

一、功能概述

1.1 功能定位

如果把会员体系比作一家银行的客户体系,那么积分就是这家银行发行的"内部货币"——它有一套完整的"发行→流通→回收→销毁"生命周期。会员积分模块就是管理这套"内部货币"的中枢系统。

具体来说,本模块承担三大职责:

  1. 积分经济系统管理:定义积分的"发行规则"(签到送多少、消费返多少、邀请奖多少)和"回收规则"(过期清零、兑换消耗),确保积分经济系统健康运转,既不通胀(积分泛滥贬值)也不通缩(积分稀缺无人参与)
  2. 经验值成长系统管理:经验值是会员等级晋升的唯一依据,本模块管理各类场景的经验值发放和扣减规则,驱动会员等级体系运转
  3. 积分消耗场景运营:通过积分商城、积分抵扣等场景,让积分"花得出去",形成"赚积分→花积分→赚更多积分"的正向循环

与会员管理模块的关系:会员管理(05-01)负责"人的管理"——会员信息、等级、标签、分组;本模块负责"积分和经验值的管理"——规则配置、流水记录、统计分析。两者通过 member_user 表关联,共同构成完整的会员运营体系。

1.2 目标用户

用户类型核心诉求典型操作
超级管理员把控积分经济系统平衡,防止积分通胀或通缩配置全局积分规则、审核大额积分调整、查看积分统计
运营人员灵活配置积分活动,提升会员活跃度和消费转化管理积分规则、配置积分商城、手动发放积分、查看统计报表
客服人员快速处理会员积分异议,提升服务效率查询积分流水、手动调整积分、处理兑换售后
普通会员(C端)了解积分获取途径,高效使用积分,享受积分权益签到赚积分、完成任务、积分兑换商品、查看积分明细

1.3 业务价值

价值维度具体描述衡量指标
提升用户活跃度签到、任务等场景持续激励用户回访日活提升率、签到率
增强用户留存积分与经验值的累积形成沉没成本,降低流失30日留存率、积分余额分布
促进消费转化积分抵扣、积分兑换刺激用户下单积分抵扣订单占比、兑换转化率
驱动等级成长经验值驱动等级晋升,增强用户荣誉感等级晋升率、高等级会员占比
精细化运营积分数据统计为运营决策提供依据积分发放/消耗比、过期率
降低获客成本邀请好友奖励机制实现用户裂变邀请注册转化率、获客成本

1.4 功能范围

功能分类后台管理端前台用户端
积分规则配置
经验值规则配置
积分记录查询✅(仅本人)
经验值记录查询✅(仅本人)
积分商城管理✅(浏览/兑换)
手动积分调整
批量积分调整
积分统计分析
积分中心
签到赚积分
任务中心

二、用户场景

2.1 用户角色

角色描述核心诉求
超级管理员系统最高权限管理者配置积分体系全局规则,把控积分经济系统平衡
运营人员负责会员运营的团队成员灵活配置积分活动,管理积分商城,提升会员活跃度
客服人员处理会员问题的支持团队快速查询积分流水,处理积分异议与调整
普通会员平台注册用户(C端用户)了解积分获取途径,高效使用积分,享受积分权益

2.2 使用场景

场景1:运营李姐配置签到积分规则

  • 用户:运营人员李姐
  • 场景:平台上线初期 → 李姐需要配置签到积分规则 → 进入"积分管理 → 规则配置" → 选择"签到"业务类型 → 设置每次签到获得 10 积分、5 经验值 → 启用规则 → 保存
  • 期望:规则保存后立即生效,用户下次签到时自动获得对应积分和经验值
  • 验收标准
    • AC-01:规则保存后,用户签到时积分增加量与配置值一致
    • AC-02:禁用规则后,对应场景不再发放积分
    • AC-03:同一业务类型只能有一条生效规则

场景2:学员小张每日签到获取积分

  • 用户:普通会员小张
  • 场景:小张打开APP → 进入签到页面 → 点击"签到"按钮 → 页面显示"签到成功!获得 10 积分 + 5 经验值" → 查看签到日历,连续签到3天 → 第7天获得额外奖励
  • 期望:签到操作即时获得积分和经验值,连续签到有额外奖励,界面有明确的获得感
  • 验收标准
    • AC-01:签到后积分和经验值即时到账,流水记录可查
    • AC-02:同一自然日内重复点击签到按钮,不会重复发放(幂等性)
    • AC-03:连续签到天数正确累计,断签后重置为0
    • AC-04:签到日历正确展示当月签到记录

场景3:学员小张积分兑换商品

  • 用户:普通会员小张
  • 场景:小张进入积分商城 → 浏览积分商品列表 → 选择"PMForge定制笔记本"(500积分) → 点击"立即兑换" → 填写收货地址 → 确认兑换 → 积分扣减500 → 查看兑换记录 → 等待发货
  • 期望:积分不足时明确提示,兑换成功后积分即时扣减,可在兑换记录中查看物流信息
  • 验收标准
    • AC-01:积分不足时,兑换按钮置灰或提示"积分不足"
    • AC-02:兑换成功后积分即时扣减,流水记录类型为"积分兑换"
    • AC-03:库存为0时商品显示"已兑完",不可兑换
    • AC-04:兑换记录状态流转正确(待审核→待发货→已发货→已完成)

场景4:客服小刘处理积分异议

  • 用户:客服人员小刘
  • 场景:会员投诉"我昨天消费了100元,应该返100积分,但只收到50" → 小刘在后台搜索该会员 → 查看积分流水记录 → 发现消费积分规则配置为"每消费2元返1积分" → 向会员解释规则 → 会员认可
  • 期望:积分流水清晰可查,能快速定位积分变动原因
  • 验收标准
    • AC-01:积分流水包含业务类型、变动数量、变动后余额、关联业务编号
    • AC-02:支持按会员、业务类型、时间范围筛选
    • AC-03:流水记录不可修改或删除

场景5:运营李姐手动调整积分

  • 用户:运营人员李姐
  • 场景:平台做活动,需要给所有VIP会员发放1000积分 → 李姐进入"积分管理 → 手动调整" → 选择批量调整 → 按标签"VIP会员"筛选 → 输入调整积分1000 → 填写原因"2026年双十一VIP专属福利" → 预览影响人数 → 确认提交
  • 期望:支持批量操作,调整即时生效,流水记录完整
  • 验收标准
    • AC-01:批量调整支持按筛选条件或Excel导入两种方式
    • AC-02:单次批量调整不超过500人,超出提示分批操作
    • AC-03:每条流水记录包含操作人信息和调整原因
    • AC-04:扣减积分时,余额不足的用户跳过并记录失败原因

场景6:运营李姐查看积分统计报表

  • 用户:运营人员李姐
  • 场景:月度运营复盘 → 李姐进入"积分统计"页面 → 查看本月积分发放总量(50万)、消耗总量(30万)、净增量(20万) → 查看发放来源分布(签到40%、消费35%、活动20%、其他5%) → 查看积分余额分布 → 发现7天内有10万积分即将过期 → 决定发送过期提醒通知
  • 期望:报表数据准确、可视化展示清晰,支持导出Excel
  • 验收标准
    • AC-01:统计数据延迟不超过5分钟
    • AC-02:支持按日/周/月维度切换查看
    • AC-03:发放统计按业务类型拆分来源
    • AC-04:过期预警展示7天内和30天内的过期积分量和涉及用户数

场景7:学员小张完成每日任务领取奖励

  • 用户:普通会员小张
  • 场景:小张进入任务中心 → 看到"浏览3个商品(+20积分)"任务 → 去浏览了3个商品 → 返回任务中心,任务状态变为"可领取" → 点击"领取奖励" → 20积分到账
  • 期望:任务完成状态实时更新,奖励领取流程简洁
  • 验收标准
    • AC-01:任务完成状态实时检测并更新
    • AC-02:奖励领取后积分即时到账
    • AC-03:每日00:00自动重置每日任务状态
    • AC-04:已领取的任务不可重复领取

三、功能需求

3.1 后台管理端

3.1.1 功能清单

功能优先级说明
积分规则配置P0按业务类型配置积分获取/消耗规则
经验值规则配置P0按业务类型配置经验值获取规则
积分记录查询P0分页查询积分流水,支持多维度筛选
积分记录导出P1导出积分流水Excel
经验值记录查询P1分页查询经验值流水
经验值记录导出P1导出经验值流水Excel
手动积分调整P0单个会员积分增减
批量积分调整P1批量会员积分增减
积分商城活动管理P1创建/编辑/关闭积分商城活动
积分兑换记录管理P1查看兑换记录、审核、发货
积分统计分析P1积分发放/消耗/余额/过期统计

3.1.2 积分规则配置

页面描述:

  • 以卡片列表形式展示各业务类型的积分规则配置
  • 每张卡片展示:业务类型名称、当前积分值、经验值、状态
  • 点击"编辑"弹出配置弹窗

页面线框图:

积分规则配置

编辑弹窗线框图:

编辑签到积分规则

业务规则:

规则编号规则描述设计原因
R-01同一业务类型在同一租户下只能有一条配置规则避免规则冲突,确保积分发放确定性
R-02积分值和经验值不能同时为0无意义的规则不应存在,避免配置错误
R-03按比例计算时,积分值表示"每X元=1积分"中的X统一比例计算的基数含义,减少歧义
R-04每日上限为0表示不限制部分场景(如消费)不应限制
R-05规则修改后即时生效,不影响已发放的积分积分流水不可变,新规则只影响未来行为
R-06禁用规则后,对应场景不再发放积分和经验值运营需要灵活开关各类积分活动

积分业务类型枚举:

类型编码类型名称方向说明
1签到增加每日签到获得积分
2管理员修改增加/减少管理员手动调整积分
11订单积分抵扣减少下单时使用积分抵扣金额
12订单积分抵扣退还增加整单取消时退还抵扣积分
13订单积分抵扣退还(部分)增加单个商品退款时退还对应积分
21订单积分奖励增加支付订单后赠送积分
22订单积分奖励退还减少整单取消时扣除赠送积分
23订单积分奖励退还(部分)减少单个商品退款时扣除赠送积分
31评价奖励增加完成订单评价后获得积分
32分享奖励增加分享内容后获得积分
33邀请注册奖励增加邀请新用户注册后获得积分
41积分兑换减少积分商城兑换商品消耗积分
42兑换退还增加兑换取消/失败后退还积分
51积分过期减少超过有效期自动清零
52过期退还增加过期积分恢复(管理员操作)

经验值业务类型枚举:

类型编码类型名称方向说明
0管理员调整增加/减少管理员手动调整经验值
1邀新奖励增加邀请好友注册获得经验值
4签到奖励增加每日签到获得经验值
5抽奖奖励增加参与抽奖活动获得经验值
11下单奖励增加支付订单后获得经验值
12下单奖励退还减少整单取消时扣除经验值
13下单奖励退还(部分)减少单个商品退款时扣除经验值

接口设计:

接口名称请求方式接口路径说明
获取积分规则列表GET/admin-api/member/point/setting/list获取所有积分规则配置
更新积分规则PUT/admin-api/member/point/setting/update更新指定业务类型的积分规则
获取经验值规则列表GET/admin-api/member/experience/setting/list获取所有经验值规则配置
更新经验值规则PUT/admin-api/member/experience/setting/update更新指定业务类型的经验值规则

3.1.3 积分记录查询

页面描述:

  • 顶部:搜索栏(会员昵称/手机号、业务类型、变动方向、时间范围)
  • 主体:积分流水列表
  • 底部:分页组件 + 导出按钮

页面线框图:

积分记录查询

业务规则:

规则编号规则描述设计原因
R-01流水记录一经生成不可修改或删除积分流水属于财务级数据,必须保证审计可追溯
R-02每次积分变动自动记录变动后余额(total_point)方便对账和追溯,无需实时计算
R-03通过 biz_id 和 biz_type 可关联到具体业务单据支持从流水反查业务来源,处理异议时有据可查
R-04默认按创建时间倒序排列最新记录优先展示,符合查询习惯
R-05仅展示当前租户下的会员积分记录多租户数据隔离要求
R-06单次导出不超过10000条防止大数据量导出导致系统压力

接口设计:

接口名称请求方式接口路径说明
获取积分记录分页GET/admin-api/member/point/record/page后台分页查询积分流水
积分记录导出GET/admin-api/member/point/record/export-excel导出积分流水为Excel

请求参数(分页查询):

参数名类型必填说明
userIdLong会员编号
nicknameString会员昵称(模糊匹配)
mobileString手机号(模糊匹配)
bizTypeInteger业务类型
directionInteger变动方向(1-增加 2-减少)
createTimeLocalDateTime[]创建时间范围
pageNoInteger页码
pageSizeInteger每页条数

3.1.4 经验值记录查询

页面描述:

  • 与积分记录查询页面结构类似
  • 搜索栏增加业务类型筛选(签到/消费/邀请/管理员调整等)
  • 列表展示经验值变动明细

业务规则:

规则编号规则描述设计原因
R-01流水记录不可修改或删除与积分流水一致,保证审计可追溯
R-02经验值累计达到等级阈值时自动触发等级晋升等级体系的核心驱动逻辑
R-03经验值在自然场景下只增不减签到、消费、邀请等只增加;仅退单和管理员扣减时减少

接口设计:

接口名称请求方式接口路径说明
获取经验值记录分页GET/admin-api/member/experience/record/page分页查询经验值流水
获取经验值记录详情GET/admin-api/member/experience/record/get根据ID查询详情
经验值记录导出GET/admin-api/member/experience/record/export-excel导出经验值流水为Excel

3.1.5 手动积分调整

页面描述:

  • 单个调整:在会员列表操作列点击"调整积分",弹窗输入调整值
  • 批量调整:独立页面,支持按筛选条件或Excel导入

单个调整弹窗线框图:

单个积分调整

批量调整页面线框图:

批量积分调整

业务规则:

规则编号规则描述设计原因
R-01调整原因必填,记录到积分流水的 description 字段所有手动调整必须有据可查,满足审计要求
R-02积分流水的 biz_id 记录操作人 user_id可追溯到具体操作人
R-03扣减积分后余额不能为负数积分余额不允许为负,防止系统数据异常
R-04单次批量调整不超过500人防止大批量操作导致系统压力或误操作影响面过大
R-05单次调整积分超过阈值(默认10000)需走审批流程大额积分调整需要上级审批,防止滥用
R-06所有手动调整操作记录到操作日志完整的审计链路:操作日志 + 积分流水双重记录
R-07调整提交后积分立即变动运营操作需要即时反馈
R-08可选择同步调整经验值部分场景需要积分和经验值同步变动

接口设计:

接口名称请求方式接口路径说明
更新会员积分PUT/admin-api/member/user/update-point单个会员积分调整
批量调整积分POST/admin-api/member/point/record/batch-update批量积分调整
下载批量调整模板GET/admin-api/member/point/record/import-template下载Excel模板
获取积分调整审批列表GET/admin-api/member/point/adjust/page查询审批记录
审批积分调整PUT/admin-api/member/point/adjust/audit审批通过/拒绝

3.1.6 积分商城管理

页面描述:

  • 活动列表页:展示所有积分商城活动,支持按状态筛选
  • 活动编辑页:选择关联商品SPU/SKU、设置所需积分、兑换价格、库存、活动时间

活动列表线框图:

积分商城管理

业务规则:

规则编号规则描述设计原因
R-01积分商品关联商品SPU和SKU,复用商品模块的管理能力避免重复建设商品管理,统一商品信息来源
R-02支持纯积分兑换和积分+现金混合模式满足不同运营场景需求
R-03活动维度的库存独立管理,兑换成功即扣减库存积分商城库存与商品主库存分离,互不影响
R-04兑换取消/退款时自动回滚库存保证库存数据准确性
R-05可设置每人兑换次数上限防止单个用户大量兑换,保证公平性
R-06高价值商品可开启兑换审核高价值商品需要人工审核,防止恶意兑换
R-07多SKU时列表展示最低所需积分让用户直观了解最低兑换门槛
R-08支持自定义商品展示排序运营可将热门商品置顶展示

接口设计(后台管理端):

接口名称请求方式接口路径说明
创建积分商城活动POST/admin-api/promotion/point-activity/create创建积分商城活动
更新积分商城活动PUT/admin-api/promotion/point-activity/update更新活动信息
关闭积分商城活动PUT/admin-api/promotion/point-activity/close关闭指定活动
删除积分商城活动DELETE/admin-api/promotion/point-activity/delete删除指定活动
获取活动详情GET/admin-api/promotion/point-activity/get获取活动详情及关联商品
获取活动分页GET/admin-api/promotion/point-activity/page分页查询活动列表

3.1.7 积分统计分析

页面描述:

  • 概览面板:今日发放量、今日消耗量、总发放量、总消耗量、当前总余额
  • 图表区域:发放趋势图、消耗趋势图、余额分布图、过期预警

统计面板线框图:

积分统计分析

业务规则:

规则编号规则描述设计原因
R-01统计数据基于积分流水表聚合计算保证数据来源唯一,避免多数据源不一致
R-02统计数据准实时,延迟不超过5分钟采用缓存+定时刷新,平衡实时性和系统性能
R-03发放统计按业务类型拆分来源运营需要了解各渠道的积分发放占比
R-04余额分布按区间分段:0-100、101-500、501-1000、1001-5000、5000+了解积分分布集中度,优化积分策略
R-05过期预警展示7天内和30天内的数据给运营留出足够的提醒窗口
R-06统计数据按租户隔离多租户架构要求

接口设计:

接口名称请求方式接口路径说明
获取积分概览GET/admin-api/member/point/statistics/overview获取积分概览数据
获取积分发放统计GET/admin-api/member/point/statistics/grant按时间范围和类型统计发放量
获取积分消耗统计GET/admin-api/member/point/statistics/consume按时间范围和类型统计消耗量
获取积分余额分布GET/admin-api/member/point/statistics/balance-distribution按余额区间统计用户分布
获取积分过期预警GET/admin-api/member/point/statistics/expiry-warning获取即将过期的积分统计
积分统计导出GET/admin-api/member/point/statistics/export-excel导出统计数据为Excel

3.2 前台用户端

3.2.1 功能清单

功能优先级说明
积分中心P0查看积分余额、经验值、明细记录
签到赚积分P0每日签到获取积分和经验值
任务中心P1完成每日任务领取积分奖励
积分商城P1浏览积分商品、兑换商品
积分明细P0查看积分变动记录
经验值明细P1查看经验值变动记录

3.2.2 积分中心

页面描述:

  • 顶部:积分余额、经验值、当前等级、升级进度
  • 中部:快捷入口(签到、积分商城、任务中心)
  • 底部:积分明细/经验值明细标签切换

页面线框图:

积分中心

接口设计:

接口名称请求方式接口路径说明
获取用户积分记录分页GET/app-api/member/point/record/page当前用户积分明细
获取用户经验值记录分页GET/app-api/member/experience/record/page当前用户经验值明细
获取积分概览GET/app-api/member/point/overview积分余额、经验值、等级信息
获取积分攻略GET/app-api/member/point/guide积分获取途径列表

3.2.3 签到赚积分

页面描述:

  • 顶部:签到按钮 + 今日签到状态
  • 中部:连续签到进度条 + 7天奖励预览
  • 底部:本月签到日历

页面线框图:

签到赚积分

业务规则:

规则编号规则描述设计原因
R-01每个自然日只能签到一次,以服务器时间00:00:00为界统一签到时间标准,避免时区争议
R-02签到获得固定积分和经验值(由规则配置决定)运营可灵活调整签到奖励
R-03连续签到天数达到指定阈值时,额外奖励积分和经验值激励用户持续签到,提升留存
R-04中断签到后连续天数重置为0断签惩罚机制,增强连续签到的稀缺感
R-05签到操作需保证幂等性,防止并发重复签到防止网络重试导致重复发放
R-06V1.0暂不支持补签功能降低V1.0复杂度,后续版本可扩展

接口设计:

接口名称请求方式接口路径说明
每日签到POST/app-api/member/sign-in/create执行签到,自动发放积分和经验值
获取签到信息GET/app-api/member/sign-in/get-sign-in-info签到日历、连续天数、今日是否已签到

3.2.4 任务中心

页面描述:

  • 每日任务列表:展示任务名称、奖励积分、完成状态
  • 成长任务:一次性任务(新手引导类)

业务规则:

规则编号规则描述设计原因
R-01任务类型分为每日任务(每日重置)和一次性任务(新手引导)区分日常运营和新手引导两类场景
R-02任务状态流转:未开始 → 进行中 → 已完成(待领取)→ 已领取清晰的任务生命周期
R-03领取奖励后积分和经验值即时到账即时反馈增强用户获得感
R-04每日00:00自动重置每日任务状态每日任务需要每天重新完成
R-05后台可配置任务类型、完成条件、奖励值运营灵活配置任务体系
R-06每日可完成的同类任务次数有上限防止刷任务薅积分

接口设计:

接口名称请求方式接口路径说明
获取任务列表GET/app-api/member/task/list当前用户任务列表及完成状态
领取任务奖励POST/app-api/member/task/receive-reward领取积分和经验值奖励
获取任务概览GET/app-api/member/task/overview今日已完成数、待领取数

四、非功能需求

4.1 性能要求

场景指标目标值实现思路
积分记录分页查询响应时间< 500ms合理索引 + 分页限制
积分变更操作响应时间< 200ms乐观锁/分布式锁保证原子性
签到操作响应时间< 300ms含积分和经验值发放全流程
积分商城列表响应时间< 500ms缓存热点商品数据
积分统计报表响应时间< 3s缓存 + 异步计算
并发签到QPS≥ 1000Redis分布式锁 + 异步写库
积分扣减并发安全不超扣数据库乐观锁(version字段)
用户积分余额缓存策略TTL 5分钟变更时主动失效缓存

4.2 安全要求

安全项要求实现思路
积分变更鉴权所有积分变更接口需登录鉴权Spring Security + Token校验
后台操作鉴权后台接口需对应权限标识RBAC权限模型
防重复签到服务端校验签到幂等性Redis分布式锁(key=userId+date)
防积分超扣扣减前校验余额 + 并发控制数据库乐观锁
操作审计管理员调整记录完整审计日志操作日志 + 积分流水双重记录
数据隔离多租户数据严格隔离SQL层强制tenant_id条件
接口限流签到/任务领取等高频接口限流Redis + 滑动窗口限流
兑换防刷积分兑换接口频率限制限流 + 验证码校验

4.3 兼容性要求

兼容项要求
数据库支持 MySQL 5.7+、PostgreSQL 12+、Oracle 11g+
主键策略使用 @KeySequence 注解兼容多种数据库主键自增策略
管理端兼容 Chrome 80+、Firefox 78+、Edge 80+
移动端H5适配 iOS 12+、Android 8+ 系统浏览器
小程序适配微信基础库 2.15.0+
时区签到日期以服务器配置时区为准
单位积分单位为"个",金额单位为"分"

五、数据设计

5.1 核心表关系

积分核心表关系

5.2 积分记录表(member_point_record)

字段名类型必填默认值说明
idBIGINT自增主键
user_idBIGINT-用户编号,关联 member_user.id
biz_idVARCHAR(64)NULL业务编码,关联具体业务单据或操作人
biz_typeINT-业务类型,对应 MemberPointBizTypeEnum 枚举
titleVARCHAR(128)NULL积分变动标题,如"签到获得10积分"
descriptionVARCHAR(512)NULL积分变动详细描述
pointINT-变动积分值,正数=获得,负数=消耗
total_pointINT-变动后的积分余额
creatorVARCHAR(64)NULL创建者
create_timeDATETIMECURRENT_TIMESTAMP创建时间
updaterVARCHAR(64)NULL更新者
update_timeDATETIMECURRENT_TIMESTAMP更新时间
deletedBIT(1)0逻辑删除标记
tenant_idBIGINT-租户编号

约束设计:

约束类型约束名字段说明
主键pk_point_recordid自增主键
普通索引idx_user_iduser_id按用户查询积分记录
普通索引idx_bizbiz_type, biz_id按业务类型和编号查询
普通索引idx_create_timecreate_time按时间范围查询
普通索引idx_tenant_idtenant_id租户隔离查询

5.3 经验值记录表(member_experience_record)

字段名类型必填默认值说明
idBIGINT自增主键
user_idBIGINT-用户编号,关联 member_user.id
biz_idVARCHAR(64)NULL业务编号
biz_typeINT-业务类型,对应 MemberExperienceBizTypeEnum 枚举
titleVARCHAR(128)NULL经验值变动标题
descriptionVARCHAR(512)NULL经验值变动详细描述
experienceINT-变动经验值,正数=获得,负数=扣减
total_experienceINT-变动后的经验值余额
creatorVARCHAR(64)NULL创建者
create_timeDATETIMECURRENT_TIMESTAMP创建时间
updaterVARCHAR(64)NULL更新者
update_timeDATETIMECURRENT_TIMESTAMP更新时间
deletedBIT(1)0逻辑删除标记
tenant_idBIGINT-租户编号

约束设计:

约束类型约束名字段说明
主键pk_experience_recordid自增主键
普通索引idx_user_iduser_id按用户查询经验值记录
普通索引idx_bizbiz_type, biz_id按业务类型和编号查询
普通索引idx_create_timecreate_time按时间范围查询
普通索引idx_tenant_idtenant_id租户隔离查询

5.4 积分配置表(member_point_setting)

字段名类型必填默认值说明
idBIGINT自增主键
typeTINYINT-积分类型:1-获取 2-消耗
biz_typeINT-业务类型编码
pointINT-积分值(固定值或比例基数)
statusTINYINT1状态:0-禁用 1-启用
creatorVARCHAR(64)NULL创建者
create_timeDATETIMECURRENT_TIMESTAMP创建时间
updaterVARCHAR(64)NULL更新者
update_timeDATETIMECURRENT_TIMESTAMP更新时间
deletedBIT(1)0逻辑删除标记
tenant_idBIGINT-租户编号

约束设计:

约束类型约束名字段说明
主键pk_point_settingid自增主键
唯一索引uk_biz_typebiz_type, tenant_id同一租户下业务类型唯一

5.5 积分商城商品表(promotion_point_product)

字段名类型必填默认值说明
idBIGINT自增主键
activity_idBIGINT-积分商城活动编号
spu_idBIGINT-商品SPU编号
sku_idBIGINT-商品SKU编号
countINT-每人可兑换次数
pointINT-所需兑换积分
priceINT0所需兑换金额,单位:分
stockINT-商品库存
activity_statusTINYINT1商品状态:0-下架 1-上架
creatorVARCHAR(64)NULL创建者
create_timeDATETIMECURRENT_TIMESTAMP创建时间
updaterVARCHAR(64)NULL更新者
update_timeDATETIMECURRENT_TIMESTAMP更新时间
deletedBIT(1)0逻辑删除标记
tenant_idBIGINT-租户编号

约束设计:

约束类型约束名字段说明
主键pk_point_productid自增主键
普通索引idx_activity_idactivity_id按活动查询关联商品
普通索引idx_spu_idspu_id按SPU查询关联积分商品

5.6 积分兑换记录表(member_point_exchange)

字段名类型必填默认值说明
idBIGINT自增主键
user_idBIGINT-用户编号
product_idBIGINT-积分商品编号
product_nameVARCHAR(256)-商品名称(冗余快照)
pointINT-消耗积分
statusTINYINT0兑换状态(见数据字典)
exchange_timeDATETIME-兑换时间
creatorVARCHAR(64)NULL创建者
create_timeDATETIMECURRENT_TIMESTAMP创建时间
updaterVARCHAR(64)NULL更新者
update_timeDATETIMECURRENT_TIMESTAMP更新时间
deletedBIT(1)0逻辑删除标记
tenant_idBIGINT-租户编号

约束设计:

约束类型约束名字段说明
主键pk_point_exchangeid自增主键
普通索引idx_user_iduser_id按用户查询兑换记录
普通索引idx_product_idproduct_id按商品查询兑换记录
普通索引idx_statusstatus按状态筛选兑换记录
普通索引idx_exchange_timeexchange_time按兑换时间范围查询

5.7 数据字典

积分兑换状态(member_point_exchange.status):

状态码状态名称说明
0待审核兑换提交后等待运营人员审核
1待发货审核通过,等待发货
2已发货商品已发出
3已完成用户确认收货,兑换流程结束
4审核拒绝审核未通过,积分退回
5已取消用户主动取消兑换,积分退回

积分配置状态(member_point_setting.status):

状态码状态名称说明
0禁用规则不生效,对应业务场景不发放积分
1启用规则生效,对应业务场景按配置发放积分

六、跨模块联动

6.1 集成模块清单

集成模块集成方式数据流向说明
会员管理(05-01)数据库关联双向member_user 是积分和经验值的归属主体,等级晋升由经验值驱动
会员签到(05-01)内部API调用签到 → 积分签到行为触发积分和经验值发放
商城模块(06)内部API调用双向订单支付触发积分发放;下单时积分抵扣触发积分扣减
商品模块(06)数据库关联单向积分商城商品关联SPU/SKU,复用商品基础信息
营销模块(06)数据库关联单向积分商城活动(promotion_point_activity)管理积分商品
通知模块(02)事件驱动单向积分变动通知、积分过期提醒、兑换发货通知
定时任务(02)定时触发单向积分过期清理、每日任务重置、统计数据刷新
工作流(03)API调用单向大额积分调整审批流程
日志审计(01)API调用单向管理员积分调整操作记录审计日志

6.2 关键业务流程

6.2.1 消费产生积分和经验值

消费产生积分时序图

6.2.2 积分兑换商品流程

积分兑换商品时序图

6.2.3 积分过期处理流程

积分过期处理时序图

6.3 数据一致性要求

场景一致性要求实现方式
积分扣减强一致性数据库事务 + 乐观锁
积分发放最终一致性本地事务 + 异步通知
库存扣减强一致性数据库事务
等级晋升最终一致性经验值变更后异步检查升级
积分过期最终一致性定时任务批量处理

6.4 内部API接口(跨模块调用)

接口名称方法调用方说明
增加用户积分MemberPointApi.addPoint商城、签到、任务订单支付、签到、活动等场景调用
减少用户积分MemberPointApi.reducePoint商城、订单积分抵扣、退款扣减等场景调用
创建积分记录MemberPointRecordService.createPointRecord内部创建积分流水
增加用户经验值MemberLevelApi.addExperience签到、商城签到、消费等场景调用
减少用户经验值MemberLevelApi.reduceExperience订单退单等场景调用

七、附录

7.1 名词解释

名词解释通俗类比
积分(Point)用户在平台通过签到、消费、活动等途径获得的虚拟货币,可用于兑换商品或抵扣订单金额就像航空公司的里程,飞行(消费)积累里程,里程可以换机票(兑换商品)
经验值(Experience)用户成长值,用于衡量用户在平台的活跃度和贡献度,驱动会员等级晋升就像游戏里的经验值,打怪(消费/签到)积累经验,经验够了就升级
积分流水每次积分变动的记录,包含变动数量、变动后余额、业务类型等信息就像银行流水,每笔收支都有记录,方便对账
积分商城用户使用积分兑换商品的功能模块就像机场的免税店,用里程换商品
积分活动积分商城中的运营活动,关联具体商品SPU/SKU,设置积分和价格就像商场的限时促销活动
签到用户每日打卡行为,可获得积分和经验值奖励就像上班打卡,每天打卡领全勤奖
连续签到用户不间断连续签到的天数,达到阈值可获得额外奖励就像健身打卡,连续打卡30天送私教课
每日任务每日重置的任务列表,完成后可领取积分和经验值奖励就像游戏的每日日常任务,做完领奖励
积分抵扣用户在下单时使用积分抵扣部分订单金额就像用信用卡积分抵扣年费
积分过期积分在有效期内未使用则自动清零,有效期规则可配置就像优惠券有有效期,过期就作废了
手动调整管理员通过后台手动为用户增减积分的操作就像银行柜台手动调整账户余额
SPUStandard Product Unit,标准产品单元,积分商城中关联的商品就是"商品",比如"iPhone 15"是一个SPU
SKUStock Keeping Unit,库存量单位,积分商城中实际兑换的商品规格就是"规格",比如"iPhone 15 黑色 256G"是一个SKU
biz_type业务类型编码,标识积分/经验值变动的业务场景就像银行交易的"交易类型"(转账/消费/退款)
tenant_id租户编号,实现多租户数据隔离就像不同公司的员工卡,只能在各自公司使用
乐观锁通过版本号字段防止并发操作导致的数据不一致就像多人编辑文档时的"冲突检测",后提交的人会被告知冲突
幂等性同一操作执行多次与执行一次的效果相同就像电梯按钮,按多次和按一次效果一样
分布式锁在分布式系统中保证同一时刻只有一个节点能执行某个操作就像洗手间的门锁,进去一个就锁门,其他人等

7.2 接口清单汇总

后台管理端

序号接口名称方法路径权限标识
1获取积分规则列表GET/admin-api/member/point/setting/listpoint:setting:query
2更新积分规则PUT/admin-api/member/point/setting/updatepoint:setting:update
3获取经验值规则列表GET/admin-api/member/experience/setting/listmember:experience-record:query
4更新经验值规则PUT/admin-api/member/experience/setting/updatemember:experience-record:query
5获取积分记录分页GET/admin-api/member/point/record/pagepoint:record:query
6积分记录导出GET/admin-api/member/point/record/export-excelpoint:record:export
7获取经验值记录详情GET/admin-api/member/experience/record/getmember:experience-record:query
8获取经验值记录分页GET/admin-api/member/experience/record/pagemember:experience-record:query
9经验值记录导出GET/admin-api/member/experience/record/export-excelmember:experience-record:export
10更新会员积分PUT/admin-api/member/user/update-pointmember:user:update-point
11批量调整积分POST/admin-api/member/point/record/batch-updatepoint:record:batch-update
12下载批量调整模板GET/admin-api/member/point/record/import-templatepoint:record:batch-update
13获取积分调整审批列表GET/admin-api/member/point/adjust/pagepoint:adjust:query
14审批积分调整PUT/admin-api/member/point/adjust/auditpoint:adjust:audit
15获取积分概览GET/admin-api/member/point/statistics/overviewpoint:statistics:query
16获取积分发放统计GET/admin-api/member/point/statistics/grantpoint:statistics:query
17获取积分消耗统计GET/admin-api/member/point/statistics/consumepoint:statistics:query
18获取积分余额分布GET/admin-api/member/point/statistics/balance-distributionpoint:statistics:query
19获取积分过期预警GET/admin-api/member/point/statistics/expiry-warningpoint:statistics:query
20积分统计导出GET/admin-api/member/point/statistics/export-excelpoint:statistics:export
21创建积分商城活动POST/admin-api/promotion/point-activity/createpromotion:point-activity:create
22更新积分商城活动PUT/admin-api/promotion/point-activity/updatepromotion:point-activity:update
23关闭积分商城活动PUT/admin-api/promotion/point-activity/closepromotion:point-activity:close
24删除积分商城活动DELETE/admin-api/promotion/point-activity/deletepromotion:point-activity:delete
25获取活动详情GET/admin-api/promotion/point-activity/getpromotion:point-activity:query
26获取活动分页GET/admin-api/promotion/point-activity/pagepromotion:point-activity:query
27获取活动列表GET/admin-api/promotion/point-activity/list-by-ids- (公共)

前台用户端

序号接口名称方法路径鉴权
1获取用户积分记录分页GET/app-api/member/point/record/page需登录
2获取用户经验值记录分页GET/app-api/member/experience/record/page需登录
3获取积分概览GET/app-api/member/point/overview需登录
4获取积分攻略GET/app-api/member/point/guide需登录
5每日签到POST/app-api/member/sign-in/create需登录
6获取签到信息GET/app-api/member/sign-in/get-sign-in-info需登录
7获取任务列表GET/app-api/member/task/list需登录
8领取任务奖励POST/app-api/member/task/receive-reward需登录
9获取任务概览GET/app-api/member/task/overview需登录
10获取积分商城活动分页GET/app-api/promotion/point-activity/page无需登录
11获取积分商城活动详情GET/app-api/promotion/point-activity/get-detail无需登录
12获取积分商城活动列表GET/app-api/promotion/point-activity/list-by-ids无需登录

7.3 权限配置

权限标识说明所属模块
point:setting:query查看积分规则配置积分管理
point:setting:update修改积分规则配置积分管理
point:record:query查看积分记录积分管理
point:record:export导出积分记录积分管理
point:record:batch-update批量调整积分积分管理
point:statistics:query查看积分统计积分管理
point:statistics:export导出积分统计积分管理
point:adjust:query查看积分调整审批积分管理
point:adjust:audit审批积分调整积分管理
member:user:update-point调整会员积分会员管理
member:experience-record:query查看经验值记录等级管理
member:experience-record:export导出经验值记录等级管理
promotion:point-activity:create创建积分商城活动营销管理
promotion:point-activity:update更新积分商城活动营销管理
promotion:point-activity:query查看积分商城活动营销管理
promotion:point-activity:close关闭积分商城活动营销管理
promotion:point-activity:delete删除积分商城活动营销管理

7.4 错误码定义

错误码错误信息处理建议
POINT_RECORD_NOT_FOUND积分记录不存在检查记录ID是否正确
POINT_SETTING_DUPLICATE积分规则已存在同一业务类型只能配置一条规则
POINT_BALANCE_INSUFFICIENT积分余额不足提示用户积分不足,引导获取积分
POINT_EXCHANGE_STOCK_EMPTY商品库存不足提示商品已兑完
POINT_EXCHANGE_LIMIT_EXCEED超出兑换次数限制提示每人兑换次数上限
POINT_BATCH_UPDATE_OVER_LIMIT批量调整超出人数限制分批操作,每批不超过500人
POINT_ADJUST_REASON_REQUIRED调整原因不能为空填写调整原因
POINT_SIGN_IN_DUPLICATE今日已签到提示用户明日再来
POINT_TASK_ALREADY_RECEIVED任务奖励已领取提示不可重复领取
POINT_TASK_NOT_COMPLETED任务未完成提示先完成任务
EXPERIENCE_RECORD_NOT_FOUND经验值记录不存在检查记录ID是否正确
STATISTICS_DATA_DELAYED统计数据存在延迟提示数据延迟不超过5分钟

7.5 修订记录

版本日期修订人修订内容
v1.02026-09-24PMForge初稿
v2.02026-09-19PMForge全量重写:增强业务场景描述(命名用户角色)、补充验收标准(AC)、新增ASCII页面线框图(8+页面)、业务规则增加"设计原因"列、新增跨模块联动章节(含流程图)、名词解释增加通俗类比(18项)、补充错误码定义(12项)