Merge branch 'refs/heads/stock-share' into dev

This commit is contained in:
GYJ
2024-06-26 09:18:57 +08:00
6 changed files with 126 additions and 68 deletions

View File

@@ -36,4 +36,5 @@ public interface TbProductMapper {
Integer countOrderByshopIdAndProductId(@Param("shopId") String shopId, @Param("productId") String productId, @Param("masterId") String masterId,@Param("day") String day);
}
void updateStockById(@Param("productId")Integer productId, @Param("num")Integer num);
}

View File

@@ -126,6 +126,8 @@ public class TbProduct implements Serializable {
private String specTableHeaders;
private Integer stockNumber;
@Transient
private int orderCount;
@@ -642,4 +644,12 @@ public class TbProduct implements Serializable {
public void setOrderCount(int orderCount) {
this.orderCount = orderCount;
}
}
public Integer getStockNumber() {
return stockNumber;
}
public void setStockNumber(Integer stockNumber) {
this.stockNumber = stockNumber;
}
}

View File

@@ -49,5 +49,7 @@ public class TbProductSku implements Serializable {
private Long updatedAt;
private Integer isPauseSale = 0;
private static final long serialVersionUID = 1L;
}
}

View File

@@ -45,6 +45,8 @@ public class DutyService {
@Autowired
private TbProductSkuMapper productSkuMapper;
@Autowired
private TbProductMapper productMapper;
@Autowired
private CloudPrinterService cloudPrinterService;
@Autowired
private RedisUtils redisUtil;
@@ -372,12 +374,25 @@ public class DutyService {
}
private void subInventory(Integer shopId, Integer skuId, Integer num) {
String result = redisUtil.seckill(RedisCst.PRODUCT + shopId.toString() + ":" + skuId.toString(), num.toString());
TbProductSku tbProductSku = productSkuMapper.selectByPrimaryKey(skuId);
if (num > tbProductSku.getStockNumber()) {
productSkuMapper.updateStockNum(skuId,num);
} else {
productSkuMapper.updateByskuIdSub(skuId, num);
TbProductWithBLOBs product = productMapper.selectByPrimaryKey(Integer.valueOf(tbProductSku.getProductId()));
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);
}
}
}
}
}
}

View File

@@ -89,6 +89,9 @@ public class PayService {
@Autowired
private TbProductSkuMapper productSkuMapper;
@Autowired
private TbProductMapper productMapper;
@Autowired
private RedisUtils redisUtil;
@@ -920,9 +923,17 @@ public class PayService {
detail = tbOrderDetailMapper.selectByPrimaryKey(detail.getId());
TbProductSku productSku = productSkuMapper.selectByPrimaryKey(detail.getProductSkuId());
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);
TbProductWithBLOBs product = productMapper.selectByPrimaryKey(detail.getProductId());
if (ObjectUtil.isNotEmpty(product)) {
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);
} 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);
}
}
}
}