记得上下班打卡 | git大法好,push需谨慎

Commit a34dbb3a authored by 张国柄's avatar 张国柄

~API:商品管理:库存变更逻辑处理;

parent afeacee9
...@@ -301,8 +301,8 @@ public class GoblinStoreMgtGoodsController { ...@@ -301,8 +301,8 @@ public class GoblinStoreMgtGoodsController {
Integer stock = mgtGoodsSkuInfoVo.getSkuStock();// 总库存 Integer stock = mgtGoodsSkuInfoVo.getSkuStock();// 总库存
Integer skuStock = mgtGoodsSkuInfoVo.getSkuStock();// SKU总库存 Integer skuStock = mgtGoodsSkuInfoVo.getSkuStock();// SKU总库存
int rtSkuStock = goblinRedisUtils.getSkuStock(null, paramSkuId);// 当前剩余库存 int surplusStock = goblinRedisUtils.getSkuStock(null, paramSkuId);// 当前剩余库存
if (operStock < 0 && rtSkuStock >= operStockVal) {// SKU实时库存充足时允许扣减 if (operStock < 0 && surplusStock > 0 && surplusStock >= operStockVal) {// SKU实时库存充足时允许扣减
if (goblinRedisUtils.decrSkuStock(null, paramSkuId, operStockVal) < 0) {// 过程中库存不足时,回滚库存,编辑无效 if (goblinRedisUtils.decrSkuStock(null, paramSkuId, operStockVal) < 0) {// 过程中库存不足时,回滚库存,编辑无效
goblinRedisUtils.incrSkuStock(null, paramSkuId, operStockVal); goblinRedisUtils.incrSkuStock(null, paramSkuId, operStockVal);
return ResponseDto.failure(ErrorMapping.get("149012")); return ResponseDto.failure(ErrorMapping.get("149012"));
...@@ -314,6 +314,8 @@ public class GoblinStoreMgtGoodsController { ...@@ -314,6 +314,8 @@ public class GoblinStoreMgtGoodsController {
goblinRedisUtils.incrSkuStock(null, paramSkuId, operStockVal); goblinRedisUtils.incrSkuStock(null, paramSkuId, operStockVal);
storeMgtGoodsEditSkuParam.setSkuStock(skuStock + operStockVal); storeMgtGoodsEditSkuParam.setSkuStock(skuStock + operStockVal);
storeMgtGoodsEditSkuParam.setStock(stock + operStockVal); storeMgtGoodsEditSkuParam.setStock(stock + operStockVal);
} else {
return ResponseDto.failure(ErrorMapping.get("149012"));
} }
} }
...@@ -397,7 +399,9 @@ public class GoblinStoreMgtGoodsController { ...@@ -397,7 +399,9 @@ public class GoblinStoreMgtGoodsController {
} }
} }
if (goblinstoreMgtGoodsService.goodsEditSku(currentUid, storeMgtGoodsEditSkuParam, goodsInfoVo, delSpuSpecMap, beUpdateSpuSpecFlg)) { if (goblinstoreMgtGoodsService.goodsEditSku(currentUid, storeMgtGoodsEditSkuParam, goodsInfoVo, delSpuSpecMap, beUpdateSpuSpecFlg)) {
return ResponseDto.success(goblinRedisUtils.getMgtGoodsSkuInfoVo(paramSkuId)); mgtGoodsSkuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(paramSkuId);
mgtGoodsSkuInfoVo.setSurplusStock(goblinRedisUtils.getSkuStock(null, paramSkuId));
return ResponseDto.success(mgtGoodsSkuInfoVo);
} else { } else {
if (null != operStock && operStock != 0) {// 处理库存:回滚 if (null != operStock && operStock != 0) {// 处理库存:回滚
int operStockVal = Math.abs(operStock); int operStockVal = Math.abs(operStock);
......
...@@ -441,6 +441,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -441,6 +441,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
GoblinGoodsSkuInfoVo updateSkuInfoVo = storeMgtGoodsEditSkuParam.initEditGoodsSkuInfoVo(); GoblinGoodsSkuInfoVo updateSkuInfoVo = storeMgtGoodsEditSkuParam.initEditGoodsSkuInfoVo();
updateSkuInfoVo.setUpdatedBy(uid); updateSkuInfoVo.setUpdatedBy(uid);
updateSkuInfoVo.setUpdatedAt(now); updateSkuInfoVo.setUpdatedAt(now);
String skuId = updateSkuInfoVo.getSkuId();
if (goblinMongoUtils.updateGoodsSkuInfoVo(updateSkuInfoVo)) { if (goblinMongoUtils.updateGoodsSkuInfoVo(updateSkuInfoVo)) {
LinkedList<Object[]> updateGoodsSkuForMarketObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateGoodsSkuForMarketObjs = CollectionUtil.linkedListObjectArr();
// 参与活动的同一商品更新处理 // 参与活动的同一商品更新处理
...@@ -458,17 +459,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -458,17 +459,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
}); });
} }
String skuId = updateSkuInfoVo.getSkuId();
String spuId = goodsInfoVo.getSpuId(); String spuId = goodsInfoVo.getSpuId();
Integer operStock = storeMgtGoodsEditSkuParam.getOperStock();
if (null != operStock && operStock != 0) {
if (operStock > 0) {
goblinRedisUtils.incrSkuStock(null, skuId, Math.abs(operStock));
} else {
goblinRedisUtils.decrSkuStock(null, skuId, Math.abs(operStock));
}
}
goblinRedisUtils.delGoodsSkuInfoVo(skuId); goblinRedisUtils.delGoodsSkuInfoVo(skuId);
LinkedList<Object[]> updateSkuSpecValueObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateSkuSpecValueObjs = CollectionUtil.linkedListObjectArr();
...@@ -565,6 +556,14 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -565,6 +556,14 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
updateSkuSpecValueObjs, initSpuSpecValueObjs, delSpuSpecValueObjs, updateSpuSpecValueObjs, updateGoodsObjs)); updateSkuSpecValueObjs, initSpuSpecValueObjs, delSpuSpecValueObjs, updateSpuSpecValueObjs, updateGoodsObjs));
return true; return true;
} }
Integer operStock = storeMgtGoodsEditSkuParam.getOperStock();
if (null != operStock && operStock != 0) {
if (operStock > 0) {
goblinRedisUtils.decrSkuStock(null, skuId, Math.abs(operStock));
} else {
goblinRedisUtils.incrSkuStock(null, skuId, Math.abs(operStock));
}
}
return false; return false;
} }
......
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