wanxin finance

課表

第一章 萬信金融-項目介紹和開發環境搭建
1-1 項目介紹(萬信金融學習資料在此節下載!)
day01-1-項目背景
day01-2-項目概述
1-2 技術介紹
day01-3-技術架構
day01-4-技術棧和技術解決方案
1-3 搭建數據庫環境
day01-5-搭建服務器端數據庫環境
1-4 搭建微服務基礎工程
day01-6-微服務基礎工程環境配置
day01-7-瞭解微服務基礎工程
day01-8-微服務基礎工程測試
1-5 配置中心Apollo介紹
day01-9-配置中心簡介
day01-10-Apollo簡介
day01-11-Apollo初體驗
1-6 Apollo基本用法
day01-12-搭建Apollo配置中心
day01-13-Apollo核心概念
day01-14-玩轉Apollo
1-7 微服務集成Apollo客戶端
day01-15-微服務集成Apollo客戶端
day01-16-搭建使用Apollo環境的微服務基礎工程
1-8 Swagger的使用
day01-17-Swagger簡介
day01-18-SpringBoot集成Swagger
day01-19-Swagger經常使用註解
day01-20-Swagger生成文檔
1-9 Postman的使用
day01-21-Postman的使用
第二章 萬信金融-開戶
2-1 搭建前端環境
day02-1-搭建前端環境
2-2 項目開發步驟和編碼規範
day02-2-開發步驟和編碼規範
2-3 開戶業務需求分析和業務流程
day02-3-開戶業務需求分析
day02-4-開戶業務流程
2-4 實現註冊功能
day02-5-註冊功能需求分析
day02-6-搭建統一帳戶微服務
day02-7-測試統一帳戶微服務
day02-8-部署短信驗證碼服務
day02-9-獲取短信驗證碼-接口定義
day02-10-獲取短信驗證碼-功能實現
day02-11-獲取短信驗證碼-功能測試
day02-11-獲取短信驗證碼-功能測試
day02-12-Mybatis-Plus簡介
day02-13-Mybatis-Plus快速入門
day02-14-Mybatis-Plus-入門案例測試
day02-15-Mybatis-Plus-增刪改查操做
day02-16-Mybatis-Plus-條件構造器
day02-17-Mybatis-Plus-分頁查詢
day02-18-Mybatis-Plus業務層封裝
day02-19-異常處理機制
day03-1-校驗手機號和驗證碼-接口定義
day03-2-校驗短信驗證碼功能實現
day03-3-校驗手機號功能實現1
day03-4-校驗手機號功能實現2
day03-5-校驗手機號功能實現3
day03-6-校驗手機號和驗證碼功能測試
day03-7-保存用戶信息需求分析
day03-8-統一帳戶保存信息-定義接口
day03-9-統一帳戶保存信息-功能實現
day03-10-用戶中心保存信息-定義接口
day03-11-用戶中心保存信息-搭建MP環境
day03-12-用戶中心保存信息-Mapper
day03-13-用戶中心保存信息-Service-用戶是否存在
day03-14-用戶中心保存信息-Service-保存用戶信息
day03-15-用戶中心遠程調用統一帳戶
day03-16-保存用戶信息-功能測試
day03-17-註冊功能-先後端集成測試
2-5 實現傳統登陸方式並分析問題
day03-18-傳統登陸實現方式-定義接口
day03-19-傳統登陸實現方式-功能實現
2-6 理解認證、受權和數據安全
day04-1-傳統登陸實現方式存在的問題
day04-2-認證和受權
day04-3-數據安全的三個問題
day04-4-數據安全-機密性
day04-5-數據安全-完整性
day04-6-數據安全-身份驗證
2-7 理解各類認證方式
day04-7-基於session認證機制
day04-8-基於token認證機制
day04-9-JWT令牌
day04-10-OAuth2認證機制-介紹
day04-11-OAuth2認證機制-引入P2P項目
2-8 實現認證功能
day04-12-P2P項目認證需求分析
day04-13-集成UAA服務
day04-14-認證(登陸)功能實現-Feign代理
day04-15-認證(登陸)功能實現
day04-16-認證(登陸)功能測試
day04-17-認證(登陸)功能測試(過網關)
day04-18-解析令牌功能測試
day04-19-認證(登陸)功能先後端集成測試
2-9 實現認證攔截功能
day04-20-認證攔截功能需求分析
day04-21-認證攔截功能環境準備
day04-22-認證攔截功能實現
day05-1-認證攔截測試準備
day05-2-認證攔截功能測試
day05-3-微服務從請求中取數據
2-10 理解事務和分佈式事務
day05-4-註冊功能存在的事務問題
day05-5-什麼是事務
day05-6-ACID特性
day05-7-分佈式事務
2-11 理解分佈式事務基礎理論
day05-8-CAP理論-場景
day05-9-CAP理論-概述
day05-10-BASE理論
2-12 TCC方案
day05-11-TCC解決方案概述
day05-12-TCC案例
2-13 Hmily框架
day05-13-Hmily框架簡介
day05-14-Hmily實現轉帳-環境搭建
day05-15-Hmily實現轉帳-bank1
day05-16-Hmily實現轉帳-bank2
day05-17-Hmily實現轉帳-功能測試
day05-18-Hmily實現註冊-環境搭建
day05-19-Hmily實現註冊-用戶中心
day05-20-Hmily實現註冊-統一帳戶
day05-21-Hmily實現註冊-功能測試
2-14 開戶需求分析
day06-1-開戶需求分析
2-15 部署銀行存管系統
day06-2-部署銀行存管系統
2-16 實現開戶功能
day06-3-開戶第一階段-定義接口1
day06-4-開戶第一階段-定義接口2
day06-5-開戶第一階段-功能實現1
day06-6-開戶第一階段-功能實現2
day06-7-開戶第一階段-功能實現3
day06-8-開戶第一階段-功能實現4
day06-9-開戶第一階段-功能實現5
day06-10-開戶第一階段-功能實現6
day06-11-開戶第一階段-功能實現7
day06-12-開戶第一階段-功能實現8
day06-13-開戶第一階段-功能實現9
day06-14-開戶第一階段-功能測試
day06-15-開戶第一階段-遺留功能測試
day06-16-開戶第二階段
day06-17-開戶第三階段-問題分析
day06-18-開戶第三階段-搭建MQ環境
day06-19-開戶第三階段-功能實現1
day07-1-開戶第三階段-功能實現2
day07-2-開戶第三階段-功能實現3
day07-3-開戶第三階段-功能實現4
day07-4-開戶第三階段-功能實現5
day07-5-開戶第三階段-功能實現6
day07-6-開戶第三階段-功能實現7
day07-7-開戶第三階段-功能測試
第三章 萬信金融-發標
3-1 發標需求分析
day07-8-發標-需求分析
3-2 分庫分表
day07-9-分庫分表的緣由
day07-10-垂直分表
day07-11-垂直分庫
day07-12-水平分庫分表
3-3 Shardind-JDBC
day07-13-分庫分錶帶來的問題
day07-14-Sharding-JDBC概覽
day07-15-Sharding-JDBC核心功能1
day07-16-Sharding-JDBC核心功能2
day07-17-入門案例-需求分析和數據庫設計
day07-18-入門案例-搭建數據庫環境1
day07-19-入門案例-搭建數據庫環境2
day07-20-入門案例-搭建數據庫環境3
day08-1-入門案例-功能實現1
day08-2-入門案例-功能實現2
day08-3-入門案例-功能實現3
day08-4-入門案例-功能實現4
day08-5-入門案例-功能測試
3-4 P2P項目分庫分表
day08-6-P2P項目分庫分表
3-5 交易中心微服務環境搭建
day08-7-交易中心微服務環境搭建
3-6 用戶發標業務需求分析
day08-8-用戶發標-需求分析
3-7 交易中心保存標的信息
day08-9-交易中心保存標的-定義接口
day08-10-交易中心保存標的-DAO
day08-11-交易中心保存標的-業務層1
day08-12-交易中心保存標的-業務層2
day08-13-交易中心保存標的-業務層3
day08-14-交易中心保存標的-Controller
day08-15-交易中心保存標的先決條件
day08-16-交易中心保存標的-先後端集成測試1
day08-17-交易中心保存標的-先後端集成測試2
3-8 部署管理平臺前端工程
day08-18-部署管理平臺前端工程
3-9 實現查詢標的信息
day08-19-查詢標的信息-定義接口
day08-20-查詢標的信息-功能實現1
day08-21-查詢標的信息-功能實現2
day08-22-查詢標的信息-先後端集成測試
3-10 實現審覈標的功能
day09-1-審覈標的-定義接口
day09-2-審覈標的-交易中心-功能實現1
day09-3-審覈標的-交易中心-功能實現2
day09-4-審覈標的-存管代理-功能實現1
day09-5-審覈標的-存管代理-功能實現2
day09-6-審覈標的-完善Controller
day09-7-審覈標的-先後端集成測試
3-11 冪等性問題分析及實現
day09-8-審覈標的-冪等性-問題分析
day09-9-審覈標的-冪等性-解決思路
day09-10-審覈標的-冪等性-功能實現
day09-11-冪等性-測試準備
day09-12-冪等性-功能測試
3-12 使用ES&logstash實現標的快速檢索
day09-13-標的快速檢索-需求分析
day09-14-標的信息檢索-ES環境搭建
day09-15-標的快速檢索-logstash環境搭建
day09-16-標的快速檢索-使用logstash1
day09-17-標的快速檢索-使用logstash2
day09-18-標的快速檢索-logstash測試
3-13 實現標的信息檢索功能
day10-1-標的信息檢索-開發環境搭建
day10-2-標的信息檢索-交易中心-定義接口
day10-3-標的信息檢索-交易中心-功能實現
day10-4-標的信息檢索-內容檢索服務-定義接口
day10-5-標的信息檢索-內容檢索服務-功能實現1
day10-6-標的信息檢索-內容檢索服務-功能實現2
day10-7-標的信息檢索-功能測試
第四章 萬信金融-投標放款
4-1 用戶投標業務需求分析
day10-8-用戶投標-業務概述
day10-9-用戶投標-需求分析
4-2 實現投標預覽功能
day10-10-投標預覽-定義接口
day10-11-投標預覽-接口1-功能實現1
day10-12-投標預覽-接口1-功能實現2
day10-13-投標預覽-接口1-功能實現3
day10-14-投標預覽-接口1-功能測試
day10-15-投標預覽-接口2-功能實現
day10-16-投標預覽-接口2-功能測試
day10-17-投標預覽-接口3-功能實現
day10-18-投標預覽-接口3-功能測試
day10-19-投標預覽-先後端集成測試
4-3 實現用戶投標功能
day11-1-用戶投標-定義接口
day11-2-用戶投標-功能實現1
day11-3-用戶投標-功能實現2
day11-4-用戶投標-功能實現3
day11-5-用戶投標-功能實現4
day11-6-用戶投標-功能實現5
day11-7-用戶投標-功能實現6
day11-8-用戶投標-功能實現7
day11-9-用戶投標-功能實現8
day11-10-用戶投標-功能實現9
day11-11-用戶投標-功能實現10
day11-12-用戶投標-功能實現11
day11-13-用戶投標-先後端集成測試
4-4 滿標放款需求分析和接口定義
day11-14-滿標放款-需求分析
day11-15-滿標放款-定義接口1
day11-16-滿標放款-定義接口2
day11-17-滿標放款-定義接口3
day11-18-滿標放款-定義接口4
4-5 滿標放款功能實現
day12-1-滿標放款-接口1-功能實現1
day12-2-滿標放款-接口1-功能實現2
day12-3-滿標放款-接口1-功能實現3
day12-4-滿標放款-接口1-功能實現4
day12-5-滿標放款-接口1-功能實現5
day12-6-滿標放款-接口1-功能實現6
day12-7-滿標放款-接口2-功能實現
day12-8-滿標放款-接口3-功能實現
day12-9-滿標放款-接口4-功能概述
day12-10-滿標放款-接口4-Mapper
day12-11-滿標放款-接口4-業務層-獲取相關數據
day12-12-滿標放款-接口4-業務層-生成還款計劃
day12-13-滿標放款-接口4-業務層-保存還款計劃
day12-14-滿標放款-接口4-業務層-生成投資人應收明細
day12-15-滿標放款-接口4-Controller
day12-16-滿標放款-先後端集成測試
4-6 可靠消息實現最終一致性
day12-17-可靠消息實現最終一致性-概述
day12-18-可靠消息實現最終一致性-RocketMQ
day13-1-可靠消息實現最終一致性-入門案例-環境搭建
day13-2-可靠消息實現最終一致性-入門案例-bank1-數據訪問層
day13-3-可靠消息實現最終一致性-入門案例-bank1-業務層
day13-4-可靠消息實現最終一致性-入門案例-bank1-執行本地事務
day13-5-可靠消息實現最終一致性-入門案例-bank1-回查事務
day13-6-可靠消息實現最終一致性-入門案例-bank1-controller
day13-7-可靠消息實現最終一致性-入門案例-bank2-業務層
day13-8-可靠消息實現最終一致性-入門案例-bank2-消費消息
day13-9-可靠消息實現最終一致性-入門案例-功能測試
4-7 解決滿標放款業務中的事務問題
day13-10-解決滿標放款業務中的事務問題-問題分析
day13-11-解決滿標放款業務中的事務問題-交易中心-發送消息
day13-12-解決滿標放款業務中的事務問題-交易中心-事務監聽器
day13-13-解決滿標放款業務中的事務問題-還款服務
day13-14-解決滿標放款業務中的事務問題-功能測試
第五章 萬信金融-用戶還款
5-1 用戶還款需求分析
day13-15-用戶還款-需求概述
day13-16-用戶還款-需求分析
5-2 用戶還款功能實現
day13-17-用戶還款-第一階段-定義接口
day14-1-用戶還款-第一階段-實現接口1
day14-2-用戶還款-第一階段-實現接口2
day14-3-用戶還款-第一階段-業務觸發入口
day14-4-用戶還款-第一階段-功能測試
day14-5-用戶還款-第二階段-功能實現
day14-6-用戶還款-第二階段-業務觸發入口
day14-7-用戶還款-第二階段-功能測試
day14-8-用戶還款-第三階段-業務分析
day14-9-用戶還款-第三階段-發送消息
day14-10-用戶還款-第三階段-本地事務1
day14-11-用戶還款-第三階段-本地事務2
day14-12-用戶還款-第三階段-消息監聽
day14-13-用戶還款-第三階段-業務觸發入口
day14-14-用戶還款-第四階段-定義接口
day14-15-用戶還款-第四階段-功能實現1
day14-16-用戶還款-第四階段-功能實現2
day14-17-用戶還款-第四階段-消費消息
day14-18-用戶還款功能測試
5-3 任務調度和分佈式任務調度
day14-19-任務調度概述
day14-20-分佈式任務調度概述
5-4 Elastic-Job介紹
day14-21-Elastic-Job簡介
day14-22-Elastic-Job重要概念
day15-1-cron表達式
5-5 Elastic-Job入門案例
day15-2-快速入門-環境搭建
day15-3-快速入門-數據訪問層
day15-4-快速入門-任務類
day15-5-快速入門-zookeeper配置類
day15-6-快速入門-elastic-job配置類
day15-7-快速入門-運行效果
5-6 實現定時還款任務
day15-8-定時還款任務-基礎配置
day15-9-定時還款任務-數據訪問層
day15-10-定時還款任務-業務層
day15-11-定時還款任務-任務類
day15-12-定時還款任務-配置類
day15-13-定時還款任務-功能測試
5-7 實現還款短信提醒功能
day15-14-還款短信提醒-騰訊雲概述和環境準備
day15-15-還款短信提醒-定義接口
day15-16-還款短信提醒-還款提醒功能-準備工做
day15-17-還款短信提醒-還款提醒功能實現
day15-18-還款短信提醒-發送還款短信-功能實現
day15-19-還款短信提醒-功能測試
day15-20-定時還款短信提醒
第六章 萬信金融-項目總結&就業指導
6-1 項目業務總結
day16-1-行業簡介
day16-2-項目概述
day16-3-功能架構
day16-4-技術架構
day16-5-總體業務
day16-6-關鍵業務1
day16-7-關鍵業務2
6-2 項目技術總結
day16-8-易問技術-配置中心
day16-9-易問技術-UAA
day16-10-易問技術-分庫分表
day16-11-易問技術-讀寫分離
day16-12-易問技術-分佈式事務
day16-13-易問技術-TCC
day16-14-易問技術-RocketMQ事務消息實現最終一致性
day16-15-易問技術-分佈式定時任務
day16-16-易問技術-ElasticSearch
day16-17-易問技術-Logstash
day16-18-易問技術-數據安全
6-3 項目管理總結
day16-19-項目管理
第七章 萬信金融-項目實戰
7-1 項目實戰總體安排
1.項目實戰總體安排
7-2 充值功能實戰
2.充值-業務概述
3.充值-需求分析
4.充值-接口定義
7-3 提現功能實戰
5.提現-業務概述
6.提現-需求分析
7.提現-接口定義
7-4 身份認證功能實戰
8.身份認證-業務概述
9.身份認證-需求分析
10.身份認證-文件服務
11.身份認證-百度AI服務
12.身份認證-接口定義
7-5 項目部署實戰
1.DevOps介紹
2.使用Docker Compose部署項目
3.持續集成的做用
4.持續集成介紹
5.Gogs的安裝和使用
6.Jenkins的安裝和配置
7.Jenkins構建任務測試
8.Jenkins自動構建任務
第八章 萬信金融-微服務高級部分
8-1 服務調用鏈路追蹤的理解和使用
1.服務調用鏈路追蹤-學習目標
2.服務調用鏈路追蹤-問題分析
3.服務調用鏈路追蹤-解決方案
4.服務調用鏈路追蹤-快速上手
5.服務調用鏈路追蹤-入門案例
6.服務調用鏈路追蹤-功能測試
8-2 Zipkin的理解和使用
7.Zipkin簡介
8.Sleuth&Zipkin集成案例
9.Sleuth&Zipkin集成測試
10.Zipkin&Elasticsearch集成
11.Zipkin依賴分析
12.萬信金融P2P項目實行服務調用鏈路追蹤
8-3 Sentinel的理解和使用
13.Sentinel實現限流-學習目標
14.Sentinel問題分析
15.Sentinel簡介
16.Sentinel入門案例
17.Sentinel入門案例-功能測試
18.SentinelDashboard圖形化控制檯
19.Sentinel限流規則參數
20.Sentinel動態規則
21.Sentinel網關限流
8-4 萬信金融P2P項目實現網關限流
22.萬信金融P2P項目實現網關限流
23.萬信金融P2P項目網關限流測試
8-5 Hystrix的理解和使用
24.Hystrix學習目標
25.服務熔斷概述
26.Hystrix簡介
27.Hystrix&Feign入門案例
8-6 萬信金融P2P項目實現服務熔斷
28.萬信金融P2P項目實現服務熔斷
29.萬信金融P2P項目熔斷測試html

