前一段时间闲着无聊写了个简单的信用卡卡包管理的server端项目,使用的是springboot+mybatis做的,这里先大致介绍一下项目吧.
涉及的数据库的表并不多,一个关于用户的库simplecard,其中只有一张简单的用户表
CREATE TABLE `kabao_user` (
`uid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL DEFAULT '',
`password` varchar(64) NOT NULL DEFAULT '',
`phone` varchar(32) NOT NULL DEFAULT '',
`token` varchar(128) NOT NULL DEFAULT '',
`timeout` datetime NOT NULL,
`status` tinyint(3) NOT NULL DEFAULT '1' COMMENT '1正常 2冻结',
`create_time` datetime NOT NULL,
`update_time` datetime NOT NULL,
PRIMARY KEY (`uid`),
KEY `idx_phone` (`phone`) USING BTREE,
KEY `idx_token` (`token`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
还有一个tenantbank用户信用卡数据的库,其中有三张表t_bankbill(卡账单),t_bankbill_shoppingsheet(卡消费记录表),t_card(用户卡表)
CREATE TABLE `t_bankbill` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`billId` varchar(64) DEFAULT NULL COMMENT '账单id',
`cardId` varchar(64) DEFAULT NULL COMMENT '卡id',
`userId` varchar(255) DEFAULT NULL COMMENT '用户id',
`bankName` varchar(128) DEFAULT NULL COMMENT '银行名称',
`cardType` varchar(128) DEFAULT NULL COMMENT '卡类型(1信用卡,2借记卡)',
`billMonth` varchar(64) DEFAULT '1900-01-01' COMMENT '账单月',
`billDate` varchar(64) DEFAULT '1900-01-01' COMMENT '卡种(1 信用卡,2 储蓄卡)',
`paymentDueDate` varchar(64) DEFAULT '1900-01-01' COMMENT '到期还款日',
`newBalance` decimal(18,2) DEFAULT '0.00' COMMENT '欠款金额',
`usdNewBalance` decimal(18,2) DEFAULT '0.00',
`minPayment` decimal(18,2) DEFAULT '0.00' COMMENT '最低还款额',
`usdMinPayment` decimal(18,2) DEFAULT '0.00',
`lastBalance` decimal(18,2) DEFAULT '0.00' COMMENT '上期账单金额',
`usdLastBalance` decimal(18,2) DEFAULT '0.00',
`lastPayment` decimal(18,2) DEFAULT '0.00' COMMENT '上期还款金额',
`usdLastPayment` decimal(18,2) DEFAULT '0.00',
`newCharges` decimal(18,2) DEFAULT '0.00' COMMENT '本期新增金额',
`usdNewCharges` decimal(18,2) DEFAULT '0.00',
`interest` decimal(18,2) DEFAULT '0.00' COMMENT '循环利息',
`usdInterest` decimal(18,2) DEFAULT '0.00',
`creditLimit` decimal(18,2) DEFAULT '0.00' COMMENT '信用卡额度',
`usdCreditLimit` decimal(18,2) DEFAULT '0.00',
`cashLimit` decimal(18,2) DEFAULT '0.00' COMMENT '预借现金额度',
`adjust` decimal(10,2) DEFAULT NULL COMMENT '调整金额',
`usdAdjust` decimal(10,2) DEFAULT NULL COMMENT '调整金额-美元',
`usdCashLimit` decimal(18,2) DEFAULT '0.00',
`cardNums` varchar(50) DEFAULT '' COMMENT '卡号后四位',
`fullCardNums` varchar(100) DEFAULT '' COMMENT '全卡号(大部分银行不显示)',
`nameOnCard` varchar(50) DEFAULT '' COMMENT '姓名',
`billItemCount` int(11) DEFAULT '0' COMMENT '账单明细条数',
`createTime` datetime DEFAULT '1900-01-01 00:00:00' COMMENT '创建时间',
`lastModifyTime` datetime DEFAULT '1900-01-01 00:00:00' COMMENT '最后修改时间',
PRIMARY KEY (`id`),
KEY `idx_bcu_id` (`userId`,`cardId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='网银账单表';
CREATE TABLE `t_bankbill_shoppingsheet` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`shoppingsheetId` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '魔蝎的消费记录ID',
`billId` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '帐单ID',
`userId` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '用户id,创建任务时的userid',
`bankName` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '银行id',
`billMonth` varchar(64) COLLATE utf8_bin DEFAULT '' COMMENT '账单月份',
`cardNum` varchar(20) COLLATE utf8_bin DEFAULT '' COMMENT '卡号未四位',
`category` varchar(64) COLLATE utf8_bin DEFAULT '' COMMENT '交易类型',
`transDate` datetime DEFAULT '1900-01-01 00:00:00' COMMENT '交易日期',
`postDate` datetime DEFAULT '1900-01-01 00:00:00' COMMENT '记账日期',
`currencytype` int(11) DEFAULT '1' COMMENT '币类型1.RMB 2.USD',
`orderIndex` int(11) DEFAULT '1' COMMENT '序号',
`amountMoney` decimal(18,2) DEFAULT '0.00' COMMENT '消费金额',
`balance` decimal(18,2) DEFAULT '0.00' COMMENT '余额',
`transAddr` varchar(64) CHARACTER SET utf8 DEFAULT '' COMMENT '交易地点',
`transMethod` varchar(64) CHARACTER SET utf8 DEFAULT '' COMMENT '交易方式',
`transChannel` varchar(64) CHARACTER SET utf8 DEFAULT '' COMMENT '交易方式',
`description` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '交易摘要',
`remark` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '备注',
`oppositeCardNo` varchar(64) CHARACTER SET utf8 DEFAULT '' COMMENT '对方卡号',
`nameOnOppositeCard` varchar(64) CHARACTER SET utf8 DEFAULT '' COMMENT '对方姓名',
`oppositeBank` varchar(64) CHARACTER SET utf8 DEFAULT '' COMMENT '对方银行',
`createTime` datetime DEFAULT '1900-01-01 00:00:00',
`lastModifyTime` datetime DEFAULT '1900-01-01 00:00:00',
PRIMARY KEY (`id`),
KEY `idx_T_Bill_ShoppingSheet_billId` (`billId`),
KEY `idx_T_Bill_ShoppingSheet_userId` (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='网银账单-消费记录表';
CREATE TABLE `t_card` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`cardId` varchar(64) NOT NULL DEFAULT '' COMMENT '账单主键标识,卡id',
`userId` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户id,创建任务时的userid',
`cardType` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '卡类型(1信用卡,2借记卡)',
`bankName` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '银行名称',
`fullCardNum` varchar(64) DEFAULT NULL COMMENT '全卡号',
`cardNum` varchar(64) DEFAULT NULL COMMENT '卡号后四位',
`nameOnCard` varchar(128) DEFAULT NULL COMMENT '姓名',
`balance` decimal(18,2) DEFAULT NULL COMMENT '借记卡余额',
`bankid` varchar(11) DEFAULT NULL COMMENT '银行简称',
`openbank` varchar(256) DEFAULT NULL COMMENT '开户行',
`currentbillamt` decimal(10,2) DEFAULT NULL COMMENT '本期账单金额',
`currentbillpaidamt` decimal(10,2) DEFAULT NULL COMMENT '本期已还金额',
`currentbillremainamt` decimal(10,2) DEFAULT NULL COMMENT '本期剩余应还金额',
`currentbillremainminpayment` decimal(10,2) DEFAULT NULL COMMENT '本期剩余最低应还金额',
`creditLimit` decimal(18,2) DEFAULT NULL COMMENT '信用卡额度',
`openTime` datetime DEFAULT NULL COMMENT '开卡时间(大部分卡没有)',
`createTime` datetime NOT NULL DEFAULT '1900-01-01 00:00:00' COMMENT '创建时间',
`lastModifyTime` datetime NOT NULL DEFAULT '1900-01-01 00:00:00' COMMENT '最后修改时间',
PRIMARY KEY (`id`),
KEY `idx_billid` (`cardId`),
KEY `idx_billid_userid` (`userId`,`cardId`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='网银账单-银行卡表';
ok,结束了,就四张表,并不复杂,本文的关键不是开发功能,我也只是想自己试一下由集中式项目该为分布式项目,这里我们借助springcloud来做微服务的改造,看下图流程(初步画的图,后续会慢慢完善修改)
OK,大致的流程就如上流程图所示,到后面会逐渐完善,我们首先会把用户服务提取出来完成.