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

修正订单超卖

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