退单接口修改 购物车查询逻辑修改

This commit is contained in:
2024-10-16 14:13:11 +08:00
parent 8931ce98fa
commit 74a4514c3c
7 changed files with 82 additions and 19 deletions

View File

@@ -235,7 +235,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(criteria.getShopId(), date.getQrcode());
orderInfo = getCurrentOrder(shopEatTypeInfoDTO);
}catch (Exception e) {
} catch (Exception e) {
log.info(e.getMessage());
}
}
@@ -614,6 +614,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
throw new BadRequestException("购物车商品不存在或已退单");
}
if (removeCartDTO.getNum() > cashierCart.getNumber()) {
throw new BadRequestException("最大退菜数量为: {}", cashierCart.getNumber());
}
TbOrderDetail tbOrderDetail = orderDetailMapper.selectOne(new LambdaQueryWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getShopId, removeCartDTO.getShopId())
.eq(TbOrderDetail::getCartId, cashierCart.getId())
@@ -646,17 +650,41 @@ public class TbShopTableServiceImpl implements TbShopTableService {
}
} else {
cashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>()
.eq(TbCashierCart::getId, cashierCart.getId())
.set(TbCashierCart::getStatus, "return"));
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getId, tbOrderDetail.getId())
.set(TbOrderDetail::getUpdateTime, DateUtil.date())
.set(TbOrderDetail::getStatus, "return"));
if (cashierCart.getNumber().equals(removeCartDTO.getNum())) {
cashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>()
.eq(TbCashierCart::getId, cashierCart.getId())
.set(TbCashierCart::getStatus, "return"));
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getId, tbOrderDetail.getId())
.set(TbOrderDetail::getUpdateTime, DateUtil.date())
.set(TbOrderDetail::getStatus, "return"));
}else {
//生成退菜的购物车记录
TbCashierCart returnCart = BeanUtil.copyProperties(cashierCart, TbCashierCart.class);
returnCart.setNumber(removeCartDTO.getNum());
returnCart.setId(null);
returnCart.setTotalNumber(removeCartDTO.getNum());
returnCart.setTotalAmount(returnCart.getSalePrice().multiply(BigDecimal.valueOf(returnCart.getNumber())));
returnCart.setStatus("return");
cashierCartMapper.insert(returnCart);
TbOrderDetail returnOrderDetail = BeanUtil.copyProperties(tbOrderDetail, TbOrderDetail.class);
returnOrderDetail.setId(null);
returnOrderDetail.setNum(returnCart.getNumber());
returnOrderDetail.setCartId(returnCart.getId());
returnOrderDetail.setPrice(returnCart.getSalePrice());
returnOrderDetail.setPriceAmount(returnCart.getTotalAmount());
returnOrderDetail.setStatus("return");
returnOrderDetail.setRefundNumber(returnCart.getRefundNumber());
returnOrderDetail.setRefundRemark(removeCartDTO.getNote());
orderDetailMapper.insert(returnOrderDetail);
cashierCartMapper.updateNumAmountStatus(cashierCart.getId(), cashierCart.getStatus(), -returnCart.getNumber());
orderDetailMapper.updateNumAmountStatus(orderDetail.getId(), orderDetail.getStatus(), -returnCart.getNumber());
}
rabbitMsgUtils.printDishesTicket(tbOrderDetail.getOrderId(), true, tbOrderDetail);
}
if (cashierCart.getOrderId() != null) {
@@ -718,10 +746,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
.and(q -> q.eq(TbCashierCart::getMasterId, masterId).or().isNull(TbCashierCart::getMasterId));
if (!shopEatTypeInfoDTO.isTakeout()) {
queryWrapper.eq(TbCashierCart::getTableId, tableId);
} else {
queryWrapper.and(q -> q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, ""))
queryWrapper.eq(TbCashierCart::getTableId, tableId)
.in(TbCashierCart::getPlatformType, OrderPlatformTypeEnum.PC.getValue(), OrderPlatformTypeEnum.CASH.getValue());
} else {
queryWrapper.and(q -> q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, ""));
}
com.baomidou.mybatisplus.extension.plugins.pagination.Page<TbCashierCart> cartPage = cashierCartMapper
@@ -1311,7 +1339,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
// 清空台桌信息
if (shopEatTypeInfoDTO.isDineInBefore()) {
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getShopId, createOrderDTO.getShopId())
.eq(TbShopTable::getShopId, createOrderDTO.getShopId())
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
.set(TbShopTable::getProductNum, 0)
.set(TbShopTable::getTotalAmount, 0)
@@ -1319,7 +1347,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
.set(TbShopTable::getUseNum, 0)
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
// 设置台桌信息
}else {
} else {
LambdaUpdateWrapper<TbShopTable> wrapper = new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getShopId, createOrderDTO.getShopId())
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
@@ -1649,7 +1677,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
}
@Override
public Object updateVip(UpdateVipDTO updateVipDTO) {
public Object updateVip(UpdateVipDTO updateVipDTO) {
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(updateVipDTO.getShopId(), updateVipDTO.getTableId());
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
.in(TbCashierCart::getStatus, "create", "return")
@@ -1671,7 +1699,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, updateVipDTO.getVipUserId()));
}else {
} else {
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, null));
@@ -2078,7 +2106,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
} else if ("deposit".equals(payType)) {
orderInfoService.depositReturn(Integer.valueOf(orderInfo.getUserId()), Integer.valueOf(orderInfo.getShopId()), returnOrderInfo.getRefundAmount());
orderInfo.setStatus("refund");
}else if ("cash".equals(payType)) {
} else if ("cash".equals(payType)) {
orderInfo.setStatus("refund");
}
orderInfoMapper.updateById(orderInfo);