字符串轉Integer

borrowerDTO.setAge(new Integer(info.get("age")));

rocketmq

windows rocketmq broker建立不了
https://www.cnblogs.com/rouji...
刪除user/store文件前端

mybatis plus

查詢總數

查詢知足條件的數量java

tenderWrapper.selectCount(Wrappers.<Tender>.lambdaQuery.eq(Tender::getProjectId,1))

構造條件而後查詢數量mysql

QueryWrapper<Project> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(Project::getConsumerId,
                restResponse.getResult().getId());

根據條件查詢列表sql

List<Tender> tenderList = tenderMapper.selectList(Wrappers.<Tender>lambdaQuery().eq(Tender::getProjectId,id));

時間戳,日期的概括

新時間日期API詳解與示例
獲取當前時間

LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDate);
System.out.println(localTime);
System.out.println(localDateTime);數據庫

image.png

時間戳轉成utc date,再轉成LocalDateTime

public LocalDateTime convertUTCToLocalTime(String timeStamp) {
        Long timeLong = Long.parseLong(timeStamp) * 1000L;
        Date timeDate = new java.util.Date(timeLong);
        String date = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timeDate);
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime ldt = LocalDateTime.parse(date, df);
        return ldt;
    }

數組轉成ArrayList

int[] arr = {1,2,3}
ArrayList<Integer> list = Arrays.toList(arr)

