HH SaaS电商系统的虚拟资金账户(钱包余额)设计

文章目录

    • 方案一,将资金账户抽象出来
      • 虚拟资金账户
      • 余额流水记录实体
    • 方案二,用户表直接保存资金余额
      • 余额流水记录实体

方案一,将资金账户抽象出来

虚拟资金账户

在这里插入图片描述
P.S. 如果机构代码和消费代码有区分类型,那么资金账户表中就不必保存“账户所属机构ID”、“账户所属机构类型”、“账户所有者ID”、“所有者类型”,只要保存“账户所属机构代码”和“账户所有者代码”就可以了

  • 资金账号

其中第1-7位账户所属机构代码,第8-15位为顺序位,第16位为校验位。
机构代码的第一位,为机构类型,代表机构所属类型,目前系统有四种类型:

机构类型代码机构类型名称
1租户
2商城
3店铺
4供应商
  • 校验码算法

校验码采用LUHN算法,亦称模10算法。计算方法如下:

第一步:从右边第1个数字开始每隔一位乘以2;

第二步: 把在第一步中获得的乘积的各位数字相加,然后再与原号码中未乘2的各位数字相加;

第三步:对于第二步求和值中个位数求10的补数,如果个位数为0则该校验码为0。

举例:625965087177209(不含校验码的账号)

第一步:6 * 2=12,5 * 2=10,6 * 2=12,0 * 2=0,7 * 2=14,7 * 2=14,2 * 2=4,9 * 2=18

第二步:1+2 + 1+0 + 1+2 + 0 + 1+4 + 1+4 + 4 + 1+8 = 30

30 + 2+9+5+8+1+7+0 = 62

第三步:10-2=8

所以,校验码是8,完整的账号应该是6259650871772098。

余额流水记录实体

在这里插入图片描述

  • 流水类型:

货款转入(01)

佣金转入(02)

返现转入(03)

退款转入(04)

消费转出(05)

奖励转入(06)

充值转入(07)

提现转出(08)

  • 流水备注:

关联的单据ID保存在该字段中,例如:销售入账关联销售货款结算单,就保存结算单ID;消费关联销售单,就保存销售单ID;提现关联提现单,就保存提现单ID…

  • 流水编号
    流水类型代码+设备ID(即MAC地址,转换成10进制数)+ 时间戳

方案二,用户表直接保存资金余额

实际业务中,用户并不会用到资金账号,也不关心账户所属机构,所以通常是在用户表中增加一个“资金余额”字段,用来直接保存资金余额就可以了。

余额流水记录实体

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jhipster_jHipster入门,第1部分

jhipster因此,您想保持技术的领先地位,但对所有活动部件感到不知所措。 你真幸运! 这就是jHipster发光的地方。 如果您喜欢Ruby on Rails或Grails的方法来快速启动和运行应用程序,那么这可能是适合您的选择。 jHipster旨在使设置…

java基准测试_微基准测试进入Java 9

java基准测试我已经几个月没有在这里写文章了,这种例外还会继续。 我计划在明年三月左右恢复写作。 本文末尾的说明。 等待! 不完全是最后,因为您可以向下滚动。 它在文章结尾处。 继续阅读! 三年前,我在写有关Java编…

python周天为一周的开始_从两个月减肥四十斤说起,不懈坚持,才是一个人最核心的竞争力。...

大学毕业了十年,我的身材失控了十年。我对我的胖身材已经习以为常了十年了,我从来没想过改变,因为我也没有毅力改变。有一句话说的,人越胖,就越懒。因为我胖,所以我不跑步,我也不爱外出。只要你…

java实现线程的方式_java多线程实现的四种方式

java多线程实现的四种方式1、继承Thread类,重写run方法(其实Thread类本身也实现了Runnable接口)2、实现Runnable接口,重写run方法3、实现Callable接口,重写call方法(有返回值)4、使用线程池(有返回值)1、继承Thread类,重写run方法…

本地运行flowable_在CockroachDB上运行Flowable

本地运行flowable什么是CockroachDB? CockroachDB是一个我一直关注了很长时间的项目。 这是一个开放源代码的Apache 2许可数据库( Github链接 ),该数据库在很大程度上汲取了Google Spanner白皮书的启发 。 它的核心是可水平扩展的…

win10禁用驱动程序强制签名_图文细说 win10系统未检测到第三个监视器的途径 -win10使用教程...

据统计调查,好多朋友都在为图文细说 win10系统未检测到第三个监视器的途径 的问题而烦恼,小编决定将解决的办法分享给大家。对于电脑菜鸟而言看到图文细说 win10系统未检测到第三个监视器的途径 是很无奈的,试着独自一个人解决图文细说 win10…

安装openstack_午餐前如何安装OpenStack Cloud

