From fbea2c6670f3a7ba6717f53adb5f993ff2d90b9e Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Wed, 21 Aug 2024 14:56:08 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=E5=85=88?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E5=90=8E=E4=BB=98=E6=AC=BE=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/bean/TableStateEnum.java | 15 ++++++++ .../entity/vo/TbShopTableVO.java | 1 + .../rabbit/PrintMechineConsumer.java | 4 ++- .../cashierservice/service/OrderService.java | 35 ++++++++++++++++--- .../cashierservice/service/PayService.java | 10 ++++++ .../resources/mapper/TbShopTableMapper.xml | 3 +- 6 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/bean/TableStateEnum.java diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/bean/TableStateEnum.java b/src/main/java/com/chaozhanggui/system/cashierservice/bean/TableStateEnum.java new file mode 100644 index 0000000..c2d743e --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/bean/TableStateEnum.java @@ -0,0 +1,15 @@ +package com.chaozhanggui.system.cashierservice.bean; + +public enum TableStateEnum { + IDLE("idle"), + CLOSED("closed"), PAYING("paying"), PENDING("pending"); + private String state = "closed"; + + TableStateEnum(String state) { + this.state = state; + } + + public String getState() { + return state; + } +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbShopTableVO.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbShopTableVO.java index a5af751..bea32fc 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbShopTableVO.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbShopTableVO.java @@ -8,4 +8,5 @@ import lombok.EqualsAndHashCode; @Data public class TbShopTableVO extends TbShopTable { private Integer userId; + private String masterId; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java index 29b540b..db3de87 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -274,7 +274,9 @@ public class PrintMechineConsumer { if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { remark = tbProductSkuWithBLOBs.getSpecSnap(); } - String data = PrinterUtils.getPrintData("",orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); + String data = PrinterUtils.getPrintData("",orderInfo.getMasterId(), + DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), + it.getNum(), remark); String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; PrinterUtils.printTickets(voiceJson,3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java index d15f670..e6c31f4 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.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.chaozhanggui.system.cashierservice.bean.ShopWxMsgTypeEnum; +import com.chaozhanggui.system.cashierservice.bean.TableStateEnum; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; import com.chaozhanggui.system.cashierservice.entity.dto.UpdateVipDTO; @@ -274,6 +275,7 @@ public class OrderService { cashierCart.setNumber(number); cashierCart.setUuid(uuid); cashierCart.setCategoryId(product.getCategoryId()); + cashierCart.setTableId(tableId); list.add(cashierCart); cashierCartMapper.insert(cashierCart); cart=cashierCart; @@ -364,9 +366,10 @@ public class OrderService { queryWrapper.isNull(TbCashierCart::getTableId); // 台桌点单 }else if (StrUtil.isNotBlank(tableId)) { + String finalMasterId = masterId; queryWrapper.eq(TbCashierCart::getTableId, tableId) .and(query -> { - query.eq(TbCashierCart::getMasterId, masterId) + query.eq(TbCashierCart::getMasterId, finalMasterId) .or() .isNull(TbCashierCart::getMasterId); }); @@ -405,10 +408,12 @@ public class OrderService { } Map map = new HashMap<>(); map.put("list", list); - map.put("masterId", masterId); BigDecimal totalAmount = BigDecimal.ZERO; BigDecimal packAmount = BigDecimal.ZERO; for (TbCashierCart cashierCart : list) { + if (StrUtil.isNotBlank(cashierCart.getMasterId())) { + masterId = cashierCart.getMasterId(); + } totalAmount = totalAmount.add(cashierCart.getTotalAmount()); if (cashierCart.getIsPack().equals("true")) { packAmount = packAmount.add(cashierCart.getPackFee()); @@ -427,6 +432,9 @@ public class OrderService { } // TbProductSkuResult skuResult = tbProductSkuResultMapper.selectByPr imaryKey(Integer.valueOf(cashierCart.getProductId())); } + + map.put("masterId", masterId); + QueryCartPo queryCartPo = cashierCartMapper.selectProductNumByMarketId(day, shopId, masterId); queryCartPo.setPackAmount(packAmount); queryCartPo.setTotalAmount(totalAmount); @@ -557,7 +565,7 @@ public class OrderService { String orderNo = generateOrderNumber(); TbToken tbToken = tokenMapper.selectByToken(token); TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); - if (orderId > 0) { + if (orderId > 0 && orderInfo != null) { // if (!orderInfo.getStatus().equals("unpaid")){ // return Result.fail(CodeEnum.ORDERCREATE); // } @@ -651,6 +659,10 @@ public class OrderService { } if (flag) { redisUtil.deleteByKey("SHOP:CODE:USER:" + clientType + ":" + orderVo.getShopId() + ":" + day + orderVo.getUserId()); + // 代课下单 + if (!StrUtil.isBlank(orderVo.getTableId())) { + producer.printMechine(String.valueOf(orderInfo.getId())); + } } JSONObject object=new JSONObject(); @@ -673,8 +685,6 @@ public class OrderService { redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId().toString()),object.toString()); - - log.info("创建订单,发送更新耗材消息,订单id:{}", orderInfo.getId()); //修改耗材数据 JSONObject jsonObject=new JSONObject(); @@ -696,6 +706,16 @@ public class OrderService { return Result.success(CodeEnum.SUCCESS, orderInfo); } + public synchronized void addGlobalCode(String day, String clientType, String shopId) { + String code = redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId + ":" + day); + if (StrUtil.isBlank(code)) { + redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, "1"); + }else { + redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId + ":" + (Integer.parseInt(code) + 1)); + } + redisUtil.execsSet("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day, "1"); + } + public synchronized String generateOrderCode(String day, String clientType, String shopId) { String code = redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId + ":" + day)+""; // 使用顺序递增的计数器生成取餐码 @@ -900,6 +920,11 @@ public class OrderService { if (flag) { redisUtil.deleteByKey("SHOP:CODE:USER:" + clientType + ":" + shopId + ":" + day + userId); } + + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, tableId) + .set(TbShopTable::getStatus, TableStateEnum.PENDING.getState())); + } else { List list = mpCashierCartMapper.selectList(queryWrapper .eq(TbCashierCart::getStatus, "refund")); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 187c27f..487e36f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -782,6 +782,10 @@ public class PayService { mqData.put("type", "pc"); producer.sendStockSaleMsg(mqData); + + redisUtil.del("SHOP:CODE:USER:" + "pc" + ":" + orderInfo.getShopId() + ":" + DateUtils.getDay() + TokenUtil.parseParamFromToken(token).getString("accountId")); + + return Result.success(CodeEnum.SUCCESS); } @@ -856,6 +860,8 @@ public class PayService { mqData.put("type", "pc"); producer.sendStockSaleMsg(mqData); + redisUtil.del("SHOP:CODE:USER:" + "pc" + ":" + orderInfo.getShopId() + ":" + DateUtils.getDay() + TokenUtil.parseParamFromToken(token).getString("accountId")); + return Result.success(CodeEnum.SUCCESS); } @@ -1156,6 +1162,7 @@ public class PayService { productStockDetailMapper.insert(tbProductStockDetail); } + redisUtil.del("SHOP:CODE:USER:" + "pc" + ":" + orderInfo.getShopId() + ":" + DateUtils.getDay() + TokenUtil.parseParamFromToken(token).getString("accountId")); return Result.success(CodeEnum.SUCCESS); } @@ -1254,6 +1261,8 @@ public class PayService { } + redisUtil.del("SHOP:CODE:USER:" + "pc" + ":" + shopId + ":" + DateUtils.getDay() + TokenUtil.parseParamFromToken(token).getString("accountId")); + return Result.fail(CodeEnum.FAIL); @@ -1310,6 +1319,7 @@ public class PayService { } } + return Result.success(CodeEnum.SUCCESS, tbQuickPay); } diff --git a/src/main/resources/mapper/TbShopTableMapper.xml b/src/main/resources/mapper/TbShopTableMapper.xml index 0659e48..10bdba7 100644 --- a/src/main/resources/mapper/TbShopTableMapper.xml +++ b/src/main/resources/mapper/TbShopTableMapper.xml @@ -229,8 +229,9 @@