From 2e5e7f2158dd8ffee8c3f84fe5f1277588500e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Thu, 21 Nov 2024 14:17:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=87=E6=8D=A2=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/service/MpOrderDetailService.java | 15 ++++++++ .../impl/MpOrderDetailServiceImpl.java | 16 +++++++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 35 +++++++++++-------- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpOrderDetailService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpOrderDetailService.java index b59cf340..c1d059a3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpOrderDetailService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpOrderDetailService.java @@ -7,6 +7,7 @@ import cn.ysk.cashier.pojo.order.TbFullOrderDetail; import cn.ysk.cashier.pojo.order.TbOrderDetail; import com.baomidou.mybatisplus.extension.service.IService; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -63,5 +64,19 @@ public interface MpOrderDetailService extends IService { * @param orderId 订单id */ boolean updateStatusByOrderId(TableConstant.OrderInfo.Status status, Integer orderId); + + /** + * 根据购物车id修改detail价格 + * @param cartId 购物车id + * @param totalAmount 总价格 + */ + boolean updatePriceByCartId(Integer cartId, BigDecimal saleAmount, BigDecimal totalAmount); + + /** + * 根据会员id修改detail信息 + * @param orderId 订单id + * @param isMember 会员id + */ + boolean updateMemberByOrderId(Integer orderId, boolean isMember); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpOrderDetailServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpOrderDetailServiceImpl.java index bb1a8502..ceef2831 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpOrderDetailServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpOrderDetailServiceImpl.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -72,5 +73,20 @@ public class MpOrderDetailServiceImpl extends ServiceImpl() + .eq(TbOrderDetail::getCartId, cartId) + .set(TbOrderDetail::getPrice, saleAmount) + .set(TbOrderDetail::getPriceAmount, totalAmount)); + } + + @Override + public boolean updateMemberByOrderId(Integer orderId, boolean isMember) { + return update(new LambdaUpdateWrapper() + .eq(TbOrderDetail::getOrderId, orderId) + .set(TbOrderDetail::getIsMember, isMember ? 1 : 0)); + } } 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 8735c901..56c1afbb 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 @@ -1210,9 +1210,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { public TbOrderInfo createOrder(CreateOrderDTO createOrderDTO, boolean byOrderId) { createOrderDTO.setTableId(OrderUseTypeEnum.TAKEOUT.getValue().equals(createOrderDTO.getUseType()) ? null : createOrderDTO.getTableId()); return Utils.runFunAndCheckKey(() -> { - TbShopInfo shopInfo = shopInfoRepository.findById(createOrderDTO.getShopId()).orElse(null); - if (shopInfo == null) throw new BadRequestException("店铺信息不存在"); - TbShopUser shopUser = null; if (createOrderDTO.getVipUserId() != null) { shopUser = tbShopUserMapper.selectById(createOrderDTO.getVipUserId()); @@ -1243,7 +1240,8 @@ public class TbShopTableServiceImpl implements TbShopTableService { // } // 创建订单详情 - OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo, createOrderDTO.getShopId(), true, shopEatTypeInfoDTO); + OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo, + createOrderDTO.getShopId(), true, shopEatTypeInfoDTO); // 是否是第一次创建订单 orderInfo = createOrderWithAction(createOrderDTO, detailPriceDTO, shopEatTypeInfoDTO, @@ -2392,10 +2390,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Transactional public Object updateVip(UpdateVipDTO updateVipDTO) { Integer orderId = updateVipDTO.getOrderId(); + ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(updateVipDTO.getShopId(), updateVipDTO.getTableId()); if (orderId == null) { - ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(updateVipDTO.getShopId(), updateVipDTO.getTableId()); List tbCashierCarts = mpCashierCartService.selectByShopEatType(shopEatTypeInfoDTO, updateVipDTO.getMasterId()); for (TbCashierCart item : tbCashierCarts) { + item.setIsMember(!shopEatTypeInfoDTO.isMemberPrice() ? 0 : updateVipDTO.getType() == 0 ? 1 : 0); if (item.getOrderId() != null) { orderId = item.getOrderId(); } @@ -2423,20 +2422,26 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("用户信息不存在"); } - orderInfoMapper.update(null, new LambdaUpdateWrapper() - .eq(TbOrderInfo::getId, orderId) - .set(TbOrderInfo::getUserId, shopUser.getUserId()) - .set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId())); + if (orderId != null) { + mpOrderDetailService.updateMemberByOrderId(orderId, shopEatTypeInfoDTO.isMemberPrice()); + orderInfoMapper.update(null, new LambdaUpdateWrapper() + .eq(TbOrderInfo::getId, orderId) + .set(TbOrderInfo::getUserId, shopUser.getUserId()) + .set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId())); + } } else { - mpCashierCartService.updateMemberAndAmountByOrderId(orderId, false); - orderInfoMapper.update(null, new LambdaUpdateWrapper() - .eq(TbOrderInfo::getId, orderId) - .set(TbOrderInfo::getUserId, null) - .set(TbOrderInfo::getMemberId, null)); + if (orderId != null) { + mpOrderDetailService.updateMemberByOrderId(orderId, false); + mpCashierCartService.updateMemberAndAmountByOrderId(orderId, false); + orderInfoMapper.update(null, new LambdaUpdateWrapper() + .eq(TbOrderInfo::getId, orderId) + .set(TbOrderInfo::getUserId, null) + .set(TbOrderInfo::getMemberId, null)); + } } if (dto != null) { - dto.setVipUserId(updateVipDTO.getVipUserId()); + dto.setVipUserId(updateVipDTO.getType() == 0 ? updateVipDTO.getVipUserId() : null); return createOrder(dto, true); } return "哈哈哈";