商城积分系统的设计方案(上)-- 需求分析

一、背景

用户在参与公司的促销活动,比如邀请用户下单支付,可以获得虚拟货币。它可以用于解锁学习课程。

商品在定价的时候,需支持虚拟货币,用户在购买该商品的时候,可使用虚拟货币进行支付。

在电商体系中,更常见的是做任务赚到的积分,可以抵扣现金,以购买商品。比如支付宝的积分商城。

本文分析的参考对象是支付宝积分商城,满足公司业务的不同积分需求,梳理出积分系统的要点。

后文我将把积分体系的数模设计以及接口设计分享出来,供需要的参考一二。

二、支付宝的积分商城

1、功能模块

  • 积分余额(账户的当前积分值)
  • 积分收支明细(每一笔收入的积分和消耗的积分)
  • 收入的积分,进一步分为两种途径:做任务赚取到的积分、支付宝付款(主动扫和被扫)奖励的积分。
  • 消耗积分,购买积分商城的商品,使用积分抵扣。(商品支持使用积分抵扣)
  • 查询积分可兑换的商品列表

收入的积分,除了免费获得外,还有两种途径是通过主动购买和后台手动发放而得。

大家不会去傻傻地去购买支付宝的积分,所以你看不到这个入口,产品大神故无此设计。
但是,作为积分系统,积分本质是一种虚拟货币,比如金币、喵币、金钥匙、淘币等等。

积分,作为促销系统的一种常用手段,拉新用户需要用到积分,活跃老用户更需要用到积分。

所以,大多数公司的业务之外,往往还会有自己的积分商城。

说到虚拟货币,还有更加抽象的概念,比如xx的使用次数、xx的使用时间。

凡此种种,我们需要定义积分类型,表示不同的虚拟货币。

做任务赚取积分,任务类型有以下:

  • 签到
  • 逛一逛xx页面
  • 搜一搜xx
  • 滑动浏览xx页面(15秒)

使用积分抵扣商品的支付,有下面两种情况:

  • 纯积分方式的购买
  • 积分+现金组合方式的购买

纯现金方式的购买,是无法使用积分抵扣的。所以,在给商品定价的时候,价格应该是有两个字段:积分值和现金金额。

2、UI设计

  • 积分余额
  • 积分记录(收入和支出)
  • 任务赚积分
  • 消耗积分之纯积分方式

使用269个支付宝积分,购买一个虚拟商品:1元生活缴费红包。

  • 消耗积分之积分加现金的组合方式

以商品牙刷为例,它需要消耗999个积分,另外付款1元现金。

它的实现方式,跟前面的类似,也是使用999个积分,换得该商品价值9.9元的优惠券。

也就是说,积分+现金的组合方式也好,纯积分方式也罢,都采用了优惠券作为中介。

我们是在对商品进行标价的时候,就把积分赋给了商品的价格。这一点,与支付宝积分商城所有不同。(通过优惠券来过渡一下,好处是不会改变商品原先的定价,一直是10.9元)

三、设计目标

  • 支撑公司所有的商城业务,在营销活动过程中,所衍生出来的多种虚拟货币。
  • 积分的发放多种多样,支持灵活的配置。
  • 商品的价格除默认的现金方式外,还需支持纯虚拟货币方式、现金加虚拟货币的组合方式。

四、总结

本文重点在积分系统的设计,不涉及商品、订单、支付和促销等模块,限于篇幅,我们将分为上中下三篇来阐述我们的设计思路。

上文也说了,积分在这里不仅仅是支付宝积分商城的"积分",更侧重于虚拟货币的概念。

所以,我们是把积分赋给商品的价格里,包括积分数points和现金金额price,重复说一遍!!!

java 复制代码
    @Column(name = "points_type", columnDefinition = "VARCHAR(32) COMMENT '积分类别'")
    private String pointsType;
    
    @Column(name = "points", columnDefinition = "INT default 0 COMMENT '积分数'")
    private int points;
    
    @Column(name = "price", nullable = false, columnDefinition = "INT default 0 COMMENT '商品价格'")
    private int price;

price默认是0元,因为有些商品是0元购的,无需使用优惠券。(当然,后台人员在设置0元商品的时候,需要二次审核)

积分类别pointsType + 积分数points,正是为了兼容多种虚拟货币。

商品本身也可能是虚拟商品,虚拟货币购买虚拟商品,一切尽在虚拟世界中。

下一篇我们将介绍其数模设计。。。

相关推荐
人活一口气6 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP8 小时前
Vibe Coding -- 完整项目案例实操
java
荣码8 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing8 小时前
Google第三方授权登录
java·后端·程序员
明月光8188 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑17 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯18 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
fanly1119 小时前
Surging AI Agent 完整产品介绍
微服务·microservice
青石路1 天前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
Java陈序员1 天前
企业级!一个基于 Java 开发的开源 AI 应用开发平台!
spring boot·agent·mcp