From b3c24748b3f1e7581e5ad1d3f2c4297fb6b37d60 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 8 Oct 2024 11:30:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E6=8E=A5=E5=8F=A3=E6=A0=A1=E9=AA=8C=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E9=A4=90=E4=BD=8D=E8=B4=B9=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E5=88=A0=E9=99=A4=E6=97=A7=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/CartService.java | 39 ++++++++++++++----- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java index e28d0a1..a15afef 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.chaozhanggui.system.cashierservice.constant.TableConstant; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; import com.chaozhanggui.system.cashierservice.entity.Enum.*; @@ -178,21 +179,31 @@ public class CartService { tableId = null; } String tableCartKey = RedisCst.getTableCartKey(shopId, tableId, userId); + // 免除座位费,删除当前台桌座位费信息 + TbShopInfo shopInfo = shopEatTypeInfoDTO.getShopInfo(); + boolean ignoreTableFee = shopInfo.getIsTableFee() != null && shopInfo.getIsTableFee() == 1; + TbCashierCart seatCartInfo = null; if (redisUtil.exists(tableCartKey)) { - array = JSON.parseArray(redisUtil.getMessage(tableCartKey)); - for (int i = 0; i < array.size(); i++) { + JSONArray jsonArray = JSON.parseArray(redisUtil.getMessage(tableCartKey)); + for (int i = 0; i < jsonArray.size(); i++) { JSONObject object = array.getJSONObject(i); TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(object.toJSONString(), TbCashierCart.class); - if (cashierCart.getNumber() > 0) { - amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); + if ((!TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId()) || !ignoreTableFee) && cashierCart.getNumber() > 0) { + amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); } - if ("-999".equals(cashierCart.getProductId())) { + if (TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId())) { seatCartInfo = cashierCart; + if (!ignoreTableFee) { + array.add(cashierCart); + } + }else { + array.add(cashierCart); } } } else { + // 查询购物车所有信息 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) @@ -209,18 +220,28 @@ public class CartService { List tbCashierCarts = mpCashierCartMapper.selectList(queryWrapper); if (!CollectionUtils.isEmpty(tbCashierCarts)) { for (TbCashierCart cashierCart : tbCashierCarts) { - if ("-999".equals(cashierCart.getProductId())) { + if (TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId())) { seatCartInfo = cashierCart; + if (!ignoreTableFee) { + array.add(cashierCart); + } + }else { + array.add(cashierCart); } - array.add(cashierCart); if (cashierCart.getIsVip().equals((byte) 1)) continue; - amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); + if ((!TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId()) || !ignoreTableFee) && cashierCart.getNumber() > 0) { + amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); + } } redisUtil.saveMessage(tableCartKey, array.toString(), 60 * 60 * 12L); } } - redisUtil.saveMessage(RedisCst.getCurrentTableSeatCount(shopEatTypeInfoDTO.getShopInfo().getId(), tableId), JSONObject.toJSONString(seatCartInfo), 60 * 60 * 12L); + if (ignoreTableFee && seatCartInfo != null) { + mpCashierCartMapper.deleteById(seatCartInfo.getId()); + }else { + redisUtil.saveMessage(RedisCst.getCurrentTableSeatCount(shopEatTypeInfoDTO.getShopInfo().getId(), tableId), JSONObject.toJSONString(seatCartInfo), 60 * 60 * 12L); + } JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("status", "success");