安装openstack图1. QuickStart的内部工作原理 云安装程序 如果我告诉您可以在必须停下来吃午餐之前进行OpenStack Cloud环境设置,该怎么办? 您会感到惊讶吗? 你今天可以做吗? 在大多数情况下,我敢打赌您的答案是不…

5e怎么绑定一键跳投_怎么开通淘宝亲情账号 淘宝亲情账号申请步骤【详解】

据官方消息,淘宝将在2月1日上线“亲情账号”功能。那么 淘宝亲情账号怎么开通?在哪申请? 下面为大家介绍下,一起来看看。亲情账号用户在淘宝账号中可以创建“父亲”或“母亲”角色关系,对父母发出注册邀请或直接绑定他们的账号。完成亲情关…

windows功能_你的Windows杀毒软件有这个功能吗?

安全软件首推-火绒,良心之作。比起360安全卫士、腾讯电脑管家,它无广告,无捆绑,无劫持,无弹窗,还免费。我认为最喜人最贴心的功能属它的‘弹窗拦截’了,可以拦截程序推送烦人的弹窗。五大浓缩亮…

base64 二进制流java_读取和base64编码二进制文件

我m trying to read a binary file from the filesystem and then base64 encode it in JavaScript. I使用FileReader API读取数据并找到base64编码器here .我的代码似乎接近工作,问题是生成的base64数据是错误的 . 这是我到目前为止所得到的:function s…

drools dmn_使用Drools的DMN运行时示例

drools dmn正如去年宣布的那样 ,Drools 7.0将在合规级别3对DMN模型提供全面的运行时支持。 在撰写本文时,运行时实现已完成,并且该团队现在正在努力进行改进,以进行错误修复和用户友好。 不幸的是,对于7.0版本&#…

笔记本电脑关机后指示灯还亮_汽车仪表常见指示符号之清洗液指示灯,灯亮了怎么办?...

清洗液指示灯就是玻璃水指示灯,用来显示玻璃水的储存量的,平时为熄灭状态,当玻璃水不足时就会点亮提醒驾驶员该添加了。添加后清洗液指示灯还亮的说明出现故障,检查玻璃水电机,相关线路保险丝等,行车中此灯…

xxx钻石商城功能开发需求

文章目录1. 买家小程序端1.1. 首页1.2. 店铺1.2.1. 搜索门店1.2.2. 门店信息1.2.3. 预约试戴1.3. 购物袋1.3.1. 加入购物车1.3.2. 编辑购物车1.4. 个人中心1.4.1. 个人信息1.4.2. 实名认证1.4.3. 我的等级1.4.4. 查看收益1.4.4.1 门店收益1.4.4.1.1查看结算单1.4.4.2 分享收益1…

drools6.5_Drools 6.5.0.Final可用

drools6.5最新和最出色的Drools 6.5.0.Final版本现已可供下载。 这是我们以前的版本的增量版本,重点是一些重要的改进以完善6.x系列。 您可以在此处找到更多详细信息,下载和文档: Drools网站 资料下载 文献资料 发行说明 请阅读下面的一…

c++ vector 一部分_C++ vector 使用注意事项

1、初始化c 11以后新增了大括号{}的初始化方式&#xff0c;需要注意与()的区别,如&#xff1a;std::vector<int> vecTest1(5); //初始化5个元素&#xff0c;每个都是0std::vector<int> vecTest2{ 5 }; //初始化1个元素&#xff0c;值是52、添加元素&#xff1a;pus…

react打包后图片丢失_React中型项目的优化实践

本文可能涉及的内容--项目介绍整个项目大概有60个页面&#xff0c;用到的组件大概150&#xff0c;package里面的依赖大概有70个&#xff0c;应该勉强算得上是一个中型的React的项目了。下面给大家看看我们现在build一次项目的结果--打包时间约150s&#xff0c;打包完之后的资源…

cuba.platform_CUBA Platform 6.3的新增功能

cuba.platform我们很自豪地宣布新版本的CUBA平台和Studio全面上市&#xff01; 也许这是有史以来功能最丰富的平台版本之一–在各个级别上都有重要的变化&#xff1a;体系结构&#xff0c;可扩展性&#xff0c;API可用性和性能。 本文介绍了该平台的主要增强功能。 发行说明中…

如何通过命令终端访问本地/局域网/远程的MySQL数据库_访问数据库_连接数据库_登录数据库

文章目录Windows系统下访问本地MySQL数据库访问远程主机的MySQL数据库本地安装了MySQL数据库本地没有安装MySQLLinux系统下退出数据库登录Windows系统下 访问本地MySQL数据库 使用命令终端访问本地MySQL数据库&#xff0c;打开终端直接输入以下命令语句&#xff1a; mysql …