Merge remote-tracking branch 'origin/dev' into hph

This commit is contained in:
韩鹏辉 2024-07-05 14:31:18 +08:00
commit 33a9b969d0
7 changed files with 59 additions and 23 deletions

12
.gitignore vendored
View File

@ -1 +1,11 @@
/target/
### IDEA ###
/target/**/*
/log/*
.idea/*
*.iml
*/target/*
*/*.iml
/.gradle/
/application.pid
/target/*
**.jar

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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 {

View File

@ -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);
}
}
}

View File

@ -20,11 +20,11 @@ logging:
file:
# 切记该文件表示正在产出日志的日志文件。并不会打包当文件大于max-file-size,会根据file-name-pattern格式打包
# 名称为log/cashier-client.log文件夹会在项目根目录下打包后会在启动包同目录下名称为/log/cashier-client.log的文件夹会在项目所在磁盘的跟目录下
name: log/cashier-client.log
name: cashier-client.log
logback:
rollingpolicy:
# 单文件的大小默认10M, 超过之后打包成一个日志文件
max-file-size: 1MB
max-file-size: 10MB
# 日志保存的天数
max-history: 30
# 打包文件格式,默认: ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz,书写格式为:文件路径/文件名.%i.文件后缀,其中%i不可省去否则无日志显示
@ -32,6 +32,7 @@ logging:
# 如果是压缩包里面会多一个名log/ota.2021-11-05.0的日志文件
# 如下面的例子,打包之后为: log/2021-11/cashier-client.2020-11-5.0.log这是一个日志文件
file-name-pattern: log/%d{yyyy-MM}/cashier-client.%d{yyyy-MM-dd}.%i.log
# file-name-pattern: log/%d{yyyy-MM}/cashier-client.%d{yyyy-MM-dd}.%i.log.gz
gateway: