1. 程式人生 > >springboot專案微服務改造系列(一)

springboot專案微服務改造系列(一)

    前一段時間閒著無聊寫了個簡單的信用卡卡包管理的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,大致的流程就如上流程圖所示,到後面會逐漸完善,我們首先會把使用者服務提取出來完成.