feat: findOrder数量返回异常修复
This commit is contained in:
parent
1a5b2695d4
commit
293b1acd9e
|
|
@ -308,12 +308,20 @@ public class OrderService {
|
|||
cartQuery.eq(TbCashierCart::getId, cartId);
|
||||
}
|
||||
|
||||
TbCashierCart cart = mpCashierCartMapper.selectOne(cartQuery);
|
||||
|
||||
// 校验是否是代客下单往期订单
|
||||
if (shopEatTypeInfoDTO.isDineInAfter() && cart != null && cart.getPlaceNum() != null && !isSeatCart) {
|
||||
return Result.fail("后付费已下单订单仅支持退款");
|
||||
if (StringUtils.isEmpty(masterId)) {
|
||||
boolean flag = redisUtil.exists("SHOP:CODE:" + clientType + ":" + shopId);
|
||||
if (flag) {
|
||||
String code = redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId);
|
||||
Integer foodCode = Integer.parseInt(code) + 1;
|
||||
code = "#" + String.format("%03d", foodCode);
|
||||
redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId, foodCode.toString());
|
||||
masterId = code;
|
||||
} else {
|
||||
redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId, "1");
|
||||
masterId = "#" + String.format("%03d", 1);
|
||||
}
|
||||
}
|
||||
|
||||
TbProduct product = null;
|
||||
TbProductSkuWithBLOBs skuWithBLOBs = null;
|
||||
if (!isSeatCart && productId != null) {
|
||||
|
|
@ -336,19 +344,37 @@ public class OrderService {
|
|||
return Result.fail(CodeEnum.PRODUCTSKUERROR);
|
||||
}
|
||||
|
||||
// 首次加入购物车,并且拥有起售数,设置为起售数
|
||||
if (cart == null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number.compareTo(BigDecimal.valueOf(skuWithBLOBs.getSuit())) < 0) {
|
||||
number = BigDecimal.valueOf(skuWithBLOBs.getSuit());
|
||||
// 低于起售,删除商品
|
||||
} else if (cart != null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number.compareTo(BigDecimal.valueOf(skuWithBLOBs.getSuit())) < 0) {
|
||||
|
||||
// 校验库存
|
||||
if ("1".equals(product.getIsStock().toString())) {
|
||||
// todo 数量为浮点数,库存目前整数, 待同一
|
||||
if (product.getStockNumber() - number.intValue() < 0) {
|
||||
return Result.fail(CodeEnum.STOCKERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean needNew = false;
|
||||
List<TbCashierCart> list = cashierCartMapper.selectALlByMasterId(masterId, "create");
|
||||
TbCashierCart cashierCart = null;
|
||||
if (type.equals("edit") ) {
|
||||
cashierCart = getCashierInfo(shopId, skuId, productId, tableId, masterId, shopEatTypeInfoDTO, cartId);
|
||||
if (cashierCart == null) {
|
||||
needNew = true;
|
||||
}else {
|
||||
// 校验是否是代客下单往期订单
|
||||
if (shopEatTypeInfoDTO.isDineInAfter() && cashierCart.getPlaceNum() != null && !isSeatCart) {
|
||||
return Result.fail("后付费已下单订单仅支持退款");
|
||||
}
|
||||
|
||||
if (skuWithBLOBs != null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number.compareTo(BigDecimal.valueOf(skuWithBLOBs.getSuit())) < 0) {
|
||||
delCart(masterId, cartId);
|
||||
if (cart.getOrderId() != null && StrUtil.isNotBlank(cart.getTableId())) {
|
||||
if (cashierCart.getOrderId() != null && StrUtil.isNotBlank(cashierCart.getTableId())) {
|
||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||
.notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending")
|
||||
.eq(TbCashierCart::getShopId, cart.getShopId());
|
||||
.eq(TbCashierCart::getShopId, cashierCart.getShopId());
|
||||
|
||||
TbCashierCart finalCart = cart;
|
||||
queryWrapper.eq(TbCashierCart::getTableId, cart.getTableId())
|
||||
TbCashierCart finalCart = cashierCart;
|
||||
queryWrapper.eq(TbCashierCart::getTableId, cashierCart.getTableId())
|
||||
.and(q -> q.or(
|
||||
query -> query.eq(TbCashierCart::getMasterId, finalCart.getMasterId())
|
||||
.or()
|
||||
|
|
@ -360,45 +386,17 @@ public class OrderService {
|
|||
.or()
|
||||
.isNull(TbCashierCart::getOrderId)));
|
||||
|
||||
List<TbCashierCart> list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create"));
|
||||
List<TbCashierCart> list1 = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create"));
|
||||
|
||||
if (list.isEmpty()) {
|
||||
tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cart.getOrderId()));
|
||||
if (list1.isEmpty()) {
|
||||
tbOrderInfoMapper.deleteByPrimaryKey(cashierCart.getOrderId());
|
||||
}
|
||||
}
|
||||
|
||||
setRedisTableCartInfo(tableId, shopId, Collections.singletonList(cart), false);
|
||||
setRedisTableCartInfo(tableId, shopId, Collections.singletonList(cashierCart), false);
|
||||
return Result.success(CodeEnum.SUCCESS, masterId);
|
||||
}
|
||||
|
||||
// 校验库存
|
||||
if ("1".equals(product.getIsStock().toString())) {
|
||||
// todo 数量为浮点数,库存目前整数, 待同一
|
||||
if (product.getStockNumber() - number.intValue() < 0) {
|
||||
return Result.fail(CodeEnum.STOCKERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(masterId)) {
|
||||
boolean flag = redisUtil.exists("SHOP:CODE:" + clientType + ":" + shopId);
|
||||
if (flag) {
|
||||
String code = redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId);
|
||||
Integer foodCode = Integer.parseInt(code) + 1;
|
||||
code = "#" + String.format("%03d", foodCode);
|
||||
redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId, foodCode.toString());
|
||||
masterId = code;
|
||||
} else {
|
||||
redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId, "1");
|
||||
masterId = "#" + String.format("%03d", 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
List<TbCashierCart> list = cashierCartMapper.selectALlByMasterId(masterId, "create");
|
||||
|
||||
TbCashierCart cashierCart = getCashierInfo(shopId, skuId, productId, tableId, masterId, shopEatTypeInfoDTO, cartId);
|
||||
if (type.equals("edit") && cashierCart!= null) {
|
||||
cashierCart.setNumber(number);
|
||||
if (product != null) {
|
||||
resetGroupProductCart(groupProductIdList, product, cashierCart);
|
||||
|
|
@ -410,13 +408,16 @@ public class OrderService {
|
|||
cashierCart.setUuid(uuid);
|
||||
cashierCart.setIsPrint(isPrint);
|
||||
cashierCart.resetTotalAmount();
|
||||
cart = cashierCart;
|
||||
if (product != null) {
|
||||
resetGroupProductCart(groupProductIdList, product, cashierCart);
|
||||
}
|
||||
|
||||
mpCashierCartMapper.updateById(cashierCart);
|
||||
}else {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (type.equals("add") || needNew){
|
||||
cashierCart = new TbCashierCart();
|
||||
cashierCart.setUseType(shopEatTypeInfoDTO.getUseType());
|
||||
if (product != null) {
|
||||
|
|
@ -461,11 +462,13 @@ public class OrderService {
|
|||
cashierCart.setPackFee(number.multiply(product == null ? BigDecimal.ZERO : product.getPackFee()));
|
||||
}
|
||||
cashierCart.setTotalAmount(cashierCart.getTotalAmount().add(cashierCart.getPackFee()));
|
||||
|
||||
}
|
||||
if (skuWithBLOBs != null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number.compareTo(BigDecimal.valueOf(skuWithBLOBs.getSuit())) < 0) {
|
||||
number = BigDecimal.valueOf(skuWithBLOBs.getSuit());
|
||||
}
|
||||
cashierCart.setTotalNumber(number);
|
||||
cashierCart.setUserId(Integer.valueOf(userId));
|
||||
cashierCart.setNumber(number);
|
||||
cashierCart.setUserId(Integer.valueOf(userId));
|
||||
cashierCart.setUuid(uuid);
|
||||
cashierCart.setTableId(tableId);
|
||||
cashierCart.setPlatformType(OrderPlatformTypeEnum.CASH.getValue());
|
||||
|
|
|
|||
Loading…
Reference in New Issue