库存校验 商品级库存
This commit is contained in:
parent
3b77cfb33d
commit
676daf9a8c
|
|
@ -382,19 +382,7 @@ public class DutyService {
|
|||
|
||||
|
||||
if (ObjectUtil.isNotEmpty(product)) {
|
||||
if (product.getIsDistribute() == 1) {
|
||||
redisUtil.seckill(RedisCst.PRODUCT + shopId.toString() + ":product" + product.getId().toString(), num.toString());
|
||||
productMapper.updateStockById(skuId, num);
|
||||
} else {
|
||||
redisUtil.seckill(RedisCst.PRODUCT + shopId.toString() + ":" + skuId.toString(), num.toString());
|
||||
if (ObjectUtil.isNotEmpty(tbProductSku)) {
|
||||
if (num > tbProductSku.getStockNumber()) {
|
||||
// productSkuMapper.updateStockNum(skuId,num);
|
||||
} else {
|
||||
// productSkuMapper.updateByskuIdSub(skuId, num);
|
||||
}
|
||||
}
|
||||
}
|
||||
productMapper.updateStockById(skuId, num);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -261,14 +261,8 @@ public class OrderService {
|
|||
|
||||
// 校验库存
|
||||
if ("1".equals(product.getIsStock().toString())) {
|
||||
if ("1".equals(product.getIsDistribute().toString())) {
|
||||
if (product.getStockNumber() - number < 0) {
|
||||
return Result.fail(CodeEnum.STOCKERROR);
|
||||
}
|
||||
} else if (product.getId().intValue() == Integer.valueOf(skuWithBLOBs.getProductId()).intValue()) {
|
||||
if (skuWithBLOBs.getStockNumber() - number < 0) {
|
||||
return Result.fail(CodeEnum.STOCKERROR);
|
||||
}
|
||||
if (product.getStockNumber() - number < 0) {
|
||||
return Result.fail(CodeEnum.STOCKERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -468,10 +462,7 @@ public class OrderService {
|
|||
if (product.getStockNumber() == null) {
|
||||
product.setStockNumber(0);
|
||||
}
|
||||
if (
|
||||
(product.getIsDistribute() == 1 && product.getStockNumber() - num <= product.getWarnLine())
|
||||
|| (product.getIsDistribute() != 1) && productSku.getStockNumber() - num <= product.getWarnLine()
|
||||
) {
|
||||
if ( product.getStockNumber() - num <= product.getWarnLine()) {
|
||||
List<TbShopOpenId> shopOpenIds = shopOpenIdMapper.selectStateByShopIdAndType(product.getShopId(), ShopWxMsgTypeEnum.STOCK_MSG.getType());
|
||||
shopOpenIds.forEach(item -> {
|
||||
wxAccountUtil.sendStockWarnMsg("商品库存不足", product.getName(),
|
||||
|
|
|
|||
|
|
@ -1435,22 +1435,10 @@ public class PayService {
|
|||
tbProductStockDetail.setUnitName(shopUnit.getName());
|
||||
tbProductStockDetail.setProductId(product.getId().toString());
|
||||
|
||||
if (product.getIsDistribute() == 1) {
|
||||
// redisUtil.seckill(RedisCst.PRODUCT + shopId.toString() + ":product" + product.getId().toString(), String.valueOf(detail.getReturnNum() + product.getStockNumber().intValue()));
|
||||
productMapper.updateStockById(product.getId(), detail.getReturnNum() * -1);
|
||||
productMapper.updateStockById(product.getId(), detail.getReturnNum() * -1);
|
||||
|
||||
tbProductStockDetail.setLeftNumber(product.getStockNumber());
|
||||
tbProductStockDetail.setStockNumber(Double.valueOf(detail.getReturnNum()));
|
||||
} else {
|
||||
if (ObjectUtil.isNotEmpty(productSku)) {
|
||||
// redisUtil.seckill(RedisCst.PRODUCT + shopId.toString() + ":" + productSku.getId().toString(), String.valueOf(detail.getReturnNum() + productSku.getStockNumber().intValue()));
|
||||
productSkuMapper.updateByskuIdSub(productSku.getId(), detail.getReturnNum() * -1);
|
||||
|
||||
tbProductStockDetail.setSkuId(productSku.getId().toString());
|
||||
tbProductStockDetail.setLeftNumber(productSku.getStockNumber().intValue());
|
||||
tbProductStockDetail.setStockNumber(Double.valueOf(detail.getReturnNum()));
|
||||
}
|
||||
}
|
||||
tbProductStockDetail.setLeftNumber(product.getStockNumber());
|
||||
tbProductStockDetail.setStockNumber(Double.valueOf(detail.getReturnNum()));
|
||||
productSkuMapper.decrRealSalesNumber(productSku.getId(), detail.getReturnNum());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -138,14 +138,6 @@ public class ProductService {
|
|||
it.setProductSkuResult(skuResult);
|
||||
// 查询sku信息
|
||||
List<TbProductSku> skuWithBLOBs = tbProductSkuMapper.selectByProductCheckGrounding(it.getId());
|
||||
List<TbProductSku> skus = tbProductSkuMapper.selectByProductId(it.getId());
|
||||
if (it.getIsDistribute() == 0) {
|
||||
int num = 0;
|
||||
for (TbProductSku item : skus) {
|
||||
num += item.getStockNumber();
|
||||
}
|
||||
it.setStockNumber(num);
|
||||
}
|
||||
it.setSkuList(skuWithBLOBs);
|
||||
|
||||
it.setGroundingSpecInfo(querySpec(Integer.valueOf(shopId), it.getId()));
|
||||
|
|
@ -156,33 +148,19 @@ public class ProductService {
|
|||
}
|
||||
|
||||
public void incrStock(String productId, String skuId, int addNum) {
|
||||
TbProductWithBLOBs product = tbProductMapper.selectByPrimaryKey(Integer.valueOf(productId));
|
||||
if (true ||product.getIsDistribute() == 1) {
|
||||
tbProductMapper.incrStock(productId, addNum);
|
||||
}else {
|
||||
tbProductSkuMapper.incrStock(skuId, addNum);
|
||||
}
|
||||
tbProductMapper.incrStock(productId, addNum);
|
||||
}
|
||||
|
||||
public void decrStock(String productId, String skuId, int decrNum) {
|
||||
TbProductWithBLOBs product = tbProductMapper.selectByPrimaryKey(Integer.valueOf(productId));
|
||||
if (true || product.getIsDistribute() == 1) {
|
||||
if (product.getIsStock() == 1) {
|
||||
if (tbProductMapper.decrStock(productId, decrNum) < 1) {
|
||||
throw new MsgException("库存不足,下单失败");
|
||||
}
|
||||
}else {
|
||||
tbProductMapper.decrStockUnCheck(productId, decrNum);
|
||||
}
|
||||
}else {
|
||||
if (product.getIsStock() == 1) {
|
||||
if (tbProductSkuMapper.decrStock(String.valueOf(skuId), decrNum) < 1) {
|
||||
throw new MsgException("库存不足,下单失败");
|
||||
}
|
||||
}else {
|
||||
tbProductSkuMapper.decrStockUnCheck(String.valueOf(skuId), decrNum);
|
||||
if (product.getIsStock() == 1) {
|
||||
if (tbProductMapper.decrStock(productId, decrNum) < 1) {
|
||||
throw new MsgException("库存不足,下单失败");
|
||||
}
|
||||
} else {
|
||||
tbProductMapper.decrStockUnCheck(productId, decrNum);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateState(ProductStatusDTO productStatusDTO) {
|
||||
|
|
@ -196,37 +174,33 @@ public class ProductService {
|
|||
}
|
||||
}
|
||||
|
||||
public void updateStock(ProductStockDTO productStockDTO,String loginName) {
|
||||
public void updateStock(ProductStockDTO productStockDTO, String loginName) {
|
||||
TbProduct product = tbProductMapper.selectByShopIdAndId(productStockDTO.getProductId(), productStockDTO.getShopId());
|
||||
if (product == null) {
|
||||
throw new MsgException("商品不存在");
|
||||
}
|
||||
|
||||
if (product.getIsDistribute() != 1 && product.getTypeEnum().equals("sku")) {
|
||||
throw new MsgException("多规格非共享商品暂不支持修改库存");
|
||||
} else {
|
||||
tbProductMapper.updateStock(productStockDTO.getShopId(), productStockDTO.getProductId(), productStockDTO.getStock());
|
||||
tbProductSkuMapper.updateStock(productStockDTO.getShopId(), productStockDTO.getProductId(), productStockDTO.getStock());
|
||||
|
||||
List<TbProductSku> tbProductSkus = tbProductSkuMapper.selectByProductId(product.getId());
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("shopId", productStockDTO.getShopId());
|
||||
data.put("skuId", tbProductSkus.isEmpty() ? null : tbProductSkus.get(0).getId());
|
||||
data.put("productId", productStockDTO.getProductId());
|
||||
tbProductMapper.updateStock(productStockDTO.getShopId(), productStockDTO.getProductId(), productStockDTO.getStock());
|
||||
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("shopId", productStockDTO.getShopId());
|
||||
data.put("skuId", null);
|
||||
data.put("productId", productStockDTO.getProductId());
|
||||
// data.put("type", "pc收银机修改库存");
|
||||
data.put("subType", product.getStockNumber() > productStockDTO.getStock() ? -1 : 1);
|
||||
data.put("number", productStockDTO.getStock() - product.getStockNumber());
|
||||
data.put("operator", loginName);
|
||||
data.put("remark", "pc收银机修改库存");
|
||||
if (product.getStockNumber() > productStockDTO.getStock()) {
|
||||
data.put("type", "盘点出库");
|
||||
}else {
|
||||
data.put("type", "盘点入库");
|
||||
}
|
||||
producer.sendStockRecordMsg(data);
|
||||
data.put("subType", product.getStockNumber() > productStockDTO.getStock() ? -1 : 1);
|
||||
data.put("number", productStockDTO.getStock() - product.getStockNumber());
|
||||
data.put("operator", loginName);
|
||||
data.put("remark", "pc收银机修改库存");
|
||||
if (product.getStockNumber() > productStockDTO.getStock()) {
|
||||
data.put("type", "盘点出库");
|
||||
} else {
|
||||
data.put("type", "盘点入库");
|
||||
}
|
||||
producer.sendStockRecordMsg(data);
|
||||
}
|
||||
|
||||
|
||||
private static void generateCombinations(List<List<String>> valuesList, int index, List<String> current, List<String> result) {
|
||||
if (index == valuesList.size()) {
|
||||
result.add(String.join(",", current));
|
||||
|
|
|
|||
Loading…
Reference in New Issue