springboot專案微服務改造系列(一)
阿新 • • 發佈:2019-01-09
前一段時間閒著無聊寫了個簡單的信用卡卡包管理的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,大致的流程就如上流程圖所示,到後面會逐漸完善,我們首先會把使用者服務提取出來完成.