Merge remote-tracking branch 'origin/dev' into hph
This commit is contained in:
@@ -46,6 +46,9 @@ public interface TbProductMapper {
|
||||
@Update("update tb_product set stock_number=stock_number+#{num} WHERE id=#{id}")
|
||||
int incrStock(String id, int num);
|
||||
|
||||
@Update("update tb_product set stock_number=stock_number-#{num} WHERE id=#{id} and stock_number-#{num} > 0")
|
||||
@Update("update tb_product set stock_number=stock_number-#{num} WHERE id=#{id} and stock_number-#{num} >= 0")
|
||||
int decrStock(String id, int num);
|
||||
|
||||
@Update("update tb_product set stock_number=stock_number-#{num} WHERE id=#{id}")
|
||||
int decrStockUnCheck(String id, int num);
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ public interface TbProductSkuMapper {
|
||||
@Update("update tb_product_sku set stock_number=stock_number+#{num} WHERE id=#{id}")
|
||||
int incrStock(String skuId, int addNum);
|
||||
|
||||
@Update("update tb_product set stock_number=stock_number-#{num} WHERE id=#{id} and stock_number-#{num} > 0")
|
||||
@Update("update tb_product_sku set stock_number=stock_number-#{num} WHERE id=#{id} and stock_number-#{num} >= 0")
|
||||
int decrStock(String id, int num);
|
||||
|
||||
@Update("update tb_product_sku set stock_number=stock_number-#{num} WHERE id=#{id} ")
|
||||
int decrStockUnCheck(String id, int num);
|
||||
}
|
||||
|
||||
@@ -113,14 +113,17 @@ public class OrderService {
|
||||
return Result.fail(CodeEnum.PRODUCTSKUERROR);
|
||||
}
|
||||
|
||||
String message = redisUtil.getMessage(RedisCst.ORDER_PRODUCT_NUM + cartId);
|
||||
|
||||
if("1".equals(product.getIsStock().toString())){
|
||||
if ("1".equals(product.getIsDistribute().toString())) {
|
||||
if(product.getStockNumber()-number<0){
|
||||
if((message == null && product.getStockNumber()-number<0) ||
|
||||
(product.getStockNumber()-number<0 && message != null && Integer.parseInt(message) < number)){
|
||||
return Result.fail(CodeEnum.STOCKERROR);
|
||||
}
|
||||
} else if (product.getId().intValue()==Integer.valueOf(skuWithBLOBs.getProductId()).intValue()){
|
||||
if(skuWithBLOBs.getStockNumber()-number<0){
|
||||
if((message == null && skuWithBLOBs.getStockNumber()-number<0) ||
|
||||
(skuWithBLOBs.getStockNumber()-number<0 && message != null && Integer.parseInt(message) < number)){
|
||||
return Result.fail(CodeEnum.STOCKERROR);
|
||||
}
|
||||
}
|
||||
@@ -223,7 +226,8 @@ public class OrderService {
|
||||
}
|
||||
|
||||
|
||||
skuWithBLOBs.setStockNumber(skuWithBLOBs.getStockNumber()-number);
|
||||
|
||||
// skuWithBLOBs.setStockNumber(skuWithBLOBs.getStockNumber()-number);
|
||||
skuWithBLOBs.setUpdatedAt(System.currentTimeMillis());
|
||||
tbProductSkuMapper.updateByPrimaryKey(skuWithBLOBs);
|
||||
|
||||
@@ -338,15 +342,15 @@ public class OrderService {
|
||||
if(ObjectUtil.isEmpty(product)){
|
||||
return Result.fail(CodeEnum.PRODUCTINFOERROR);
|
||||
}
|
||||
if("1".equals(product.getIsStock().toString())){
|
||||
TbProductSkuWithBLOBs skuWithBLOBs= tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getSkuId()));
|
||||
if(ObjectUtil.isEmpty(skuWithBLOBs)){
|
||||
return Result.fail(CodeEnum.PRODUCTSKUERROR);
|
||||
}
|
||||
skuWithBLOBs.setStockNumber(skuWithBLOBs.getStockNumber()+cashierCart.getTotalNumber());
|
||||
skuWithBLOBs.setUpdatedAt(System.currentTimeMillis());
|
||||
tbProductSkuMapper.updateByPrimaryKey(skuWithBLOBs);
|
||||
}
|
||||
// if("1".equals(product.getIsStock().toString())){
|
||||
// TbProductSkuWithBLOBs skuWithBLOBs= tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getSkuId()));
|
||||
// if(ObjectUtil.isEmpty(skuWithBLOBs)){
|
||||
// return Result.fail(CodeEnum.PRODUCTSKUERROR);
|
||||
// }
|
||||
// skuWithBLOBs.setStockNumber(skuWithBLOBs.getStockNumber()+cashierCart.getTotalNumber());
|
||||
// skuWithBLOBs.setUpdatedAt(System.currentTimeMillis());
|
||||
// tbProductSkuMapper.updateByPrimaryKey(skuWithBLOBs);
|
||||
// }
|
||||
|
||||
List<String> skuIds=new ArrayList<>();
|
||||
skuIds.add(cashierCart.getSkuId());
|
||||
@@ -789,6 +793,12 @@ public class OrderService {
|
||||
List<ProductSkuPo> productSkuPos=new ArrayList<>();
|
||||
List<String> skuIds=new ArrayList<>();
|
||||
for (TbCashierCart cashierCart : list) {
|
||||
// 数量减少, 返还库存
|
||||
String message = redisUtil.getMessage(RedisCst.ORDER_PRODUCT_NUM + cashierCart.getId());
|
||||
|
||||
if (message != null) {
|
||||
productService.incrStock(cashierCart.getProductId(), cashierCart.getSkuId(), Integer.parseInt(message));
|
||||
}
|
||||
if (StringUtils.isNotEmpty(cashierCart.getOrderId())) {
|
||||
orderId = Integer.valueOf(cashierCart.getOrderId());
|
||||
|
||||
@@ -817,6 +827,8 @@ public class OrderService {
|
||||
tbProductSkuMapper.batchStockNum(productSkuPos);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
@@ -956,13 +956,12 @@ public class PayService {
|
||||
tbProductStockDetail.setIsStock(product.getIsStock());
|
||||
tbProductStockDetail.setStockSnap(product.getSelectSpec());
|
||||
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);
|
||||
|
||||
tbProductStockDetail.setProductId(product.getId().toString());
|
||||
tbProductStockDetail.setUnitName(product.getUnitId());
|
||||
tbProductStockDetail.setLeftNumber(product.getStockNumber());
|
||||
tbProductStockDetail.setStockNumber(Double.valueOf(detail.getReturnNum()));
|
||||
} else {
|
||||
|
||||
@@ -136,12 +136,20 @@ public class ProductService {
|
||||
public void decrStock(String productId, String skuId, int decrNum) {
|
||||
TbProductWithBLOBs product = tbProductMapper.selectByPrimaryKey(Integer.valueOf(productId));
|
||||
if (product.getIsDistribute() == 1) {
|
||||
if (tbProductMapper.decrStock(productId, decrNum) < 1) {
|
||||
throw new MsgException("库存不足,下单失败");
|
||||
if (product.getIsStock() == 1) {
|
||||
if (tbProductMapper.decrStock(productId, decrNum) < 1) {
|
||||
throw new MsgException("库存不足,下单失败");
|
||||
}
|
||||
}else {
|
||||
tbProductMapper.decrStockUnCheck(productId, decrNum);
|
||||
}
|
||||
}else {
|
||||
if (tbProductSkuMapper.decrStock(String.valueOf(skuId), decrNum) < 1) {
|
||||
throw new MsgException("库存不足,下单失败");
|
||||
if (product.getIsStock() == 1) {
|
||||
if (tbProductSkuMapper.decrStock(String.valueOf(skuId), decrNum) < 1) {
|
||||
throw new MsgException("库存不足,下单失败");
|
||||
}
|
||||
}else {
|
||||
tbProductSkuMapper.decrStockUnCheck(String.valueOf(skuId), decrNum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user