一、准备工作
新建一个数据库,数据库名字是tokenLogin,数据库内新建两张表,第一张是用户账户信息表,第二张是转账、入账、出账记录表,分别如下所示:
1. sys_user用户账户信息表:
CREATE TABLEtokenLogin.sys_user(
`id`bigint NOT NULL comment 'ID',
`username`varchar(50) comment '用户名',
`password`varchar(50) comment '密码',PRIMARY KEY(`id`)
);insert into tokenLogin.sys_user values('1' , 'admmin' , '1')insert into tokenLogin.sys_user values('2' , 'superadmmin' , '11')insert into tokenLogin.sys_user values('3' , 'user' , '111')alter table tokenLogin.sys_user add column account double default null;
接着对account进行赋值,赋值完成后表内容如下:
2. 转账记录表:
CREATE TABLEtokenLogin.trasf_record(
`id`int NOT NULLAUTO_INCREMENT,
`username`varchar(50) default null,
`account_time`TIMESTAMP DEFAULT now() , /*交易时间,默认是几率生成的时间,也就是交易操作完成的时间*/`old_account`double default null, /*原账户的余额*/`new_account`double default null, /*交易后账户最新余额*/`target_account`varchar(50) default null , /*交易对方账户*/`account_type`varchar(50) default null , /*交易类型*/
PRIMARY KEY(`id`)
);alter table tokenLogin.trasf_record add column transaction_amount double default null after old_account ; /*在原账户余额和交易后账户余额中间插入交易余额*/
创建一张空表即可,后面产生交易的时候将数据插入,实现资金追溯。
3. 常量设置:在转账记录表中,有一个字段account_type , 这个字段无非有两个结果,要么是入账类型,要么是出账类型,所以这里我们进行常量设置。
在constants包下面新建TransactionType类,类下内容如下:
/***@authoryeyuting
* @create 2021/2/18*/
public classTransactionType {public static final String SAVEMONEY = "入账";public static final String WITHDRAWMONEY = "出账";
}
这样一来,准备工作就做好了,现在我们依次来实现账户余额查询、转账、入账和出账记录。
二、账户余额查询
1. 首先控制层创建余额查询接口:
@GetMapping("/selectByUserName")public Resul