diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 148b0a64..4ec2167d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -2157,6 +2157,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } @Override + @Transactional public Object updateVip(UpdateVipDTO updateVipDTO) { Integer orderId = updateVipDTO.getOrderId(); if (orderId == null) { @@ -2182,28 +2183,40 @@ public class TbShopTableServiceImpl implements TbShopTableService { } } + TbOrderInfo orderInfo = mpOrderInfoService.getById(orderId); + if(!TableConstant.OrderInfo.Status.UNPAID.equalsVals(orderInfo.getStatus())) { + throw new BadRequestException("订单状态异常"); + } + CreateOrderDTO dto = new CreateOrderDTO(); + dto.setTableId(orderInfo.getTableId()); + dto.setOrderId(orderInfo.getId()); + dto.setShopId(Integer.valueOf(orderInfo.getShopId())); + dto.setMasterId(orderInfo.getMasterId()); + dto.setUseType(orderInfo.getUseType()); + if (updateVipDTO.getType() == 0) { - TbOrderInfo orderInfo = mpOrderInfoService.getById(orderId); - if(!TableConstant.OrderInfo.Status.UNPAID.equalsVals(orderInfo.getStatus())) { - throw new BadRequestException("订单状态异常"); - } + TbShopUser shopUser = tbShopUserMapper.selectById(updateVipDTO.getVipUserId()); if (shopUser == null) { throw new BadRequestException("用户信息不存在"); } - return orderInfoMapper.update(null, new LambdaUpdateWrapper() + orderInfoMapper.update(null, new LambdaUpdateWrapper() .eq(TbOrderInfo::getId, orderId) .set(TbOrderInfo::getUserId, shopUser.getUserId()) .set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId())); + } else { mpCashierCartService.updateMemberAndAmountByOrderId(orderId, false); - return orderInfoMapper.update(null, new LambdaUpdateWrapper() + orderInfoMapper.update(null, new LambdaUpdateWrapper() .eq(TbOrderInfo::getId, orderId) .set(TbOrderInfo::getUserId, null) .set(TbOrderInfo::getMemberId, null)); } + + return createOrder(dto, true, true); + }