提交 630da10d authored 作者: 吴德鹏's avatar 吴德鹏

修改购物车bug

上级 7ca78401
...@@ -64,7 +64,12 @@ public class CartController extends Controller { ...@@ -64,7 +64,12 @@ public class CartController extends Controller {
TbCfCartRecordR record = byId.get(); TbCfCartRecordR record = byId.get();
//校验库存 //校验库存
String itemSkuId = record.getItemSkuId(); String itemSkuId = record.getItemSkuId();
lock.lock(); //把锁去了,因为购物车加减数量太慢,这里把暂时不考虑并发情况,在下单时校验库存即可
//当然加锁也可以,多个用户同一时刻抢最后几个sku时可以及时提醒用户库存不足
//个人感觉这样可以不加锁,1.暂时用户体量很难出现多个用户同时抢购的情况
// 2.加锁影响用户体验 3.加购可以不用强一致性(当然下单必须保证库存不超卖)
//后面的兄弟可以根据业务进行权衡 ~~~哈哈哈~~~
// lock.lock();
Optional<TbCfItemSkus> byId1 = skuRepository.findById(itemSkuId); Optional<TbCfItemSkus> byId1 = skuRepository.findById(itemSkuId);
Integer count = itemNum; Integer count = itemNum;
if (byId1.isPresent()) { if (byId1.isPresent()) {
...@@ -79,11 +84,11 @@ public class CartController extends Controller { ...@@ -79,11 +84,11 @@ public class CartController extends Controller {
if (itemCount != 0) if (itemCount != 0)
count = itemCount; count = itemCount;
result.setData(itemCount); result.setData(itemCount);
result.setMessage("Out of stock"); result.setMessage("Only " + itemCount + " item(s) in stocks");
result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()); result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode());
} }
} }
lock.unlock(); // lock.unlock();
record.setItemNum(count); record.setItemNum(count);
repository.save(record); repository.save(record);
return result; return result;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论