電商秒殺專案 秒殺模組

2021-09-21 17:42:26 字數 2470 閱讀 3277

itemmodel中新增乙個

private promomodel promomodel;
並建立get set方法。

修改getitembyid方法

@override

public itemmodel getitembyid(integer id)

itemmodel itemmodel = convertitemmodelfromitemdo(itemdo,itemstockdo);

//獲取活動商品資訊

promomodel promomodel = promoservice.getpromomodelbyitemid(itemmodel.getid());

if (promomodel != null && promomodel.getstatus().intvalue() !=3)

return itemmodel;

}

private itemmodel convertitemmodelfromitemdo(itemdo itemdo,itemstockdo itemstockdo)

itemmodel itemmodel = new itemmodel();

beanutils.copyproperties(itemdo,itemmodel);

itemmodel.setprice(bigdecimal.valueof(itemdo.getprice()));

itemmodel.setstock(itemstockdo.getstock());

return itemmodel;

}

@override

public promomodel getpromomodelbyitemid(integer itemid)

//判斷秒殺活動開始或者結束

date now = new date();

if (promomodel.getstartdate().compareto(now)>0) else if (promomodel.getenddate().compareto(now)<=0) else

return promomodel;

}

private promomodel convertmodelfromdo(promodo promodo)

promomodel promomodel = new promomodel();

beanutils.copyproperties(promodo,promomodel);

promomodel.setpromoitemprice(new bigdecimal(promodo.getpromoitemprice()));

return promomodel;

}

@override

@transactional

public ordermodel createorder(integer userid,integer promoid, integer itemid, integer amount) throws busines***ception

if (itemmodel.getstock()99)

//校驗活動資訊

if (promoid != null)else if (itemmodel.getpromomodel().getstatus() != 2)

}//落單減庫存(下單就鎖庫存),支付減庫存(支付才去減庫存)這裡使用落單減庫存

boolean result = itemservice.decreasestock(itemid,amount);

if (!result)

//訂單入庫

ordermodel ordermodel = new ordermodel();

ordermodel.setuserid(userid);

ordermodel.setitemid(itemid);

ordermodel.setamount(amount);

ordermodel.setpromoid(promoid);

if (promoid !=null)else

ordermodel.setorderprice(ordermodel.getitemprice().multiply(

new bigdecimal(amount)

));//生成交易流水號

ordermodel.setid(generateoderno());

orderinfodo orderinfodo = convertdofrommodel(ordermodel);

//加上商品銷量

itemservice.increasesales(itemid,amount);

//返回前端

return null;

}

電商秒殺專案 交易模組

首先建立交易模型,然後根據模型建立表,生成實體。然後建立service,寫建立訂單的方法。建立訂單 1校驗下單狀態 商品存在?使用者合法?購買數量正確?override public itemmodel getitembyid integer id itemmodel itemmodel conve...

電商秒殺優化

增加並行數量,就是增大對資料庫的訪問。而這三種優化快取效果排序 頁面快取 url快取 物件快取 jss,js這些內容的優化 首先在goodscontroller中找到商品列表goodlist,資料通過model來傳到good list.html頁面中去 那麼如何取出我們的頁面快取呢?通過下面這句 s...

電商秒殺系統設計

秒殺場景一般會在電商 舉行一些活動或者節假日在12306 上搶票時遇到。對於電商 中一些稀缺或者 商品,電商 一般會在約定時間點對其進行限量銷售,因為這些商品的特殊性,會吸引大量使用者前來搶購,並且會在約定的時間點同時在秒殺頁面進行搶購。限流 鑑於只有少部分使用者能夠秒殺成功,所以要限制大部分流量,...