**服務在之前的基礎上,進行業務的增加。同時在商品的model中新增乙個**字段promomodel
若發現這個商品有**欄位則在**中新增//根據商品id ,使用者id,商品的數量,**活動id
orderservice.
createorder
(usermodel.
getid()
,itemid,promoid,amount)
;return commonreturntype.
create
(null);}
建立訂單介面//1、通過前端url上傳過來秒殺活動id,然後下單介面內校驗對應id是否屬於對應商品活動已經開始(腿甲)
//2、直接在下單介面判斷對應的商品是否存在秒殺活動,若存在進行中的足額
ordermodel createorder
(integer userid,integer itemid,integer promoid,integer amount)
throws busines***ception;
@override
@transactional
(propagation =propagation.requires_new )
//生成新的事務
public ordermodel createorder
(integer userid, integer itemid,integer promoid, integer amount)
throws busines***ception
//校驗使用者
usermodel usermodel = userservice.
getuserbyid
(userid);if
(usermodel==null)
//庫存
int stock = itemmodel.
getstock()
;if(amount<=
0||amount>
99||stock
//校驗活動資訊
if(promoid!=null)
else}}
//2、落單減庫存(或者支付減庫存)
boolean flag = itemservice.
decreasestock
(itemid,amount);if
(flag==
false
)//3、訂單入庫
ordermodel ordermodel =
newordermodel()
;//主鍵的設計(訂單號)
ordermodel.
setid
(generatororderno()
);ordermodel.
setamout
(amount)
; ordermodel.
setitemid
(itemid)
; ordermodel.
setuserid
(userid);if
(promoid!=null)
else
ordermodel.
setpromoid
(promoid)
; ordermodel.
setorderprice
(ordermodel.
getitemprice()
.multiply
(new
bigdecimal
(amount)))
; orderdo orderdo =
convertfromordermodltoorderdo
(ordermodel)
;insertselective
(orderdo)
;//商品銷量
itemservice.
increasesales
(itemid,amount)
;//4、返回前端
return ordermodel;
}
05秒殺系統業務之三 訂單服務
字段 定義id 使用者id name 使用者名稱gender 性別0為女,1為男 age年齡 register mode 註冊方式 third party id 第三方字段 定義id 密碼表的id encrpt password 密碼加密儲存 在後端用加密之後進行儲存 user id 使用者id 字...
1,秒殺系統的設計
一 秒殺系統的特點 1,人多商品少,2,時間短流量高。3,外掛程式機器,專業人員 二 技術分析 1,瞬時高併發的處理能力。2,多層次分布式處理能力 3,人機互動與對抗,4,選擇 linux nginx php mysql redis 開源,免費,大眾普及 2 2技術選型分析 cdn,智慧型dns 就...
讀書筆記9秒殺系統設計
秒殺系統的技術挑戰 對現有 業務造成衝擊 高併發下應用和資料庫的負載 突然增加的網路及伺服器頻寬 直接下單 未到秒殺時間直接下單 應對策略 將秒殺系統於現有業務進行獨立部署 秒殺商品頁面靜態話 簡單 租借秒殺活動頻寬 動態生成隨機下單url 秒殺商品頁面要盡量簡單 要處理問題 頁面秒殺提交按鈕點亮問...