含毫秒或者不含毫秒的utc時間轉換

先轉Date,再轉LocalDateTimewindows

/** es輸出的utc毫秒字符串轉date
 * @param text 時間字符串,格式支持兩種
 *             一、不包含毫秒值,如"2019-01-03T08:26:15Z";
 *             二、支持任意位數的毫秒值:2019-01-03T08:26:15.503162206Z;
 * 轉換出來的Date類型精度知道毫秒位
 * @return
 * @throws ParseException
 */public static Date parseUTCText(String text) throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
 sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
 if (text.indexOf(".") > -1) {
        String prefix = text.substring(0, text.indexOf("."));
 String suffix = text.substring(text.indexOf("."));
 if (suffix.length() >= 5) {
            suffix = suffix.substring(0, 4) + "Z";
 } else {
            int len = 5 - suffix.length();
 String temp = "";
 temp += suffix.substring(0, suffix.length() - 1);
 for (int i = 0; i < len; i++) {
                temp += "0";
 }
            suffix = temp + "Z";
 }
        text = prefix + suffix;
 } else {
        text = text.substring(0, text.length() - 1) + ".000Z";
 }
    Date date = sdf.parse(text);
 return date;
}
/**
 * date轉LocalDateTime
 * @param l
 * @return
 */
public static LocalDateTime convertDateToLocalDateTime(Date l){
    LocalDateTime ldt = l.toInstant()
            .atZone( ZoneId.systemDefault() )
            .toLocalDateTime();
 return ldt;
}

