trade:增加优惠劵使用、商品库存的扣减

This commit is contained in:
YunaiV
2022-11-10 00:32:35 +08:00
parent 16f5d0f5a4
commit 84f6ec10bc
8 changed files with 88 additions and 57 deletions

View File

@@ -60,7 +60,7 @@ public interface ProductSkuConvert {
if (spuId == null) {
return;
}
Integer stock = spuIdAndStockMap.getOrDefault(spuId, 0) + item.getIncCount();
Integer stock = spuIdAndStockMap.getOrDefault(spuId, 0) + item.getIncrCount();
spuIdAndStockMap.put(spuId, stock);
});
return spuIdAndStockMap;

View File

@@ -203,10 +203,10 @@ public class ProductSkuServiceImpl implements ProductSkuService {
public void updateSkuStock(ProductSkuUpdateStockReqDTO updateStockReqDTO) {
// 更新 SKU 库存
updateStockReqDTO.getItems().forEach(item -> {
if (item.getIncCount() > 0) {
productSkuMapper.updateStockIncr(item.getId(), item.getIncCount());
} else if (item.getIncCount() < 0) {
int updateStockIncr = productSkuMapper.updateStockDecr(item.getId(), item.getIncCount());
if (item.getIncrCount() > 0) {
productSkuMapper.updateStockIncr(item.getId(), item.getIncrCount());
} else if (item.getIncrCount() < 0) {
int updateStockIncr = productSkuMapper.updateStockDecr(item.getId(), item.getIncrCount());
if (updateStockIncr == 0) {
throw exception(SKU_STOCK_NOT_ENOUGH);
}

View File

@@ -46,7 +46,7 @@ public class ProductSkuServiceTest extends BaseDbUnitTest {
public void testUpdateSkuStock_incrSuccess() {
// 准备参数
ProductSkuUpdateStockReqDTO updateStockReqDTO = new ProductSkuUpdateStockReqDTO()
.setItems(singletonList(new ProductSkuUpdateStockReqDTO.Item().setId(1L).setIncCount(10)));
.setItems(singletonList(new ProductSkuUpdateStockReqDTO.Item().setId(1L).setIncrCount(10)));
// mock 数据
productSkuMapper.insert(randomPojo(ProductSkuDO.class, o -> o.setId(1L).setSpuId(10L).setStock(20)));
@@ -66,7 +66,7 @@ public class ProductSkuServiceTest extends BaseDbUnitTest {
public void testUpdateSkuStock_decrSuccess() {
// 准备参数
ProductSkuUpdateStockReqDTO updateStockReqDTO = new ProductSkuUpdateStockReqDTO()
.setItems(singletonList(new ProductSkuUpdateStockReqDTO.Item().setId(1L).setIncCount(-10)));
.setItems(singletonList(new ProductSkuUpdateStockReqDTO.Item().setId(1L).setIncrCount(-10)));
// mock 数据
productSkuMapper.insert(randomPojo(ProductSkuDO.class, o -> o.setId(1L).setSpuId(10L).setStock(20)));
@@ -86,7 +86,7 @@ public class ProductSkuServiceTest extends BaseDbUnitTest {
public void testUpdateSkuStock_decrFail() {
// 准备参数
ProductSkuUpdateStockReqDTO updateStockReqDTO = new ProductSkuUpdateStockReqDTO()
.setItems(singletonList(new ProductSkuUpdateStockReqDTO.Item().setId(1L).setIncCount(-30)));
.setItems(singletonList(new ProductSkuUpdateStockReqDTO.Item().setId(1L).setIncrCount(-30)));
// mock 数据
productSkuMapper.insert(randomPojo(ProductSkuDO.class, o -> o.setId(1L).setSpuId(10L).setStock(20)));