Commit 8bc10a90 authored by wlx@33.cn's avatar wlx@33.cn

修正订单超卖

parent 30c464e3
......@@ -91,6 +91,5 @@ public interface GoodSkuMapper extends BaseMapper<GoodSku> {
List<SkuVo> listAvailableSku(@Param("goodsId") String goodsId);
int delStock(@Param("skuId") String skuId,
@Param("num") Integer num,
@Param("updateTime")Long updateTime);
@Param("num") Integer num);
}
......@@ -72,9 +72,6 @@ public class SkuVo {
@ApiModelProperty(value = "盲盒商品的规格是否为隐藏款")
private Boolean isHide;
@ApiModelProperty(value = "更新时间")
private Long updateTime;
@ApiModelProperty(value = "盲盒商品价格")
private BigDecimal blindBoxprice;
}
......@@ -19,7 +19,7 @@ public interface IGoodSkuService extends IService<GoodSku> {
SkuVo getSkuVoBySkuId(String skuId);
int delStock(String skuId,Integer num, Long updateTime);
int delStock(String skuId,Integer num);
void addStock(String skuId, Integer number);
......
......@@ -61,8 +61,8 @@ public class GoodSkuServiceImpl extends ServiceImpl<GoodSkuMapper, GoodSku> impl
}
@Override
public int delStock(String skuId, Integer num, Long updateTime) {
return skuMapper.delStock(skuId,num,updateTime);
public int delStock(String skuId, Integer num) {
return skuMapper.delStock(skuId,num);
}
@Override
......
......@@ -37,13 +37,20 @@ public class IOrderBindBoxServiceImpl implements IOrderBindBoxService {
throw new RuntimeException("库存不足!!!");
}
//加时间锁
int i = goodSkuMapper.delStock(result.getSkuId(), GoodMainConst.BLIND_BOX_ORDER_SKU_NUM, result.getUpdateTime());
if (i == 0) {
int i = goodSkuMapper.delStock(result.getSkuId(), GoodMainConst.BLIND_BOX_ORDER_SKU_NUM);
if (i != 1) {
/**
* 锁定库存失效,重置结果
*/
skuList.remove(result);
result = null;
}else{
break;
}
}
if (result == null) {
throw new RuntimeException("库存不足!!!");
}
return result;
}
......
......@@ -328,7 +328,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
//商品数量错误
throw new RuntimeException("商品数量错误");
}
int i = goodSkuService.delStock(skuVo.getSkuId(), orderSkuVo.getNum(), skuVo.getUpdateTime());
int i = goodSkuService.delStock(skuVo.getSkuId(), orderSkuVo.getNum());
if (i != 1) {
throw new RuntimeException("库存不足!!!");
}
......@@ -1264,7 +1264,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
public String createPreSaleOrder(String uid, PreSaleOrderVo preSaleOrderVo) {
SkuVo skuVo = goodSkuService.getSkuVoBySkuId(preSaleOrderVo.getSkuId());
PreSale preSale = preSaleService.getByGoodsId(skuVo.getGoodsId());
int i = goodSkuService.delStock(preSaleOrderVo.getSkuId(), preSaleOrderVo.getNumber(), skuVo.getUpdateTime());
int i = goodSkuService.delStock(preSaleOrderVo.getSkuId(), preSaleOrderVo.getNumber());
if (i != 1) {
throw new RuntimeException("库存不足!!!");
}
......
......@@ -16,6 +16,6 @@
</select>
<update id="delStock">
update goods_sku set stock =stock - #{num} where sku_id = #{skuId} and stock >= #{num} and update_time = #{updateTime}
update goods_sku set stock =stock - #{num} where sku_id = #{skuId} and stock >= #{num}
</update>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment