创建订单修复

This commit is contained in:
2024-09-25 17:17:27 +08:00
parent b5b2858a10
commit 06fc651646
2 changed files with 50 additions and 37 deletions

View File

@@ -694,48 +694,55 @@ public class CartService {
continue;
}
}
TbProductSkuWithBLOBs tbProduct = productSkuMapper.selectByPrimaryKey(Integer.valueOf(cart.getSkuId()));
TbProduct tbProduct1 = tbProductMapper.selectById(Integer.valueOf(tbProduct.getProductId()));
// 判断商品是否已下架
if (tbProduct.getIsGrounding().equals(0)) {
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", "商品已下架:" + tbProduct1.getName());
jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), tableCartKey, jsonObject.getString("userId"), true);
continue;
}
log.info("下单,开始校验库存预警,购物车id:{}", cart.getId());
CompletableFuture.runAsync(() -> checkWarnLineAndSendMsg(tbProduct, tbProduct1, cart.getNumber()));
log.info("开始修改库存商品id{},商品名:{}", tbProduct1.getId(), tbProduct1.getName());
// 修改库存
try {
// 首次下单扣除库存
if (StrUtil.isBlank(cart.getOrderId())) {
if (tbProduct1.getIsStock() == 1) {
productService.updateStock(tbProduct.getProductId(), tbProduct.getId(), cart.getNumber(), tbProduct1.getIsDistribute() == 1);
} else {
productService.updateStockAndNoCheck(tbProduct.getProductId(), tbProduct.getId(), cart.getNumber(), tbProduct1.getIsDistribute() == 1);
}
TbProductSkuWithBLOBs tbProduct;
if (!"-999".equals(cart.getProductId())) {
tbProduct = productSkuMapper.selectByPrimaryKey(Integer.valueOf(cart.getSkuId()));
TbProduct tbProduct1 = tbProductMapper.selectById(Integer.valueOf(tbProduct.getProductId()));
// 判断商品是否已下架
if (tbProduct.getIsGrounding().equals(0)) {
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", "商品已下架:" + tbProduct1.getName());
jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), tableCartKey, jsonObject.getString("userId"), true);
continue;
}
} catch (Exception e) {
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", tbProduct1.getName() + "库存不足");
jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), tableCartKey, jsonObject.getString("userId"), true);
continue;
log.info("下单,开始校验库存预警,购物车id:{}", cart.getId());
CompletableFuture.runAsync(() -> checkWarnLineAndSendMsg(tbProduct, tbProduct1, cart.getNumber()));
log.info("开始修改库存商品id{},商品名:{}", tbProduct1.getId(), tbProduct1.getName());
// 修改库存
try {
// 首次下单扣除库存
if (StrUtil.isBlank(cart.getOrderId())) {
if (tbProduct1.getIsStock() == 1) {
productService.updateStock(tbProduct.getProductId(), tbProduct.getId(), cart.getNumber(), tbProduct1.getIsDistribute() == 1);
} else {
productService.updateStockAndNoCheck(tbProduct.getProductId(), tbProduct.getId(), cart.getNumber(), tbProduct1.getIsDistribute() == 1);
}
}
} catch (Exception e) {
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", tbProduct1.getName() + "库存不足");
jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), tableCartKey, jsonObject.getString("userId"), true);
continue;
}
saleAmount = saleAmount.add(tbProduct.getSalePrice());
}else {
tbProduct = null;
saleAmount = saleAmount.add(shopEatTypeInfoDTO.getShopInfo().getTableFee());
}
totalAmount = totalAmount.add(cart.getTotalAmount());
packAMount = packAMount.add(cart.getPackFee());
originAmount = originAmount.add(cart.getTotalAmount());
saleAmount = saleAmount.add(tbProduct.getSalePrice());
TbOrderDetail orderDetail = oldOrderDetailMap.get(cart.getOrderId() + cart.getId());
if (orderDetail == null) {
@@ -751,7 +758,7 @@ public class CartService {
}
orderDetail.setProductId(Integer.valueOf(cart.getProductId()));
orderDetail.setProductSkuId(Integer.valueOf(cart.getSkuId()));
orderDetail.setProductSkuName(tbProduct.getSpecSnap());
orderDetail.setProductSkuName(tbProduct == null ? null : tbProduct.getSpecSnap());
orderDetail.setProductName(cart.getName());
orderDetail.setShopId(jsonObject.getInteger("shopId"));
orderDetail.setPackAmount(cart.getPackFee());
@@ -915,7 +922,11 @@ public class CartService {
for (TbOrderDetail orderDetail : orderDetails) {
orderDetail.setOrderId(orderId);
orderDetailMapper.insert(orderDetail);
if (orderDetail.getId() != null) {
mpOrderDetailMapper.updateById(orderDetail);
}else {
mpOrderDetailMapper.insert(orderDetail);
}
}
List<TbActivateOutRecord> outRecords = new ArrayList<>();
for (int i = 0; i < array.size(); i++) {

View File

@@ -889,6 +889,8 @@ public class ProductService {
.eq(TbCashierCart::getShopId, choseCountDTO.getShopId())
.eq(TbCashierCart::getProductId, "-999")
.eq(TbCashierCart::getSkuId, "-999")
.eq(TbCashierCart::getStatus, "create")
.and(r -> r.eq(TbCashierCart::getUserId, choseCountDTO.getUserId()).or().isNull(TbCashierCart::getUserId))
.eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType())
.eq(TbCashierCart::getTableId, choseCountDTO.getTableId());
TbCashierCart tbCashierCart = mpCashierCartMapper.selectOne(query);