原创 2.下單

2.下單 2.1 業務分析 點擊提交訂單的時候,會立即創建訂單數據,創建訂單數據會將數據存入到2張表中,分別是訂單表和訂單明細表,此處還需要修改商品對應的庫存數量。 訂單表結構如下: CREATE TABLE `tb_order

原创 vue+webView+bootstrap實現珠珠窗簾計算器

一、項目背景 家裏出售一種用珠子串起來的門簾,其中有一種是半截的,而且下半截需要有弧度,但是每個顧客家的門框的寬度和高度都不太一樣,因此每次計算每一串珠子的長度是非常麻煩的一件事情,所以纔有了做這樣一個計算器的需求。 二、需求

原创 02秒殺商品存入緩存

2.秒殺商品存入緩存 秒殺商品由B端存入Mysql,設置定時任務,每隔一段時間就從Mysql中將符合條件的數據從Mysql中查詢出來並存入緩存中,redis以Hash類型進行數據存儲。 2.1 秒殺服務搭建 1)新建服務chan

原创 03支付回調邏輯處理

3.支付回調邏輯處理 3.1 需求分析 在完成支付後,修改訂單狀態爲已支付,並記錄訂單日誌。 3.2 實現思路 (1)接受微信支付平臺的回調信息(xml) <xml><appid><![CDATA[wx8397f8696b5383

原创 04推送支付通知

4.推送支付通知 4.1 需求分析 當用戶完成掃碼支付後,跳轉到支付成功頁面 4.2 服務端推送方案 我們需要將支付的結果通知前端頁面,其實就是我們通過所說的服務器端推送,主要有三種實現方案 (1)Ajax 短輪詢 Ajax 輪詢

原创 01.分佈式事務解決方案

1.分佈式事務解決方案 剛纔我們編寫的扣減庫存與保存訂單是在兩個服務中存在的,如果扣減庫存後訂單保存失敗了是不會回滾的,這樣就會造成數據不一致的情況,這其實就是我們所說的分佈式事務的問題,接下來我們 1.1 本地事務與分佈式事務

原创 02Springboot整合Thymeleaf

2.Springboot整合thymeleaf 使用springboot 來集成使用Thymeleaf可以大大減少單純使用thymleaf的代碼量,所以我們接下來使用springboot集成使用thymeleaf. 創建一個s

原创 03Thymeleaf語法

3.Thymeleaf基本語法 (1)th:action 定義後臺控制器路徑,類似 標籤的action屬性。 例如: <form th:action="@{/test/hello}" > <input th:type="tex

原创 02基於Seata實現分佈式事務

2.基於Seata實現分佈式事務 2.1 Seata簡介 Seata(原名Fescar) 是阿里18年開源的分佈式事務的框架。Fescar的開源對分佈式事務框架領域影響很大。作爲開源大戶,Fescar來自阿里的GTS,經歷了好幾次

原创 04oauth2.0入門

4.Oauth2.0入門 4.1準備工作 搭建認證服務器之前,先在用戶系統表結構中增加如下表結構: CREATE TABLE `oauth_client_details` ( `client_id` varchar(48) NOT

原创 03購物車渲染

3.購物車渲染 如上圖所示,用戶每次將商品加入購物車,或者點擊購物車列表的時候,先經過訂單購物車後端渲染服務,再通過feign調用購物車訂單微服務來實現購物車的操作,例如:加入購物車、購物車列表。 3.1購物車渲染服務搭建 在c

原创 02防止惡意刷單

2.防止惡意刷單 在生產場景下,很有可能會存在某些用戶惡意刷單的情況出現。這樣的操作對於系統而言,會導致業務出錯、髒數據、後端訪問壓力大等問題的出現。 一般要解決這個問題的話,需要前端進行控制,同時後端也需要進行控制。後端實現可以

原创 1.超時未支付訂單處理

1.超時未支付訂單處理 1.1 需求分析 超過限定時間並未支付的訂單,我們需要進行超時訂單的處理:先調用微信支付api,查詢該訂單的支付狀態。如果未支付調用關閉訂單的api,並修改訂單狀態爲已關閉,並回滾庫存數。如果該訂單已經支付

原创 02訂單批量發貨

2.訂單批量發貨 2.1 批量發貨業務邏輯 2.1.1 需求分析 實現批量發貨的業務邏輯 2.1.2 代碼實現 (1)OrderController新增方法 @PostMapping("/batchSend") publ

原创 01用戶認證分析

1.用戶認證分析 上面流程圖描述了用戶要操作的各個微服務,用戶查看個人信息需要訪問客戶微服務,下單需要訪問訂單微服務,秒殺搶購商品需要訪問秒殺微服務。每個服務都需要認證用戶的身份,身份認證成功後,需要識別用戶的角色然後授權訪問對