|
@@ -26,7 +26,7 @@ public interface ProductSkuMapper extends BaseMapperX<ProductSkuDO> {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 更新 SKU 库存(增加)
|
|
|
+ * 更新 SKU 库存(增加)、销量(减少)
|
|
|
*
|
|
|
* @param id 编号
|
|
|
* @param incrCount 增加库存(正数)
|
|
@@ -34,13 +34,14 @@ public interface ProductSkuMapper extends BaseMapperX<ProductSkuDO> {
|
|
|
default void updateStockIncr(Long id, Integer incrCount) {
|
|
|
Assert.isTrue(incrCount > 0);
|
|
|
LambdaUpdateWrapper<ProductSkuDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<ProductSkuDO>()
|
|
|
- .setSql(" stock = stock + " + incrCount)
|
|
|
+ .setSql(" stock = stock + " + incrCount
|
|
|
+ + ", sales_count = sales_count - " + incrCount)
|
|
|
.eq(ProductSkuDO::getId, id);
|
|
|
update(null, lambdaUpdateWrapper);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 更新 SKU 库存(减少)
|
|
|
+ * 更新 SKU 库存(减少)、销量(增加)
|
|
|
*
|
|
|
* @param id 编号
|
|
|
* @param incrCount 减少库存(负数)
|
|
@@ -48,10 +49,12 @@ public interface ProductSkuMapper extends BaseMapperX<ProductSkuDO> {
|
|
|
*/
|
|
|
default int updateStockDecr(Long id, Integer incrCount) {
|
|
|
Assert.isTrue(incrCount < 0);
|
|
|
+ incrCount = - incrCount; // 取正
|
|
|
LambdaUpdateWrapper<ProductSkuDO> updateWrapper = new LambdaUpdateWrapper<ProductSkuDO>()
|
|
|
- .setSql(" stock = stock + " + incrCount) // 负数,所以使用 + 号
|
|
|
+ .setSql(" stock = stock - " + incrCount
|
|
|
+ + ", sales_count = sales_count + " + incrCount)
|
|
|
.eq(ProductSkuDO::getId, id)
|
|
|
- .ge(ProductSkuDO::getStock, -incrCount); // cas 逻辑
|
|
|
+ .ge(ProductSkuDO::getStock, incrCount);
|
|
|
return update(null, updateWrapper);
|
|
|
}
|
|
|
|