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旨在使设置…

mysql中show属于_mysql show的常见用法

a. show tables或show tables from database_name; // 显示当前数据库中所有表的名称b. show databases; // 显示mysql中所有数据库的名称c. show columns from table_name from database_name; 或show columns from database_name.table_name; // 显示表中列名称d. show gra…

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

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

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

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

MySQL之命令mysql -- MySQL服务器的客户端工具

文章目录命令介绍选项说明-A--executestatement, -e statement参考示例登录数据库执行指定的脚本文件将指定脚本文件的内容导入(或者重载)到指定数据库中命令介绍 mysql 命令是 MySQL 数据库服务器的客户端工具,它工作在命令行终端中&#x…

eclipse中ast_JavaParser中AST节点的观察者

eclipse中ast我们离JavaParser 3.0的第一个候选发布版本越来越近。 我们添加的最后一项功能是支持观察抽象语法树的所有节点的更改。 当我为此功能编写代码时,我收到了Danny van Bruggen(又名Matozoid)和Cruz Maximilien的宝贵反馈。 因此&am…

java模拟登陆_java-模拟登陆练习(示例代码)

package com.day5.test;import java.util.Scanner;public class Test1 {/*** param args* 需求:模拟登陆,给三次机会,并提示还有几次* 用户名和密码都是admin* 分析:* 1,模拟登陆,需要键盘录入,…

电商系统的积分(即金币)的设计方案

积分其实就是金币 有些平台把积分和金币拆开独立设计,把金币设计成虚拟货币,而积分可以抵现或者兑换金币,金币可以提现。但是很多平台又将金币和积分的功能合并一起,既可以抵现,又可以提现,而且金币和现金的…

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

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

产品经理是如何管理需求

文章目录一、怎么发现需求二、如何判断需求三、定义用户需求四、定义产品需求五、评估产品需求六、管理产品需求一、怎么发现需求 1、什么是需求 特定的人在特定的情况下产生了特定的问题,并且这种问题是可以被解决的,我们就可以把它叫做需求 2、需求从…

spring boot缓存_Spring Boot和缓存抽象

spring boot缓存缓存是大多数应用程序的主要组成部分,只要我们设法避免磁盘访问,缓存就会保持强劲。 Spring对各种配置的缓存提供了强大的支持 。 您可以根据需要简单地开始,然后进行更多可定制的操作。 这将是spring提供的最简单的缓存形式…

有c基础学java多久_有c十十基础的自学java语言每天6小时要多长时间?

建议花6个月学习。1、前面2个月学习下面这本书。2、后面4个月同时学习数据结构与算法 刷LeetCode 学习Spring BootSpring boot 看这本书 官方文档 找点视频看看。Spring Boot provides a variety of features that address todays business needs with a powerful database…

Apache的架构师总结出30条架构设计原则

Srinath是一位科学家,软件架构师,也是一名在分布式系统上工作的程序员。 他是Apache Axis2项目的联合创始人,也是Apache Software基金会的成员。 他是WSO2流处理器(wso2.com/analytics)的联席架构师。 Srinath撰写了两…

本地运行flowable_在CockroachDB上运行Flowable

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

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

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

HH SaaS电商系统的各种编号(编码/代码/代号)设计

文章目录主订单编号规则一(租户内唯一)主订单编号规则二(租户内唯一)子订单编号规则(租户内唯一)租户编号规则(系统内唯一)供应商编号规则(租户内唯一)平台编…

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

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

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

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

java redis集群连接池_(08)redis之使用java客户端、spring连接redis、redis集群示例...

一、java代码连接1、新建工程,并引入以下包:jedis-2.7.0.jar、commons-pool2-2.3.jar、junit-4.10.jar2、单实例连接/*** 单实例连接*/Testpublic voidjedisClient(){//创建一个Jedis的连接Jedis jedisnew Jedis("192.168.7.151",6379);//可以…