數據庫是timestamp的時候javabean實體類的類型能夠爲string後端

開戶

開戶流程

image.png

調試過程當中遇到的問題

Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
pom中mybatis-plus-boot-starter沒有引入
多是mybatis沒掃到mapper文件數組

Caused by: feign.FeignException: status 404 reading AccountApiAgent#login(AccountLoginDTO)
feign裏邊的 接口沒用添加前綴安全

建立mapper模板

image.png

UAA服務認證

image.png
image.png

rocketmq win下安裝

win10 必須把rocketmq的安裝目錄放入環境變量
複製控制檯java包到bin目錄下,而且建立cmd執行文件

start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
java -jar rocketmq-console-ng-1.0.1.jar --server.port=60000 --rocketmq.config.namesrvAddr=127.0.0.1:9876

控制檯的訪問地址http://localhost:60000/rocketmq/#/
rocketmq每個消息
image.png

{"respCode":"00000","respMsg":"成功","status":1,"requestNo":"REQ_7A2A28AA88354AA1BDADD43DBDE2F6D1","bankCode":"PAB","bankName":"平安銀行"}

發標

bigDecimal

image.png

業務流轉圖

image.png

標的分庫分表方案

image.png

冪等性的問題

image.png

要解決的問題

image.png

發標

發標過程當中logstash的執行命令
./logstash.bat -f ../config/mysql-es.conf

投標放款

image.png

打開swagger文檔
image.png

相關文章
相關標籤/搜索