feat: findOrder数量返回异常修复
This commit is contained in:
parent
1a5b2695d4
commit
293b1acd9e
|
|
@ -308,12 +308,20 @@ public class OrderService {
|
||||||
cartQuery.eq(TbCashierCart::getId, cartId);
|
cartQuery.eq(TbCashierCart::getId, cartId);
|
||||||
}
|
}
|
||||||
|
|
||||||
TbCashierCart cart = mpCashierCartMapper.selectOne(cartQuery);
|
if (StringUtils.isEmpty(masterId)) {
|
||||||
|
boolean flag = redisUtil.exists("SHOP:CODE:" + clientType + ":" + shopId);
|
||||||
// 校验是否是代客下单往期订单
|
if (flag) {
|
||||||
if (shopEatTypeInfoDTO.isDineInAfter() && cart != null && cart.getPlaceNum() != null && !isSeatCart) {
|
String code = redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId);
|
||||||
return Result.fail("后付费已下单订单仅支持退款");
|
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;
|
TbProduct product = null;
|
||||||
TbProductSkuWithBLOBs skuWithBLOBs = null;
|
TbProductSkuWithBLOBs skuWithBLOBs = null;
|
||||||
if (!isSeatCart && productId != null) {
|
if (!isSeatCart && productId != null) {
|
||||||
|
|
@ -336,40 +344,6 @@ public class OrderService {
|
||||||
return Result.fail(CodeEnum.PRODUCTSKUERROR);
|
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) {
|
|
||||||
delCart(masterId, cartId);
|
|
||||||
if (cart.getOrderId() != null && StrUtil.isNotBlank(cart.getTableId())) {
|
|
||||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
|
||||||
.notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending")
|
|
||||||
.eq(TbCashierCart::getShopId, cart.getShopId());
|
|
||||||
|
|
||||||
TbCashierCart finalCart = cart;
|
|
||||||
queryWrapper.eq(TbCashierCart::getTableId, cart.getTableId())
|
|
||||||
.and(q -> q.or(
|
|
||||||
query -> query.eq(TbCashierCart::getMasterId, finalCart.getMasterId())
|
|
||||||
.or()
|
|
||||||
.isNull(TbCashierCart::getMasterId)
|
|
||||||
.or()
|
|
||||||
.eq(TbCashierCart::getMasterId, "")
|
|
||||||
)
|
|
||||||
.or(query -> query.eq(TbCashierCart::getOrderId, finalCart.getOrderId())
|
|
||||||
.or()
|
|
||||||
.isNull(TbCashierCart::getOrderId)));
|
|
||||||
|
|
||||||
List<TbCashierCart> list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create"));
|
|
||||||
|
|
||||||
if (list.isEmpty()) {
|
|
||||||
tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cart.getOrderId()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setRedisTableCartInfo(tableId, shopId, Collections.singletonList(cart), false);
|
|
||||||
return Result.success(CodeEnum.SUCCESS, masterId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 校验库存
|
// 校验库存
|
||||||
if ("1".equals(product.getIsStock().toString())) {
|
if ("1".equals(product.getIsStock().toString())) {
|
||||||
|
|
@ -379,44 +353,71 @@ public class OrderService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
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 (StringUtils.isEmpty(masterId)) {
|
if (skuWithBLOBs != null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number.compareTo(BigDecimal.valueOf(skuWithBLOBs.getSuit())) < 0) {
|
||||||
boolean flag = redisUtil.exists("SHOP:CODE:" + clientType + ":" + shopId);
|
delCart(masterId, cartId);
|
||||||
if (flag) {
|
if (cashierCart.getOrderId() != null && StrUtil.isNotBlank(cashierCart.getTableId())) {
|
||||||
String code = redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId);
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
Integer foodCode = Integer.parseInt(code) + 1;
|
.notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending")
|
||||||
code = "#" + String.format("%03d", foodCode);
|
.eq(TbCashierCart::getShopId, cashierCart.getShopId());
|
||||||
redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId, foodCode.toString());
|
|
||||||
masterId = code;
|
TbCashierCart finalCart = cashierCart;
|
||||||
} else {
|
queryWrapper.eq(TbCashierCart::getTableId, cashierCart.getTableId())
|
||||||
redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId, "1");
|
.and(q -> q.or(
|
||||||
masterId = "#" + String.format("%03d", 1);
|
query -> query.eq(TbCashierCart::getMasterId, finalCart.getMasterId())
|
||||||
|
.or()
|
||||||
|
.isNull(TbCashierCart::getMasterId)
|
||||||
|
.or()
|
||||||
|
.eq(TbCashierCart::getMasterId, "")
|
||||||
|
)
|
||||||
|
.or(query -> query.eq(TbCashierCart::getOrderId, finalCart.getOrderId())
|
||||||
|
.or()
|
||||||
|
.isNull(TbCashierCart::getOrderId)));
|
||||||
|
|
||||||
|
List<TbCashierCart> list1 = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create"));
|
||||||
|
|
||||||
|
if (list1.isEmpty()) {
|
||||||
|
tbOrderInfoMapper.deleteByPrimaryKey(cashierCart.getOrderId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setRedisTableCartInfo(tableId, shopId, Collections.singletonList(cashierCart), false);
|
||||||
|
return Result.success(CodeEnum.SUCCESS, masterId);
|
||||||
|
}
|
||||||
|
|
||||||
|
cashierCart.setNumber(number);
|
||||||
|
if (product != null) {
|
||||||
|
resetGroupProductCart(groupProductIdList, product, cashierCart);
|
||||||
|
}
|
||||||
|
cashierCart.setTotalNumber(number);
|
||||||
|
cashierCart.setIsPrint(isPrint);
|
||||||
|
cashierCart.setIsPack(isPack);
|
||||||
|
cashierCart.resetTotalAmount();
|
||||||
|
cashierCart.setUuid(uuid);
|
||||||
|
cashierCart.setIsPrint(isPrint);
|
||||||
|
cashierCart.resetTotalAmount();
|
||||||
|
if (product != null) {
|
||||||
|
resetGroupProductCart(groupProductIdList, product, cashierCart);
|
||||||
|
}
|
||||||
|
|
||||||
|
mpCashierCartMapper.updateById(cashierCart);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type.equals("add") || needNew){
|
||||||
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);
|
|
||||||
}
|
|
||||||
cashierCart.setTotalNumber(number);
|
|
||||||
cashierCart.setIsPrint(isPrint);
|
|
||||||
cashierCart.setIsPack(isPack);
|
|
||||||
cashierCart.resetTotalAmount();
|
|
||||||
cashierCart.setUuid(uuid);
|
|
||||||
cashierCart.setIsPrint(isPrint);
|
|
||||||
cashierCart.resetTotalAmount();
|
|
||||||
cart = cashierCart;
|
|
||||||
if (product != null) {
|
|
||||||
resetGroupProductCart(groupProductIdList, product, cashierCart);
|
|
||||||
}
|
|
||||||
|
|
||||||
mpCashierCartMapper.updateById(cashierCart);
|
|
||||||
}else {
|
|
||||||
cashierCart = new TbCashierCart();
|
cashierCart = new TbCashierCart();
|
||||||
cashierCart.setUseType(shopEatTypeInfoDTO.getUseType());
|
cashierCart.setUseType(shopEatTypeInfoDTO.getUseType());
|
||||||
if (product != null) {
|
if (product != null) {
|
||||||
|
|
@ -461,11 +462,13 @@ public class OrderService {
|
||||||
cashierCart.setPackFee(number.multiply(product == null ? BigDecimal.ZERO : product.getPackFee()));
|
cashierCart.setPackFee(number.multiply(product == null ? BigDecimal.ZERO : product.getPackFee()));
|
||||||
}
|
}
|
||||||
cashierCart.setTotalAmount(cashierCart.getTotalAmount().add(cashierCart.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.setTotalNumber(number);
|
||||||
cashierCart.setUserId(Integer.valueOf(userId));
|
|
||||||
cashierCart.setNumber(number);
|
cashierCart.setNumber(number);
|
||||||
|
cashierCart.setUserId(Integer.valueOf(userId));
|
||||||
cashierCart.setUuid(uuid);
|
cashierCart.setUuid(uuid);
|
||||||
cashierCart.setTableId(tableId);
|
cashierCart.setTableId(tableId);
|
||||||
cashierCart.setPlatformType(OrderPlatformTypeEnum.CASH.getValue());
|
cashierCart.setPlatformType(OrderPlatformTypeEnum.CASH.getValue());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue