From d93bfd24a107032ec208eb386c7319d58174bb79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 13 Aug 2024 14:30:22 +0800 Subject: [PATCH 001/143] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E6=8A=98=E6=89=A3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/Shell.java | 2 -- .../controller/LoginContoller.java | 10 ++++++++++ .../cashierservice/service/LoginService.java | 20 +++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/Shell.java b/src/main/java/com/chaozhanggui/system/cashierservice/Shell.java index 4c1d29a..bb1fc4f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/Shell.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/Shell.java @@ -1,7 +1,6 @@ package com.chaozhanggui.system.cashierservice; -import com.chaozhanggui.system.cashierservice.task.ConsInfoTask; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,7 +44,6 @@ public class Shell { @Bean public CommandLineRunner commandLineRunner(ApplicationContext ctx) { return (args) -> { -// ctx.getBean(ConsInfoTask.class).init(); logger.info("=========================启动完成=========================="); }; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java index dbf69bf..9cb87a2 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java @@ -51,4 +51,14 @@ public class LoginContoller { @RequestHeader("clientType") String clientType){ return loginService.getShopInfo(token); } + + + @RequestMapping(value = "getStaffDiscount") + public Result getStaffDiscount(@RequestHeader("token") String token, + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType){ + + return loginService.getStaffDiscount(token); + + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java index 5e04407..90ed6ff 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java @@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; import java.util.Objects; import java.util.UUID; @@ -191,4 +192,23 @@ public class LoginService { return Result.success(SUCCESS,shopInfo); } + + + public Result getStaffDiscount(String token){ + + JSONObject jsonObject= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(jsonObject)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(jsonObject.getString("staffId")); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + if(Objects.nonNull(staff)&&Objects.nonNull(staff.getMaxDiscountAmount())){ + return Result.success(SUCCESS,staff.getMaxDiscountAmount()); + } + + return Result.success(SUCCESS, BigDecimal.ZERO); + + } } From e6402266290e8750eef8bfa4e40f4a3459fd5748 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 13 Aug 2024 14:36:16 +0800 Subject: [PATCH 002/143] =?UTF-8?q?1.=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/rabbit/ConsMsgConsumer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/ConsMsgConsumer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/ConsMsgConsumer.java index 670d978..2715203 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/ConsMsgConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/ConsMsgConsumer.java @@ -5,7 +5,6 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.chaozhanggui.system.cashierservice.bean.ShopWxMsgTypeEnum; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; import com.chaozhanggui.system.cashierservice.util.*; @@ -123,7 +122,7 @@ public class ConsMsgConsumer { log.info("耗材名称: {}, conwarning:{},stockNumber:{}",tbConsInfo.getConName(), tbConsInfo.getConWarning(),tbConsInfo.getStockNumber().subtract(tbConsInfo.getStockConsume())); if (N.egt(tbConsInfo.getConWarning(), tbConsInfo.getStockNumber().subtract(tbConsInfo.getStockConsume()))) { - List tbUserShopMsgs = shopOpenIdMapper.selectStateByShopIdAndType(product.getShopId(), ShopWxMsgTypeEnum.CONSUMABLES_MSG.getType()); + List tbUserShopMsgs = shopOpenIdMapper.selectByShopId(Integer.valueOf(product.getShopId())); log.info("待推送openId列表: {}", tbUserShopMsgs); if (Objects.nonNull(tbUserShopMsgs) && tbUserShopMsgs.size()>0) { tbUserShopMsgs.parallelStream().forEach(tbUserShopMsg->{ From b5bc0f2e0a58d994fcf9b7a0bb189c121b8688ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Wed, 14 Aug 2024 09:38:44 +0800 Subject: [PATCH 003/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=A7=84=E6=A0=BC=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LoginContoller.java | 1 - .../cashierservice/service/OrderService.java | 47 +++++++++++++------ 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java index 9cb87a2..6dcab85 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java @@ -57,7 +57,6 @@ public class LoginContoller { public Result getStaffDiscount(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType){ - return loginService.getStaffDiscount(token); } 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 f056e3e..1f10b2e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -162,24 +162,41 @@ public class OrderService { } TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); if (Objects.nonNull(cart)) { - cart.setSkuId(skuId.toString()); - cart.setNumber(number); - cart.setIsGift(isGift); - cart.setIsPack(isPack); - if (isPack.equals("false")){ - cart.setPackFee(BigDecimal.ZERO); + + //查询现有规格商品 + if("edit".equals(type)&&!cart.getSkuId().equals(skuId.toString())){ + TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid); + if(Objects.nonNull(cashierCart)){ + cashierCart.setNumber(cashierCart.getNumber()+number); + cashierCart.setTotalNumber(cashierCart.getNumber()+number); + cashierCart.setUpdatedAt(System.currentTimeMillis()); + cashierCartMapper.updateByPrimaryKey(cashierCart); + + cashierCartMapper.deleteByPrimaryKey(cart.getId()); + } }else { - cart.setPackFee(new BigDecimal(number).multiply(product.getPackFee())); - } - if (isGift.equals("false")) { - cart.setTotalAmount(new BigDecimal(number).multiply(skuWithBLOBs.getSalePrice()).add(cart.getPackFee())); - } else { - cart.setTotalAmount(BigDecimal.ZERO); + cart.setSkuId(skuId.toString()); + cart.setNumber(number); + cart.setIsGift(isGift); + cart.setIsPack(isPack); + if (isPack.equals("false")){ + cart.setPackFee(BigDecimal.ZERO); + }else { + cart.setPackFee(new BigDecimal(number).multiply(product.getPackFee())); + } + if (isGift.equals("false")) { + cart.setTotalAmount(new BigDecimal(number).multiply(skuWithBLOBs.getSalePrice()).add(cart.getPackFee())); + } else { + cart.setTotalAmount(BigDecimal.ZERO); + } + + cart.setTotalNumber(number); + cart.setUuid(uuid); + cashierCartMapper.updateByPrimaryKeySelective(cart); } - cart.setTotalNumber(number); - cart.setUuid(uuid); - cashierCartMapper.updateByPrimaryKeySelective(cart); + + } else { List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); From 780707e55cfa9c8993b2b248b16317574e8fcb5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Wed, 14 Aug 2024 09:40:41 +0800 Subject: [PATCH 004/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=A7=84=E6=A0=BC=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/OrderService.java | 1 + 1 file changed, 1 insertion(+) 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 1f10b2e..3c8dfbe 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -173,6 +173,7 @@ public class OrderService { cashierCartMapper.updateByPrimaryKey(cashierCart); cashierCartMapper.deleteByPrimaryKey(cart.getId()); + cart=cashierCart; } }else { cart.setSkuId(skuId.toString()); From dc6df17a3f2e4bf5309abc695e37cb21ec5e3206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Wed, 14 Aug 2024 09:43:56 +0800 Subject: [PATCH 005/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=A7=84=E6=A0=BC=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/OrderService.java | 1 + 1 file changed, 1 insertion(+) 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 3c8dfbe..f798e32 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -173,6 +173,7 @@ public class OrderService { cashierCartMapper.updateByPrimaryKey(cashierCart); cashierCartMapper.deleteByPrimaryKey(cart.getId()); + redisUtil.deleteByKey(RedisCst.ORDER_CART_EXISTS + cart.getId()); cart=cashierCart; } }else { From 6c6a447a5e9c03f6135bd31a6728799b0574f6fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Wed, 14 Aug 2024 11:16:28 +0800 Subject: [PATCH 006/143] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E6=B7=BB=E5=8A=A0=E8=80=97=E6=9D=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) 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 f798e32..b633d25 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -77,6 +77,12 @@ public class OrderService { private final TbShopOpenIdMapper shopOpenIdMapper; + @Autowired + private TbProskuConMapper tbProskuConMapper; + + @Autowired + TbConsInfoMapper tbConsInfoMapper; + private static ConcurrentHashMap> codeMap = new ConcurrentHashMap<>(); private static ConcurrentHashMap> userMap = new ConcurrentHashMap<>(); @@ -123,6 +129,28 @@ public class OrderService { + List proskuConList= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); + if(Objects.nonNull(proskuConList)&&proskuConList.size()>0){ + for (TbProskuCon proskuCon : proskuConList) { + if("1".equals(proskuCon.getStatus())){ + TbConsInfo consInfo= tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); + if(N.egt(proskuCon.getSurplusStock(),consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))){ + return Result.fail("商品:".concat(product.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); + } + } + } + } + + + + + + + + + + + String exists = redisUtil.getMessage(RedisCst.ORDER_CART_EXISTS + cartId); // 首次加入购物车,并且拥有起售数,设置为起售数 From 4a0a54856589769bdc0dc16b1aa9720a705519e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Wed, 14 Aug 2024 11:35:39 +0800 Subject: [PATCH 007/143] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E6=B7=BB=E5=8A=A0=E8=80=97=E6=9D=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/entity/TbConsInfo.java | 10 ++++++++++ .../system/cashierservice/service/OrderService.java | 6 ++++-- src/main/resources/mapper/TbConsInfoMapper.xml | 5 ++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbConsInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbConsInfo.java index b88b40a..15dc93a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbConsInfo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbConsInfo.java @@ -35,6 +35,8 @@ public class TbConsInfo implements Serializable { private Date updateTime; + private String isCheck; + private static final long serialVersionUID = 1L; public Integer getId() { @@ -156,4 +158,12 @@ public class TbConsInfo implements Serializable { public void setPrice(BigDecimal price) { this.price = price; } + + public String getIsCheck() { + return isCheck; + } + + public void setIsCheck(String isCheck) { + this.isCheck = isCheck; + } } \ No newline at end of file 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 b633d25..135719c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -134,8 +134,10 @@ public class OrderService { for (TbProskuCon proskuCon : proskuConList) { if("1".equals(proskuCon.getStatus())){ TbConsInfo consInfo= tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); - if(N.egt(proskuCon.getSurplusStock(),consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))){ - return Result.fail("商品:".concat(product.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); + if("1".equals(consInfo.getIsCheck())){ + if(N.egt(proskuCon.getSurplusStock(),consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))){ + return Result.fail("商品:".concat(product.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); + } } } } diff --git a/src/main/resources/mapper/TbConsInfoMapper.xml b/src/main/resources/mapper/TbConsInfoMapper.xml index 92ec252..fb7b5cb 100644 --- a/src/main/resources/mapper/TbConsInfoMapper.xml +++ b/src/main/resources/mapper/TbConsInfoMapper.xml @@ -17,10 +17,13 @@ + + + id, shop_id, con_type_id, con_type_name, con_code, con_name, stock_number,price,stock_consume,status, con_unit, - laster_in_stock, con_warning, create_time, update_time + laster_in_stock, con_warning, create_time, update_time,is_check - select + select from tb_prosku_con where id = #{id,jdbcType=INTEGER} @@ -25,11 +25,11 @@ where id = #{id,jdbcType=INTEGER} - insert into tb_prosku_con (id, shop_id, product_sku_id, - con_info_id, surplus_stock, status, + insert into tb_prosku_con (id, shop_id, product_sku_id, + con_info_id, surplus_stock, status, create_time) - values (#{id,jdbcType=INTEGER}, #{shopId,jdbcType=INTEGER}, #{productSkuId,jdbcType=INTEGER}, - #{conInfoId,jdbcType=INTEGER}, #{surplusStock,jdbcType=DECIMAL}, #{status,jdbcType=VARCHAR}, + values (#{id,jdbcType=INTEGER}, #{shopId,jdbcType=INTEGER}, #{productSkuId,jdbcType=INTEGER}, + #{conInfoId,jdbcType=INTEGER}, #{surplusStock,jdbcType=DECIMAL}, #{status,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}) @@ -123,6 +123,12 @@ select * from tb_prosku_con where product_sku_id=#{skuId} and shop_id=#{shopId} and status=1 + + - \ No newline at end of file + + + From 4d462a1d3e67e1857f67e5bb2336a3f5661e511e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Fri, 16 Aug 2024 14:16:15 +0800 Subject: [PATCH 013/143] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E6=B7=BB=E5=8A=A0=E8=80=97=E6=9D=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/thirdpay/req/WxScanPayReq.java | 15 ++++++++++++++- .../thirdpay/service/ThirdPayService.java | 9 ++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/WxScanPayReq.java b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/WxScanPayReq.java index 0e6eab3..a3b4d0d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/WxScanPayReq.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/WxScanPayReq.java @@ -3,6 +3,7 @@ package com.chaozhanggui.system.cashierservice.thirdpay.req; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; @Data public class WxScanPayReq implements Serializable { @@ -28,11 +29,20 @@ public class WxScanPayReq implements Serializable { private String storeId; + private int divisionMode; + + private ArrayList divList; + + private String divTemplateNo; + private String notifyUrl; private String returnUrl; - public WxScanPayReq(String subject, String body, Long amount, String currency, String payType, String subAppid, String userId, String clientIp, String mchOrderNo, String storeId, String notifyUrl, String returnUrl) { + public WxScanPayReq(String subject, String body, Long amount, String currency, String payType, String subAppid, String userId, String clientIp, String mchOrderNo, String storeId, + int divisionMode,ArrayList divList,String divTemplateNo, + + String notifyUrl, String returnUrl) { this.subject = subject; this.body = body; this.amount = amount; @@ -45,5 +55,8 @@ public class WxScanPayReq implements Serializable { this.storeId = storeId; this.notifyUrl = notifyUrl; this.returnUrl = returnUrl; + this.divisionMode=divisionMode; + this.divList=divList; + this.divTemplateNo=divTemplateNo; } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java index 57c8c18..374e64c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java @@ -99,7 +99,14 @@ public class ThirdPayService { String clinetIp,String orderNo, String storeId, String notifyUrl,String returnUrl, String key){ - WxScanPayReq scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,notifyUrl,returnUrl); + WxScanPayReq scanPayReq=null; + if("66bab943ae82f63b50ae3cff".equals(appId)){ + scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,0,null,null,notifyUrl,returnUrl); + url="https://paymentweb.sxczgkj.cn"; + }else { + scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,0,null,null,notifyUrl,returnUrl); + } + PublicParam param=new PublicParam(appId,null,SignTypeEnum.MD5.getValue(),null,DateUtils.getSdfTimes(), "1.0", String.valueOf(System.currentTimeMillis())); From cee46439252c61f114f62ea4df5251ee2f4a998a Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 16 Aug 2024 14:46:30 +0800 Subject: [PATCH 014/143] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BA=93=E5=AD=98=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/rabbit/RabbitConstants.java | 4 ++++ .../cashierservice/rabbit/RabbitProducer.java | 5 +++++ .../cashierservice/service/ProductService.java | 17 +++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConstants.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConstants.java index ad8aa85..4fd096a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConstants.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConstants.java @@ -47,4 +47,8 @@ public interface RabbitConstants { String EXCHANGE_STOCK_RECORD = "exchange.stock.record"; String ROUTING_STOCK_RECORD_SALE = "routing.stock.record.sale"; + + // 库存记录 + public static final String QUEUE_STOCK_RECORD = "queue.stock.record"; + public static final String ROUTING_STOCK_RECORD= "routing.stock.record"; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java index 187b9ef..89851f7 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java @@ -71,4 +71,9 @@ public class RabbitProducer implements RabbitTemplate.ConfirmCallback { public void sendStockSaleMsg(T data) { sendMsg(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, data, "商品售出增加库存记录"); } + + public void sendStockRecordMsg(T data) { + sendMsg(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD, data, "增加库存记录"); + + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java index 7c3d5df..584a49d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -12,6 +12,7 @@ import com.chaozhanggui.system.cashierservice.entity.dto.ProductStockDTO; import com.chaozhanggui.system.cashierservice.entity.vo.ShopCategoryVo; import com.chaozhanggui.system.cashierservice.exception.MsgException; import com.chaozhanggui.system.cashierservice.interceptor.LimitSubmitAspect; +import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; import com.chaozhanggui.system.cashierservice.util.DateUtils; @@ -46,6 +47,12 @@ public class ProductService { @Autowired private LimitSubmitAspect limitSubmitAspect; + private final RabbitProducer producer; + + public ProductService(RabbitProducer producer) { + this.producer = producer; + } + public Result queryCategory(String shopId,Integer page,Integer pageSize){ PageHelperUtil.startPage(page, pageSize); @@ -261,6 +268,16 @@ public class ProductService { }else { tbProductMapper.updateStock(productStockDTO.getShopId(), productStockDTO.getProductId(), productStockDTO.getStock()); tbProductSkuMapper.updateStock(productStockDTO.getShopId(), productStockDTO.getProductId(), productStockDTO.getStock()); + + List tbProductSkus = tbProductSkuMapper.selectByProductId(product.getId()); + JSONObject data = new JSONObject(); + data.put("shopId", productStockDTO.getShopId()); + data.put("skuId", tbProductSkus.isEmpty() ? null : tbProductSkus.get(0).getId()); + data.put("productId", productStockDTO.getProductId()); + data.put("type", "pc收银机修改库存"); + data.put("subType", product.getStockNumber() > productStockDTO.getStock() ? -1 : 1); + data.put("number",productStockDTO.getStock() - product.getStockNumber()); + producer.sendStockRecordMsg(data); } } } From 8f7ea02d065fe014c451e533d3ee47e9c9220fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Fri, 16 Aug 2024 15:38:47 +0800 Subject: [PATCH 015/143] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E6=B7=BB=E5=8A=A0=E8=80=97=E6=9D=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/thirdpay/req/MainScanReq.java | 12 +++++++++++- .../thirdpay/service/ThirdPayService.java | 13 +++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/MainScanReq.java b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/MainScanReq.java index 502d535..bb2688c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/MainScanReq.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/req/MainScanReq.java @@ -3,6 +3,7 @@ package com.chaozhanggui.system.cashierservice.thirdpay.req; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; @Data public class MainScanReq implements Serializable { @@ -25,7 +26,13 @@ public class MainScanReq implements Serializable { private String notifyUrl; - public MainScanReq(String subject, String body, Long amount, String subAppid, String currency, String authCode, String mchOrderNo, String storeId, String notifyUrl) { + private int divisionMode; + + private ArrayList divList; + + private String divTemplateNo; + + public MainScanReq(String subject, String body, Long amount, String subAppid, String currency, String authCode, String mchOrderNo, String storeId, String notifyUrl,int divisionMode,String divTemplateNo,ArrayList divList) { this.subject = subject; this.body = body; this.amount = amount; @@ -35,6 +42,9 @@ public class MainScanReq implements Serializable { this.mchOrderNo = mchOrderNo; this.storeId = storeId; this.notifyUrl = notifyUrl; + this.divisionMode=divisionMode; + this.divList=divList; + this.divTemplateNo=divTemplateNo; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java index 374e64c..d65d07e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java @@ -47,8 +47,17 @@ public class ThirdPayService { public PublicResp mainScan(String url,String appId, String subject, String body, Long amount, String subAppId, String authCode, String orderNo, String storeId, String notifyUrl, String key ) { + MainScanReq mainScanReq=null; + if("66bab943ae82f63b50ae3cff".equals(appId)){ + + mainScanReq = new MainScanReq(subject, body, amount, subAppId, "cny", authCode, orderNo, storeId, notifyUrl,1,"TA1824003985261588482",null); + url="https://paymentweb.sxczgkj.cn"; + }else { + mainScanReq = new MainScanReq(subject, body, amount, subAppId, "cny", authCode, orderNo, storeId, notifyUrl,0,null,null); + } + + - MainScanReq mainScanReq = new MainScanReq(subject, body, amount, subAppId, "cny", authCode, orderNo, storeId, notifyUrl); PublicParam param = new PublicParam(appId, "", SignTypeEnum.MD5.getValue(), null, DateUtils.getSdfTimes(), "1.0", String.valueOf(System.currentTimeMillis())); @@ -101,7 +110,7 @@ public class ThirdPayService { String key){ WxScanPayReq scanPayReq=null; if("66bab943ae82f63b50ae3cff".equals(appId)){ - scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,0,null,null,notifyUrl,returnUrl); + scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,1,null,"TA1824003985261588482",notifyUrl,returnUrl); url="https://paymentweb.sxczgkj.cn"; }else { scanPayReq=new WxScanPayReq(subject,body,amount,"cny",payType,subAppId,userId,clinetIp,orderNo,storeId,0,null,null,notifyUrl,returnUrl); From 61157d730cf62c05738969617ebdd77a0ee9560b Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 17 Aug 2024 15:00:46 +0800 Subject: [PATCH 016/143] =?UTF-8?q?1.=E8=80=97=E6=9D=90check=E5=80=BC?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/entity/TbConsInfo.java | 2 +- .../system/cashierservice/service/OrderService.java | 4 ++-- src/main/resources/mapper/TbProskuConMapper.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbConsInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbConsInfo.java index 15dc93a..f3b3d99 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbConsInfo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbConsInfo.java @@ -166,4 +166,4 @@ public class TbConsInfo implements Serializable { public void setIsCheck(String isCheck) { this.isCheck = isCheck; } -} \ No newline at end of file +} 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 074216d..02885eb 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -315,7 +315,8 @@ public class OrderService { * @param productSku sku */ private void checkWarnLineAndSendMsg(TbProductSku productSku, TbProduct product, Integer shopId, Integer num) { - TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(shopId); + log.info("下单,开始校验库存预警,商品信息:{}, {}, {}", product, productSku, num); + if (productSku.getWarnLine() == null) { return; } @@ -565,7 +566,6 @@ public class OrderService { TbProductWithBLOBs product = tbProductMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getProductId())); TbProductSkuWithBLOBs skuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getSkuId())); - log.info("下单,开始校验库存预警,购物车id:{}", cashierCart.getId()); CompletableFuture.runAsync(() -> checkWarnLineAndSendMsg(skuWithBLOBs, product, Integer.valueOf(cashierCart.getShopId()), cashierCart.getNumber())); // 已经添加的商品,修改数量 diff --git a/src/main/resources/mapper/TbProskuConMapper.xml b/src/main/resources/mapper/TbProskuConMapper.xml index 78ba3fd..0c4f495 100644 --- a/src/main/resources/mapper/TbProskuConMapper.xml +++ b/src/main/resources/mapper/TbProskuConMapper.xml @@ -126,7 +126,7 @@ - select + select from tb_shop_pay_type where id = #{id,jdbcType=INTEGER} @@ -32,15 +32,15 @@ where id = #{id,jdbcType=INTEGER} - insert into tb_shop_pay_type (id, pay_type, pay_name, - is_show_shortcut, shop_id, is_refundable, - is_open_cash_drawer, is_system, is_ideal, - is_display, sorts, created_at, + insert into tb_shop_pay_type (id, pay_type, pay_name, + is_show_shortcut, shop_id, is_refundable, + is_open_cash_drawer, is_system, is_ideal, + is_display, sorts, created_at, updated_at, icon) - values (#{id,jdbcType=INTEGER}, #{payType,jdbcType=VARCHAR}, #{payName,jdbcType=VARCHAR}, - #{isShowShortcut,jdbcType=TINYINT}, #{shopId,jdbcType=VARCHAR}, #{isRefundable,jdbcType=TINYINT}, - #{isOpenCashDrawer,jdbcType=TINYINT}, #{isSystem,jdbcType=TINYINT}, #{isIdeal,jdbcType=TINYINT}, - #{isDisplay,jdbcType=TINYINT}, #{sorts,jdbcType=INTEGER}, #{createdAt,jdbcType=BIGINT}, + values (#{id,jdbcType=INTEGER}, #{payType,jdbcType=VARCHAR}, #{payName,jdbcType=VARCHAR}, + #{isShowShortcut,jdbcType=TINYINT}, #{shopId,jdbcType=VARCHAR}, #{isRefundable,jdbcType=TINYINT}, + #{isOpenCashDrawer,jdbcType=TINYINT}, #{isSystem,jdbcType=TINYINT}, #{isIdeal,jdbcType=TINYINT}, + #{isDisplay,jdbcType=TINYINT}, #{sorts,jdbcType=INTEGER}, #{createdAt,jdbcType=BIGINT}, #{updatedAt,jdbcType=BIGINT}, #{icon,jdbcType=VARCHAR}) @@ -205,4 +205,4 @@ select count(id) from tb_shop_pay_type where shop_id=#{shopId} and is_display=1 and pay_type=#{payType} - \ No newline at end of file + From 796f43299f096446bfa708258ecfec0d2930ef45 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 20 Aug 2024 13:23:13 +0800 Subject: [PATCH 018/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 9 +- .../system/cashierservice/bean/LogTag.java | 2 +- .../controller/OrderController.java | 19 +- .../system/cashierservice/entity/OrderVo.java | 2 + .../cashierservice/entity/TbCashierCart.java | 7 +- .../entity/dto/UpdateVipDTO.java | 23 ++ .../cashierservice/entity/vo/CartVo.java | 7 +- .../mybatis/MPCashierCartMapper.java | 7 + .../mybatis/MpShopTableMapper.java | 8 + .../cashierservice/rabbit/RabbitProducer.java | 2 - .../cashierservice/service/OrderService.java | 206 ++++++++++++++---- 11 files changed, 232 insertions(+), 60 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/UpdateVipDTO.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MPCashierCartMapper.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpShopTableMapper.java diff --git a/pom.xml b/pom.xml index 5e5deff..15b70c2 100644 --- a/pom.xml +++ b/pom.xml @@ -69,10 +69,11 @@ 1.9.4 - org.mybatis.spring.boot - mybatis-spring-boot-starter - 2.1.1 + com.baomidou + mybatis-plus-boot-starter + 3.5.7 + org.mybatis.generator mybatis-generator-core @@ -266,4 +267,4 @@ - \ No newline at end of file + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/bean/LogTag.java b/src/main/java/com/chaozhanggui/system/cashierservice/bean/LogTag.java index 4543914..6222c46 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/bean/LogTag.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/bean/LogTag.java @@ -10,7 +10,7 @@ import lombok.Getter; @Getter public enum LogTag { JPUSH("极光"), CLIENT("安卓"), - LOGIN("登录"), SYSTEM("系统"), CART("订单购物车"); + LOGIN("登录"), SYSTEM("系统"), CART("订单购物车"), PLACE("下单"); private final String value; LogTag(String value) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java index 42fc7db..c4c0a3a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java @@ -6,12 +6,15 @@ import com.alibaba.fastjson.JSONObject; import com.chaozhanggui.system.cashierservice.annotation.MyLog; import com.chaozhanggui.system.cashierservice.bean.LogTag; import com.chaozhanggui.system.cashierservice.entity.OrderVo; +import com.chaozhanggui.system.cashierservice.entity.dto.UpdateVipDTO; import com.chaozhanggui.system.cashierservice.entity.vo.CartVo; import com.chaozhanggui.system.cashierservice.service.OrderService; import com.chaozhanggui.system.cashierservice.sign.Result; import com.chaozhanggui.system.cashierservice.util.TokenUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "*") @@ -24,6 +27,14 @@ public class OrderController { @Autowired private OrderService orderService; + @PutMapping("/updateVip") + @MyLog(value = "代客下单 修改会员", tag = LogTag.PLACE) + public ResponseEntity updateVip( + @Validated @RequestBody UpdateVipDTO updateVipDTO + ) { + return ResponseEntity.ok(orderService.updateVip(updateVipDTO)); + } + @PostMapping("/createCart") public Result createCart(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @@ -34,7 +45,7 @@ public class OrderController { String userId = jsonObject.getString("accountId"); return orderService.createCart(cartVo.getMasterId(),cartVo.getProductId(),cartVo.getShopId(), cartVo.getSkuId(),cartVo.getNumber(),userId,clientType,cartVo.getCartId(),cartVo.getIsGift(), - cartVo.getIsPack(),cartVo.getUuid(),cartVo.getType()); + cartVo.getIsPack(),cartVo.getUuid(),cartVo.getType(), cartVo.getVipUserId(), cartVo.getTableId()); } @MyLog(value = "查询购物车信息", tag = LogTag.CART) @@ -44,12 +55,13 @@ public class OrderController { @RequestHeader("clientType") String clientType, @RequestParam(value = "masterId", required = false) String masterId, @RequestParam(required = false) String tableId, + @RequestParam(required = false) Integer vipUserId, @RequestParam("shopId") String shopId ){ if (tableId == null && StrUtil.isBlank(masterId)) { return Result.fail("masterId和tableId不能同时为空"); } - return orderService.queryCart(masterId,shopId); + return orderService.queryCart(masterId,shopId, vipUserId, tableId); } @@ -90,7 +102,8 @@ public class OrderController { JSONObject jsonObject = TokenUtil.parseParamFromToken(token); String userId = jsonObject.getString("accountId"); String code = jsonObject.getString("code"); - return orderService.cartStatus(Integer.valueOf(cartVo.getShopId()),cartVo.getMasterId(),cartVo.getStatus(),userId,cartVo.getUuid(),clientType); + return orderService.cartStatus(Integer.valueOf(cartVo.getShopId()),cartVo.getMasterId(), + cartVo.getStatus(),userId,cartVo.getUuid(),clientType, cartVo.getVipUserId(), cartVo.getTableId()); } @PostMapping("/createOrder") public Result createOrder(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/OrderVo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/OrderVo.java index 3934591..d1aeda1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/OrderVo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/OrderVo.java @@ -12,4 +12,6 @@ public class OrderVo { private Integer shopId; private String userId; private Integer merchantId; + private String tableId; + private Integer vipUserId; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbCashierCart.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbCashierCart.java index 12e0100..5c22747 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbCashierCart.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbCashierCart.java @@ -1,5 +1,6 @@ package com.chaozhanggui.system.cashierservice.entity; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.io.Serializable; @@ -57,8 +58,12 @@ public class TbCashierCart implements Serializable { private Long updatedAt; private Integer userId; private String tableId; + + @TableField(exist = false) private TbProductSpec tbProductSpec; + + @TableField(exist = false) private String selectSpec=""; private static final long serialVersionUID = 1L; -} \ No newline at end of file +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/UpdateVipDTO.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/UpdateVipDTO.java new file mode 100644 index 0000000..06074be --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/UpdateVipDTO.java @@ -0,0 +1,23 @@ +package com.chaozhanggui.system.cashierservice.entity.dto; + +import lombok.Data; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +public class UpdateVipDTO { + @NotNull + private Integer shopId; + @NotEmpty + private String tableId; + @NotNull + private String masterId; + + private Integer vipUserId; + @NotNull + @Range(min = 0, max = 1) + private Integer type; +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/CartVo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/CartVo.java index a4e701c..6959c99 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/CartVo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/CartVo.java @@ -5,10 +5,6 @@ import lombok.Data; @Data public class CartVo { private String productId; - - // orderId不为空为代客下单 - private String masterId; - private String tableId; private String shopId; private Integer skuId; private Integer number; @@ -18,4 +14,7 @@ public class CartVo { private String uuid; private String type; private Integer cartId; + private String masterId; + private String tableId; + private Integer vipUserId; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MPCashierCartMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MPCashierCartMapper.java new file mode 100644 index 0000000..6696f50 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MPCashierCartMapper.java @@ -0,0 +1,7 @@ +package com.chaozhanggui.system.cashierservice.mybatis; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chaozhanggui.system.cashierservice.entity.TbCashierCart; + +public interface MPCashierCartMapper extends BaseMapper { +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpShopTableMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpShopTableMapper.java new file mode 100644 index 0000000..c33b5fa --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpShopTableMapper.java @@ -0,0 +1,8 @@ +package com.chaozhanggui.system.cashierservice.mybatis; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chaozhanggui.system.cashierservice.entity.TbCashierCart; +import com.chaozhanggui.system.cashierservice.entity.TbShopTable; + +public interface MpShopTableMapper extends BaseMapper { +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java index 89851f7..9a32799 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java @@ -37,8 +37,6 @@ public class RabbitProducer implements RabbitTemplate.ConfirmCallback { - - public void cons(String content){ CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(RabbitConstants.CONS_COLLECT_PUT, RabbitConstants.CONS_COLLECT_ROUTINGKEY_PUT, content, correlationId); 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 02885eb..fb34dd9 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -1,17 +1,23 @@ package com.chaozhanggui.system.cashierservice.service; -import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; 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.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; +import com.chaozhanggui.system.cashierservice.entity.dto.UpdateVipDTO; import com.chaozhanggui.system.cashierservice.entity.po.*; import com.chaozhanggui.system.cashierservice.entity.vo.CartVo; +import com.chaozhanggui.system.cashierservice.exception.MsgException; +import com.chaozhanggui.system.cashierservice.mybatis.MPCashierCartMapper; +import com.chaozhanggui.system.cashierservice.mybatis.MpShopTableMapper; import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; @@ -26,7 +32,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.sql.Timestamp; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; @@ -68,6 +73,7 @@ public class OrderService { RedisUtil redisUtil; private final WxAccountUtil wxAccountUtil; + private final MPCashierCartMapper mpCashierCartMapper; @Autowired RabbitProducer producer; @@ -77,6 +83,7 @@ public class OrderService { private final TbUserShopMsgMapper tbUserShopMsgMapper; private final TbShopOpenIdMapper shopOpenIdMapper; + private final MpShopTableMapper mpShopTableMapper; @Autowired private TbProskuConMapper tbProskuConMapper; @@ -90,16 +97,18 @@ public class OrderService { @Autowired private ProductService productService; - public OrderService(WxAccountUtil wxAccountUtil, WechatUtil wechatUtil, TbUserShopMsgMapper tbUserShopMsgMapper, TbShopOpenIdMapper shopOpenIdMapper) { + public OrderService(WxAccountUtil wxAccountUtil, MPCashierCartMapper mpCashierCartMapper, WechatUtil wechatUtil, TbUserShopMsgMapper tbUserShopMsgMapper, TbShopOpenIdMapper shopOpenIdMapper, MpShopTableMapper mpShopTableMapper) { this.wxAccountUtil = wxAccountUtil; + this.mpCashierCartMapper = mpCashierCartMapper; this.wechatUtil = wechatUtil; this.tbUserShopMsgMapper = tbUserShopMsgMapper; this.shopOpenIdMapper = shopOpenIdMapper; + this.mpShopTableMapper = mpShopTableMapper; } @Transactional(rollbackFor = Exception.class) public Result createCart(String masterId, String productId, String shopId, Integer skuId, Integer number, - String userId, String clientType, Integer cartId, String isGift, String isPack, String uuid, String type) { + String userId, String clientType, Integer cartId, String isGift, String isPack, String uuid, String type, Integer vipUserId, String tableId) { if (Objects.isNull(number) || number < 0) { return Result.fail(CodeEnum.NUMBER); } @@ -128,10 +137,19 @@ public class OrderService { return Result.fail(CodeEnum.PRODUCTSKUERROR); } + // 台桌点单 + if ((StrUtil.isNotBlank(tableId))) { + TbShopTable shopTable = mpShopTableMapper.selectOne(new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, tableId) + .eq(TbShopTable::getStatus, "opening")); + if (shopTable == null) { + return Result.fail("台桌不存在或未开台"); + } + } - List proskuConList= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); - if(Objects.nonNull(proskuConList)&&proskuConList.size()>0){ + List proskuConList = tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); + if(Objects.nonNull(proskuConList) && !proskuConList.isEmpty()){ for (TbProskuCon proskuCon : proskuConList) { if("1".equals(proskuCon.getStatus())){ TbConsInfo consInfo= tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); @@ -144,16 +162,6 @@ public class OrderService { } } - - - - - - - - - - String exists = redisUtil.getMessage(RedisCst.ORDER_CART_EXISTS + cartId); // 首次加入购物车,并且拥有起售数,设置为起售数 @@ -191,6 +199,7 @@ public class OrderService { masterId = "#" + String.format("%03d", 1); } } + TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); if (Objects.nonNull(cart)) { @@ -201,6 +210,7 @@ public class OrderService { cashierCart.setNumber(cashierCart.getNumber()+number); cashierCart.setTotalNumber(cashierCart.getNumber()+number); cashierCart.setUpdatedAt(System.currentTimeMillis()); + cashierCart.setUserId(vipUserId); cashierCartMapper.updateByPrimaryKey(cashierCart); cashierCartMapper.deleteByPrimaryKey(cart.getId()); @@ -212,6 +222,8 @@ public class OrderService { cart.setNumber(number); cart.setIsGift(isGift); cart.setIsPack(isPack); + cart.setUserId(vipUserId); + if (isPack.equals("false")){ cart.setPackFee(BigDecimal.ZERO); }else { @@ -227,10 +239,6 @@ public class OrderService { cart.setUuid(uuid); cashierCartMapper.updateByPrimaryKeySelective(cart); } - - - - } else { List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid); @@ -252,6 +260,7 @@ public class OrderService { cashierCart.setStatus("create"); cashierCart.setIsPack(isPack); cashierCart.setIsGift(isGift); + cashierCart.setUserId(vipUserId); if (isGift.equals("false")) { cashierCart.setTotalAmount(new BigDecimal(number).multiply(skuWithBLOBs.getSalePrice())); } else { @@ -273,6 +282,7 @@ public class OrderService { cashierCartMapper.insert(cashierCart); cart=cashierCart; } else { + cashierCart.setUserId(vipUserId); if (type.equals("add")) { cashierCart.setNumber(cashierCart.getNumber() + number); @@ -284,8 +294,9 @@ public class OrderService { }else { cashierCart.setPackFee(new BigDecimal(number).multiply(product.getPackFee())); } + cashierCart.setUserId(vipUserId); cashierCart.setTotalAmount(new BigDecimal(cashierCart.getNumber()).multiply(skuWithBLOBs.getSalePrice()).add(cashierCart.getPackFee())); - cashierCartMapper.updateByPrimaryKeySelective(cashierCart); + mpCashierCartMapper.updateById(cashierCart); } } else { cashierCartMapper.updateStatus(cashierCart.getId(), "close"); @@ -344,27 +355,48 @@ public class OrderService { } } - public Result queryCart(String masterId, String shopId) { + public Result queryCart(String masterId, String shopId, Integer vipUserId, String tableId) { if (StringUtils.isEmpty(shopId)) { return Result.fail(CodeEnum.SHOPINFONOEXIST); } String day = DateUtils.getDay(); - List list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId),"create",day); - if (list.size() < 1){ - list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId), "refund",day); - if (list.size() > 0){ - if (list.size() < 1) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopId); + + // 普通点单 + if (StrUtil.isBlank(tableId)) { + queryWrapper.eq(TbCashierCart::getMasterId, masterId); + queryWrapper.isNull(TbCashierCart::getTableId); + // 台桌点单 + }else if (StrUtil.isNotBlank(tableId) && vipUserId == null) { + queryWrapper.eq(TbCashierCart::getTableId, tableId) + .eq(TbCashierCart::getMasterId, masterId); + // 会员点单 + }else { + queryWrapper.eq(TbCashierCart::getUserId, vipUserId); + } + + +// List list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId),"create",day); + List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); + if (list.isEmpty()){ + list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "refund")); +// list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId), "refund",day); + if (!list.isEmpty()){ + if (list.isEmpty()) { return Result.fail(CodeEnum.CARTJH); } int orderId = 0; String uuid = ""; for (TbCashierCart cashierCart : list) { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { - orderId = Integer.valueOf(cashierCart.getOrderId()); - break; + orderId = Integer.parseInt(cashierCart.getOrderId()); } + cashierCart.setStatus("create"); } - cashierCartMapper.updateStatusByMaster(Integer.valueOf(shopId), masterId, "create", day, uuid); + mpCashierCartMapper.insertOrUpdate(list); +// cashierCartMapper.updateStatusByMaster(Integer.valueOf(shopId), masterId, "create", day, uuid); if (orderId > 0) { tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); @@ -446,9 +478,32 @@ public class OrderService { @Transactional(rollbackFor = Exception.class) public Result createOrder(OrderVo orderVo, String clientType, String token) { String day = DateUtils.getDay(); - List list = cashierCartMapper.selectAllCreateOrder(orderVo.getMasterId(), orderVo.getShopId(), day, "create", orderVo.getUuid()); - if (list.size() < 1) { - list = cashierCartMapper.selectAllCreateOrder(orderVo.getMasterId(), orderVo.getShopId(), day, "create", orderVo.getUuid()); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, orderVo.getShopId()) + .eq(TbCashierCart::getStatus, "create"); + + + // 普通点单 + if (StrUtil.isBlank(orderVo.getTableId())) { + queryWrapper.eq(TbCashierCart::getMasterId, orderVo.getMasterId()) + .eq(TbCashierCart::getTradeDay, day); + queryWrapper.isNull(TbCashierCart::getTableId); + // 台桌点单 + }else if (StrUtil.isNotBlank(orderVo.getTableId()) && orderVo.getVipUserId() == null) { + queryWrapper.eq(TbCashierCart::getTableId, orderVo.getTableId()) + .eq(TbCashierCart::getTradeDay, day) + .eq(TbCashierCart::getMasterId, orderVo.getMasterId()); + // 会员点单 + }else { + queryWrapper.eq(TbCashierCart::getUserId, orderVo.getVipUserId()); + } + + List list = mpCashierCartMapper.selectList(queryWrapper); +// List list = cashierCartMapper.selectAllCreateOrder(orderVo.getMasterId(), orderVo.getShopId(), day, "create", orderVo.getUuid()); + if (list.isEmpty()) { + list = mpCashierCartMapper.selectList(queryWrapper); +// list = cashierCartMapper.selectAllCreateOrder(orderVo.getMasterId(), orderVo.getShopId(), day, "create", orderVo.getUuid()); } if(ObjectUtil.isEmpty(list)||ObjectUtil.isNull(list)||list.size()<=0){ @@ -735,11 +790,34 @@ public class OrderService { @Transactional(rollbackFor = Exception.class) - public Result cartStatus(Integer shopId, String masterId, String status, String userId, String uuid, String clientType) { + public Result cartStatus(Integer shopId, String masterId, String status, String userId, String uuid, + String clientType, Integer vipUserId, String tableId) { String newUuid = redisUtil.getMessage("CART:UUID:" + shopId + userId)+""; String day = DateUtils.getDay(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopId); + + + // 普通点单 + if (StrUtil.isBlank(tableId)) { + queryWrapper.eq(TbCashierCart::getMasterId, masterId); + queryWrapper.isNull(TbCashierCart::getTableId); + // 台桌点单 + }else if (StrUtil.isNotBlank(tableId) && vipUserId == null) { + queryWrapper.eq(TbCashierCart::getTableId, tableId) + .eq(TbCashierCart::getMasterId, masterId); + // 会员点单 + }else { + queryWrapper + .eq(TbCashierCart::getTableId, tableId) + .eq(TbCashierCart::getUserId, vipUserId); + } + + + if ("true".equals(status)) { - List list = cashierCartMapper.selectAllCreateOrder(masterId, shopId, day, "create", uuid); + List list = mpCashierCartMapper.selectList(queryWrapper); +// List list = cashierCartMapper.selectAllCreateOrder(masterId, shopId, day, "create", uuid); if (list.size() < 1) { return Result.fail(CodeEnum.CREATEORDER); } @@ -810,31 +888,34 @@ public class OrderService { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { flag = false; } + cashierCart.setUserId(vipUserId); cashierCart.setOrderId(orderId + ""); cashierCart.setUpdatedAt(System.currentTimeMillis()); cashierCart.setPendingAt(System.currentTimeMillis()); cashierCart.setStatus("refund"); cashierCart.setUuid(newUuid); - cashierCartMapper.updateByPrimaryKeySelective(cashierCart); + mpCashierCartMapper.updateById(cashierCart); } if (flag) { redisUtil.deleteByKey("SHOP:CODE:USER:" + clientType + ":" + shopId + ":" + day + userId); } } else { - - List list = cashierCartMapper.selectAllCreateOrder(masterId, shopId, "", "refund", uuid); - if (list.size() < 1) { + List list = mpCashierCartMapper.selectList(queryWrapper + .eq(TbCashierCart::getStatus, "refund")); +// List list = cashierCartMapper.selectAllCreateOrder(masterId, shopId, "", "refund", uuid); + if (list.isEmpty()) { return Result.fail(CodeEnum.CARTJH); } int orderId = 0; for (TbCashierCart cashierCart : list) { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { - orderId = Integer.valueOf(cashierCart.getOrderId()); - break; + orderId = Integer.parseInt(cashierCart.getOrderId()); } + cashierCart.setStatus("create"); } - cashierCartMapper.updateStatusByMaster(shopId, masterId, "create", day, uuid); + mpCashierCartMapper.insertOrUpdate(list); +// cashierCartMapper.updateStatusByMaster(shopId, masterId, "create", day, uuid); if (orderId > 0) { tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); @@ -881,10 +962,30 @@ public class OrderService { @Transactional(rollbackFor = Exception.class) public Result clearCart(CartVo cartVo) { String day = DateUtils.getDay(); - List list = cashierCartMapper.selectAllCreateOrder(cartVo.getMasterId(), Integer.valueOf(cartVo.getShopId()), day, "create", cartVo.getUuid()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, cartVo.getShopId()) + .eq(TbCashierCart::getTradeDay, day) + .eq(TbCashierCart::getStatus, "create"); + + + // 普通点单 + if (StrUtil.isBlank(cartVo.getTableId())) { + queryWrapper.eq(TbCashierCart::getMasterId, cartVo.getMasterId()); + queryWrapper.isNull(TbCashierCart::getTableId); + // 台桌点单 + }else if (StrUtil.isNotBlank(cartVo.getTableId()) && cartVo.getVipUserId() == null) { + queryWrapper.eq(TbCashierCart::getTableId, cartVo.getTableId()) + .eq(TbCashierCart::getMasterId, cartVo.getMasterId()); + // 会员点单 + }else { + queryWrapper.eq(TbCashierCart::getUserId, cartVo.getVipUserId()); + } + + List list = mpCashierCartMapper.selectList(queryWrapper); +// List list = cashierCartMapper.selectAllCreateOrder(cartVo.getMasterId(), Integer.valueOf(cartVo.getShopId()), day, "create", cartVo.getUuid()); int orderId = 0; - List productSkuPos=new ArrayList<>(); - List skuIds=new ArrayList<>(); + List productSkuPos = new ArrayList<>(); + List skuIds = new ArrayList<>(); for (TbCashierCart cashierCart : list) { // 数量减少, 返还库存 String message = redisUtil.getMessage(RedisCst.ORDER_PRODUCT_NUM + cashierCart.getId()); @@ -1379,4 +1480,19 @@ public class OrderService { JSONObject jsonObject = JSON.parseObject(HttpClientUtil.doGet(requestUrl,requestUrlParam)); return jsonObject; } + + public Object updateVip(UpdateVipDTO updateVipDTO) { + LambdaUpdateWrapper queryWrapper = new LambdaUpdateWrapper<>(); + queryWrapper.eq(TbCashierCart::getTableId, updateVipDTO.getTableId()) + .eq(TbCashierCart::getShopId, updateVipDTO.getShopId()) + .eq(TbCashierCart::getMasterId, updateVipDTO.getMasterId()); + + if (updateVipDTO.getType().equals(0)) { + queryWrapper.set(TbCashierCart::getUserId, null); + queryWrapper.eq(TbCashierCart::getUserId, updateVipDTO.getVipUserId()); + }else { + queryWrapper.set(TbCashierCart::getUserId, updateVipDTO.getVipUserId()); + } + return mpCashierCartMapper.update(null, queryWrapper); + } } From 6b436da4d314aeb7c700ce4823db38259dc9f078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 20 Aug 2024 14:06:06 +0800 Subject: [PATCH 019/143] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E5=8F=96=E6=B6=88=E8=80=97=E6=9D=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) 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 ea1e25e..9f8f803 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -130,19 +130,19 @@ public class OrderService { - List proskuConList= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); - if(Objects.nonNull(proskuConList)&&proskuConList.size()>0){ - for (TbProskuCon proskuCon : proskuConList) { - if("1".equals(proskuCon.getStatus())){ - TbConsInfo consInfo= tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); - if("1".equals(consInfo.getIsCheck())){ - if(N.gt(proskuCon.getSurplusStock(),consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))){ - return Result.fail("商品:".concat(product.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); - } - } - } - } - } +// List proskuConList= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); +// if(Objects.nonNull(proskuConList)&&proskuConList.size()>0){ +// for (TbProskuCon proskuCon : proskuConList) { +// if("1".equals(proskuCon.getStatus())){ +// TbConsInfo consInfo= tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); +// if("1".equals(consInfo.getIsCheck())){ +// if(N.gt(proskuCon.getSurplusStock(),consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))){ +// return Result.fail("商品:".concat(product.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); +// } +// } +// } +// } +// } From d8027c92b26f2617a84d0e5eb41a0e9288b6c59f Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 20 Aug 2024 17:03:51 +0800 Subject: [PATCH 020/143] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0mybatisplus?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 90 ++++++++++++------- .../cashierservice/service/OrderService.java | 21 +++-- src/main/resources/application.yml | 5 +- 3 files changed, 78 insertions(+), 38 deletions(-) diff --git a/pom.xml b/pom.xml index 15b70c2..6c09948 100644 --- a/pom.xml +++ b/pom.xml @@ -48,11 +48,11 @@ hutool-all 4.5.18 - - - - - + + + + + org.projectlombok lombok @@ -69,11 +69,10 @@ 1.9.4 - com.baomidou - mybatis-plus-boot-starter - 3.5.7 + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.1 - org.mybatis.generator mybatis-generator-core @@ -186,30 +185,57 @@ 2.2.0 + + com.baomidou + mybatis-plus + 3.3.1 + + + org.mybatis + mybatis-spring + + + + + com.baomidou + mybatis-plus-boot-starter + 3.3.1 + + + org.mybatis + mybatis-spring + + + org.springframework.boot + spring-boot-starter-jdbc + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 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 fb34dd9..4811a44 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -141,10 +141,10 @@ public class OrderService { if ((StrUtil.isNotBlank(tableId))) { TbShopTable shopTable = mpShopTableMapper.selectOne(new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, tableId) - .eq(TbShopTable::getStatus, "opening")); + .in(TbShopTable::getStatus, "idle", "opening")); if (shopTable == null) { - return Result.fail("台桌不存在或未开台"); + return Result.fail("台桌不处于开台或空闲状态"); } } @@ -389,14 +389,19 @@ public class OrderService { } int orderId = 0; String uuid = ""; + ArrayList ids = new ArrayList<>(); for (TbCashierCart cashierCart : list) { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { orderId = Integer.parseInt(cashierCart.getOrderId()); } cashierCart.setStatus("create"); + ids.add(cashierCart.getId()); } - mpCashierCartMapper.insertOrUpdate(list); +// mpCashierCartMapper.insertOrUpdate(list); // cashierCartMapper.updateStatusByMaster(Integer.valueOf(shopId), masterId, "create", day, uuid); + mpCashierCartMapper.update(null, new LambdaUpdateWrapper() + .set(TbCashierCart::getStatus, "create") + .in(TbCashierCart::getId, ids)); if (orderId > 0) { tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); @@ -908,13 +913,19 @@ public class OrderService { return Result.fail(CodeEnum.CARTJH); } int orderId = 0; + ArrayList ids = new ArrayList<>(); for (TbCashierCart cashierCart : list) { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { orderId = Integer.parseInt(cashierCart.getOrderId()); } - cashierCart.setStatus("create"); + ids.add(cashierCart.getId()); +// cashierCart.setStatus("create"); +// } + } - mpCashierCartMapper.insertOrUpdate(list); + mpCashierCartMapper.update(null, new LambdaUpdateWrapper() + .set(TbCashierCart::getStatus, "create") + .in(TbCashierCart::getId, ids)); // cashierCartMapper.updateStatusByMaster(shopId, masterId, "create", day, uuid); if (orderId > 0) { tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 33ff223..2a57baa 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -57,5 +57,8 @@ wx: warnMsgTmpId: C08OUr80x6wGmUN1zpFhSQ3Sv7VF5vksdZigiEx2pD0 - +mybatis-plus: + global-config: + db-config: + id-type: auto From 653254f9f3e4485cfa596567f5ba14a2aab33a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 20 Aug 2024 17:17:55 +0800 Subject: [PATCH 021/143] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E6=8A=98=E6=89=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PayController.java | 27 +++- .../cashierservice/entity/TbOrderInfo.java | 2 + .../entity/TbPlussShopStaff.java | 10 ++ .../cashierservice/service/PayService.java | 143 ++++++++++++++++-- .../system/cashierservice/sign/CodeEnum.java | 5 + .../resources/mapper/TbOrderInfoMapper.xml | 4 + .../mapper/TbPlussShopStaffMapper.xml | 3 +- 7 files changed, 173 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java index caf6d42..1a5aecc 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java @@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.util.List; @CrossOrigin(origins = "*") @@ -55,10 +56,12 @@ public class PayController { @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("orderId") String orderId, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount, @RequestParam("authCode") String authCode ) { - return payService.scanPay(orderId,authCode, IpUtil.getIpAddr(request),token); + return payService.scanPay(orderId,authCode, IpUtil.getIpAddr(request),token,payAmount,discountAmount); } @@ -79,9 +82,11 @@ public class PayController { @RequestHeader("clientType") String clientType, @RequestParam("orderId") String orderId, @RequestParam("memberId") String memberId, - @RequestParam("memberAccount") String memberAccount + @RequestParam("memberAccount") String memberAccount, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount ){ - return payService.accountPay(orderId,memberId,token,memberAccount); + return payService.accountPay(orderId,memberId,token,memberAccount,payAmount,discountAmount); } @@ -164,9 +169,11 @@ public class PayController { @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("orderId") String orderId, - @RequestParam("memberCode") String memberCode + @RequestParam("memberCode") String memberCode, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount ){ - return payService.memberScanPay(orderId,memberCode,token); + return payService.memberScanPay(orderId,memberCode,token,payAmount,discountAmount); } @@ -184,8 +191,10 @@ public class PayController { public Result cashPay(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestParam("orderId") String orderId){ - return payService.cashPay(orderId,token); + @RequestParam("orderId") String orderId, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount){ + return payService.cashPay(orderId,token,payAmount,discountAmount); } @@ -204,7 +213,9 @@ public class PayController { public Result bankPay(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestParam("orderId") String orderId){ + @RequestParam("orderId") String orderId, + @RequestParam("payAmount") BigDecimal payAmount, + @RequestParam("discountAmount") BigDecimal discountAmount){ return payService.bankPay(orderId,token); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java index 780b755..3ef40ba 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java @@ -100,6 +100,8 @@ public class TbOrderInfo implements Serializable { private String outNumber; + private Integer staffId; + private static final long serialVersionUID = 1L; public TbOrderInfo(){ super(); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPlussShopStaff.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPlussShopStaff.java index a9a829d..6955571 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPlussShopStaff.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPlussShopStaff.java @@ -14,6 +14,8 @@ public class TbPlussShopStaff implements Serializable { private String password; + private String discountType; + private BigDecimal maxDiscountAmount; private Boolean status; @@ -72,6 +74,14 @@ public class TbPlussShopStaff implements Serializable { this.password = password == null ? null : password.trim(); } + public String getDiscountType() { + return discountType; + } + + public void setDiscountType(String discountType) { + this.discountType = discountType; + } + public BigDecimal getMaxDiscountAmount() { return maxDiscountAmount; } 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 d9a49ce..187c27f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -32,6 +32,7 @@ import java.math.RoundingMode; import java.util.*; import static com.chaozhanggui.system.cashierservice.sign.CodeEnum.ACCOUNTEIXST; +import static com.chaozhanggui.system.cashierservice.sign.CodeEnum.SUCCESS; @Service @Slf4j @@ -115,6 +116,10 @@ public class PayService { TbmerchantAccountMapper tbmerchantAccountMapper; + @Autowired + TbPlussShopStaffMapper tbPlussShopStaffMapper; + + public static void main(String[] args) { System.out.printf("%.2f%n", new BigDecimal(1).setScale(2, RoundingMode.DOWN)); @@ -126,7 +131,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result scanPay(String orderId, String authCode, String ip, String token) { + public Result scanPay(String orderId, String authCode, String ip, String token,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(authCode) || ObjectUtil.isEmpty(ip)) { return Result.fail(CodeEnum.PARAM); } @@ -143,6 +148,26 @@ public class PayService { } + + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + + List cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, null); if (ObjectUtil.isEmpty(cashierCarts) || ObjectUtil.isNull(cashierCarts)) { return Result.fail(CodeEnum.CARTEXIST); @@ -194,7 +219,7 @@ public class PayService { if (ObjectUtil.isEmpty(payment) || payment == null) { payment = new TbOrderPayment(); payment.setPayTypeId("ysk"); - payment.setAmount(orderInfo.getOrderAmount()); + payment.setAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); payment.setPaidAmount(orderInfo.getPayAmount()); payment.setHasRefundAmount(BigDecimal.ZERO); payment.setPayName(payName); @@ -214,9 +239,12 @@ public class PayService { } - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); orderInfo.setPayType(qpay); orderInfo.setUpdatedAt(System.currentTimeMillis()); + orderInfo.setStaffId(ObjectUtil.isNotNull(staff)?staff.getId():null); tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); if ("ysk".equals(thirdPayType)) { @@ -432,7 +460,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result accountPay(String orderId, String memberId, String token,String memberAccount) { + public Result accountPay(String orderId, String memberId, String token,String memberAccount,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId) ) { if(ObjectUtil.isEmpty(memberAccount)){ if(ObjectUtil.isEmpty(memberId)){ @@ -460,12 +488,33 @@ public class PayService { } + int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "deposit"); if (count < 1) { return Result.fail(CodeEnum.PAYTYPENOEXIST); } + + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + + TbShopUser user =null; if(ObjectUtil.isNotEmpty(memberId)){ @@ -510,7 +559,10 @@ public class PayService { tbShopUserFlowMapper.insert(flow); - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setUserId(user.getUserId()); orderInfo.setMemberId(user.getId().toString()); orderInfo.setPayType("deposit"); @@ -546,7 +598,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result memberScanPay(String orderId, String memberCode, String token) { + public Result memberScanPay(String orderId, String memberCode, String token,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(memberCode)) { return Result.fail(CodeEnum.PARAM); } @@ -569,6 +621,26 @@ public class PayService { } + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + + + TbUserInfo tbUserInfo = tbUserInfoMapper.selectByCardNo(memberCode); if (ObjectUtil.isEmpty(tbUserInfo)) { return Result.fail(ACCOUNTEIXST); @@ -601,8 +673,10 @@ public class PayService { flow.setCreateTime(new Date()); tbShopUserFlowMapper.insert(flow); - - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setMemberId(user.getUserId()); orderInfo.setPayType("deposit"); orderInfo.setStatus("closed"); @@ -637,7 +711,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result cashPay(String orderId, String token) { + public Result cashPay(String orderId, String token,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId)) { return Result.fail(CodeEnum.PARAM); } @@ -654,13 +728,34 @@ public class PayService { } + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } + + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash"); if (count < 1) { return Result.fail(CodeEnum.PAYTYPENOEXIST); } - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); @@ -691,7 +786,7 @@ public class PayService { } @Transactional(rollbackFor = Exception.class) - public Result bankPay(String orderId, String token) { + public Result bankPay(String orderId, String token,BigDecimal payAmount,BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId)) { return Result.fail(CodeEnum.PARAM); } @@ -713,8 +808,29 @@ public class PayService { return Result.fail(CodeEnum.PAYTYPENOEXIST); } + JSONObject tokeObj= TokenUtil.parseParamFromToken(token); + if(Objects.isNull(tokeObj)){ + return Result.fail(CodeEnum.TOKENTERROR); + } - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); + + TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); + + if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ + if("0".equals(staff.getDiscountType())){ + if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ + return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); + } + } + + } + + + orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); + orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); + orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); @@ -835,6 +951,9 @@ public class PayService { saleAmount = saleAmount.add(it.getPrice()); payAmount = payAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN) .multiply(new BigDecimal(map1.get(it.getId())))); + if(ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())&&ObjectUtil.isNotNull(orderInfo.getDiscountRatio())){ + payAmount=payAmount.multiply(orderInfo.getDiscountRatio()).setScale(2,BigDecimal.ROUND_DOWN); + } // payAmount=payAmount.add(it.getPriceAmount()); packAMount = packAMount.add(it.getPackAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId())))); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java index bdcbf61..dca35d5 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java @@ -104,6 +104,11 @@ public enum CodeEnum { PWDERROE("100038",false,"操作密码错误","fail"), + STAFFNOEXISTERROE("100039",false,"员工信息不存在","fail"), + + STAFFDISCOUNTAMOUNTHIGHT("100040",false,"优惠金额不能大于员工授权额度","fail"), + + diff --git a/src/main/resources/mapper/TbOrderInfoMapper.xml b/src/main/resources/mapper/TbOrderInfoMapper.xml index fbff1b4..6d79ed9 100644 --- a/src/main/resources/mapper/TbOrderInfoMapper.xml +++ b/src/main/resources/mapper/TbOrderInfoMapper.xml @@ -515,6 +515,10 @@ remark = #{remark,jdbcType=VARCHAR}, + + + staff_id = #{staffId,jdbcType=INTEGER}, + where id = #{id,jdbcType=INTEGER} diff --git a/src/main/resources/mapper/TbPlussShopStaffMapper.xml b/src/main/resources/mapper/TbPlussShopStaffMapper.xml index a6525b6..e440c6e 100644 --- a/src/main/resources/mapper/TbPlussShopStaffMapper.xml +++ b/src/main/resources/mapper/TbPlussShopStaffMapper.xml @@ -7,6 +7,7 @@ + @@ -19,7 +20,7 @@ id - , code, name, account, password, max_discount_amount, status, employee, shop_id, + , code, name, account, password,discount_type, max_discount_amount, status, employee, shop_id, created_at, updated_at, type,is_manage,is_pc + From b7708d82e10ae07661c0a47ce54053254b326beb Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Wed, 21 Aug 2024 10:23:24 +0800 Subject: [PATCH 027/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E5=90=8E=E9=80=89=E6=8B=A9=E4=BC=9A=E5=91=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrderController.java | 2 +- .../cashierservice/entity/vo/TbShopTableVO.java | 11 +++++++++++ .../cashierservice/service/OrderService.java | 17 +++++++---------- src/main/resources/mapper/TbShopTableMapper.xml | 2 +- 4 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbShopTableVO.java diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java index fc5f101..16a9aa7 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java @@ -45,7 +45,7 @@ public class OrderController { String userId = jsonObject.getString("accountId"); return orderService.createCart(cartVo.getMasterId(),cartVo.getProductId(),cartVo.getShopId(), cartVo.getSkuId(),cartVo.getNumber(),userId,clientType,cartVo.getCartId(),cartVo.getIsGift(), - cartVo.getIsPack(),cartVo.getUuid(),cartVo.getType(), cartVo.getVipUserId(), cartVo.getTableId()); + cartVo.getIsPack(),cartVo.getUuid(),cartVo.getType(), cartVo.getTableId()); } @MyLog(value = "查询购物车信息", tag = LogTag.CART) 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 new file mode 100644 index 0000000..a5af751 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbShopTableVO.java @@ -0,0 +1,11 @@ +package com.chaozhanggui.system.cashierservice.entity.vo; + +import com.chaozhanggui.system.cashierservice.entity.TbShopTable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class TbShopTableVO extends TbShopTable { + private Integer userId; +} 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 7b6685e..d15f670 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -108,7 +108,7 @@ public class OrderService { @Transactional(rollbackFor = Exception.class) public Result createCart(String masterId, String productId, String shopId, Integer skuId, Integer number, - String userId, String clientType, Integer cartId, String isGift, String isPack, String uuid, String type, Integer vipUserId, String tableId) { + String userId, String clientType, Integer cartId, String isGift, String isPack, String uuid, String type, String tableId) { if (Objects.isNull(number) || number < 0) { return Result.fail(CodeEnum.NUMBER); } @@ -209,7 +209,6 @@ public class OrderService { cashierCart.setNumber(cashierCart.getNumber()+number); cashierCart.setTotalNumber(cashierCart.getNumber()+number); cashierCart.setUpdatedAt(System.currentTimeMillis()); - cashierCart.setUserId(vipUserId); cashierCartMapper.updateByPrimaryKey(cashierCart); cashierCartMapper.deleteByPrimaryKey(cart.getId()); @@ -221,7 +220,6 @@ public class OrderService { cart.setNumber(number); cart.setIsGift(isGift); cart.setIsPack(isPack); - cart.setUserId(vipUserId); if (isPack.equals("false")){ cart.setPackFee(BigDecimal.ZERO); @@ -259,7 +257,6 @@ public class OrderService { cashierCart.setStatus("create"); cashierCart.setIsPack(isPack); cashierCart.setIsGift(isGift); - cashierCart.setUserId(vipUserId); if (isGift.equals("false")) { cashierCart.setTotalAmount(new BigDecimal(number).multiply(skuWithBLOBs.getSalePrice())); } else { @@ -281,7 +278,6 @@ public class OrderService { cashierCartMapper.insert(cashierCart); cart=cashierCart; } else { - cashierCart.setUserId(vipUserId); if (type.equals("add")) { cashierCart.setNumber(cashierCart.getNumber() + number); @@ -293,7 +289,6 @@ public class OrderService { }else { cashierCart.setPackFee(new BigDecimal(number).multiply(product.getPackFee())); } - cashierCart.setUserId(vipUserId); cashierCart.setTotalAmount(new BigDecimal(cashierCart.getNumber()).multiply(skuWithBLOBs.getSalePrice()).add(cashierCart.getPackFee())); mpCashierCartMapper.updateById(cashierCart); } @@ -984,12 +979,14 @@ public class OrderService { queryWrapper.eq(TbCashierCart::getMasterId, cartVo.getMasterId()); queryWrapper.isNull(TbCashierCart::getTableId); // 台桌点单 - }else if (StrUtil.isNotBlank(cartVo.getTableId()) && cartVo.getVipUserId() == null) { + }else if (StrUtil.isNotBlank(cartVo.getTableId()) ) { queryWrapper.eq(TbCashierCart::getTableId, cartVo.getTableId()) - .eq(TbCashierCart::getMasterId, cartVo.getMasterId()); + .and(query -> { + query.eq(TbCashierCart::getMasterId, cartVo.getMasterId()) + .or() + .isNull(TbCashierCart::getMasterId); + }); // 会员点单 - }else { - queryWrapper.eq(TbCashierCart::getUserId, cartVo.getVipUserId()); } List list = mpCashierCartMapper.selectList(queryWrapper); diff --git a/src/main/resources/mapper/TbShopTableMapper.xml b/src/main/resources/mapper/TbShopTableMapper.xml index b0e202a..0659e48 100644 --- a/src/main/resources/mapper/TbShopTableMapper.xml +++ b/src/main/resources/mapper/TbShopTableMapper.xml @@ -240,7 +240,7 @@ and a.status = #{status} - + GROUP BY a.id order by a.`sort` asc 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 028/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E5=85=88=E4=BB=98=E6=AC=BE=E5=90=8E=E4=BB=98=E6=AC=BE=E6=93=8D?= =?UTF-8?q?=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 @@ select From 24586d3b13c30a85623bcfca9f31606e4d9eadab Mon Sep 17 00:00:00 2001 From: yijiegong Date: Thu, 22 Aug 2024 09:38:42 +0800 Subject: [PATCH 032/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6=E4=BF=A1=E6=81=AF=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..8f360ee 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -361,7 +361,7 @@ public class OrderService { // 普通点单 if (StrUtil.isBlank(tableId)) { queryWrapper.eq(TbCashierCart::getMasterId, masterId); - queryWrapper.isNull(TbCashierCart::getTableId); + queryWrapper.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, ""); // 台桌点单 }else if (StrUtil.isNotBlank(tableId)) { queryWrapper.eq(TbCashierCart::getTableId, tableId) From 1a968775ff42037f92e36efff390db09b5a929d5 Mon Sep 17 00:00:00 2001 From: yijiegong Date: Thu, 22 Aug 2024 09:56:19 +0800 Subject: [PATCH 033/143] =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=A7=92=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/controller/ProductController.java | 3 ++- .../system/cashierservice/dao/TbProductMapper.java | 2 +- .../system/cashierservice/service/ProductService.java | 6 +++--- src/main/resources/mapper/TbProductMapper.xml | 1 + 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/ProductController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/ProductController.java index 098406f..15bf094 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/ProductController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/ProductController.java @@ -77,11 +77,12 @@ public class ProductController { @RequestParam("categoryId") String categoryId, @RequestParam("commdityName") String commdityName, @RequestParam("masterId") String masterId, + @RequestParam("tableId") String tableId, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize ){ - return productService.queryNewCommodityInfo(shopId,categoryId,commdityName,page,pageSize,masterId); + return productService.queryNewCommodityInfo(shopId,categoryId,commdityName, tableId,page,pageSize,masterId); } @GetMapping(value = "queryCategory") diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java index 4284c55..814134a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java @@ -40,7 +40,7 @@ public interface TbProductMapper { - Integer countOrderByshopIdAndProductId(@Param("shopId") String shopId, @Param("productId") String productId, @Param("masterId") String masterId,@Param("day") String day); + Integer countOrderByshopIdAndProductId(@Param("shopId") String shopId, @Param("productId") String productId, @Param("masterId") String masterId,@Param("day") String day, @Param("tableId") String tableId); void updateStockById(@Param("productId")Integer productId, @Param("num")Integer num); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java index f3c3719..a0cde46 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -81,7 +81,7 @@ public class ProductService { String day = DateUtils.getDay(); if(ObjectUtil.isNotEmpty(tbProductWithBLOBs)){ tbProductWithBLOBs.parallelStream().forEach(it->{ - Integer orderCount=tbProductMapper.countOrderByshopIdAndProductId(it.getShopId(),it.getId().toString(),masterId,day); + Integer orderCount=tbProductMapper.countOrderByshopIdAndProductId(it.getShopId(),it.getId().toString(),masterId,day, ""); it.setOrderCount((ObjectUtil.isNull(orderCount)||ObjectUtil.isEmpty(orderCount))?0:orderCount); TbProductSpec tbProductSpec= tbProductSpecMapper.selectByPrimaryKey(it.getSpecId()); if(ObjectUtil.isEmpty(tbProductSpec)){ @@ -110,7 +110,7 @@ public class ProductService { } - public Result queryNewCommodityInfo(String shopId, String categoryId, String commdityName, int page, int pageSize, String masterId) { + public Result queryNewCommodityInfo(String shopId, String categoryId, String commdityName, String tableId, int page, int pageSize, String masterId) { List tbProductWithBLOBs=null; PageHelperUtil.startPage(page,pageSize); if(ObjectUtil.isEmpty(categoryId)){ @@ -126,7 +126,7 @@ public class ProductService { String day = DateUtils.getDay(); if(ObjectUtil.isNotEmpty(tbProductWithBLOBs)){ tbProductWithBLOBs.parallelStream().forEach(it->{ - Integer orderCount=tbProductMapper.countOrderByshopIdAndProductId(it.getShopId(),it.getId().toString(),masterId,day); + Integer orderCount=tbProductMapper.countOrderByshopIdAndProductId(it.getShopId(),it.getId().toString(),masterId,day, tableId); it.setOrderCount((ObjectUtil.isNull(orderCount)||ObjectUtil.isEmpty(orderCount))?0:orderCount); TbProductSpec tbProductSpec= tbProductSpecMapper.selectByPrimaryKey(it.getSpecId()); if(ObjectUtil.isEmpty(tbProductSpec)){ diff --git a/src/main/resources/mapper/TbProductMapper.xml b/src/main/resources/mapper/TbProductMapper.xml index 3d7c49a..48feaa0 100644 --- a/src/main/resources/mapper/TbProductMapper.xml +++ b/src/main/resources/mapper/TbProductMapper.xml @@ -962,6 +962,7 @@ AND product_id = #{productId} AND `status` = 'create' and master_id = #{masterId} + and table_id = #{tableId} and trade_day = #{day} group by shop_id,product_id From 1e66c996062b9f27735e8f17bb8e34bbd08b1a32 Mon Sep 17 00:00:00 2001 From: yijiegong Date: Thu, 22 Aug 2024 10:37:15 +0800 Subject: [PATCH 034/143] =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=8A=A0?= =?UTF-8?q?=E5=85=A5bug=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/dao/TbCashierCartMapper.java | 2 +- .../system/cashierservice/service/OrderService.java | 4 ++-- src/main/resources/mapper/TbCashierCartMapper.xml | 3 +++ src/main/resources/mapper/TbProductSkuMapper.xml | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java index 5d891d8..b118496 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java @@ -30,7 +30,7 @@ public interface TbCashierCartMapper { List selectALlByMasterId(@Param("masterId") String masterId,@Param("status") String status); TbCashierCart selectByDetail(@Param("masterId") String masterId, @Param("productId") String productId, - @Param("shopId") String shopId, @Param("skuId") String skuId, @Param("day") String day,@Param("uuid") String uuid); + @Param("shopId") String shopId, @Param("skuId") String skuId, @Param("day") String day,@Param("uuid") String uuid, @Param("tableId") String tableId); TbCashierCart selectDetailByQrcode(@Param("tableId") String tableId, @Param("productId") String productId, @Param("shopId") String shopId, @Param("skuId") String skuId, @Param("uuid") String uuid); 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 69db4ae..697d6f2 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -205,7 +205,7 @@ public class OrderService { //查询现有规格商品 if("edit".equals(type)&&!cart.getSkuId().equals(skuId.toString())){ - TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid); + TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid, tableId); if(Objects.nonNull(cashierCart)){ cashierCart.setNumber(cashierCart.getNumber()+number); cashierCart.setTotalNumber(cashierCart.getNumber()+number); @@ -239,7 +239,7 @@ public class OrderService { } } else { List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); - TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid); + TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid, tableId); if (number > 0) { if (Objects.isNull(cashierCart)) { cashierCart = new TbCashierCart(); diff --git a/src/main/resources/mapper/TbCashierCartMapper.xml b/src/main/resources/mapper/TbCashierCartMapper.xml index a86be1a..904249b 100644 --- a/src/main/resources/mapper/TbCashierCartMapper.xml +++ b/src/main/resources/mapper/TbCashierCartMapper.xml @@ -58,6 +58,9 @@ and uuid = #{uuid} + + and table_id = #{tableId} + From 3794cd5540a623f4e65e2d87b421390a7cb611e2 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 26 Aug 2024 13:36:42 +0800 Subject: [PATCH 042/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=8F=B0=E6=A1=8C=E6=9C=80=E6=96=B0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=8F=B7=E6=9F=A5=E8=AF=A2=E9=97=AE=E9=A2=98fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 1 + src/main/resources/mapper/TbShopTableMapper.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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 e911861..f4555f0 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -604,6 +604,7 @@ public class OrderService { orderInfo.setUserId(orderVo.getUserId()); if (StrUtil.isNotBlank(orderVo.getTableId())) { orderInfo.setTableId(orderVo.getTableId()); + orderInfo.setUseType("postPay"); } if (Objects.nonNull(tbToken)){ orderInfo.setTokenId(tbToken.getId()); diff --git a/src/main/resources/mapper/TbShopTableMapper.xml b/src/main/resources/mapper/TbShopTableMapper.xml index 4134f17..358a0ca 100644 --- a/src/main/resources/mapper/TbShopTableMapper.xml +++ b/src/main/resources/mapper/TbShopTableMapper.xml @@ -232,7 +232,7 @@ select a.*, b.user_id, c.master_id, c.id as orderId, c.order_no as orderNo, c.amount as orderAmount from tb_shop_table a left join tb_order_info b on a.qrcode=b.table_id and (b.`status`='unpaid') and b.user_id is not null and b.shop_id=#{shopId} left join tb_order_info c on a.qrcode=c.table_id and (c.`status`='unpaid') and c.master_id is not null and c.shop_id=#{shopId} - where a.shop_id=#{shopId} and b.trade_day=#{day} + where a.shop_id=#{shopId} and b.trade_day=#{day} and c.trade_day=#{day} and b.use_type='postPay' and c.use_type='postPay' and a.area_id = #{areaId} From 1cff6fffcc6ce3a28a77f18c391904dc51c8588e Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 26 Aug 2024 13:38:26 +0800 Subject: [PATCH 043/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=8F=B0=E6=A1=8C=E6=9C=80=E6=96=B0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=8F=B7=E6=9F=A5=E8=AF=A2=E9=97=AE=E9=A2=98fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mapper/TbShopTableMapper.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/mapper/TbShopTableMapper.xml b/src/main/resources/mapper/TbShopTableMapper.xml index 358a0ca..71cbeca 100644 --- a/src/main/resources/mapper/TbShopTableMapper.xml +++ b/src/main/resources/mapper/TbShopTableMapper.xml @@ -230,9 +230,9 @@ From 42e6b3a689692358bbcb54e3550c7f950f728e2f Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 26 Aug 2024 15:27:46 +0800 Subject: [PATCH 050/143] =?UTF-8?q?=E5=85=85=E5=80=BC=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mapper/TbActivateMapper.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/resources/mapper/TbActivateMapper.xml b/src/main/resources/mapper/TbActivateMapper.xml index e70bf21..50bdfce 100644 --- a/src/main/resources/mapper/TbActivateMapper.xml +++ b/src/main/resources/mapper/TbActivateMapper.xml @@ -116,6 +116,12 @@ \ No newline at end of file From ed5bb107d0be2e008c5271ca1bad9654dc1377a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 15:42:21 +0800 Subject: [PATCH 051/143] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E6=8A=98=E6=89=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/controller/MemberController.java | 3 ++- .../system/cashierservice/entity/po/OrderPo.java | 5 +++++ .../system/cashierservice/service/MemberService.java | 2 ++ .../system/cashierservice/service/PayService.java | 2 +- src/main/resources/mapper/TbOrderInfoMapper.xml | 4 +++- 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java index 2f5ce80..0161620 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java @@ -96,7 +96,8 @@ public class MemberController { // public Result returnFlow(@RequestHeader("token") String token, // @RequestHeader("loginName") String loginName, // @RequestHeader("clientType") String clientType, -// @RequestParam("flowId") String flowId +// @RequestParam("flowId") String flowId, +// @RequestParam("remark") String remark // ){ // // diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/OrderPo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/OrderPo.java index e5dadf1..b1f2ce9 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/OrderPo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/OrderPo.java @@ -28,4 +28,9 @@ public class OrderPo { private String remark; + private BigDecimal discountRatio; + + private BigDecimal discountAmount; + + } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 1744c58..92c1f85 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -701,4 +701,6 @@ public class MemberService { + + } 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 4ca5e06..f3c7581 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -895,7 +895,7 @@ public class PayService { orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); - orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); diff --git a/src/main/resources/mapper/TbOrderInfoMapper.xml b/src/main/resources/mapper/TbOrderInfoMapper.xml index 7d233fd..007664d 100644 --- a/src/main/resources/mapper/TbOrderInfoMapper.xml +++ b/src/main/resources/mapper/TbOrderInfoMapper.xml @@ -78,7 +78,9 @@ toi.out_number AS outNumber, toi.table_name AS tableName, toi.remark, - toi.master_id as masterId + toi.master_id as masterId, + toi.discount_ratio as discountRatio, + toi.discount_amount as discountAmount FROM From d3b3fe2492b3264e9881630d4268ebd4ce83742f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 15:49:19 +0800 Subject: [PATCH 052/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/PayService.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) 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 f3c7581..c674966 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -253,7 +253,7 @@ public class PayService { orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); - orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setPayType(qpay); orderInfo.setUpdatedAt(System.currentTimeMillis()); orderInfo.setStaffId(ObjectUtil.isNotNull(staff)?staff.getId():null); @@ -606,7 +606,7 @@ public class PayService { orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); - orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setUserId(user.getUserId()); orderInfo.setMemberId(user.getId().toString()); @@ -722,7 +722,7 @@ public class PayService { orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); - orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setMemberId(user.getUserId()); orderInfo.setPayType("deposit"); @@ -980,7 +980,7 @@ public class PayService { orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); - orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN):null); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); @@ -1024,9 +1024,6 @@ public class PayService { } - - - Integer orderId = list.get(0).getOrderId(); String remark = list.get(0).getRemark(); From 651f2c1427160ac7981f3aa6a21c408c70442e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 16:25:00 +0800 Subject: [PATCH 053/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c674966..063091f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1626,7 +1626,7 @@ public class PayService { if(staff.getMaxDiscountAmount().compareTo(tbOrderInfo.getOrderAmount())>=0){ staff.setMaxDiscountAmount(BigDecimal.ONE); }else { - staff.setMaxDiscountAmount(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN)); + staff.setMaxDiscountAmount(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_UP)); } } From 0f74c30e58264917529a4758094ebc3a90d8f120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 17:00:38 +0800 Subject: [PATCH 054/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 063091f..7cf3b00 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1626,7 +1626,7 @@ public class PayService { if(staff.getMaxDiscountAmount().compareTo(tbOrderInfo.getOrderAmount())>=0){ staff.setMaxDiscountAmount(BigDecimal.ONE); }else { - staff.setMaxDiscountAmount(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_UP)); + staff.setMaxDiscountAmount(BigDecimal.ONE.subtract(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_UP))); } } From ddf9af76b59df0d93a9a406b909bb68976b7a298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 17:31:27 +0800 Subject: [PATCH 055/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/PayService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 7cf3b00..4a9cc30 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1613,13 +1613,15 @@ public class PayService { return Result.fail(CodeEnum.STAFFNOEXISTERROE); } + if("master".equals(staff.getType())){ + return Result.success(SUCCESS,new BigDecimal(0.1)); + } + if(ObjectUtil.isEmpty(staff.getMaxDiscountAmount())||ObjectUtil.isNull(staff.getMaxDiscountAmount())){ return Result.success(SUCCESS,BigDecimal.ZERO); } - if("master".equals(staff.getType())){ - return Result.success(SUCCESS,new BigDecimal(0.1)); - } + if("0".equals(staff.getDiscountType())){ From cf2dfc295c78bcb2b3d85dd87b2a1923f4300fd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 18:02:06 +0800 Subject: [PATCH 056/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/PayService.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) 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 4a9cc30..6d01e27 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -132,11 +132,6 @@ public class PayService { private MpShopTableMapper mpShopTableMapper; - public static void main(String[] args) { - - System.out.printf("%.2f%n", new BigDecimal(1).setScale(2, RoundingMode.DOWN)); - - } public Result queryPayType(String shopId) { return Result.success(CodeEnum.SUCCESS, tbShopPayTypeMapper.selectByShopId(shopId)); @@ -1622,20 +1617,20 @@ public class PayService { } - if("0".equals(staff.getDiscountType())){ - if(staff.getMaxDiscountAmount().compareTo(tbOrderInfo.getOrderAmount())>=0){ - staff.setMaxDiscountAmount(BigDecimal.ONE); + staff.setMaxDiscountAmount(new BigDecimal(0.01)); }else { - staff.setMaxDiscountAmount(BigDecimal.ONE.subtract(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_UP))); + staff.setMaxDiscountAmount(BigDecimal.ONE.subtract(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount(),2,RoundingMode.HALF_DOWN).setScale(2,RoundingMode.HALF_DOWN))); } } return Result.success(SUCCESS,staff.getMaxDiscountAmount()); - - - } + + + public static void main(String[] args) { + } + } From bc5bdf14219a10390aca8816d457707d775279b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 18:22:52 +0800 Subject: [PATCH 057/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/PayService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 6d01e27..5e19c08 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -581,8 +581,8 @@ public class PayService { return Result.fail(CodeEnum.MEMBERINSUFFICIENTFUNDS); } - user.setAmount(user.getAmount().subtract(orderInfo.getOrderAmount())); - user.setConsumeAmount(user.getConsumeAmount().add(orderInfo.getOrderAmount())); + user.setAmount(user.getAmount().subtract(payAmount)); + user.setConsumeAmount(user.getConsumeAmount().add(payAmount)); user.setConsumeNumber(user.getConsumeNumber() + 1); user.setUpdatedAt(System.currentTimeMillis()); tbShopUserMapper.updateByPrimaryKeySelective(user); From a1d0fa1a7fc0157d96dad827240d9f93ceb97ce4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 18:27:12 +0800 Subject: [PATCH 058/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5e19c08..e4d9984 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1619,7 +1619,7 @@ public class PayService { if("0".equals(staff.getDiscountType())){ if(staff.getMaxDiscountAmount().compareTo(tbOrderInfo.getOrderAmount())>=0){ - staff.setMaxDiscountAmount(new BigDecimal(0.01)); + staff.setMaxDiscountAmount(new BigDecimal(0.1)); }else { staff.setMaxDiscountAmount(BigDecimal.ONE.subtract(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount(),2,RoundingMode.HALF_DOWN).setScale(2,RoundingMode.HALF_DOWN))); } From 253e2f9c0b94d202cf09270e41944c63160159a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 27 Aug 2024 09:11:14 +0800 Subject: [PATCH 059/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e4d9984..294b85c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -593,7 +593,7 @@ public class PayService { flow.setBizCode("accountPay"); flow.setBizName("会员储值卡支付"); flow.setType("-"); - flow.setAmount(orderInfo.getOrderAmount()); + flow.setAmount(payAmount); flow.setBalance(user.getAmount()); flow.setCreateTime(new Date()); tbShopUserFlowMapper.insert(flow); From f585a4f46aea12bb4fa2530a0e510bc7a79e83f5 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 27 Aug 2024 09:11:55 +0800 Subject: [PATCH 060/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrderController.java | 6 +- .../dao/TbCashierCartMapper.java | 3 + .../rabbit/PrintMechineConsumer.java | 50 ++++---- .../cashierservice/service/OrderService.java | 107 +++++++++++++++--- .../cashierservice/service/PayService.java | 41 ++++++- .../service/ShopInfoService.java | 21 ++++ .../resources/mapper/TbShopTableMapper.xml | 2 +- 7 files changed, 184 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java index 16a9aa7..34b26d4 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java @@ -111,7 +111,7 @@ public class OrderController { String userId = jsonObject.getString("accountId"); orderVo.setMerchantId(Integer.valueOf(userId)); orderVo.setUserId(jsonObject.getString("staffId")); - return orderService.createOrder(orderVo,clientType,token); + return orderService.createOrder(orderVo,clientType,token, null, true); } @PostMapping("/createBackOrder") public Result createBackOrder(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @@ -151,7 +151,9 @@ public class OrderController { public Result orderDetail(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("shopId") Integer shopId, @RequestParam("id") Integer id){ - return orderService.orderDetail(shopId,id); + JSONObject jsonObject = TokenUtil.parseParamFromToken(token); + String userId = jsonObject.getString("accountId"); + return orderService.orderDetail(shopId,id, clientType, token, userId, jsonObject.getString("staffId")); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java index b118496..15099b3 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java @@ -72,4 +72,7 @@ public interface TbCashierCartMapper { @Delete("delete from tb_cashier_cart where master_id=#{masterId} and id=#{cartId}") int deleteByCartId(@Param("masterId") String masterId, @Param("cartId")Integer cartId); + + @Select("select count(*) from tb_cashier_cart where shop_id=#{shopId} and `status`='create' and table_id=#{qrcode}") + int countTable(@Param("qrcode") String qrcode, @Param("shopId") Integer shopId); } 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 247e7ce..1c11095 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -55,6 +55,7 @@ public class PrintMechineConsumer { public void listener(String message) { String orderId = message; + log.info("接收到打印mq消息: {}", message); try { @@ -187,7 +188,10 @@ public class PrintMechineConsumer { return; } - + if (StrUtil.isNotBlank(orderInfo.getUseType()) && orderInfo.getUseType().equals("postPay") + && (!orderInfo.getStatus().equals("closed"))) { + return; + } List tbOrderDetails=tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); if(ObjectUtil.isNotEmpty(tbOrderDetails)&&tbOrderDetails.size()>0) { List detailList = new ArrayList<>(); @@ -219,25 +223,30 @@ public class PrintMechineConsumer { } if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) { - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), "0", detailList, orderInfo.getRemark()); -// OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList); - detailPO.setOutNumber(orderInfo.getOutNumber()); - String printType = "结算单"; - String data = PrinterUtils.getCashPrintData(detailPO, printType, orderInfo.getOrderType()); - String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; - if (StrUtil.isNotBlank(orderInfo.getUseType()) && orderInfo.getUseType().equals("postPay") - && (!orderInfo.getStatus().equals("closed"))) { - return; + String message = redisUtils.getMessage("IS_PRINT:" + orderInfo.getId()); + if (message == null) { + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), "0", detailList, orderInfo.getRemark()); +// OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList); + detailPO.setOutNumber(orderInfo.getOutNumber()); + String printType = "结算单"; + + String data = PrinterUtils.getCashPrintData(detailPO, printType, orderInfo.getOrderType()); + String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; + + PrinterUtils.printTickets(voiceJson, 3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); + redisUtils.saveMessage("IS_PRINT:" + orderInfo.getId(), "1"); } - PrinterUtils.printTickets(voiceJson, 3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); } } break; case "one": //一菜一品 - + if (StrUtil.isNotBlank(orderInfo.getUseType()) && orderInfo.getUseType().equals("postPay") + && (!orderInfo.getStatus().equals("unpaid"))) { + return; + } if("return".equals(orderInfo.getOrderType())){ List details= tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); if(ObjectUtil.isNotEmpty(details)&&details.size()>0){ @@ -257,10 +266,6 @@ public class PrintMechineConsumer { } String data = PrinterUtils.getPrintData("return",orderInfo.getPayType().equals("wx_lite")?orderInfo.getTableName():orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; - if (StrUtil.isNotBlank(orderInfo.getUseType()) && orderInfo.getUseType().equals("postPay") - && (!orderInfo.getStatus().equals("unpaid"))) { - return; - } PrinterUtils.printTickets(voiceJson,3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); } }); @@ -272,7 +277,7 @@ public class PrintMechineConsumer { tbOrderDetails.parallelStream().forEach(it -> { // 已经打印过的菜品不再打印 - if ("postPay".equals(orderInfo.getUseType()) && isPrint(it)) { + if ("postPay".equals(orderInfo.getUseType()) && isPrint(it, orderInfo.getId())) { return; } String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); @@ -312,8 +317,8 @@ public class PrintMechineConsumer { * 判断商品是否已打票 * @return true 已打 false 未打 */ - private boolean isPrint(TbOrderDetail orderDetail) { - String key = RedisCst.ORDER_PRINT + orderDetail.getProductId() + ":" + orderDetail.getProductSkuId(); + private boolean isPrint(TbOrderDetail orderDetail, Integer orderId) { + String key = RedisCst.ORDER_PRINT + orderId + ":" + orderDetail.getProductId() + ":" + orderDetail.getProductSkuId(); String info = redisUtils.getMessage(key); redisUtils.saveMessage(key, String.valueOf(orderDetail.getNum()), 60 * 60 * 24); if (info == null) { @@ -468,6 +473,10 @@ public class PrintMechineConsumer { break; case "one": //一菜一品 + if (!orderInfo.getStatus().equals("unpaid")) { + return; + } + cashierCarts = tbCashierCartMapper.selectByOrderId(orderId,"final"); if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) { @@ -491,6 +500,9 @@ public class PrintMechineConsumer { if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { remark = tbProductSkuWithBLOBs.getSpecSnap(); } + + + FeieyunPrintUtil.getPrintData(tbPrintMachineWithBLOBs.getAddress(),orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getName(), it.getNumber(), remark); } }); 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 d8793cb..6babf52 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -149,6 +149,11 @@ public class OrderService { } } + TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); + if (cart != null && cart.getNumber() < number && StrUtil.isNotBlank(cart.getOrderId()) && StrUtil.isNotBlank(cart.getTableId())) { + return Result.fail("此商品已经出餐不支持减少操作"); + } + // List proskuConList= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); // if(Objects.nonNull(proskuConList)&&proskuConList.size()>0){ // for (TbProskuCon proskuCon : proskuConList) { @@ -200,7 +205,6 @@ public class OrderService { masterId = "#" + String.format("%03d", 1); } } - TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); if (Objects.nonNull(cart)) { //查询现有规格商品 @@ -258,6 +262,7 @@ public class OrderService { cashierCart.setStatus("create"); cashierCart.setIsPack(isPack); cashierCart.setIsGift(isGift); + cashierCart.setSkuName(skuWithBLOBs.getSpecSnap()); if (isGift.equals("false")) { cashierCart.setTotalAmount(new BigDecimal(number).multiply(skuWithBLOBs.getSalePrice())); } else { @@ -374,7 +379,9 @@ public class OrderService { .and(query -> { query.eq(TbCashierCart::getMasterId, finalMasterId) .or() - .isNull(TbCashierCart::getMasterId); + .isNull(TbCashierCart::getMasterId) + .or() + .eq(TbCashierCart::getMasterId, ""); }); } @@ -448,7 +455,7 @@ public class OrderService { return Result.success(CodeEnum.SUCCESS, map); } - @Transactional(rollbackFor = Exception.class) +// @Transactional(rollbackFor = Exception.class) public Result delCart(String masterId, Integer cartId) { @@ -481,13 +488,36 @@ public class OrderService { List skuIds=new ArrayList<>(); skuIds.add(cashierCart.getSkuId()); - cashierCartMapper.deleteByCartId(masterId, cartId); + cashierCartMapper.deleteByPrimaryKey(cartId); + if (cashierCart.getOrderId() != null) { + int list = mpCashierCartMapper.selectCount( new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, cashierCart.getShopId()) + .eq(TbCashierCart::getStatus, "create").eq(TbCashierCart::getTableId, cashierCart.getTableId()) + .and(query2 -> { + query2.or(query3 -> { + query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) + .eq(TbCashierCart::getMasterId, cashierCart.getMasterId()); + }) + .or((query4 -> { + query4.isNull(TbCashierCart::getTradeDay) + .or() + .eq(TbCashierCart::getMasterId, "") + .or() + .eq(TbCashierCart::getMasterId, ""); + })); + })); + + if (list == 0) { + tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId())); + } + + } return Result.success(CodeEnum.SUCCESS); } @Transactional(rollbackFor = Exception.class) - public Result createOrder(OrderVo orderVo, String clientType, String token) { + public Result createOrder(OrderVo orderVo, String clientType, String token, Integer oldOrderId, boolean isPrint) { String day = DateUtils.getDay(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() @@ -513,6 +543,9 @@ public class OrderService { }) .or((query4 -> { query4.isNull(TbCashierCart::getTradeDay) + .or() + .eq(TbCashierCart::getMasterId, "") + .or() .eq(TbCashierCart::getMasterId, ""); })); }); @@ -526,6 +559,16 @@ public class OrderService { } if(ObjectUtil.isEmpty(list)||ObjectUtil.isNull(list)||list.size()<=0){ + if (oldOrderId != null) { + orderDetailMapper.deleteByOUrderId(oldOrderId); + TbOrderInfo orderInfo = new TbOrderInfo(); + orderInfo.setId(oldOrderId); + orderInfo.setOrderAmount(BigDecimal.ZERO); + orderInfo.setDiscountAmount(BigDecimal.ZERO); + orderInfo.setStatus("cancelled"); + tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); +// tbOrderInfoMapper.deleteByPrimaryKey(oldOrderId); + } return Result.fail(CARTEXIST); } BigDecimal totalAmount = BigDecimal.ZERO; @@ -600,7 +643,7 @@ public class OrderService { orderInfo = new TbOrderInfo(orderNo, totalAmount, packAMount, totalAmount, saleAmount, totalAmount, feeAmount, "", "table", "cash", orderVo.getMerchantId().toString(), orderVo.getShopId().toString(), "", (byte) 1, day, masterId); - orderInfo.setMasterId(masterId); + orderInfo.setMasterId(orderVo.getMasterId()); orderInfo.setRemark(orderVo.getRemark()); orderInfo.setUserId(orderVo.getUserId()); orderInfo.setUseType(StrUtil.isNotBlank(orderVo.getTableId()) ? "postPay" : "afterPay"); @@ -637,9 +680,7 @@ public class OrderService { redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId()),object.toString()); orderId = orderInfo.getId(); - if (StrUtil.isNotBlank(orderVo.getTableId())) { - producer.printMechine(String.valueOf(orderId)); - } + } for (TbOrderDetail orderDetail : orderDetails) { orderDetail.setOrderId(orderId); @@ -685,11 +726,13 @@ public class OrderService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.USING.getState())); - producer.printMechine(String.valueOf(orderInfo.getId())); } } if (!StrUtil.isBlank(orderVo.getTableId())) { + if (isPrint) { + producer.printMechine(String.valueOf(orderId)); + } mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.USING.getState())); @@ -1025,21 +1068,26 @@ public class OrderService { String day = DateUtils.getDay(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, cartVo.getShopId()) - .eq(TbCashierCart::getTradeDay, day) .eq(TbCashierCart::getStatus, "create"); - // 普通点单 if (StrUtil.isBlank(cartVo.getTableId())) { - queryWrapper.eq(TbCashierCart::getMasterId, cartVo.getMasterId()); - queryWrapper.isNull(TbCashierCart::getTableId); + queryWrapper.eq(TbCashierCart::getMasterId, cartVo.getMasterId()) + .eq(TbCashierCart::getTradeDay, day) + .and(query -> { + query.isNull(TbCashierCart::getTableId) + .or() + .eq(TbCashierCart::getTableId, ""); + }); // 台桌点单 }else if (StrUtil.isNotBlank(cartVo.getTableId()) ) { queryWrapper.eq(TbCashierCart::getTableId, cartVo.getTableId()) .and(query -> { query.eq(TbCashierCart::getMasterId, cartVo.getMasterId()) .or() - .isNull(TbCashierCart::getMasterId); + .isNull(TbCashierCart::getMasterId) + .or() + .eq(TbCashierCart::getMasterId, ""); }); // 会员点单 } @@ -1049,7 +1097,12 @@ public class OrderService { int orderId = 0; List productSkuPos = new ArrayList<>(); List skuIds = new ArrayList<>(); + ArrayList ids = new ArrayList<>(); for (TbCashierCart cashierCart : list) { + if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { + continue; + } + ids.add(cashierCart.getId()); // 数量减少, 返还库存 String message = redisUtil.getMessage(RedisCst.ORDER_PRODUCT_NUM + cashierCart.getId()); redisUtil.deleteByKey(RedisCst.ORDER_PRODUCT_NUM + cashierCart.getId()); @@ -1082,17 +1135,25 @@ public class OrderService { TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); if (Objects.nonNull(orderInfo) && !orderInfo.getStatus().equals("pending")){ tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); - orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); +// orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); + orderDetailMapper.deleteByOUrderId(orderId); } } + + if (!ids.isEmpty()) { + mpCashierCartMapper.deleteBatchIds(ids); + } +// cashierCartMapper.deleteByPrimaryKey() cashierCartMapper.deleteBymasterId(cartVo.getMasterId(), Integer.valueOf(cartVo.getShopId()), day, "create", cartVo.getUuid()); // if(ObjectUtil.isNotEmpty(productSkuPos)&&productSkuPos.size()>0){ // tbProductSkuMapper.batchStockNum(productSkuPos); // } - + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, cartVo.getTableId()) + .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); return Result.success(CodeEnum.SUCCESS); } @@ -1152,8 +1213,18 @@ public class OrderService { @Autowired TbShopUserMapper tbShopUserMapper; - public Result orderDetail(Integer shopId, Integer id) { + public Result orderDetail(Integer shopId, Integer id, String clientType, String token, String userId, String staffId) { + TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(id); + + OrderVo orderVo = new OrderVo(); + orderVo.setMasterId(orderInfo.getMasterId()); + orderVo.setShopId(Integer.valueOf(orderInfo.getShopId())); + orderVo.setTableId(orderInfo.getTableId()); + orderVo.setMerchantId(Integer.valueOf(userId)); + createOrder(orderVo, clientType, token, id, false); + orderInfo = tbOrderInfoMapper.selectByPrimaryKey(id); + if (Objects.nonNull(orderInfo)) { List list = orderDetailMapper.selectAllByOrderId(id); orderInfo.setDetailList(list); 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 e4d9984..01d6c8f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -2,6 +2,7 @@ package com.chaozhanggui.system.cashierservice.service; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -304,7 +305,10 @@ public class PayService { .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); - + // 打印结算单 + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + producer.printMechine(orderId); + } return Result.success(CodeEnum.SUCCESS, object.getJSONObject("data")); } else { String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null; @@ -322,7 +326,10 @@ public class PayService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); - +// 打印结算单 + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + producer.printMechine(orderId); + } return Result.success(CodeEnum.PAYING); } @@ -378,7 +385,10 @@ public class PayService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); - +// 打印结算单 + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + producer.printMechine(orderId); + } return Result.success(CodeEnum.SUCCESS, mainScanResp); } else if ("TRADE_AWAIT".equals(mainScanResp.getState())) { @@ -393,7 +403,10 @@ public class PayService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); - +// 打印结算单 + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + producer.printMechine(orderId); + } return Result.success(CodeEnum.PAYING); } @@ -789,13 +802,13 @@ public class PayService { return Result.fail("用户不存在或已被禁用"); } - long flag = mpShopUserMapper.decrBalance(vipUserId, orderInfo.getOrderAmount()); + long flag = mpShopUserMapper.decrBalance(vipUserId, (payAmount != null && discountAmount != null) ? payAmount : orderInfo.getOrderAmount()); if (flag < 1) { return Result.fail("余额不足或扣除余额失败"); } TbShopUserFlow userFlow = new TbShopUserFlow(); - userFlow.setAmount(orderInfo.getOrderAmount()); + userFlow.setAmount((payAmount != null && discountAmount != null) ? payAmount : orderInfo.getOrderAmount()); userFlow.setBalance(shopUser.getAmount()); userFlow.setShopUserId(shopUser.getId()); userFlow.setBizCode("vipCardCash"); @@ -808,6 +821,7 @@ public class PayService { if (payAmount != null && discountAmount != null) { orderInfo.setPayAmount(payAmount); orderInfo.setDiscountAmount(discountAmount); + orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); }else { orderInfo.setPayAmount(orderInfo.getOrderAmount()); } @@ -842,6 +856,7 @@ public class PayService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + return Result.success(CodeEnum.SUCCESS); } @@ -927,6 +942,11 @@ public class PayService { .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + // 打印结算单 + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + producer.printMechine(orderId); + } + return Result.success(CodeEnum.SUCCESS); } @@ -1009,6 +1029,10 @@ public class PayService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + // 打印结算单 + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + producer.printMechine(String.valueOf(orderId)); + } return Result.success(CodeEnum.SUCCESS); } @@ -1324,6 +1348,11 @@ public class PayService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + + // 打印结算单 + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + producer.printMechine(String.valueOf(orderId)); + } return Result.success(CodeEnum.SUCCESS); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopInfoService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopInfoService.java index f733984..c831e1f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopInfoService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopInfoService.java @@ -4,9 +4,12 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +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.vo.TbShopTableVO; +import com.chaozhanggui.system.cashierservice.mybatis.MpShopTableMapper; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; import com.chaozhanggui.system.cashierservice.util.DateUtils; @@ -15,6 +18,7 @@ import com.chaozhanggui.system.cashierservice.util.TokenUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -37,6 +41,12 @@ public class ShopInfoService { @Autowired ShopUserDutyDetailMapper shopUserDutyDetailMapper; private final TbOrderInfoMapper orderInfoMapper; + @Qualifier("tbCashierCartMapper") + @Autowired + private TbCashierCartMapper tbCashierCartMapper; + @Autowired + private MpShopTableMapper mpShopTableMapper; + public ShopInfoService(TbOrderInfoMapper orderInfoMapper) { this.orderInfoMapper = orderInfoMapper; @@ -56,6 +66,17 @@ public class ShopInfoService { PageHelperUtil.startPage(page, pageSize); // List shopTables=tbShopTableMapper.selectByShopIdAndStatus(shopId,areaId,status); List tbShopTableVOList = tbShopTableMapper.selectTableInfo(shopId, areaId, status, DateUtils.getDay()); + for (TbShopTableVO tbShopTableVO : tbShopTableVOList) { + if (StrUtil.isBlank(tbShopTableVO.getQrcode())) { + tbShopTableVO.setStatus("closed"); + + }else if (tbCashierCartMapper.countTable(tbShopTableVO.getQrcode(), tbShopTableVO.getShopId()) < 1) { + tbShopTableVO.setStatus("idle"); + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, tbShopTableVO.getQrcode()) + .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + } + } PageInfo pageInfo=new PageInfo(tbShopTableVOList); return Result.success(CodeEnum.SUCCESS,pageInfo); diff --git a/src/main/resources/mapper/TbShopTableMapper.xml b/src/main/resources/mapper/TbShopTableMapper.xml index 4a17d7a..08c8a0b 100644 --- a/src/main/resources/mapper/TbShopTableMapper.xml +++ b/src/main/resources/mapper/TbShopTableMapper.xml @@ -242,6 +242,6 @@ and a.status = #{status} GROUP BY a.id - order by a.`sort` asc + order by a.id desc From 2461e5d808d98dae072b0e5c886c0be003924068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 27 Aug 2024 09:45:03 +0800 Subject: [PATCH 061/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 3 +++ 1 file changed, 3 insertions(+) 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 55da746..82b053c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -594,6 +594,9 @@ public class PayService { return Result.fail(CodeEnum.MEMBERINSUFFICIENTFUNDS); } + if(ObjectUtil.isEmpty(payAmount)||ObjectUtil.isNull(payAmount)){ + payAmount=orderInfo.getOrderAmount(); + } user.setAmount(user.getAmount().subtract(payAmount)); user.setConsumeAmount(user.getConsumeAmount().add(payAmount)); user.setConsumeNumber(user.getConsumeNumber() + 1); From 35e039a530be185d6a3cd7a45528243b0c45cfcb Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 27 Aug 2024 10:36:05 +0800 Subject: [PATCH 062/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=B7=B2=E4=B8=8B=E5=8D=95=E5=95=86=E5=93=81=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/TbCashierCartMapper.java | 2 +- .../cashierservice/service/OrderService.java | 61 ++++++++----------- .../resources/mapper/TbShopTableMapper.xml | 5 +- 3 files changed, 30 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java index 15099b3..acc9612 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java @@ -73,6 +73,6 @@ public interface TbCashierCartMapper { @Delete("delete from tb_cashier_cart where master_id=#{masterId} and id=#{cartId}") int deleteByCartId(@Param("masterId") String masterId, @Param("cartId")Integer cartId); - @Select("select count(*) from tb_cashier_cart where shop_id=#{shopId} and `status`='create' and table_id=#{qrcode}") + @Select("select count(*) from tb_cashier_cart where shop_id=#{shopId} and `status`='create' and table_id=#{qrcode} and order_id is not null") int countTable(@Param("qrcode") String qrcode, @Param("shopId") Integer shopId); } 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 6babf52..af3fcf1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -464,6 +464,10 @@ public class OrderService { return Result.fail(CodeEnum.CARTEXIST); } + if (cashierCart.getOrderId() != null) { + return Result.success(CodeEnum.SUCCESS, "已打票商品不支持删除", null); + } + TbProductWithBLOBs product= tbProductMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getProductId())); if(ObjectUtil.isEmpty(product)){ return Result.fail(CodeEnum.PRODUCTINFOERROR); @@ -488,31 +492,10 @@ public class OrderService { List skuIds=new ArrayList<>(); skuIds.add(cashierCart.getSkuId()); + + cashierCartMapper.deleteByPrimaryKey(cartId); - if (cashierCart.getOrderId() != null) { - int list = mpCashierCartMapper.selectCount( new LambdaQueryWrapper() - .eq(TbCashierCart::getShopId, cashierCart.getShopId()) - .eq(TbCashierCart::getStatus, "create").eq(TbCashierCart::getTableId, cashierCart.getTableId()) - .and(query2 -> { - query2.or(query3 -> { - query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) - .eq(TbCashierCart::getMasterId, cashierCart.getMasterId()); - }) - .or((query4 -> { - query4.isNull(TbCashierCart::getTradeDay) - .or() - .eq(TbCashierCart::getMasterId, "") - .or() - .eq(TbCashierCart::getMasterId, ""); - })); - })); - - if (list == 0) { - tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId())); - } - - } return Result.success(CodeEnum.SUCCESS); } @@ -1100,8 +1083,10 @@ public class OrderService { ArrayList ids = new ArrayList<>(); for (TbCashierCart cashierCart : list) { if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { + orderId = Integer.parseInt(cashierCart.getOrderId()); continue; } + ids.add(cashierCart.getId()); // 数量减少, 返还库存 String message = redisUtil.getMessage(RedisCst.ORDER_PRODUCT_NUM + cashierCart.getId()); @@ -1110,10 +1095,7 @@ public class OrderService { if (message != null) { productService.incrStock(cashierCart.getProductId(), cashierCart.getSkuId(), Integer.parseInt(message)); } - if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { - orderId = Integer.parseInt(cashierCart.getOrderId()); - } TbProductWithBLOBs product= tbProductMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getProductId())); if(ObjectUtil.isNotEmpty(product)&&"1".equals(product.getIsStock().toString())){ ProductSkuPo skuPo=new ProductSkuPo(Integer.valueOf(cashierCart.getSkuId()),cashierCart.getTotalNumber()); @@ -1124,7 +1106,14 @@ public class OrderService { } + + if (orderId > 0) { + TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); + if (ids.isEmpty() && "postPay".equals(orderInfo.getUseType())) { + return Result.success(CodeEnum.SUCCESS); + } + // 返还耗材 JSONObject jsonObject1=new JSONObject(); jsonObject1.put("orderId", orderId); @@ -1132,12 +1121,16 @@ public class OrderService { log.info("清空购物车 发送返还耗材mq消息,订单id:{},消息内容:{}", orderId, jsonObject1); producer.cons(jsonObject1.toString()); - TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); if (Objects.nonNull(orderInfo) && !orderInfo.getStatus().equals("pending")){ tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); // orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); orderDetailMapper.deleteByOUrderId(orderId); } + + + if ("postPay".equals(orderInfo.getUseType())) { + tbOrderInfoMapper.deleteByPrimaryKey(orderId); + } } @@ -1217,13 +1210,13 @@ public class OrderService { TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(id); - OrderVo orderVo = new OrderVo(); - orderVo.setMasterId(orderInfo.getMasterId()); - orderVo.setShopId(Integer.valueOf(orderInfo.getShopId())); - orderVo.setTableId(orderInfo.getTableId()); - orderVo.setMerchantId(Integer.valueOf(userId)); - createOrder(orderVo, clientType, token, id, false); - orderInfo = tbOrderInfoMapper.selectByPrimaryKey(id); +// OrderVo orderVo = new OrderVo(); +// orderVo.setMasterId(orderInfo.getMasterId()); +// orderVo.setShopId(Integer.valueOf(orderInfo.getShopId())); +// orderVo.setTableId(orderInfo.getTableId()); +// orderVo.setMerchantId(Integer.valueOf(userId)); +// createOrder(orderVo, clientType, token, id, false); +// orderInfo = tbOrderInfoMapper.selectByPrimaryKey(id); if (Objects.nonNull(orderInfo)) { List list = orderDetailMapper.selectAllByOrderId(id); diff --git a/src/main/resources/mapper/TbShopTableMapper.xml b/src/main/resources/mapper/TbShopTableMapper.xml index 08c8a0b..3c9536b 100644 --- a/src/main/resources/mapper/TbShopTableMapper.xml +++ b/src/main/resources/mapper/TbShopTableMapper.xml @@ -229,9 +229,8 @@ select @@ -27,10 +30,10 @@ insert into tb_shop_user_flow (id, shop_user_id, amount, balance, biz_code, biz_name, - create_time, type) + create_time, type,is_return,remark) values (#{id,jdbcType=INTEGER}, #{shopUserId,jdbcType=INTEGER}, #{amount,jdbcType=DECIMAL}, #{balance,jdbcType=DECIMAL}, #{bizCode,jdbcType=VARCHAR}, #{bizName,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{type,jdbcType=VARCHAR}) + #{createTime,jdbcType=TIMESTAMP}, #{type,jdbcType=VARCHAR},#{isReturn,jdbcType=VARCHAR},#{remark,jdbcType=VARCHAR}) insert into tb_shop_user_flow From bfca837e7889bc0e885e883110a2ac6a766256aa Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 29 Aug 2024 14:52:01 +0800 Subject: [PATCH 086/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E6=9F=A5=E8=AF=A2=E8=B4=AD=E7=89=A9=E8=BD=A6=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/dao/TbCashierCartMapper.java | 2 +- .../system/cashierservice/service/OrderService.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java index 9f79a57..913b2ad 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbCashierCartMapper.java @@ -76,6 +76,6 @@ public interface TbCashierCartMapper { @Select("select count(*) from tb_cashier_cart where shop_id=#{shopId} and `status`='create' and table_id=#{qrcode} and order_id is not null") int countTable(@Param("qrcode") String qrcode, @Param("shopId") Integer shopId); - @Select("select count(*) from tb_order_detail where shop_id=#{shopId} and `status`='create' and order_id=#{orderId} and order_id is not null") + @Select("select count(*) from tb_order_detail where shop_id=#{shopId} and `status`='unpaid' and order_id=#{orderId} and order_id is not null") int countTableByDetail(@Param("orderId") Integer orderId, @Param("shopId") Integer shopId); } 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 af3fcf1..08dd88d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -363,6 +363,7 @@ public class OrderService { String day = DateUtils.getDay(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending") .eq(TbCashierCart::getShopId, shopId); // 普通点单 From 88526e0dd978dc3ea83bb7adcb5930768afcd3b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 15:10:31 +0800 Subject: [PATCH 087/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/MemberService.java | 8 ++++++++ .../system/cashierservice/service/PayService.java | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 9e9d0e7..1eef4dd 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -304,6 +304,7 @@ public class MemberService { flow.setAmount(amount); flow.setBalance(shopUser.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); @@ -358,6 +359,7 @@ public class MemberService { flow.setBalance(shopUser.getAmount()); flow.setCreateTime(new Date()); flow.setRemark(orderNo); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); BigDecimal fl=null; @@ -385,6 +387,7 @@ public class MemberService { flow.setAmount(awardAmount); flow.setBalance(shopUser.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); fl=awardAmount; } @@ -485,6 +488,7 @@ public class MemberService { flow.setAmount(memberIn.getAmount()); flow.setBalance(shopUser.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); return Result.success(CodeEnum.SUCCESS, memberIn); } @@ -512,6 +516,7 @@ public class MemberService { flow.setBizName("线下充值"); flow.setAmount(memberIn.getAmount()); flow.setBalance(shopUser.getAmount()); + flow.setIsReturn("0"); flow.setCreateTime(new Date()); tbShopUserFlowMapper.insert(flow); @@ -539,6 +544,7 @@ public class MemberService { flow.setBizName("充值活动奖励"); flow.setAmount(awardAmount); flow.setBalance(shopUser.getAmount()); + flow.setIsReturn("0"); flow.setCreateTime(new Date()); @@ -659,6 +665,7 @@ public class MemberService { flow.setAmount(amount); flow.setBalance(shopUser.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); BigDecimal fl=null; @@ -686,6 +693,7 @@ public class MemberService { flow.setAmount(awardAmount); flow.setBalance(shopUser.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); fl=awardAmount; 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 c245831..72c3c8a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -588,6 +588,7 @@ public class PayService { flow.setAmount(payAmount); flow.setBalance(user.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); @@ -713,6 +714,7 @@ public class PayService { flow.setAmount(orderInfo.getOrderAmount()); flow.setBalance(user.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount) ? orderInfo.getOrderAmount() : payAmount); @@ -811,6 +813,7 @@ public class PayService { userFlow.setBizName("余额支付"); userFlow.setCreateTime(DateUtil.date()); userFlow.setType("-"); + userFlow.setIsReturn("0"); mpShopUserFlowMapper.insert(userFlow); @@ -1226,6 +1229,7 @@ public class PayService { flow.setAmount(newOrderInfo.getOrderAmount()); flow.setBalance(user.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); @@ -1550,6 +1554,7 @@ public class PayService { flow.setAmount(param.getRefundAmount()); flow.setBalance(user.getAmount()); flow.setCreateTime(new Date()); + flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); } else { TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(groupOrderInfo.getMerchantId()); From 08a9a26f2db7191f643b461a16e8ac6538cf6ed1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 15:43:12 +0800 Subject: [PATCH 088/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/MemberService.java | 6 +++++- src/main/resources/mapper/TbShopUserFlowMapper.xml | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 1eef4dd..9020b01 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -749,6 +749,10 @@ public class MemberService { return Result.fail(CodeEnum.USERSHOPFLOWNOEXIST); } + if(!"0".equals(flow.getIsReturn())){ + return Result.fail(CodeEnum.ORDERRETURN); + } + TbShopUser user=tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId()); @@ -776,7 +780,7 @@ public class MemberService { String no=DateUtils.getSsdfTimes(); - PublicResp publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(),no , flow.getRemark(), null, "充值退款", flow.getAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); + PublicResp publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(),no , null, flow.getRemark(), "充值退款", flow.getAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { if ("000000".equals(publicResp.getCode())) { if (!"SUCCESS".equals(publicResp.getObjData().getState()) && !publicResp.getObjData().getState().equals("ING")) { diff --git a/src/main/resources/mapper/TbShopUserFlowMapper.xml b/src/main/resources/mapper/TbShopUserFlowMapper.xml index 8ecdf81..3289fb2 100644 --- a/src/main/resources/mapper/TbShopUserFlowMapper.xml +++ b/src/main/resources/mapper/TbShopUserFlowMapper.xml @@ -126,6 +126,7 @@ biz_name = #{bizName,jdbcType=VARCHAR}, create_time = #{createTime,jdbcType=TIMESTAMP}, type = #{type,jdbcType=VARCHAR} + is_return=#{isReturn,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER} From c9b3cea5cd03a89be000a19d57276ce1030d2a20 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 29 Aug 2024 15:49:28 +0800 Subject: [PATCH 089/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=B7=B2=E5=87=BA=E9=A4=90=E5=95=86=E5=93=81=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 08dd88d..0027abe 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -150,7 +150,7 @@ public class OrderService { } TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); - if (cart != null && cart.getNumber() < number && StrUtil.isNotBlank(cart.getOrderId()) && StrUtil.isNotBlank(cart.getTableId())) { + if (cart != null && cart.getNumber() > number && StrUtil.isNotBlank(cart.getOrderId()) && StrUtil.isNotBlank(cart.getTableId())) { return Result.fail("此商品已经出餐不支持减少操作"); } @@ -1082,9 +1082,11 @@ public class OrderService { List productSkuPos = new ArrayList<>(); List skuIds = new ArrayList<>(); ArrayList ids = new ArrayList<>(); + StringBuilder proName = new StringBuilder(); for (TbCashierCart cashierCart : list) { if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { orderId = Integer.parseInt(cashierCart.getOrderId()); + proName.append(cashierCart.getName()).append(","); continue; } @@ -1149,7 +1151,7 @@ public class OrderService { .eq(TbShopTable::getQrcode, cartVo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); - return Result.success(CodeEnum.SUCCESS); + return Result.success(CodeEnum.SUCCESS, proName + "商品已出餐,无法删除", null); } From 35b9132edae12de2c7cce3a865817676a5a88495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 15:52:13 +0800 Subject: [PATCH 090/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mapper/TbShopUserFlowMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/mapper/TbShopUserFlowMapper.xml b/src/main/resources/mapper/TbShopUserFlowMapper.xml index 3289fb2..f3dac2e 100644 --- a/src/main/resources/mapper/TbShopUserFlowMapper.xml +++ b/src/main/resources/mapper/TbShopUserFlowMapper.xml @@ -125,7 +125,7 @@ biz_code = #{bizCode,jdbcType=VARCHAR}, biz_name = #{bizName,jdbcType=VARCHAR}, create_time = #{createTime,jdbcType=TIMESTAMP}, - type = #{type,jdbcType=VARCHAR} + type = #{type,jdbcType=VARCHAR}, is_return=#{isReturn,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER} From d76558cce2e166ee798779392ee230f5b82347cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 15:54:11 +0800 Subject: [PATCH 091/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/MemberService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 9020b01..0b59006 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -784,7 +784,7 @@ public class MemberService { if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { if ("000000".equals(publicResp.getCode())) { if (!"SUCCESS".equals(publicResp.getObjData().getState()) && !publicResp.getObjData().getState().equals("ING")) { - MsgException.check(true, "退款渠道调用失败"); + MsgException.check(true, publicResp.getMsg()); } } else { MsgException.check(true, "退款渠道调用失败"); From ee5cb7d4ba7066c8c8f44ac9f4e9162b064f21d6 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 29 Aug 2024 15:54:26 +0800 Subject: [PATCH 092/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=B7=B2=E5=87=BA=E9=A4=90=E5=95=86=E5=93=81=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0027abe..4d03499 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -1114,7 +1114,7 @@ public class OrderService { if (orderId > 0) { TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); if (ids.isEmpty() && "postPay".equals(orderInfo.getUseType())) { - return Result.success(CodeEnum.SUCCESS); + return Result.success(CodeEnum.SUCCESS, proName + "商品已出餐,无法删除", null); } // 返还耗材 From ac82a2e447adae2fa7c5cc12538ad8ef2f9fb082 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 29 Aug 2024 16:00:12 +0800 Subject: [PATCH 093/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=B7=B2=E5=87=BA=E9=A4=90=E5=95=86=E5=93=81=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 4d03499..63b0b9d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -1114,7 +1114,11 @@ public class OrderService { if (orderId > 0) { TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); if (ids.isEmpty() && "postPay".equals(orderInfo.getUseType())) { - return Result.success(CodeEnum.SUCCESS, proName + "商品已出餐,无法删除", null); + if (StrUtil.isBlank(proName.toString())) { + return Result.success(CodeEnum.SUCCESS); + }else { + return Result.fail(proName + "已出餐,无法删除"); + } } // 返还耗材 @@ -1151,7 +1155,11 @@ public class OrderService { .eq(TbShopTable::getQrcode, cartVo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); - return Result.success(CodeEnum.SUCCESS, proName + "商品已出餐,无法删除", null); + if (StrUtil.isBlank(proName.toString())) { + return Result.success(CodeEnum.SUCCESS); + }else { + return Result.fail(proName + "已出餐,无法删除"); + } } From 864793949b5cae26a5f0e010fcb559085c7b023c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 16:04:30 +0800 Subject: [PATCH 094/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/MemberService.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 0b59006..a891470 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -804,6 +804,17 @@ public class MemberService { flow.setRemark(remark); tbShopUserFlowMapper.updateByPrimaryKey(flow); + + + JSONObject baObj=new JSONObject(); + baObj.put("userId",user.getUserId()); + baObj.put("shopId",user.getId()); + baObj.put("amount",flow.getAmount()); + baObj.put("balance",user.getAmount()); + baObj.put("type","退款"); + baObj.put("time",new Date()); + producer.balance(baObj.toString()); + return Result.success(CodeEnum.SUCCESS); } From dd26e7873b396e716760b8ddd92b24a6e00bb6f4 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 29 Aug 2024 16:09:02 +0800 Subject: [PATCH 095/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=B7=B2=E5=87=BA=E9=A4=90=E5=95=86=E5=93=81=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 34 +++++++------------ 1 file changed, 13 insertions(+), 21 deletions(-) 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 63b0b9d..99356df 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -150,9 +150,9 @@ public class OrderService { } TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); - if (cart != null && cart.getNumber() > number && StrUtil.isNotBlank(cart.getOrderId()) && StrUtil.isNotBlank(cart.getTableId())) { - return Result.fail("此商品已经出餐不支持减少操作"); - } +// if (cart != null && cart.getNumber() > number && StrUtil.isNotBlank(cart.getOrderId()) && StrUtil.isNotBlank(cart.getTableId())) { +// return Result.fail("此商品已经出餐不支持减少操作"); +// } // List proskuConList= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); // if(Objects.nonNull(proskuConList)&&proskuConList.size()>0){ @@ -465,9 +465,9 @@ public class OrderService { return Result.fail(CodeEnum.CARTEXIST); } - if (cashierCart.getOrderId() != null) { - return Result.success(CodeEnum.SUCCESS, "已打票商品不支持删除", null); - } +// if (cashierCart.getOrderId() != null) { +// return Result.success(CodeEnum.SUCCESS, "已打票商品不支持删除", null); +// } TbProductWithBLOBs product= tbProductMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getProductId())); if(ObjectUtil.isEmpty(product)){ @@ -1084,11 +1084,11 @@ public class OrderService { ArrayList ids = new ArrayList<>(); StringBuilder proName = new StringBuilder(); for (TbCashierCart cashierCart : list) { - if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { - orderId = Integer.parseInt(cashierCart.getOrderId()); - proName.append(cashierCart.getName()).append(","); - continue; - } +// if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { +// orderId = Integer.parseInt(cashierCart.getOrderId()); +// proName.append(cashierCart.getName()).append(","); +// continue; +// } ids.add(cashierCart.getId()); // 数量减少, 返还库存 @@ -1114,11 +1114,7 @@ public class OrderService { if (orderId > 0) { TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); if (ids.isEmpty() && "postPay".equals(orderInfo.getUseType())) { - if (StrUtil.isBlank(proName.toString())) { - return Result.success(CodeEnum.SUCCESS); - }else { - return Result.fail(proName + "已出餐,无法删除"); - } + return Result.success(CodeEnum.SUCCESS); } // 返还耗材 @@ -1155,11 +1151,7 @@ public class OrderService { .eq(TbShopTable::getQrcode, cartVo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); - if (StrUtil.isBlank(proName.toString())) { - return Result.success(CodeEnum.SUCCESS); - }else { - return Result.fail(proName + "已出餐,无法删除"); - } + return Result.success(CodeEnum.SUCCESS); } From 36c3c2e04bfa4bb4785ba445fb1f694b1ee31911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 16:12:46 +0800 Subject: [PATCH 096/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/MemberService.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index a891470..bc8dd89 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -790,7 +790,8 @@ public class MemberService { MsgException.check(true, "退款渠道调用失败"); } - } else if ("cashMemberIn".equals(flow.getBizCode())) { + } + } else if ("cashMemberIn".equals(flow.getBizCode())) { } else { @@ -814,11 +815,8 @@ public class MemberService { baObj.put("type","退款"); baObj.put("time",new Date()); producer.balance(baObj.toString()); - return Result.success(CodeEnum.SUCCESS); - } - return Result.fail(CodeEnum.FAIL); } From 8c18cb1347025e6d43c0e1c6a33b00ad114266c1 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 29 Aug 2024 16:23:13 +0800 Subject: [PATCH 097/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=B7=B2=E5=87=BA=E9=A4=90=E5=95=86=E5=93=81=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 61 +++++++++++++++++-- 1 file changed, 55 insertions(+), 6 deletions(-) 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 99356df..7587e0d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -177,6 +177,32 @@ public class OrderService { }else if (exists != null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number < skuWithBLOBs.getSuit()){ redisUtil.deleteByKey(RedisCst.ORDER_CART_EXISTS + cartId); delCart(masterId, cartId); + if (StrUtil.isNotBlank(cart.getOrderId()) && StrUtil.isNotBlank(cart.getTableId())) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending") + .eq(TbCashierCart::getShopId, cart.getShopId()); + + TbCashierCart finalCart = cart; + queryWrapper.eq(TbCashierCart::getTableId, cart.getTableId()) + .and(query -> { + query.eq(TbCashierCart::getMasterId, finalCart.getMasterId()) + .or() + .isNull(TbCashierCart::getMasterId) + .or() + .eq(TbCashierCart::getMasterId, ""); + }) + .and(query -> { + query.eq(TbCashierCart::getOrderId, finalCart.getOrderId()) + .or() + .isNull(TbCashierCart::getOrderId); + }); + + List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); + + if (list.isEmpty()) { + tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(finalCart.getOrderId())); + } + } return Result.success(CodeEnum.SUCCESS, masterId); } @@ -497,6 +523,32 @@ public class OrderService { cashierCartMapper.deleteByPrimaryKey(cartId); + if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending") + .eq(TbCashierCart::getShopId, cashierCart.getShopId()); + + queryWrapper.eq(TbCashierCart::getTableId, cashierCart.getTableId()) + .and(query -> { + query.eq(TbCashierCart::getMasterId, cashierCart.getMasterId()) + .or() + .isNull(TbCashierCart::getMasterId) + .or() + .eq(TbCashierCart::getMasterId, ""); + }) + .and(query -> { + query.eq(TbCashierCart::getOrderId, cashierCart.getOrderId()) + .or() + .isNull(TbCashierCart::getOrderId); + }); + + List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); + + if (list.isEmpty()) { + tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId())); + } + } + return Result.success(CodeEnum.SUCCESS); } @@ -1082,13 +1134,10 @@ public class OrderService { List productSkuPos = new ArrayList<>(); List skuIds = new ArrayList<>(); ArrayList ids = new ArrayList<>(); - StringBuilder proName = new StringBuilder(); for (TbCashierCart cashierCart : list) { -// if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { -// orderId = Integer.parseInt(cashierCart.getOrderId()); -// proName.append(cashierCart.getName()).append(","); -// continue; -// } + if (StrUtil.isNotBlank(cashierCart.getOrderId())) { + orderId = Integer.parseInt(cashierCart.getOrderId()); + } ids.add(cashierCart.getId()); // 数量减少, 返还库存 From 40b8198c7e75ff07e732b97cd2fa808fe51a3272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 16:37:14 +0800 Subject: [PATCH 098/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/MemberService.java | 166 ++++++++---------- 1 file changed, 74 insertions(+), 92 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index bc8dd89..ffdc71a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -3,8 +3,6 @@ package com.chaozhanggui.system.cashierservice.service; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.chaozhanggui.system.cashierservice.bean.TableStateEnum; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; import com.chaozhanggui.system.cashierservice.exception.MsgException; @@ -20,8 +18,6 @@ import com.chaozhanggui.system.cashierservice.thirdpay.resp.OrderStatusQueryResp import com.chaozhanggui.system.cashierservice.thirdpay.resp.PublicResp; import com.chaozhanggui.system.cashierservice.thirdpay.service.ThirdPayService; import com.chaozhanggui.system.cashierservice.util.*; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -87,6 +83,7 @@ public class MemberService { @Qualifier("tbOrderInfoMapper") @Autowired private TbOrderInfoMapper tbOrderInfoMapper; + private MpShopTableMapper mpShopTableMapper; public Result queryMember(String shopId, String phone, int page, int pageSize) { @@ -316,7 +313,6 @@ public class MemberService { producer.putOrderCollect(jsonObject.toJSONString()); - return Result.success(CodeEnum.SUCCESS, memberIn); } else { String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null; @@ -362,7 +358,7 @@ public class MemberService { flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); - BigDecimal fl=null; + BigDecimal fl = null; TbActivate activate = tbActivateMapper.selectByAmount(shopInfo.getId().toString(), memberIn.getAmount()); if (ObjectUtil.isNotEmpty(activate) && ObjectUtil.isNotNull(activate)) { BigDecimal awardAmount = BigDecimal.ZERO; @@ -389,7 +385,7 @@ public class MemberService { flow.setCreateTime(new Date()); flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); - fl=awardAmount; + fl = awardAmount; } JSONObject jsonObject = new JSONObject(); @@ -399,19 +395,16 @@ public class MemberService { producer.putOrderCollect(jsonObject.toJSONString()); - - JSONObject baObj=new JSONObject(); - baObj.put("userId",shopUser.getUserId()); - baObj.put("shopId",shopInfo.getId()); - baObj.put("amount",ObjectUtil.isNull(fl)?amount:amount.add(fl)); - baObj.put("balance",shopUser.getAmount()); - baObj.put("type","扫码充值"); - baObj.put("time",flow.getCreateTime()); + JSONObject baObj = new JSONObject(); + baObj.put("userId", shopUser.getUserId()); + baObj.put("shopId", shopInfo.getId()); + baObj.put("amount", ObjectUtil.isNull(fl) ? amount : amount.add(fl)); + baObj.put("balance", shopUser.getAmount()); + baObj.put("type", "扫码充值"); + baObj.put("time", flow.getCreateTime()); producer.balance(baObj.toString()); - - return Result.success(CodeEnum.SUCCESS, memberIn); } else if ("TRADE_AWAIT".equals(mainScanResp.getState())) { @@ -432,7 +425,6 @@ public class MemberService { } - public Result queryScanPay(String flowId, String token) { if (ObjectUtil.isEmpty(flowId)) { return Result.fail(CodeEnum.PARAM); @@ -556,13 +548,13 @@ public class MemberService { producer.putOrderCollect(jsonObject.toJSONString()); - JSONObject baObj=new JSONObject(); - baObj.put("userId",shopUser.getUserId()); - baObj.put("shopId",shopUser.getShopId()); - baObj.put("amount",memberIn.getAmount().add(awardAmount)); - baObj.put("balance",shopUser.getAmount()); - baObj.put("type","充值"); - baObj.put("time",flow.getCreateTime()); + JSONObject baObj = new JSONObject(); + baObj.put("userId", shopUser.getUserId()); + baObj.put("shopId", shopUser.getShopId()); + baObj.put("amount", memberIn.getAmount().add(awardAmount)); + baObj.put("balance", shopUser.getAmount()); + baObj.put("type", "充值"); + baObj.put("time", flow.getCreateTime()); producer.balance(baObj.toString()); tbShopUserFlowMapper.insert(flow); @@ -579,7 +571,6 @@ public class MemberService { return Result.success(CodeEnum.SUCCESS, memberIn); } - @Transactional(rollbackFor = Exception.class) public Result memberAccountPay(Map map, String token) throws Exception { if (ObjectUtil.isEmpty(map) || map.size() <= 0 @@ -592,7 +583,6 @@ public class MemberService { } - String memberId = String.valueOf(map.get("memberId")); String shopId = String.valueOf(map.get("shopId")); @@ -604,7 +594,7 @@ public class MemberService { } - if("1".equals(shopInfo.getIsMemberIn())){ + if ("1".equals(shopInfo.getIsMemberIn())) { String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); @@ -667,7 +657,7 @@ public class MemberService { flow.setCreateTime(new Date()); flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); - BigDecimal fl=null; + BigDecimal fl = null; TbActivate activate = tbActivateMapper.selectByAmount(shopInfo.getId().toString(), memberIn.getAmount()); if (ObjectUtil.isNotEmpty(activate) && ObjectUtil.isNotNull(activate)) { @@ -696,7 +686,7 @@ public class MemberService { flow.setIsReturn("0"); tbShopUserFlowMapper.insert(flow); - fl=awardAmount; + fl = awardAmount; } @@ -709,25 +699,19 @@ public class MemberService { producer.putOrderCollect(jsonObject.toJSONString()); - - JSONObject baObj=new JSONObject(); - baObj.put("userId",shopUser.getUserId()); - baObj.put("shopId",shopInfo.getId()); - baObj.put("amount",ObjectUtil.isNull(fl)?amount:amount.add(fl)); - baObj.put("balance",shopUser.getAmount()); - baObj.put("type","充值"); - baObj.put("time",flow.getCreateTime()); + JSONObject baObj = new JSONObject(); + baObj.put("userId", shopUser.getUserId()); + baObj.put("shopId", shopInfo.getId()); + baObj.put("amount", ObjectUtil.isNull(fl) ? amount : amount.add(fl)); + baObj.put("balance", shopUser.getAmount()); + baObj.put("type", "充值"); + baObj.put("time", flow.getCreateTime()); producer.balance(baObj.toString()); - return Result.success(CodeEnum.SUCCESS); } - private MpShopTableMapper mpShopTableMapper; - - - public Result queryMemberAccount(String memberId, int page, int pageSize) { if (ObjectUtil.isEmpty(memberId)) { return Result.fail(CodeEnum.PARAM); @@ -740,47 +724,59 @@ public class MemberService { } - public Result returnAccount(String flowId,String remark){ - if(ObjectUtil.isEmpty(flowId)||ObjectUtil.isNull(flowId)){ + public Result returnAccount(String flowId, String remark) { + if (ObjectUtil.isEmpty(flowId) || ObjectUtil.isNull(flowId)) { return Result.fail(CodeEnum.PARAM); } - TbShopUserFlow flow= tbShopUserFlowMapper.selectByPrimaryKey(Integer.valueOf(flowId)); - if(ObjectUtil.isNull(flow)||ObjectUtil.isEmpty(flow)){ + TbShopUserFlow flow = tbShopUserFlowMapper.selectByPrimaryKey(Integer.valueOf(flowId)); + if (ObjectUtil.isNull(flow) || ObjectUtil.isEmpty(flow)) { return Result.fail(CodeEnum.USERSHOPFLOWNOEXIST); } - if(!"0".equals(flow.getIsReturn())){ + if (!"0".equals(flow.getIsReturn())) { return Result.fail(CodeEnum.ORDERRETURN); } - TbShopUser user=tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId()); + TbShopUser user = tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId()); - if(ObjectUtil.isEmpty(user)||ObjectUtil.isNull(user)){ + if (ObjectUtil.isEmpty(user) || ObjectUtil.isNull(user)) { return Result.fail(CodeEnum.ACCOUNTEIXST); } + + BigDecimal amount=BigDecimal.ZERO; + /** + * + */ if(N.gt(flow.getAmount(),user.getAmount())){ - return Result.fail(CodeEnum.ACCOUNTAMOUNT); + amount=user.getAmount(); + }else { + amount=flow.getAmount(); } - TbShopInfo shopInfo=tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(user.getShopId())); - if(ObjectUtil.isEmpty(shopInfo)||ObjectUtil.isNull(shopInfo)){ + + + + + TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(user.getShopId())); + if (ObjectUtil.isEmpty(shopInfo) || ObjectUtil.isNull(shopInfo)) { return Result.fail(CodeEnum.MERCHANTEIXST); } - TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(shopInfo.getMerchantId())); - if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) { - return Result.fail(CodeEnum.NOCUSTOMER); - } - if("scanMemberIn".equals(flow.getBizCode())) { - String no=DateUtils.getSsdfTimes(); + if ("scanMemberIn".equals(flow.getBizCode())) { + TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(shopInfo.getMerchantId())); + if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) { + return Result.fail(CodeEnum.NOCUSTOMER); + } - PublicResp publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(),no , null, flow.getRemark(), "充值退款", flow.getAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); + String no = DateUtils.getSsdfTimes(); + + PublicResp publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(), no, null, flow.getRemark(), "充值退款",amount.setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { if ("000000".equals(publicResp.getCode())) { if (!"SUCCESS".equals(publicResp.getObjData().getState()) && !publicResp.getObjData().getState().equals("ING")) { @@ -794,44 +790,30 @@ public class MemberService { } else if ("cashMemberIn".equals(flow.getBizCode())) { - } else { - return Result.fail(CodeEnum.OPARETIONERROR); - } - user.setAmount(user.getAmount().subtract(flow.getAmount())); - user.setUpdatedAt(System.currentTimeMillis()); - tbShopUserMapper.updateByPrimaryKey(user); + } else { + return Result.fail(CodeEnum.OPARETIONERROR); + } + user.setAmount(user.getAmount().subtract(amount)); + user.setUpdatedAt(System.currentTimeMillis()); + tbShopUserMapper.updateByPrimaryKey(user); - flow.setIsReturn("1"); - flow.setRemark(remark); - tbShopUserFlowMapper.updateByPrimaryKey(flow); + flow.setIsReturn("1"); + flow.setRemark(remark); + tbShopUserFlowMapper.updateByPrimaryKey(flow); - - JSONObject baObj=new JSONObject(); - baObj.put("userId",user.getUserId()); - baObj.put("shopId",user.getId()); - baObj.put("amount",flow.getAmount()); - baObj.put("balance",user.getAmount()); - baObj.put("type","退款"); - baObj.put("time",new Date()); - producer.balance(baObj.toString()); - return Result.success(CodeEnum.SUCCESS); + JSONObject baObj = new JSONObject(); + baObj.put("userId", user.getUserId()); + baObj.put("shopId", user.getId()); + baObj.put("amount", amount); + baObj.put("balance", user.getAmount()); + baObj.put("type", "退款"); + baObj.put("time", new Date()); + producer.balance(baObj.toString()); + return Result.success(CodeEnum.SUCCESS); } - - - - - - - - - - - - - } From e504c269781e7a092ad4717747cdc6bda6100826 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 29 Aug 2024 16:47:55 +0800 Subject: [PATCH 099/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E4=BC=9A=E5=91=98=E4=BD=99=E9=A2=9D=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E4=B8=8D=E5=8C=B9=E9=85=8D=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 72c3c8a..d21a040 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -807,7 +807,7 @@ public class PayService { TbShopUserFlow userFlow = new TbShopUserFlow(); userFlow.setAmount((payAmount != null && discountAmount != null) ? payAmount : orderInfo.getOrderAmount()); - userFlow.setBalance(shopUser.getAmount()); + userFlow.setBalance(shopUser.getAmount().subtract((payAmount != null && discountAmount != null) ? payAmount : orderInfo.getOrderAmount())); userFlow.setShopUserId(shopUser.getId()); userFlow.setBizCode("vipCardCash"); userFlow.setBizName("余额支付"); From adb1c28bb85e956cdaa8815b72c0f8587e8b5284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 16:51:15 +0800 Subject: [PATCH 100/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MemberController.java | 5 ++-- .../cashierservice/service/MemberService.java | 24 +++++++++---------- .../cashierservice/service/PayService.java | 3 +++ .../system/cashierservice/sign/CodeEnum.java | 5 ++++ 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java index ac88559..706a5d7 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java @@ -98,8 +98,9 @@ public class MemberController { @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("flowId") String flowId, - @RequestParam("remark") String remark + @RequestParam("remark") String remark, + @RequestParam("amount") String amount ){ - return memberService.returnAccount(flowId,remark); + return memberService.returnAccount(flowId,remark,amount); } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index ffdc71a..d2e4969 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -724,8 +724,8 @@ public class MemberService { } - public Result returnAccount(String flowId, String remark) { - if (ObjectUtil.isEmpty(flowId) || ObjectUtil.isNull(flowId)) { + public Result returnAccount(String flowId, String remark,String amount) { + if (ObjectUtil.isEmpty(flowId) || ObjectUtil.isNull(flowId)||ObjectUtil.isNull(amount)||ObjectUtil.isEmpty(amount)) { return Result.fail(CodeEnum.PARAM); } TbShopUserFlow flow = tbShopUserFlowMapper.selectByPrimaryKey(Integer.valueOf(flowId)); @@ -737,6 +737,11 @@ public class MemberService { return Result.fail(CodeEnum.ORDERRETURN); } + if(N.gt(new BigDecimal(amount),flow.getAmount())){ + return Result.fail(CodeEnum.INPURAMOUNTERROR); + } + + TbShopUser user = tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId()); @@ -744,15 +749,8 @@ public class MemberService { return Result.fail(CodeEnum.ACCOUNTEIXST); } - - BigDecimal amount=BigDecimal.ZERO; - /** - * - */ - if(N.gt(flow.getAmount(),user.getAmount())){ - amount=user.getAmount(); - }else { - amount=flow.getAmount(); + if(N.gt(new BigDecimal(amount),user.getAmount())){ + return Result.fail(CodeEnum.ACCOUNTBALANCEERROR); } @@ -776,7 +774,7 @@ public class MemberService { String no = DateUtils.getSsdfTimes(); - PublicResp publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(), no, null, flow.getRemark(), "充值退款",amount.setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); + PublicResp publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(), no, null, flow.getRemark(), "充值退款",new BigDecimal(amount).setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { if ("000000".equals(publicResp.getCode())) { if (!"SUCCESS".equals(publicResp.getObjData().getState()) && !publicResp.getObjData().getState().equals("ING")) { @@ -793,7 +791,7 @@ public class MemberService { } else { return Result.fail(CodeEnum.OPARETIONERROR); } - user.setAmount(user.getAmount().subtract(amount)); + user.setAmount(user.getAmount().subtract(new BigDecimal(amount))); user.setUpdatedAt(System.currentTimeMillis()); tbShopUserMapper.updateByPrimaryKey(user); 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 72c3c8a..25be9d4 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -805,6 +805,9 @@ public class PayService { return Result.fail("余额不足或扣除余额失败"); } + + + TbShopUserFlow userFlow = new TbShopUserFlow(); userFlow.setAmount((payAmount != null && discountAmount != null) ? payAmount : orderInfo.getOrderAmount()); userFlow.setBalance(shopUser.getAmount()); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java index 1f33958..b35a04b 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java @@ -118,6 +118,11 @@ public enum CodeEnum { ACCOUNTAMOUNT("100043",false,"账户余额不足","fail"), + INPURAMOUNTERROR("100044",false,"输入金额不允许大于订单原始金额","fail"), + + + + ACCOUNTBALANCEERROR("100045",false,"账户余额不足","fail"), From 203332e232890c535375714ab0f8225f8edc2774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 29 Aug 2024 17:31:20 +0800 Subject: [PATCH 101/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/MemberService.java | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index d2e4969..c48a945 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -724,8 +724,8 @@ public class MemberService { } - public Result returnAccount(String flowId, String remark,String amount) { - if (ObjectUtil.isEmpty(flowId) || ObjectUtil.isNull(flowId)||ObjectUtil.isNull(amount)||ObjectUtil.isEmpty(amount)) { + public Result returnAccount(String flowId, String remark, String amount) { + if (ObjectUtil.isEmpty(flowId) || ObjectUtil.isNull(flowId) || ObjectUtil.isNull(amount) || ObjectUtil.isEmpty(amount)) { return Result.fail(CodeEnum.PARAM); } TbShopUserFlow flow = tbShopUserFlowMapper.selectByPrimaryKey(Integer.valueOf(flowId)); @@ -737,35 +737,28 @@ public class MemberService { return Result.fail(CodeEnum.ORDERRETURN); } - if(N.gt(new BigDecimal(amount),flow.getAmount())){ + if (N.gt(new BigDecimal(amount), flow.getAmount())) { return Result.fail(CodeEnum.INPURAMOUNTERROR); } - TbShopUser user = tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId()); if (ObjectUtil.isEmpty(user) || ObjectUtil.isNull(user)) { return Result.fail(CodeEnum.ACCOUNTEIXST); } - if(N.gt(new BigDecimal(amount),user.getAmount())){ + if (N.gt(new BigDecimal(amount), user.getAmount())) { return Result.fail(CodeEnum.ACCOUNTBALANCEERROR); } - - - TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(user.getShopId())); if (ObjectUtil.isEmpty(shopInfo) || ObjectUtil.isNull(shopInfo)) { return Result.fail(CodeEnum.MERCHANTEIXST); } - - - if ("scanMemberIn".equals(flow.getBizCode())) { TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(shopInfo.getMerchantId())); if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) { @@ -774,7 +767,7 @@ public class MemberService { String no = DateUtils.getSsdfTimes(); - PublicResp publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(), no, null, flow.getRemark(), "充值退款",new BigDecimal(amount).setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); + PublicResp publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(), no, null, flow.getRemark(), "充值退款", new BigDecimal(amount).setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { if ("000000".equals(publicResp.getCode())) { if (!"SUCCESS".equals(publicResp.getObjData().getState()) && !publicResp.getObjData().getState().equals("ING")) { @@ -800,6 +793,19 @@ public class MemberService { tbShopUserFlowMapper.updateByPrimaryKey(flow); + TbShopUserFlow userFlow = new TbShopUserFlow(); + userFlow.setShopUserId(user.getId()); + userFlow.setBizCode("memberReturn"); + userFlow.setBizName("会员退款"); + userFlow.setType("-"); + userFlow.setAmount(new BigDecimal(amount)); + userFlow.setBalance(user.getAmount()); + userFlow.setCreateTime(new Date()); + userFlow.setIsReturn("1"); + userFlow.setRemark(flowId); + + tbShopUserFlowMapper.insert(userFlow); + JSONObject baObj = new JSONObject(); baObj.put("userId", user.getUserId()); baObj.put("shopId", user.getId()); From 0172bd0478f1d06a685fc092faedda72cd6aab48 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 30 Aug 2024 09:59:33 +0800 Subject: [PATCH 102/143] =?UTF-8?q?1.=E6=89=93=E5=8D=B0=E6=8A=98=E6=89=A3?= =?UTF-8?q?=E5=80=BC=E4=B8=BA=E7=A9=BA=E6=8A=A5=E9=94=99=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rabbit/PrintMechineConsumer.java | 175 +++++++++++++----- .../service/CloudPrinterService.java | 20 +- 2 files changed, 141 insertions(+), 54 deletions(-) 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 6c1cefb..21c30bb 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -250,59 +250,11 @@ public class PrintMechineConsumer { return; } if("return".equals(orderInfo.getOrderType())){ - List details= tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); - if(ObjectUtil.isNotEmpty(details)&&details.size()>0){ - details.parallelStream().forEach(it->{ - - - String categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - Long count= categoryInfos.stream().filter(c-> - c.getId().toString().equals(categoryId) - ).count(); - - if(count>0){ - TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); - String remark = ""; - if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { - remark = tbProductSkuWithBLOBs.getSpecSnap(); - } - String data = PrinterUtils.getPrintData("return",orderInfo.getPayType().equals("wx_lite")?orderInfo.getTableName():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); - } - }); - } + printReturnTicket(tbPrintMachineWithBLOBs, orderInfo, printerNum, categoryInfos, orderId); return; }else { - tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); - if (ObjectUtil.isNotEmpty(tbOrderDetails) && !tbOrderDetails.isEmpty()) { - - tbOrderDetails.parallelStream().forEach(it -> { - // 已经打印过的菜品不再打印 - if ("postPay".equals(orderInfo.getUseType()) && isPrint(it, orderInfo.getId())) { - return; - } - String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - - Long count = categoryInfos.stream().filter(c -> - c.getId().toString().equals(categoryId) - ).count(); - log.info("获取当前类别是否未打印类别:{}", count); - - if(count>0){ - TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); - String remark = ""; - 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 voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; - PrinterUtils.printTickets(voiceJson,3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); - } - }); - } + printTicket(Integer.valueOf(orderId), categoryInfos, tbPrintMachineWithBLOBs, orderInfo); +// printNormalTicket(tbPrintMachineWithBLOBs, orderInfo, printerNum, categoryInfos, orderId); } break; case "category": //分类出单 @@ -315,6 +267,127 @@ public class PrintMechineConsumer { } } + private void printTicket(Integer orderId, List categoryInfos, TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, TbOrderInfo orderInfo) { + List tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(orderId); + if (!tbOrderDetails.isEmpty()) { + + tbOrderDetails.parallelStream().forEach(it -> { + log.info("开始打印一菜一品票据,:{}", it.getProductName()); + String categoryId = tbProductMapper.selectByPrimaryKey(it.getProductId()).getCategoryId(); + + long count = categoryInfos.stream().filter(c -> + c.getId().toString().equals(categoryId) + ).count(); + + log.info("获取当前类别是否未打印类别:{}", count); + if(count>0){ + + // 统计已打数量 + int printerNum = 0; + boolean isReturn = false; + String key = RedisCst.ORDER_PRINT + orderId + ":" + it.getProductId() + ":" + it.getProductSkuId(); + String info = redisUtils.getMessage(key); + redisUtils.saveMessage(key, String.valueOf(it.getNum()), 60 * 60 * 24); + if (info != null) { + isReturn = it.getNum() - Integer.parseInt(info) < 0; + } + + // 已打印不再打印 + if (info != null && it.getNum() - Integer.parseInt(info) == 0) { + return; + } + + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId()); + String remark = ""; + if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { + remark = tbProductSkuWithBLOBs.getSpecSnap(); + } + + String data; + String voiceJson; + if (isReturn) { + data = PrinterUtils.getPrintData("return", + orderInfo.getPayType().equals("wx_lite")? orderInfo.getTableName(): orderInfo.getMasterId(), + DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); + voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; + }else { + data = PrinterUtils.getPrintData("", orderInfo.getMasterId(), + DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), + it.getNum(), remark); + voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; + + } + + PrinterUtils.printTickets(voiceJson,3, printerNum, tbPrintMachineWithBLOBs.getAddress(), data); + } + }); + } + } + + /** + * 普通出菜单打印 + */ + private void printNormalTicket(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, TbOrderInfo orderInfo, String printerNum, List categoryInfos, String orderId) { + List tbOrderDetails; + tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); + if (ObjectUtil.isNotEmpty(tbOrderDetails) && !tbOrderDetails.isEmpty()) { + + tbOrderDetails.parallelStream().forEach(it -> { + // 已经打印过的菜品不再打印 + if ("postPay".equals(orderInfo.getUseType()) && isPrint(it, orderInfo.getId())) { + return; + } + String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); + + Long count = categoryInfos.stream().filter(c -> + c.getId().toString().equals(categoryId) + ).count(); + log.info("获取当前类别是否未打印类别:{}", count); + + if(count>0){ + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); + String remark = ""; + 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 voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; + PrinterUtils.printTickets(voiceJson,3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); + } + }); + } + } + + /** + * 退款单打印 + */ + private void printReturnTicket(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, TbOrderInfo orderInfo, String printerNum, List categoryInfos, String orderId) { + List details= tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); + if(ObjectUtil.isNotEmpty(details)&&details.size()>0){ + details.parallelStream().forEach(it->{ + + + String categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); + Long count= categoryInfos.stream().filter(c-> + c.getId().toString().equals(categoryId) + ).count(); + + if(count>0){ + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); + String remark = ""; + if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { + remark = tbProductSkuWithBLOBs.getSpecSnap(); + } + String data = PrinterUtils.getPrintData("return", orderInfo.getPayType().equals("wx_lite")? orderInfo.getTableName(): 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); + } + }); + } + } + /** * 判断商品是否已打票 * @return true 已打 false 未打 diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java index 95b3aed..677a487 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java @@ -189,7 +189,11 @@ public class CloudPrinterService { if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){ // OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList); - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId())||ObjectUtil.isNull(orderInfo.getMasterId())?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getPayAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList,orderInfo.getRemark(),null,null); + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", + ObjectUtil.isEmpty(orderInfo.getMasterId())||ObjectUtil.isNull(orderInfo.getMasterId())?orderInfo.getTableName():orderInfo.getMasterId(), + orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), + "【POS-1】001", orderInfo.getPayAmount() != null ? orderInfo.getPayAmount().toPlainString() : orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", + detailList,orderInfo.getRemark(),null,null); detailPO.setOutNumber(orderInfo.getOutNumber()); String printType="退款单"; @@ -251,7 +255,12 @@ public class CloudPrinterService { } if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){ - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp")?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getPayAmount().toPlainString(), balance,(ObjectUtil.isEmpty(orderInfo.getPayType())||ObjectUtil.isNull(orderInfo.getPayType())?"":orderInfo.getPayType() ), "0", detailList,orderInfo.getRemark(),orderInfo.getDiscountAmount().toPlainString(),orderInfo.getDiscountRatio().toPlainString()); + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", + orderInfo.getOrderType().equals("miniapp")?orderInfo.getTableName():orderInfo.getMasterId(), + orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), + "【POS-1】001", orderInfo.getPayAmount() != null ? orderInfo.getPayAmount().toPlainString() : orderInfo.getOrderAmount().toPlainString(), + balance, (ObjectUtil.isEmpty(orderInfo.getPayType())||ObjectUtil.isNull(orderInfo.getPayType())?"":orderInfo.getPayType() ), "0", + detailList,orderInfo.getRemark(),orderInfo.getDiscountAmount() != null ? orderInfo.getDiscountAmount().toPlainString() : null,orderInfo.getDiscountRatio() != null ? orderInfo.getDiscountRatio().toPlainString() : null); String printType="结算单"; detailPO.setOutNumber(orderInfo.getOutNumber()); @@ -495,7 +504,12 @@ public class CloudPrinterService { } } if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){ - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp")?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getPayAmount().toPlainString(), balance,(ObjectUtil.isEmpty(orderInfo.getPayType())||ObjectUtil.isNull(orderInfo.getPayType())?"":orderInfo.getPayType() ), "0", detailList,orderInfo.getRemark(),null,null); + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", + orderInfo.getOrderType().equals("miniapp")?orderInfo.getTableName():orderInfo.getMasterId(), + orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), + "【POS-1】001", orderInfo.getPayAmount() != null ? orderInfo.getPayAmount().toPlainString() : orderInfo.getOrderAmount().toPlainString(), + balance,(ObjectUtil.isEmpty(orderInfo.getPayType())||ObjectUtil.isNull(orderInfo.getPayType())?"":orderInfo.getPayType() ), + "0", detailList,orderInfo.getRemark(),null,null); String printType="结算单"; if(ispre){ printType="预结算单"; From bf1845218955bc2be61fc974a598c147d8d8f8e6 Mon Sep 17 00:00:00 2001 From: yijiegong Date: Fri, 30 Aug 2024 10:34:45 +0800 Subject: [PATCH 103/143] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=BA=97=E9=93=BA?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E5=AF=86=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ShopInfoController.java | 5 +++++ .../cashierservice/service/ShopInfoService.java | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/ShopInfoController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/ShopInfoController.java index e8d688e..a6fb4e1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/ShopInfoController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/ShopInfoController.java @@ -59,4 +59,9 @@ public class ShopInfoController { ) { return shopInfoService.queryDutyFlow(token, shopId, page,pageSize); } + + @GetMapping("queryPwdInfo") + public Result queryPwdInfo(@RequestParam("shopId") String shopId) { + return shopInfoService.queryShopPwdInfo(shopId); + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopInfoService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopInfoService.java index 37d3619..48db52d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopInfoService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ShopInfoService.java @@ -27,7 +27,8 @@ import java.util.*; @Service public class ShopInfoService { - + @Autowired + TbShopInfoMapper tbShopInfoMapper; @Autowired TbShopAreaMapper tbShopAreaMapper; @@ -127,4 +128,13 @@ public class ShopInfoService { map.put("amount",amount); return Result.success(CodeEnum.SUCCESS,map); } + + public Result queryShopPwdInfo(String shopId){ + TbShopInfo tbShopInfo= tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(shopId)); + Map data = new HashMap<>(); + data.put("isMemberIn", tbShopInfo.getIsMemberIn()); + data.put("isMemberReturn", tbShopInfo.getIsMemberReturn()); + data.put("isReturn", tbShopInfo.getIsReturn()); + return Result.success(CodeEnum.SUCCESS,data); + } } From 4bea33ff3e2799cb5b1dd4e791ed46a2f688a59a Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 30 Aug 2024 10:42:17 +0800 Subject: [PATCH 104/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E9=80=80=E6=AC=BE=E5=8D=95=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rabbit/PrintMechineConsumer.java | 15 ++++++++++++--- .../service/CloudPrinterService.java | 6 +++--- .../cashierservice/service/OrderService.java | 13 +++++++++++++ .../system/cashierservice/util/PrinterUtils.java | 1 + 4 files changed, 29 insertions(+), 6 deletions(-) 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 21c30bb..3264992 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -297,7 +297,7 @@ public class PrintMechineConsumer { return; } - TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId()); + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); String remark = ""; if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { remark = tbProductSkuWithBLOBs.getSpecSnap(); @@ -306,19 +306,27 @@ public class PrintMechineConsumer { String data; String voiceJson; if (isReturn) { + data = PrinterUtils.getPrintData("return", - orderInfo.getPayType().equals("wx_lite")? orderInfo.getTableName(): orderInfo.getMasterId(), + StrUtil.isBlank(orderInfo.getTableName()) ? orderInfo.getMasterId() : orderInfo.getTableName(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; + PrinterUtils.printTickets(voiceJson,3, 2, tbPrintMachineWithBLOBs.getAddress(), data); + }else { data = PrinterUtils.getPrintData("", orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; + PrinterUtils.printTickets(voiceJson,3, 1, tbPrintMachineWithBLOBs.getAddress(), data); + } +// PrinterUtils.printTickets(voiceJson,3, printerNum, tbPrintMachineWithBLOBs.getAddress(), data); + + + - PrinterUtils.printTickets(voiceJson,3, printerNum, tbPrintMachineWithBLOBs.getAddress(), data); } }); } @@ -388,6 +396,7 @@ public class PrintMechineConsumer { } } + /** * 判断商品是否已打票 * @return true 已打 false 未打 diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java index 677a487..21fa5da 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java @@ -192,7 +192,7 @@ public class CloudPrinterService { OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId())||ObjectUtil.isNull(orderInfo.getMasterId())?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), - "【POS-1】001", orderInfo.getPayAmount() != null ? orderInfo.getPayAmount().toPlainString() : orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", + "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList,orderInfo.getRemark(),null,null); detailPO.setOutNumber(orderInfo.getOutNumber()); String printType="退款单"; @@ -258,7 +258,7 @@ public class CloudPrinterService { OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp")?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), - "【POS-1】001", orderInfo.getPayAmount() != null ? orderInfo.getPayAmount().toPlainString() : orderInfo.getOrderAmount().toPlainString(), + "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, (ObjectUtil.isEmpty(orderInfo.getPayType())||ObjectUtil.isNull(orderInfo.getPayType())?"":orderInfo.getPayType() ), "0", detailList,orderInfo.getRemark(),orderInfo.getDiscountAmount() != null ? orderInfo.getDiscountAmount().toPlainString() : null,orderInfo.getDiscountRatio() != null ? orderInfo.getDiscountRatio().toPlainString() : null); String printType="结算单"; @@ -507,7 +507,7 @@ public class CloudPrinterService { OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp")?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), - "【POS-1】001", orderInfo.getPayAmount() != null ? orderInfo.getPayAmount().toPlainString() : orderInfo.getOrderAmount().toPlainString(), + "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance,(ObjectUtil.isEmpty(orderInfo.getPayType())||ObjectUtil.isNull(orderInfo.getPayType())?"":orderInfo.getPayType() ), "0", detailList,orderInfo.getRemark(),null,null); String printType="结算单"; 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 7587e0d..f980d08 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -555,6 +555,7 @@ public class OrderService { @Transactional(rollbackFor = Exception.class) public Result createOrder(OrderVo orderVo, String clientType, String token, Integer oldOrderId, boolean isPrint) { String day = DateUtils.getDay(); + TbShopTable shopTable = null; LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, orderVo.getShopId()) @@ -585,6 +586,13 @@ public class OrderService { .eq(TbCashierCart::getMasterId, ""); })); }); + + shopTable = mpShopTableMapper.selectOne(new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, orderVo.getTableId())); + + if (shopTable == null) { + return Result.fail("台桌不存在"); + } } List list = mpCashierCartMapper.selectList(queryWrapper); @@ -607,6 +615,7 @@ public class OrderService { } return Result.fail(CARTEXIST); } + BigDecimal totalAmount = BigDecimal.ZERO; BigDecimal packAMount = BigDecimal.ZERO; BigDecimal feeAmount = BigDecimal.ZERO; @@ -619,6 +628,7 @@ public class OrderService { if (list.size()<1 || list.isEmpty()){ return Result.fail(CARTEXIST); } + for (TbCashierCart cashierCart : list) { TbProductSkuWithBLOBs tbProduct = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getSkuId())); @@ -683,6 +693,7 @@ public class OrderService { orderInfo.setRemark(orderVo.getRemark()); orderInfo.setUserId(orderVo.getUserId()); orderInfo.setUseType(StrUtil.isNotBlank(orderVo.getTableId()) ? "postPay" : "afterPay"); + orderInfo.setTableName(shopTable != null ? shopTable.getName() : null); if (StrUtil.isNotBlank(orderVo.getTableId())) { orderInfo.setTableId(orderVo.getTableId()); @@ -718,10 +729,12 @@ public class OrderService { } + for (TbOrderDetail orderDetail : orderDetails) { orderDetail.setOrderId(orderId); orderDetailMapper.insert(orderDetail); } + boolean flag = true; for (TbCashierCart cashierCart : list) { TbProductWithBLOBs product = tbProductMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getProductId())); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java index fd775b3..a9f691f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java @@ -316,6 +316,7 @@ public class PrinterUtils { * @throws Exception */ public static void printTickets(String voiceJson, Integer actWay, Integer cn, String devName, String data) { + log.info("开始请求云享印,请求数据:{}, {}", voiceJson, data); //设备名称 //行为方式 1:只打印数据 2:只播放信息 3:打印数据并播放信息 // actWay = 3; From 187a757575d549cb8fb3e7936a7b63e47cf5de83 Mon Sep 17 00:00:00 2001 From: yijiegong Date: Fri, 30 Aug 2024 11:16:36 +0800 Subject: [PATCH 105/143] =?UTF-8?q?=E5=AF=86=E7=A0=81=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MemberController.java | 5 ++- .../cashierservice/service/MemberService.java | 41 ++++++++++++++----- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java index 706a5d7..5f1b9c8 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java @@ -99,8 +99,9 @@ public class MemberController { @RequestHeader("clientType") String clientType, @RequestParam("flowId") String flowId, @RequestParam("remark") String remark, - @RequestParam("amount") String amount + @RequestParam("amount") String amount, + @RequestParam("pwd") String pwd ){ - return memberService.returnAccount(flowId,remark,amount); + return memberService.returnAccount(token, flowId,remark,amount, pwd); } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index c48a945..a1fa06f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -573,11 +573,10 @@ public class MemberService { @Transactional(rollbackFor = Exception.class) public Result memberAccountPay(Map map, String token) throws Exception { - if (ObjectUtil.isEmpty(map) || map.size() <= 0 + if (ObjectUtil.isEmpty(map) || map.isEmpty() || !map.containsKey("shopId") || ObjectUtil.isEmpty(map.get("shopId")) || !map.containsKey("memberId") || ObjectUtil.isEmpty(map.get("memberId")) || !map.containsKey("amount") || ObjectUtil.isEmpty(map.get("amount")) - || !map.containsKey("pwd") || ObjectUtil.isEmpty(map.get("pwd")) ) { return Result.fail(CodeEnum.PARAM); } @@ -595,6 +594,9 @@ public class MemberService { if ("1".equals(shopInfo.getIsMemberIn())) { + if (!map.containsKey("pwd") || ObjectUtil.isEmpty(map.get("pwd"))) { + return Result.fail(CodeEnum.PARAM); + } String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); @@ -724,7 +726,7 @@ public class MemberService { } - public Result returnAccount(String flowId, String remark, String amount) { + public Result returnAccount(String token, String flowId, String remark, String amount, String pwd) { if (ObjectUtil.isEmpty(flowId) || ObjectUtil.isNull(flowId) || ObjectUtil.isNull(amount) || ObjectUtil.isEmpty(amount)) { return Result.fail(CodeEnum.PARAM); } @@ -741,24 +743,41 @@ public class MemberService { return Result.fail(CodeEnum.INPURAMOUNTERROR); } - TbShopUser user = tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId()); if (ObjectUtil.isEmpty(user) || ObjectUtil.isNull(user)) { return Result.fail(CodeEnum.ACCOUNTEIXST); } + TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(user.getShopId())); + if (ObjectUtil.isEmpty(shopInfo) || shopInfo == null) { + return Result.fail(CodeEnum.SHOPINFONOEXIST); + } + + if ("1".equals(shopInfo.getIsMemberReturn())) { + if (ObjectUtil.isEmpty(pwd)) { + return Result.fail(CodeEnum.PARAM); + } + String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); + + TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); + if (Objects.isNull(account)) { + return Result.fail(CodeEnum.ACCOUNTEIXST); + } + + if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) { + return Result.fail(CodeEnum.PWDNOSET); + } + + if (!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))) { + return Result.fail(CodeEnum.PWDERROE); + } + } + if (N.gt(new BigDecimal(amount), user.getAmount())) { return Result.fail(CodeEnum.ACCOUNTBALANCEERROR); } - - TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(user.getShopId())); - if (ObjectUtil.isEmpty(shopInfo) || ObjectUtil.isNull(shopInfo)) { - return Result.fail(CodeEnum.MERCHANTEIXST); - } - - if ("scanMemberIn".equals(flow.getBizCode())) { TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(shopInfo.getMerchantId())); if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) { From e0b62b66d426d749aa41142337e8817b7db4c943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Fri, 30 Aug 2024 14:40:43 +0800 Subject: [PATCH 106/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LoginContoller.java | 2 + .../cashierservice/service/MemberService.java | 44 +++++++++---------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java index 6b548f1..2ba0061 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java @@ -23,6 +23,8 @@ public class LoginContoller { @Autowired LoginService loginService; + + @RequestMapping(value = "login",method = RequestMethod.POST) public Result login(@RequestBody LoginReq loginReq, HttpServletRequest request){ try { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index a1fa06f..b648921 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -190,28 +190,28 @@ public class MemberService { } - if ("1".equals(shopInfo.getIsMemberIn())) { - if (!map.containsKey("pwd") || ObjectUtil.isEmpty(map.get("pwd"))) { - return Result.fail(CodeEnum.PARAM); - } - String pwd = map.get("pwd").toString(); - String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); - - - TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); - if (Objects.isNull(account)) { - return Result.fail(CodeEnum.ACCOUNTEIXST); - } - - - if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) { - return Result.fail(CodeEnum.PWDNOSET); - } - - if (!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))) { - return Result.fail(CodeEnum.PWDERROE); - } - } +// if ("1".equals(shopInfo.getIsMemberIn())) { +// if (!map.containsKey("pwd") || ObjectUtil.isEmpty(map.get("pwd"))) { +// return Result.fail(CodeEnum.PARAM); +// } +// String pwd = map.get("pwd").toString(); +// String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); +// +// +// TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); +// if (Objects.isNull(account)) { +// return Result.fail(CodeEnum.ACCOUNTEIXST); +// } +// +// +// if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) { +// return Result.fail(CodeEnum.PWDNOSET); +// } +// +// if (!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))) { +// return Result.fail(CodeEnum.PWDERROE); +// } +// } TbShopUser shopUser = tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId)); From 83d3aa444f8a96ff8ae5e2f32b07c73f9638636e Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 30 Aug 2024 15:06:56 +0800 Subject: [PATCH 107/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=95=86=E5=93=81=E6=95=B0=E9=87=8F=E5=87=8F=E5=B0=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=93=E5=8D=B0=E9=80=80=E5=8D=95=E7=A5=A8?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/bean/PrintProductInfo.java | 6 + .../cashierservice/entity/TbPrintMachine.java | 11 +- .../mybatis/MpPrintMachineMapper.java | 8 + .../rabbit/PrintMechineConsumer.java | 330 ++++++++++++------ .../cashierservice/service/OrderService.java | 33 +- .../system/cashierservice/util/RedisCst.java | 1 + 6 files changed, 280 insertions(+), 109 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/bean/PrintProductInfo.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpPrintMachineMapper.java diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/bean/PrintProductInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/bean/PrintProductInfo.java new file mode 100644 index 0000000..bae8c62 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/bean/PrintProductInfo.java @@ -0,0 +1,6 @@ +package com.chaozhanggui.system.cashierservice.bean; + +public class PrintProductInfo { + private Integer orderDetailId; + private Integer num; +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachine.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachine.java index 3bdee44..e07c140 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachine.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachine.java @@ -34,6 +34,15 @@ public class TbPrintMachine implements Serializable { private String vendorId; private String productId; + private String config; + + public String getConfig() { + return config; + } + + public void setConfig(String config) { + this.config = config; + } private static final long serialVersionUID = 1L; @@ -164,4 +173,4 @@ public class TbPrintMachine implements Serializable { public void setProductId(String productId) { this.productId = productId == null ? null : productId.trim(); } -} \ No newline at end of file +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpPrintMachineMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpPrintMachineMapper.java new file mode 100644 index 0000000..c5fff9f --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpPrintMachineMapper.java @@ -0,0 +1,8 @@ +package com.chaozhanggui.system.cashierservice.mybatis; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chaozhanggui.system.cashierservice.entity.TbCashierCart; +import com.chaozhanggui.system.cashierservice.entity.TbPrintMachine; + +public interface MpPrintMachineMapper extends BaseMapper { +} 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 3264992..8f13ba9 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -3,24 +3,25 @@ package com.chaozhanggui.system.cashierservice.rabbit; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; import com.chaozhanggui.system.cashierservice.model.CategoryInfo; import com.chaozhanggui.system.cashierservice.model.OrderDetailPO; -import com.chaozhanggui.system.cashierservice.sign.CodeEnum; -import com.chaozhanggui.system.cashierservice.sign.Result; +import com.chaozhanggui.system.cashierservice.mybatis.MpPrintMachineMapper; import com.chaozhanggui.system.cashierservice.util.*; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.annotation.RabbitListeners; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; @Slf4j @Component @@ -51,6 +52,14 @@ public class PrintMechineConsumer { private RedisUtil redisUtils; + private final RedisTemplate redisTemplate; + @Autowired + private MpPrintMachineMapper mpPrintMachineMapper; + + public PrintMechineConsumer(RedisTemplate redisTemplate) { + this.redisTemplate = redisTemplate; + } + @RabbitHandler public void listener(String message) { @@ -81,15 +90,15 @@ public class PrintMechineConsumer { } - list.parallelStream().forEach(it->{ + list.parallelStream().forEach(it -> { if (!"network".equals(it.getConnectionType())) { - log.error("非网络打印机:{},{}",it.getAddress(),it.getConnectionType()); + log.error("非网络打印机:{},{}", it.getAddress(), it.getConnectionType()); return; } if (!"1".equals(it.getStatus().toString())) { - log.error("打印机状态异常:{},{}",it.getAddress(),it.getStatus()); + log.error("打印机状态异常:{},{}", it.getAddress(), it.getStatus()); return; } @@ -101,37 +110,37 @@ public class PrintMechineConsumer { String feet = config.getString("feet"); String autoCut = config.getString("autoCut"); - List categoryInfos=JSONUtil.parseJSONStr2TList(config.getJSONArray("categoryList").toString(),CategoryInfo.class); + List categoryInfos = JSONUtil.parseJSONStr2TList(config.getJSONArray("categoryList").toString(), CategoryInfo.class); - switch (it.getContentType()){ + switch (it.getContentType()) { case "yxyPrinter": - yxyPrinter(it,model,orderInfo,shopInfo,printerNum,categoryInfos); + yxyPrinter(it, model, orderInfo, shopInfo, printerNum, categoryInfos); break; case "fePrinter": - fePrinter(it,model,orderInfo,shopInfo,printerNum,categoryInfos); + fePrinter(it, model, orderInfo, shopInfo, printerNum, categoryInfos); break; } }); - - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } /** - * 博时结云打印机 + * 博时结云打印机 + * * @param tbPrintMachineWithBLOBs * @param model * @param orderInfo * @param shopInfo * @param printerNum */ - private void yxyPrinter(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs,String model, - TbOrderInfo orderInfo,TbShopInfo shopInfo,String printerNum, List categoryInfos){ - String orderId=orderInfo.getId().toString(); + private void yxyPrinter(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, String model, + TbOrderInfo orderInfo, TbShopInfo shopInfo, String printerNum, List categoryInfos) { + String orderId = orderInfo.getId().toString(); switch (tbPrintMachineWithBLOBs.getSubType()) { @@ -142,17 +151,17 @@ public class PrintMechineConsumer { case "normal": //普通出单 - if("return".equals(orderInfo.getOrderType())){ - List tbOrderDetails=tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); - if(ObjectUtil.isNotEmpty(tbOrderDetails)&&tbOrderDetails.size()>0){ + if ("return".equals(orderInfo.getOrderType())) { + List tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); + if (ObjectUtil.isNotEmpty(tbOrderDetails) && tbOrderDetails.size() > 0) { List detailList = new ArrayList<>(); - tbOrderDetails.parallelStream().forEach(it->{ - String categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); + tbOrderDetails.parallelStream().forEach(it -> { + String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - Long count= categoryInfos.stream().filter(c-> + Long count = categoryInfos.stream().filter(c -> c.getId().toString().equals(categoryId) ).count(); - log.info("获取当前类别是否未打印类别:{}",count); + log.info("获取当前类别是否未打印类别:{}", count); TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); @@ -174,14 +183,14 @@ public class PrintMechineConsumer { } - if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){ - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId())||ObjectUtil.isNull(orderInfo.getMasterId())?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList,orderInfo.getRemark(),null,null); + if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) { + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId()) || ObjectUtil.isNull(orderInfo.getMasterId()) ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList, orderInfo.getRemark(), null, null); - String printType="退款单"; + String printType = "退款单"; - String data= PrinterUtils.getCashPrintData(detailPO,printType,"return"); + String data = PrinterUtils.getCashPrintData(detailPO, printType, "return"); String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; - PrinterUtils.printTickets(voiceJson,1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); + PrinterUtils.printTickets(voiceJson, 1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); } } @@ -192,8 +201,8 @@ public class PrintMechineConsumer { && (!orderInfo.getStatus().equals("closed"))) { return; } - List tbOrderDetails=tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); - if(ObjectUtil.isNotEmpty(tbOrderDetails)&&tbOrderDetails.size()>0) { + List tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); + if (ObjectUtil.isNotEmpty(tbOrderDetails) && tbOrderDetails.size() > 0) { List detailList = new ArrayList<>(); tbOrderDetails.stream().forEach(it -> { String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); @@ -224,21 +233,21 @@ public class PrintMechineConsumer { if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) { - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", - orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), - orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), - "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, - (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), - "0", detailList, orderInfo.getRemark(), orderInfo.getDiscountAmount() != null ? orderInfo.getDiscountAmount().toPlainString() : null, - orderInfo.getDiscountRatio() != null ? orderInfo.getDiscountRatio().toPlainString() : null); + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", + orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), + orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), + "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, + (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), + "0", detailList, orderInfo.getRemark(), orderInfo.getDiscountAmount() != null ? orderInfo.getDiscountAmount().toPlainString() : null, + orderInfo.getDiscountRatio() != null ? orderInfo.getDiscountRatio().toPlainString() : null); // OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList); - detailPO.setOutNumber(orderInfo.getOutNumber()); - String printType = "结算单"; + detailPO.setOutNumber(orderInfo.getOutNumber()); + String printType = "结算单"; - String data = PrinterUtils.getCashPrintData(detailPO, printType, orderInfo.getOrderType()); - String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; + String data = PrinterUtils.getCashPrintData(detailPO, printType, orderInfo.getOrderType()); + String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; - PrinterUtils.printTickets(voiceJson, 3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); + PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); } } @@ -249,10 +258,10 @@ public class PrintMechineConsumer { && (!orderInfo.getStatus().equals("unpaid"))) { return; } - if("return".equals(orderInfo.getOrderType())){ + if ("return".equals(orderInfo.getOrderType())) { printReturnTicket(tbPrintMachineWithBLOBs, orderInfo, printerNum, categoryInfos, orderId); return; - }else { + } else { printTicket(Integer.valueOf(orderId), categoryInfos, tbPrintMachineWithBLOBs, orderInfo); // printNormalTicket(tbPrintMachineWithBLOBs, orderInfo, printerNum, categoryInfos, orderId); } @@ -270,8 +279,11 @@ public class PrintMechineConsumer { private void printTicket(Integer orderId, List categoryInfos, TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, TbOrderInfo orderInfo) { List tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(orderId); if (!tbOrderDetails.isEmpty()) { - - tbOrderDetails.parallelStream().forEach(it -> { + String printKey = RedisCst.ORDER_PRINT_PRO + orderId; + AtomicReference> printProductSet = new AtomicReference<>(redisTemplate.opsForSet().members(printKey)); + // 重置打印数据 + redisTemplate.delete(printKey); + tbOrderDetails.forEach(it -> { log.info("开始打印一菜一品票据,:{}", it.getProductName()); String categoryId = tbProductMapper.selectByPrimaryKey(it.getProductId()).getCategoryId(); @@ -280,7 +292,7 @@ public class PrintMechineConsumer { ).count(); log.info("获取当前类别是否未打印类别:{}", count); - if(count>0){ + if (count > 0) { // 统计已打数量 int printerNum = 0; @@ -288,21 +300,40 @@ public class PrintMechineConsumer { String key = RedisCst.ORDER_PRINT + orderId + ":" + it.getProductId() + ":" + it.getProductSkuId(); String info = redisUtils.getMessage(key); redisUtils.saveMessage(key, String.valueOf(it.getNum()), 60 * 60 * 24); + + // 删除已打印数据 + if (printProductSet.get() != null) { + printProductSet.set(printProductSet.get().stream().filter(r -> { + TbOrderDetail detail = (TbOrderDetail) r; + return !detail.getProductSkuId().equals(it.getProductSkuId()) || !detail.getProductId().equals(it.getProductId()); + }).collect(Collectors.toSet())); + } + + if (info != null) { isReturn = it.getNum() - Integer.parseInt(info) < 0; + printerNum = it.getNum() - Integer.parseInt(info); + }else { + printerNum = it.getNum(); } + + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId()); + String remark = ""; + if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { + remark = tbProductSkuWithBLOBs.getSpecSnap(); + } + + // 将已打印信息加入redis + it.setRemark(remark); + redisTemplate.opsForSet().add(printKey, it); + redisTemplate.expire(printKey, 24, TimeUnit.HOURS); + // 已打印不再打印 if (info != null && it.getNum() - Integer.parseInt(info) == 0) { return; } - TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); - String remark = ""; - if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { - remark = tbProductSkuWithBLOBs.getSpecSnap(); - } - String data; String voiceJson; if (isReturn) { @@ -311,27 +342,114 @@ public class PrintMechineConsumer { StrUtil.isBlank(orderInfo.getTableName()) ? orderInfo.getMasterId() : orderInfo.getTableName(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; - PrinterUtils.printTickets(voiceJson,3, 2, tbPrintMachineWithBLOBs.getAddress(), data); + PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); - }else { + } else { data = PrinterUtils.getPrintData("", orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; - PrinterUtils.printTickets(voiceJson,3, 1, tbPrintMachineWithBLOBs.getAddress(), data); + PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); } -// PrinterUtils.printTickets(voiceJson,3, printerNum, tbPrintMachineWithBLOBs.getAddress(), data); - - - - } }); + + + // 已删除的商品打印退款信息 + if (printProductSet.get() != null) { + printProductSet.get().forEach(item -> { + log.info("已删除订单,打印退款票据, {}", item); + TbOrderDetail orderDetail = (TbOrderDetail) item; + String data = PrinterUtils.getPrintData("return", + StrUtil.isBlank(orderInfo.getTableName()) ? orderInfo.getMasterId() : orderInfo.getTableName(), + DateUtils.getTime(new Date(orderInfo.getCreatedAt())), orderDetail.getProductName(), orderDetail.getNum(), orderDetail.getRemark()); + String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; + PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); + + String key = RedisCst.ORDER_PRINT + orderId + ":" + orderDetail.getProductId() + ":" + orderDetail.getProductSkuId(); + log.info("删除商品数量记录key, {}", key); + redisUtils.deleteByKey(key); + }); + } + } } + /** + * 打印退款订单 + * @param orderId 订单id + * @param tbOrderDetails 现有订单 + */ + public void printReturnTicket(Integer orderId, List tbOrderDetails) { + TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); + List list = mpPrintMachineMapper.selectList(new LambdaUpdateWrapper() + .eq(TbPrintMachine::getContentType, "yxyPrinter") + .eq(TbPrintMachine::getConnectionType, "network") + .eq(TbPrintMachine::getSubType, "cash") + .eq(TbPrintMachine::getStatus, 1) + .eq(TbPrintMachine::getShopId, orderInfo.getShopId())); + String printKey = RedisCst.ORDER_PRINT_PRO + orderId; + Set printProductSet = redisTemplate.opsForSet().members(printKey); + Set printProductSetCopy = redisTemplate.opsForSet().members(printKey); + + log.info("-------------------开始打印退款订单,打印机列表: {}", list); + log.info("-------------------待打印数据: {}", printProductSet); + if (printProductSet != null && !printProductSet.isEmpty()) { + + // 过滤出已经删除的订单 + if (tbOrderDetails != null && !tbOrderDetails.isEmpty()) { + for (TbOrderDetail it : tbOrderDetails) { + printProductSet = printProductSet.stream().filter(r -> { + TbOrderDetail detail = (TbOrderDetail) r; + return !detail.getProductSkuId().equals(it.getProductSkuId()) || !detail.getProductId().equals(it.getProductId()); + }).collect(Collectors.toSet()); + + printProductSetCopy = printProductSet.stream().filter(r -> { + TbOrderDetail detail = (TbOrderDetail) r; + return detail.getProductSkuId().equals(it.getProductSkuId()) && detail.getProductId().equals(it.getProductId()); + }).collect(Collectors.toSet()); + } + + redisTemplate.delete(printKey); + for (Object o : printProductSetCopy) { + redisTemplate.opsForSet().add(printKey, o); + } + }else if (tbOrderDetails != null) { + redisTemplate.delete(printKey); + } + + log.info("-------------------打印机数量{}", list.size()); + for (TbPrintMachine machine : list) { + + String config = machine.getConfig(); + if (config != null) { + JSONObject jsonObject = JSONObject.parseObject(config); + if (!"one".equals(jsonObject.getString("model"))) { + continue; + } + } + log.info("-------------------商品数量{}", printProductSet.size()); + printProductSet.forEach(item -> { + log.info("已删除订单,打印退款票据, {}", item); + TbOrderDetail orderDetail = (TbOrderDetail) item; + String data = PrinterUtils.getPrintData("return", + StrUtil.isBlank(orderInfo.getTableName()) ? orderInfo.getMasterId() : orderInfo.getTableName(), + DateUtils.getTime(new Date(orderInfo.getCreatedAt())), orderDetail.getProductName(), orderDetail.getNum(), orderDetail.getRemark()); + String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; + PrinterUtils.printTickets(voiceJson, 3, 1, machine.getAddress(), data); + + String key = RedisCst.ORDER_PRINT + orderId + ":" + orderDetail.getProductId() + ":" + orderDetail.getProductSkuId(); + log.info("删除商品数量记录key, {}", key); + redisUtils.deleteByKey(key); + }); + } + + } + + } + /** * 普通出菜单打印 */ @@ -352,7 +470,7 @@ public class PrintMechineConsumer { ).count(); log.info("获取当前类别是否未打印类别:{}", count); - if(count>0){ + if (count > 0) { TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); String remark = ""; if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { @@ -362,7 +480,7 @@ public class PrintMechineConsumer { 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); + PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); } }); } @@ -372,25 +490,25 @@ public class PrintMechineConsumer { * 退款单打印 */ private void printReturnTicket(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, TbOrderInfo orderInfo, String printerNum, List categoryInfos, String orderId) { - List details= tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); - if(ObjectUtil.isNotEmpty(details)&&details.size()>0){ - details.parallelStream().forEach(it->{ + List details = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); + if (ObjectUtil.isNotEmpty(details) && details.size() > 0) { + details.parallelStream().forEach(it -> { - String categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - Long count= categoryInfos.stream().filter(c-> + String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); + Long count = categoryInfos.stream().filter(c -> c.getId().toString().equals(categoryId) ).count(); - if(count>0){ + if (count > 0) { TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); String remark = ""; if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { remark = tbProductSkuWithBLOBs.getSpecSnap(); } - String data = PrinterUtils.getPrintData("return", orderInfo.getPayType().equals("wx_lite")? orderInfo.getTableName(): orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); + String data = PrinterUtils.getPrintData("return", orderInfo.getPayType().equals("wx_lite") ? orderInfo.getTableName() : 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); + PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); } }); } @@ -399,9 +517,10 @@ public class PrintMechineConsumer { /** * 判断商品是否已打票 + * * @return true 已打 false 未打 */ - private boolean isPrint(TbOrderDetail orderDetail, Integer orderId) { + private boolean isPrint(TbOrderDetail orderDetail, Integer orderId) { String key = RedisCst.ORDER_PRINT + orderId + ":" + orderDetail.getProductId() + ":" + orderDetail.getProductSkuId(); String info = redisUtils.getMessage(key); redisUtils.saveMessage(key, String.valueOf(orderDetail.getNum()), 60 * 60 * 24); @@ -413,38 +532,36 @@ public class PrintMechineConsumer { } - - - private void fePrinter(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs,String model,TbOrderInfo orderInfo,TbShopInfo shopInfo,String printerNum, List categoryInfos){ - String orderId=orderInfo.getId().toString(); + private void fePrinter(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, String model, TbOrderInfo orderInfo, TbShopInfo shopInfo, String printerNum, List categoryInfos) { + String orderId = orderInfo.getId().toString(); switch (tbPrintMachineWithBLOBs.getSubType()) { case "label": //标签打印机 - List cashierCarts = tbCashierCartMapper.selectByOrderId(orderInfo.getId().toString(),"final"); + List cashierCarts = tbCashierCartMapper.selectByOrderId(orderInfo.getId().toString(), "final"); if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) { - cashierCarts.parallelStream().forEach(it->{ + cashierCarts.parallelStream().forEach(it -> { String categoryId; - if(ObjectUtil.isEmpty(it.getCategoryId())){ - categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); + if (ObjectUtil.isEmpty(it.getCategoryId())) { + categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); } else { categoryId = it.getCategoryId(); } - Long count= categoryInfos.stream().filter(c-> + Long count = categoryInfos.stream().filter(c -> c.getId().toString().equals(categoryId) ).count(); - log.info("获取当前类别是否未打印类别:{}",count); + log.info("获取当前类别是否未打印类别:{}", count); - if(count>0) { + if (count > 0) { TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getSkuId())); String remark = ""; if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { remark = tbProductSkuWithBLOBs.getSpecSnap(); } - for(int i=0;i tbOrderDetails=tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); - if(ObjectUtil.isNotEmpty(tbOrderDetails)&&tbOrderDetails.size()>0){ + if ("return".equals(orderInfo.getOrderType())) { + List tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); + if (ObjectUtil.isNotEmpty(tbOrderDetails) && tbOrderDetails.size() > 0) { List detailList = new ArrayList<>(); - tbOrderDetails.parallelStream().forEach(it->{ - String categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); + tbOrderDetails.parallelStream().forEach(it -> { + String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - Long count= categoryInfos.stream().filter(c-> + Long count = categoryInfos.stream().filter(c -> c.getId().toString().equals(categoryId) ).count(); - log.info("获取当前类别是否未打印类别:{}",count); + log.info("获取当前类别是否未打印类别:{}", count); TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); @@ -488,20 +605,20 @@ public class PrintMechineConsumer { } - if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){ + if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) { // OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList); - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId())||ObjectUtil.isNull(orderInfo.getMasterId())?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList,orderInfo.getRemark(),orderInfo.getDiscountAmount().toPlainString(),orderInfo.getDiscountRatio().toPlainString()); + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId()) || ObjectUtil.isNull(orderInfo.getMasterId()) ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList, orderInfo.getRemark(), orderInfo.getDiscountAmount().toPlainString(), orderInfo.getDiscountRatio().toPlainString()); - String printType="退款单"; + String printType = "退款单"; - String data= PrinterUtils.getCashPrintData(detailPO,printType,"return"); + String data = PrinterUtils.getCashPrintData(detailPO, printType, "return"); // String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; // PrinterUtils.printTickets(voiceJson,1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); } } - }else { + } else { cashierCarts = cashierCarts = tbCashierCartMapper.selectByOrderId(orderInfo.getId().toString(), "final"); if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) { @@ -540,7 +657,7 @@ public class PrintMechineConsumer { } } if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) { - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), "0", detailList, orderInfo.getRemark(),null,null); + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), "0", detailList, orderInfo.getRemark(), null, null); String printType = "结算单"; if ("return".equals(orderInfo.getOrderType())) { @@ -561,24 +678,24 @@ public class PrintMechineConsumer { return; } - cashierCarts = tbCashierCartMapper.selectByOrderId(orderId,"final"); + cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, "final"); if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) { cashierCarts.parallelStream().forEach(it -> { String categoryId; - if(ObjectUtil.isEmpty(it.getCategoryId())){ - categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); + if (ObjectUtil.isEmpty(it.getCategoryId())) { + categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); } else { categoryId = it.getCategoryId(); } - Long count= categoryInfos.stream().filter(c-> + Long count = categoryInfos.stream().filter(c -> c.getId().toString().equals(categoryId) ).count(); - if(count>0){ + if (count > 0) { TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getSkuId())); String remark = ""; if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { @@ -586,8 +703,7 @@ public class PrintMechineConsumer { } - - FeieyunPrintUtil.getPrintData(tbPrintMachineWithBLOBs.getAddress(),orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getName(), it.getNumber(), remark); + FeieyunPrintUtil.getPrintData(tbPrintMachineWithBLOBs.getAddress(), orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getName(), it.getNumber(), remark); } }); } 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 f980d08..7cb9343 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -19,6 +19,7 @@ import com.chaozhanggui.system.cashierservice.entity.vo.CartVo; import com.chaozhanggui.system.cashierservice.exception.MsgException; import com.chaozhanggui.system.cashierservice.mybatis.MPCashierCartMapper; import com.chaozhanggui.system.cashierservice.mybatis.MpShopTableMapper; +import com.chaozhanggui.system.cashierservice.rabbit.PrintMechineConsumer; import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; @@ -28,6 +29,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -91,20 +93,28 @@ public class OrderService { @Autowired TbConsInfoMapper tbConsInfoMapper; + private final TbCashierCartMapper tbCashierCartMapper; private static ConcurrentHashMap> codeMap = new ConcurrentHashMap<>(); private static ConcurrentHashMap> userMap = new ConcurrentHashMap<>(); @Autowired private ProductService productService; + @Qualifier("printMechineConsumer") + @Autowired + private PrintMechineConsumer printMechineConsumer; + @Qualifier("tbOrderDetailMapper") + @Autowired + private TbOrderDetailMapper tbOrderDetailMapper; - public OrderService(WxAccountUtil wxAccountUtil, MPCashierCartMapper mpCashierCartMapper, WechatUtil wechatUtil, TbUserShopMsgMapper tbUserShopMsgMapper, TbShopOpenIdMapper shopOpenIdMapper, MpShopTableMapper mpShopTableMapper) { + public OrderService(WxAccountUtil wxAccountUtil, MPCashierCartMapper mpCashierCartMapper, WechatUtil wechatUtil, TbUserShopMsgMapper tbUserShopMsgMapper, TbShopOpenIdMapper shopOpenIdMapper, MpShopTableMapper mpShopTableMapper, TbCashierCartMapper tbCashierCartMapper) { this.wxAccountUtil = wxAccountUtil; this.mpCashierCartMapper = mpCashierCartMapper; this.wechatUtil = wechatUtil; this.tbUserShopMsgMapper = tbUserShopMsgMapper; this.shopOpenIdMapper = shopOpenIdMapper; this.mpShopTableMapper = mpShopTableMapper; + this.tbCashierCartMapper = tbCashierCartMapper; } @Transactional(rollbackFor = Exception.class) @@ -203,6 +213,7 @@ public class OrderService { tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(finalCart.getOrderId())); } } + return Result.success(CodeEnum.SUCCESS, masterId); } @@ -343,6 +354,14 @@ public class OrderService { redisUtil.saveMessage("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + DateUtils.getDay(),masterId.substring(1,masterId.length())); + TbCashierCart finalCart1 = cart; + ThreadUtil.execute(() -> { + ThreadUtil.sleep(1, TimeUnit.SECONDS); + if (finalCart1.getOrderId() != null && finalCart1.getTableId() != null) { + log.info("购物车数量改变,开始校验订单是否为空"); + printMechineConsumer.printReturnTicket(Integer.valueOf(finalCart1.getOrderId()), tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(finalCart1.getOrderId()))); + } + }); return Result.success(CodeEnum.SUCCESS, masterId); } @@ -546,7 +565,13 @@ public class OrderService { if (list.isEmpty()) { tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId())); + ThreadUtil.execute(() -> { + log.info("购物车数量改变,开始校验订单是否为空"); + printMechineConsumer.printReturnTicket(Integer.valueOf(cashierCart.getOrderId()), null); + }); } + + } return Result.success(CodeEnum.SUCCESS); @@ -1213,6 +1238,12 @@ public class OrderService { .eq(TbShopTable::getQrcode, cartVo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + // 打印退款票据 + int finalOrderId = orderId; + ThreadUtil.execute(() -> { + printMechineConsumer.printReturnTicket(finalOrderId, null); + }); + return Result.success(CodeEnum.SUCCESS); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java index 25f4abf..294173d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java @@ -21,4 +21,5 @@ public class RedisCst { public static final String ORDER_PRODUCT_NUM = "ORDER_NUM:"; public static final String ORDER_CART_EXISTS = "ORDER_CART_EXISTS:"; public static final String ORDER_PRINT = "ORDER_PRINT:"; + public static final String ORDER_PRINT_PRO = "ORDER_PRINT_PRODUCT:"; } From f857715b0ff43ae59a7b962d69d06b0bddbd8f20 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 30 Aug 2024 15:15:54 +0800 Subject: [PATCH 108/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=95=86=E5=93=81=E6=95=B0=E9=87=8F=E5=87=8F=E5=B0=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=93=E5=8D=B0=E9=80=80=E5=8D=95=E7=A5=A8?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7cb9343..22ccbc8 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -564,10 +564,10 @@ public class OrderService { List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); if (list.isEmpty()) { - tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId())); ThreadUtil.execute(() -> { log.info("购物车数量改变,开始校验订单是否为空"); printMechineConsumer.printReturnTicket(Integer.valueOf(cashierCart.getOrderId()), null); + tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId())); }); } From cff864f2daef1f3ebf5b531708cc8e54f855e2b8 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 30 Aug 2024 15:47:38 +0800 Subject: [PATCH 109/143] =?UTF-8?q?1.=E9=80=80=E6=AC=BE=E4=B8=8B=E7=A5=A8?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E9=94=99=E8=AF=AFfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/rabbit/PrintMechineConsumer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 8f13ba9..ac108b8 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -340,14 +340,14 @@ public class PrintMechineConsumer { data = PrinterUtils.getPrintData("return", StrUtil.isBlank(orderInfo.getTableName()) ? orderInfo.getMasterId() : orderInfo.getTableName(), - DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); + DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), Math.abs(printerNum), remark); voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); } else { data = PrinterUtils.getPrintData("", orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), - it.getNum(), remark); + printerNum, remark); voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); From ed78691326e8381cc008bf7bd9d70b9d82040cb7 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 30 Aug 2024 16:45:19 +0800 Subject: [PATCH 110/143] =?UTF-8?q?1.=E9=80=80=E6=AC=BE=E4=B8=8B=E7=A5=A8?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E9=94=99=E8=AF=AFfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/rabbit/PrintMechineConsumer.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 ac108b8..4be8ae3 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -254,10 +254,10 @@ public class PrintMechineConsumer { break; case "one": //一菜一品 - if (StrUtil.isNotBlank(orderInfo.getUseType()) && orderInfo.getUseType().equals("postPay") - && (!orderInfo.getStatus().equals("unpaid"))) { - return; - } +// if (StrUtil.isNotBlank(orderInfo.getUseType()) && orderInfo.getUseType().equals("postPay") +// && (!orderInfo.getStatus().equals("unpaid"))) { +// return; +// } if ("return".equals(orderInfo.getOrderType())) { printReturnTicket(tbPrintMachineWithBLOBs, orderInfo, printerNum, categoryInfos, orderId); return; From 4101c5235bb43b657f2f1de4c023e858405ec8fe Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 31 Aug 2024 16:45:08 +0800 Subject: [PATCH 111/143] =?UTF-8?q?1.=E8=8E=B7=E5=8F=96=E6=A1=8C=E7=A0=81?= =?UTF-8?q?=E9=80=9A=E8=BF=87tableId=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/controller/OrderController.java | 3 ++- .../system/cashierservice/rabbit/PrintMechineConsumer.java | 5 ++--- .../system/cashierservice/service/OrderService.java | 7 +++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java index c44fe72..44f0171 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java @@ -79,11 +79,12 @@ public class OrderController { @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("shopId") String shopId, + @RequestParam(required = false) String tableId, String type ){ JSONObject jsonObject = TokenUtil.parseParamFromToken(token); String userId = jsonObject.getString("accountId"); - return orderService.createCode(shopId,clientType,userId,type); + return orderService.createCode(shopId,clientType,userId,type, tableId); } @GetMapping("/getCartList") public Result getCart(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, 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 4be8ae3..5d07918 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -90,7 +90,7 @@ public class PrintMechineConsumer { } - list.parallelStream().forEach(it -> { + list.forEach(it -> { if (!"network".equals(it.getConnectionType())) { log.error("非网络打印机:{},{}", it.getAddress(), it.getConnectionType()); return; @@ -197,8 +197,7 @@ public class PrintMechineConsumer { return; } - if (StrUtil.isNotBlank(orderInfo.getUseType()) && orderInfo.getUseType().equals("postPay") - && (!orderInfo.getStatus().equals("closed"))) { + if ((!orderInfo.getStatus().equals("closed"))) { return; } List tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); 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 22ccbc8..e44d3ff 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -654,6 +654,7 @@ public class OrderService { return Result.fail(CARTEXIST); } + for (TbCashierCart cashierCart : list) { TbProductSkuWithBLOBs tbProduct = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getSkuId())); @@ -719,6 +720,7 @@ public class OrderService { orderInfo.setUserId(orderVo.getUserId()); orderInfo.setUseType(StrUtil.isNotBlank(orderVo.getTableId()) ? "postPay" : "afterPay"); orderInfo.setTableName(shopTable != null ? shopTable.getName() : null); + orderInfo.setPayAmount(BigDecimal.ZERO); if (StrUtil.isNotBlank(orderVo.getTableId())) { orderInfo.setTableId(orderVo.getTableId()); @@ -883,10 +885,11 @@ public class OrderService { return orderCode; } - public Result createCode(String shopId, String clientType, String userId, String type) { + public Result createCode(String shopId, String clientType, String userId, String type, String tableId) { String day = DateUtils.getDay(); JSONObject jsonObject = new JSONObject(); - String key="SHOP:CODE:USER:" + clientType + ":" + shopId + ":" + day + userId; +// String key="SHOP:CODE:USER:" + clientType + ":" + shopId + ":" + day + userId; + String key="SHOP:CODE:USER:" + clientType + ":" + shopId + ":" + day + ":" + tableId; String userCode = redisUtil.getMessage(key)+""; if ("1".equals(type)) { String code = "#" + generateOrderCode(day, clientType, shopId); From 040db99d86ea0f95bdd905a3a9b998253cbbd35c Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 2 Sep 2024 10:32:55 +0800 Subject: [PATCH 112/143] =?UTF-8?q?1.=E6=89=93=E7=A5=A8=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rabbit/PrintMechineConsumer.java | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) 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 5d07918..ede1b0d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -276,10 +276,11 @@ public class PrintMechineConsumer { } private void printTicket(Integer orderId, List categoryInfos, TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, TbOrderInfo orderInfo) { + String printKey = RedisCst.ORDER_PRINT_PRO + orderId; + AtomicReference> printProductSet = new AtomicReference<>(redisTemplate.opsForSet().members(printKey)); List tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(orderId); if (!tbOrderDetails.isEmpty()) { - String printKey = RedisCst.ORDER_PRINT_PRO + orderId; - AtomicReference> printProductSet = new AtomicReference<>(redisTemplate.opsForSet().members(printKey)); + // 重置打印数据 redisTemplate.delete(printKey); tbOrderDetails.forEach(it -> { @@ -355,24 +356,23 @@ public class PrintMechineConsumer { } }); + } - // 已删除的商品打印退款信息 - if (printProductSet.get() != null) { - printProductSet.get().forEach(item -> { - log.info("已删除订单,打印退款票据, {}", item); - TbOrderDetail orderDetail = (TbOrderDetail) item; - String data = PrinterUtils.getPrintData("return", - StrUtil.isBlank(orderInfo.getTableName()) ? orderInfo.getMasterId() : orderInfo.getTableName(), - DateUtils.getTime(new Date(orderInfo.getCreatedAt())), orderDetail.getProductName(), orderDetail.getNum(), orderDetail.getRemark()); - String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; - PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); - - String key = RedisCst.ORDER_PRINT + orderId + ":" + orderDetail.getProductId() + ":" + orderDetail.getProductSkuId(); - log.info("删除商品数量记录key, {}", key); - redisUtils.deleteByKey(key); - }); - } + // 已删除的商品打印退款信息 + if (printProductSet.get() != null) { + printProductSet.get().forEach(item -> { + log.info("已删除订单,打印退款票据, {}", item); + TbOrderDetail orderDetail = (TbOrderDetail) item; + String data = PrinterUtils.getPrintData("return", + StrUtil.isBlank(orderInfo.getTableName()) ? orderInfo.getMasterId() : orderInfo.getTableName(), + DateUtils.getTime(new Date(orderInfo.getCreatedAt())), orderDetail.getProductName(), orderDetail.getNum(), orderDetail.getRemark()); + String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔退款订单,请及时处理\"}"; + PrinterUtils.printTickets(voiceJson, 3, 1, tbPrintMachineWithBLOBs.getAddress(), data); + String key = RedisCst.ORDER_PRINT + orderId + ":" + orderDetail.getProductId() + ":" + orderDetail.getProductSkuId(); + log.info("删除商品数量记录key, {}", key); + redisUtils.deleteByKey(key); + }); } } From 637a0cf315b9b9779e0cdadd16fdd148de989dc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 2 Sep 2024 10:55:37 +0800 Subject: [PATCH 113/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/controller/MemberController.java | 3 ++- .../system/cashierservice/dao/TbShopUserMapper.java | 2 +- .../system/cashierservice/service/MemberService.java | 4 ++-- .../chaozhanggui/system/cashierservice/util/DateUtils.java | 2 -- src/main/resources/mapper/TbShopUserMapper.xml | 5 +++++ 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java index 5f1b9c8..05c65ab 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java @@ -26,10 +26,11 @@ public class MemberController { @RequestHeader("clientType") String clientType, @RequestParam("shopId") String shopId, @RequestParam("phone") String phone, + @RequestParam("isFlag") String isFlag, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize ) { - return memberService.queryMember(shopId, phone, page, pageSize); + return memberService.queryMember(shopId, phone, isFlag,page, pageSize); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopUserMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopUserMapper.java index b1aba71..c6a4d67 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopUserMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopUserMapper.java @@ -22,7 +22,7 @@ public interface TbShopUserMapper { int updateByPrimaryKey(TbShopUser record); - List selectByShopId(@Param("shopId") String shopId,@Param("phone") String phone); + List selectByShopId(@Param("shopId") String shopId,@Param("phone") String phone,@Param("isFlag") String isFlag); List selectByShopIdAndPhone(@Param("shopId") String shopId,@Param("phone") String phone); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index b648921..1371795 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -85,10 +85,10 @@ public class MemberService { private TbOrderInfoMapper tbOrderInfoMapper; private MpShopTableMapper mpShopTableMapper; - public Result queryMember(String shopId, String phone, int page, int pageSize) { + public Result queryMember(String shopId, String phone,String isFlag, int page, int pageSize) { PageHelperUtil.startPage(page, pageSize); - List tbShopUsers = tbShopUserMapper.selectByShopId(shopId, phone); + List tbShopUsers = tbShopUserMapper.selectByShopId(shopId, phone,isFlag); PageInfo pageInfo = new PageInfo(tbShopUsers); return Result.success(CodeEnum.SUCCESS, pageInfo); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/DateUtils.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/DateUtils.java index 9372465..06a5df1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/DateUtils.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/DateUtils.java @@ -21,8 +21,6 @@ public class DateUtils { private final static SimpleDateFormat sdfTimesSs = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - - private final static SimpleDateFormat sdfday = new SimpleDateFormat("MM-dd HH:mm"); diff --git a/src/main/resources/mapper/TbShopUserMapper.xml b/src/main/resources/mapper/TbShopUserMapper.xml index 5944e99..0db26c6 100644 --- a/src/main/resources/mapper/TbShopUserMapper.xml +++ b/src/main/resources/mapper/TbShopUserMapper.xml @@ -371,6 +371,11 @@ and telephone like concat("%",#{phone},"%") + + + and amount > 0 + + order by id desc From 2985ae0f1455dbbde9e9eac1a57f6bf0cbe608a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 2 Sep 2024 10:58:59 +0800 Subject: [PATCH 114/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 83814b6..8f470d7 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -690,7 +690,7 @@ public class PayService { } - TbShopUser user = tbShopUserMapper.selectByShopId(orderInfo.getShopId(), tbUserInfo.getId().toString()).get(0); + TbShopUser user = tbShopUserMapper.selectByShopId(orderInfo.getShopId(), tbUserInfo.getId().toString(),"2").get(0); if (ObjectUtil.isEmpty(user) || !"1".equals(user.getIsVip().toString())) { return Result.fail(CodeEnum.MEMBERNOEXIST); } From f3ad47f0f3686fd9c2ca459e70ec41e26c839089 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 3 Sep 2024 10:39:39 +0800 Subject: [PATCH 115/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=8A=A0=E5=85=A5=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=BF=9D=E5=AD=98=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PayController.java | 5 +- .../cashierservice/service/MemberService.java | 1 + .../cashierservice/service/OrderService.java | 71 ++++++++++++++++++- .../cashierservice/service/PayService.java | 26 ++++++- .../system/cashierservice/util/RedisCst.java | 13 ++++ 5 files changed, 109 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java index d733d26..0f10cfd 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java @@ -9,6 +9,7 @@ import com.chaozhanggui.system.cashierservice.service.PayService; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; import com.chaozhanggui.system.cashierservice.util.IpUtil; +import com.chaozhanggui.system.cashierservice.util.RedisCst; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; @@ -56,7 +57,6 @@ public class PayController { @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestBody PaymentReq paymentReq - ) { return payService.scanPay(paymentReq.getOrderId(),paymentReq.getAuthCode(), IpUtil.getIpAddr(request),token,paymentReq.getPayAmount(),paymentReq.getDiscountAmount()); } @@ -177,7 +177,8 @@ public class PayController { @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestBody PaymentReq paymentReq){ - return payService.cashPay(paymentReq.getOrderId(),token,paymentReq.getPayAmount(),paymentReq.getDiscountAmount()); + Result result = payService.cashPay(paymentReq.getOrderId(), token, paymentReq.getPayAmount(), paymentReq.getDiscountAmount()); + return result; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 1371795..c86af5d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -711,6 +711,7 @@ public class MemberService { producer.balance(baObj.toString()); + return Result.success(CodeEnum.SUCCESS); } 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 e44d3ff..830dccb 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -39,6 +39,7 @@ import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import static com.chaozhanggui.system.cashierservice.sign.CodeEnum.CARTEXIST; @@ -214,6 +215,7 @@ public class OrderService { } } + setRedisTableCartInfo(tableId, shopId, Collections.singletonList(cart), false); return Result.success(CodeEnum.SUCCESS, masterId); } @@ -280,7 +282,26 @@ public class OrderService { } } else { List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); - TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid, tableId); +// TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid, tableId); + + String finalMasterId = masterId; + TbCashierCart cashierCart = mpCashierCartMapper.selectOne(new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopId) + .eq(TbCashierCart::getSkuId, shopId) + .eq(TbCashierCart::getProductId, productId) + .eq(TbCashierCart::getTableId, tableId) + .in(TbCashierCart::getStatus, "create") + .and(query2 -> { + query2.and(query3 -> { + query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) + .eq(TbCashierCart::getMasterId, finalMasterId); + }) + .or((query4 -> { + query4.isNull(TbCashierCart::getTradeDay) + .eq(TbCashierCart::getMasterId, ""); + })); + })); + if (number > 0) { if (Objects.isNull(cashierCart)) { cashierCart = new TbCashierCart(); @@ -363,9 +384,32 @@ public class OrderService { } }); + setRedisTableCartInfo(tableId, shopId, Collections.singletonList(cart), true); + return Result.success(CodeEnum.SUCCESS, masterId); } + private void setRedisTableCartInfo(String tableId, String shopId, List tbCashierCartList, boolean isAdd) { + String tableCartKey = RedisCst.getTableCartKey(tableId, shopId); + String tableCart = redisUtil.getMessage(tableCartKey); + + List cartArrayList = new ArrayList<>(); + if (tableCart != null) { + cartArrayList = JSONObject.parseArray(tableCart, TbCashierCart.class); + } + + for (TbCashierCart cashierCart : tbCashierCartList) { + cartArrayList = cartArrayList.stream().filter(d -> !d.getId().equals(cashierCart.getId())).collect(Collectors.toList()); + if (isAdd) { + cartArrayList.add(cashierCart); + } + } + + List finalCartArrayList = cartArrayList; + redisUtil.saveMessage(tableCartKey, + JSONObject.toJSONString(finalCartArrayList)); + } + /** * 校验商品库存警戒线并通知商户 * @@ -574,6 +618,11 @@ public class OrderService { } + if (StrUtil.isNotBlank(cashierCart.getTableId())) { + setRedisTableCartInfo(cashierCart.getTableId(), cashierCart.getShopId(), Collections.singletonList(cashierCart), false); + } + + return Result.success(CodeEnum.SUCCESS); } @@ -582,6 +631,11 @@ public class OrderService { String day = DateUtils.getDay(); TbShopTable shopTable = null; + String currentOrderKey = RedisCst.getCurrentOrderKey(orderVo.getTableId(), + orderVo.getShopId().toString()); + String orderIdValue = redisUtil.getMessage(currentOrderKey); + Integer orderId = orderIdValue == null ? 0 : Integer.parseInt(orderIdValue); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, orderVo.getShopId()) .eq(TbCashierCart::getStatus, "create"); @@ -649,7 +703,6 @@ public class OrderService { Map productMap = new HashMap<>(); List orderDetails = new ArrayList<>(); String masterId = ""; - int orderId = 0; if (list.size()<1 || list.isEmpty()){ return Result.fail(CARTEXIST); } @@ -691,10 +744,14 @@ public class OrderService { String orderNo = generateOrderNumber(); TbToken tbToken = tokenMapper.selectByToken(token); TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); + if (orderInfo == null || !"unpaid".equals(orderInfo.getStatus())) { + redisUtil.deleteByKey(currentOrderKey); + } if (orderId > 0 && orderInfo != null) { // if (!orderInfo.getStatus().equals("unpaid")){ // return Result.fail(CodeEnum.ORDERCREATE); // } + orderDetailMapper.deleteByOUrderId(orderId); // orderInfo = tbOrderInfoMapper.selectByPrimaryKey(orderId); orderInfo.setUpdatedAt(System.currentTimeMillis()); @@ -754,6 +811,7 @@ public class OrderService { redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId()),object.toString()); orderId = orderInfo.getId(); + redisUtil.saveMessage(currentOrderKey, orderInfo.getId().toString()); } @@ -852,6 +910,12 @@ public class OrderService { } }); + // 删除小程序购物车缓存 + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + String tableCartKey = RedisCst.getTableCartKey(orderVo.getTableId(), orderVo.getShopId().toString()); + redisUtil.deleteByKey(tableCartKey); + } + return Result.success(CodeEnum.SUCCESS, orderInfo); } @@ -1247,6 +1311,9 @@ public class OrderService { printMechineConsumer.printReturnTicket(finalOrderId, null); }); + + setRedisTableCartInfo(cartVo.getTableId(), cartVo.getShopId(), list, false); + return Result.success(CodeEnum.SUCCESS); } 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 8f470d7..65d5532 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -300,6 +300,9 @@ public class PayService { .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), + orderInfo.getShopId()); + redisUtil.del(tableCartKey); return Result.success(CodeEnum.SUCCESS, object.getJSONObject("data")); } else { @@ -320,7 +323,9 @@ public class PayService { .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); // 打印结算单 producer.printMechine(orderId); - + String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), + orderInfo.getShopId()); + redisUtil.del(tableCartKey); return Result.success(CodeEnum.PAYING); } // orderInfo.setStatus("fail"); @@ -374,7 +379,9 @@ public class PayService { .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); // 打印结算单 - + String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), + orderInfo.getShopId()); + redisUtil.del(tableCartKey); return Result.success(CodeEnum.SUCCESS, mainScanResp); } else if ("TRADE_AWAIT".equals(mainScanResp.getState())) { @@ -391,7 +398,9 @@ public class PayService { .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); // 打印结算单 producer.printMechine(orderId); - + String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), + orderInfo.getShopId()); + redisUtil.del(tableCartKey); return Result.success(CodeEnum.PAYING); } } @@ -638,6 +647,10 @@ public class PayService { baObj.put("time",flow.getCreateTime()); producer.balance(baObj.toString()); + String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), + orderInfo.getShopId()); + redisUtil.del(tableCartKey); + return Result.success(CodeEnum.SUCCESS); } @@ -857,6 +870,9 @@ public class PayService { .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), + orderInfo.getShopId()); + redisUtil.del(tableCartKey); return Result.success(CodeEnum.SUCCESS); } @@ -940,6 +956,10 @@ public class PayService { .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + // 小程序购物车缓存 + String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), + orderInfo.getShopId()); + redisUtil.del(tableCartKey); return Result.success(CodeEnum.SUCCESS); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java index 294173d..e44acc2 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java @@ -22,4 +22,17 @@ public class RedisCst { public static final String ORDER_CART_EXISTS = "ORDER_CART_EXISTS:"; public static final String ORDER_PRINT = "ORDER_PRINT:"; public static final String ORDER_PRINT_PRO = "ORDER_PRINT_PRODUCT:"; + + static String CURRENT_TABLE_ORDER = "CURRENT_TABLE_ORDER:"; + public static String TABLE_CART = "TABLE:CART:"; + + + + public static String getCurrentOrderKey(String tableId, String shopId) { + return CURRENT_TABLE_ORDER + shopId + ":" + tableId; + } + + public static String getTableCartKey(String tableId, String shopId) { + return TABLE_CART + tableId + "-" + shopId; + } } From 1d644bc2328bef9af0428e2bc55f56d4ea28b592 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 3 Sep 2024 11:09:12 +0800 Subject: [PATCH 116/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E6=89=93=E7=A5=A8=E6=9C=AA=E6=B8=85=E7=A9=BA=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/rabbit/PrintMechineConsumer.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 ede1b0d..01110f3 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -279,10 +279,9 @@ public class PrintMechineConsumer { String printKey = RedisCst.ORDER_PRINT_PRO + orderId; AtomicReference> printProductSet = new AtomicReference<>(redisTemplate.opsForSet().members(printKey)); List tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(orderId); + // 重置打印数据 + redisTemplate.delete(printKey); if (!tbOrderDetails.isEmpty()) { - - // 重置打印数据 - redisTemplate.delete(printKey); tbOrderDetails.forEach(it -> { log.info("开始打印一菜一品票据,:{}", it.getProductName()); String categoryId = tbProductMapper.selectByPrimaryKey(it.getProductId()).getCategoryId(); From 15ef38936b2d7360255e58aa0792681c14e8f89a Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 4 Sep 2024 11:29:27 +0800 Subject: [PATCH 117/143] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=8E=AF=E5=A2=83=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E8=BF=9E=E6=8E=A5=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=20=E6=96=B0=E5=A2=9E=20pre=20=E9=A2=84=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-dev.yml | 6 +++--- ...plication-test.yml => application-pre.yml} | 20 +++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) rename src/main/resources/{application-test.yml => application-pre.yml} (70%) diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b49645c..8ceb21e 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ spring: application: name: cashierService datasource: - url: jdbc:mysql://101.37.12.135:3306/fycashier?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true - username: fycashier - password: Twc6MrzzjBiWSsjh + url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true + username: cashier + password: Cashier@1@ driver-class-name: com.mysql.cj.jdbc.Driver initialSize: 5 minIdle: 5 diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-pre.yml similarity index 70% rename from src/main/resources/application-test.yml rename to src/main/resources/application-pre.yml index d05012b..0fac72e 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-pre.yml @@ -1,10 +1,12 @@ +server: + port: 10589 spring: application: name: cashierService datasource: - url: jdbc:mysql://121.40.128.145:3306/fycashier?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false - username: root - password: mysqlroot@123 + url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_pre?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true + username: cashier + password: Cashier@1@ driver-class-name: com.mysql.cj.jdbc.Driver initialSize: 5 minIdle: 5 @@ -12,12 +14,12 @@ spring: maxWait: 60000 logging: level: - com.chaozhanggui.system.openness: debug + com.chaozhanggui.system.openness: info redis: # redis数据库索引(默认为0),我们使用索引为3的数据库,避免和其他数据库冲突 - database: 2 + database: 0 # redis服务器地址(默认为localhost) - host: 101.37.12.135 + host: localhost # redis端口(默认为6379) port: 6379 # redis访问密码(默认为空) @@ -35,7 +37,7 @@ spring: main: allow-circular-references: true rabbitmq: - host: 127.0.0.1 + host: localhost port: 5672 username: admin password: Czg666888 @@ -45,12 +47,14 @@ pagehelper: reasonable: true helperDialect: mysql params: count=countSql - mybatis: configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath:mapper/*.xml +subscribe: + message: + miniprogramState: trial From 3528ebb0c4806e02acfaf2ca78400d11bdd2393c Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 4 Sep 2024 11:29:27 +0800 Subject: [PATCH 118/143] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=8E=AF=E5=A2=83=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E8=BF=9E=E6=8E=A5=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=20=E6=96=B0=E5=A2=9E=20pre=20=E9=A2=84=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-dev.yml | 6 +++--- ...plication-test.yml => application-pre.yml} | 20 +++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) rename src/main/resources/{application-test.yml => application-pre.yml} (70%) diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b49645c..8ceb21e 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ spring: application: name: cashierService datasource: - url: jdbc:mysql://101.37.12.135:3306/fycashier?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true - username: fycashier - password: Twc6MrzzjBiWSsjh + url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true + username: cashier + password: Cashier@1@ driver-class-name: com.mysql.cj.jdbc.Driver initialSize: 5 minIdle: 5 diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-pre.yml similarity index 70% rename from src/main/resources/application-test.yml rename to src/main/resources/application-pre.yml index d05012b..0fac72e 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-pre.yml @@ -1,10 +1,12 @@ +server: + port: 10589 spring: application: name: cashierService datasource: - url: jdbc:mysql://121.40.128.145:3306/fycashier?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false - username: root - password: mysqlroot@123 + url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_pre?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true + username: cashier + password: Cashier@1@ driver-class-name: com.mysql.cj.jdbc.Driver initialSize: 5 minIdle: 5 @@ -12,12 +14,12 @@ spring: maxWait: 60000 logging: level: - com.chaozhanggui.system.openness: debug + com.chaozhanggui.system.openness: info redis: # redis数据库索引(默认为0),我们使用索引为3的数据库,避免和其他数据库冲突 - database: 2 + database: 0 # redis服务器地址(默认为localhost) - host: 101.37.12.135 + host: localhost # redis端口(默认为6379) port: 6379 # redis访问密码(默认为空) @@ -35,7 +37,7 @@ spring: main: allow-circular-references: true rabbitmq: - host: 127.0.0.1 + host: localhost port: 5672 username: admin password: Czg666888 @@ -45,12 +47,14 @@ pagehelper: reasonable: true helperDialect: mysql params: count=countSql - mybatis: configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath:mapper/*.xml +subscribe: + message: + miniprogramState: trial From 6acd14da8a8ac9930c2ee2b47104e39e7c4c7b02 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 4 Sep 2024 14:20:56 +0800 Subject: [PATCH 119/143] 1 --- .../system/cashierservice/controller/PayController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java index 0f10cfd..aed11ff 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java @@ -242,6 +242,7 @@ public class PayController { ){ + return payService.returnOrder(list,token,pwd, isOnline); } From 9f62cd4165310fb5ffc0103aa4e4fc5d811e9bcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 5 Sep 2024 09:59:19 +0800 Subject: [PATCH 120/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/DataService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/DataService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/DataService.java index 573a4cf..d376c47 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/DataService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/DataService.java @@ -273,6 +273,12 @@ public class DataService { + JSONObject config = JSONObject.parseObject(it.getConfig()); + String model = config.getString("model"); + if(!"normal".equals(model)){ + log.error("打印机类型错误"); + return; + } List list = null; List memberData = null; List productCategories = null; From 3b3eda15ef4a8e20850898bdb34c848b2e4bc0df Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 5 Sep 2024 10:09:38 +0800 Subject: [PATCH 121/143] =?UTF-8?q?pre=20=E5=86=85=E7=BD=91=E8=AE=BF?= =?UTF-8?q?=E9=97=AE=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-pre.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application-pre.yml b/src/main/resources/application-pre.yml index 0fac72e..54ec6bf 100644 --- a/src/main/resources/application-pre.yml +++ b/src/main/resources/application-pre.yml @@ -4,7 +4,8 @@ spring: application: name: cashierService datasource: - url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_pre?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true + # 内网地址 + url: jdbc:mysql://rm-bp1kn7h89nz62cno1.mysql.rds.aliyuncs.com:3306/fycashier_pre?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true username: cashier password: Cashier@1@ driver-class-name: com.mysql.cj.jdbc.Driver From 01df55d60b566c94df10835c6c2c0422b045086d Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 10:41:56 +0800 Subject: [PATCH 122/143] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=20=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 830dccb..e3ed197 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -662,7 +662,7 @@ public class OrderService { .or() .eq(TbCashierCart::getMasterId, "") .or() - .eq(TbCashierCart::getMasterId, ""); + .isNull(TbCashierCart::getMasterId); })); }); From bca3381ec31f66599b5d04b30801f7f17c2ae567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 5 Sep 2024 11:06:36 +0800 Subject: [PATCH 123/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interceptor/LimitSubmitAspect.java | 57 ++++++++++++++++++- .../interceptor/WebAppConfigurer.java | 5 +- src/main/resources/application-dev.yml | 6 +- 3 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/LimitSubmitAspect.java b/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/LimitSubmitAspect.java index 886b09c..f0fae54 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/LimitSubmitAspect.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/LimitSubmitAspect.java @@ -1,7 +1,10 @@ package com.chaozhanggui.system.cashierservice.interceptor; import com.chaozhanggui.system.cashierservice.annotation.LimitSubmit; +import com.chaozhanggui.system.cashierservice.entity.TbOrderDetail; +import com.chaozhanggui.system.cashierservice.entity.dto.VipPayDTO; import com.chaozhanggui.system.cashierservice.exception.MsgException; +import com.chaozhanggui.system.cashierservice.model.PaymentReq; import com.chaozhanggui.system.cashierservice.util.RedisUtils; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; @@ -13,6 +16,7 @@ import org.springframework.core.LocalVariableTableParameterNameDiscoverer; import org.springframework.stereotype.Component; import java.lang.reflect.Method; +import java.util.List; @Component @Aspect @@ -36,6 +40,7 @@ public class LimitSubmitAspect { Method method = ((MethodSignature) joinPoint.getSignature()).getMethod(); Object[] args= joinPoint.getArgs(); + String orderId=orderId(method,args); //获取注解信息 LimitSubmit limitSubmit = method.getAnnotation(LimitSubmit.class); @@ -44,7 +49,7 @@ public class LimitSubmitAspect { int submitTimeLimiter = limitSubmit.limit(); - String key = getRedisKey(joinPoint, redisKey, String.valueOf(args[0])); + String key = getRedisKey(joinPoint, redisKey, orderId); Object result = redisUtil.get(key); log.info("开始锁定资源信息" + key); @@ -79,9 +84,18 @@ public class LimitSubmitAspect { Method method = ((MethodSignature) joinPoint.getSignature()).getMethod(); Object[] args= joinPoint.getArgs(); + String orderId=orderId(method,args); + + + + + + + + LimitSubmit limitSubmit = method.getAnnotation(LimitSubmit.class); String redisKey = limitSubmit.key(); - String key = getRedisKey1(joinPoint, redisKey, String.valueOf(args[0])); + String key = getRedisKey1(joinPoint, redisKey,orderId); log.info("正常释放了锁资源" + key); // 延时 1s 释放 try { @@ -104,7 +118,8 @@ public class LimitSubmitAspect { LimitSubmit limitSubmit = method.getAnnotation(LimitSubmit.class); String redisKey = limitSubmit.key(); Object[] args= joinPoint.getArgs(); - String key = getRedisKey1(joinPoint, redisKey, String.valueOf(args[0])); + String orderId=orderId(method,args); + String key = getRedisKey1(joinPoint, redisKey, orderId); log.info("发生异常释放了锁资源" + key); // 延时 1s 释放 try { @@ -158,4 +173,40 @@ public class LimitSubmitAspect { } return key.toString(); } + + + private String orderId(Method method,Object[] args){ + + String orderId=null; + if("scanpay".equals(method.getName())|| + "accountPay".equals(method.getName())|| + "memberScanPay".equals(method.getName())|| + "cashPay".equals(method.getName())|| + "bankPay".equals(method.getName())){ + + Object o=args[3]; + + if(o instanceof PaymentReq){ + orderId=((PaymentReq)o).getOrderId(); + } + }else if("vipPay".equals(method.getName())){ + Object o=args[3]; + + if(o instanceof VipPayDTO){ + orderId=((VipPayDTO)o).getOrderId().toString(); + } + }else if("quickPay".equals(method.getName())) { + Object o=args[4]; + if(o instanceof String){ + orderId=o.toString(); + } + }else if ("returnOrder".equals(method.getName())) { + Object o=args[3]; + if(o instanceof List){ + orderId= ((List)o).get(0).getOrderId().toString(); + } + } + + return orderId; + } } \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/WebAppConfigurer.java b/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/WebAppConfigurer.java index 0977774..ff4c376 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/WebAppConfigurer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/WebAppConfigurer.java @@ -27,6 +27,9 @@ public class WebAppConfigurer implements WebMvcConfigurer { .excludePathPatterns("/qrcode/getscanCode") .excludePathPatterns("/order/sendMessage") .excludePathPatterns("/order/getOrderById") - .excludePathPatterns("/data/handoverprint"); + .excludePathPatterns("/data/handoverprint") + ; + + } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b49645c..8ceb21e 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ spring: application: name: cashierService datasource: - url: jdbc:mysql://101.37.12.135:3306/fycashier?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true - username: fycashier - password: Twc6MrzzjBiWSsjh + url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true + username: cashier + password: Cashier@1@ driver-class-name: com.mysql.cj.jdbc.Driver initialSize: 5 minIdle: 5 From fc00b49806231b3d3af1c5a0674466e7e118867d Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 11:13:40 +0800 Subject: [PATCH 124/143] =?UTF-8?q?1.=E6=89=93=E7=A5=A8=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/entity/TbShopUser.java | 4 ++-- .../system/cashierservice/rabbit/PrintMechineConsumer.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java index 5d30855..5b8ec22 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java @@ -3,7 +3,7 @@ package com.chaozhanggui.system.cashierservice.entity; import java.io.Serializable; import java.math.BigDecimal; -public class TbShopUser implements Serializable { +public class TbShopUser implements Serializable { private Integer id; private BigDecimal amount; @@ -295,4 +295,4 @@ public class TbShopUser implements Serializable { public void setDynamicCode(String dynamicCode) { this.dynamicCode = dynamicCode; } -} \ No newline at end of file +} 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 01110f3..634594f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -316,6 +316,7 @@ public class PrintMechineConsumer { printerNum = it.getNum(); } + log.info("已打印数量, {}, 未打印数量: {}", info, printerNum); TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId()); String remark = ""; From 6360d0104168d8fcc648144d39fa61892fe8d234 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 11:24:42 +0800 Subject: [PATCH 125/143] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) 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 e3ed197..e7e9c07 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -195,17 +195,21 @@ public class OrderService { TbCashierCart finalCart = cart; queryWrapper.eq(TbCashierCart::getTableId, cart.getTableId()) - .and(query -> { - query.eq(TbCashierCart::getMasterId, finalCart.getMasterId()) - .or() - .isNull(TbCashierCart::getMasterId) - .or() - .eq(TbCashierCart::getMasterId, ""); - }) - .and(query -> { - query.eq(TbCashierCart::getOrderId, finalCart.getOrderId()) - .or() - .isNull(TbCashierCart::getOrderId); + .and(q -> { + q.or( + query -> { + query.eq(TbCashierCart::getMasterId, finalCart.getMasterId()) + .or() + .isNull(TbCashierCart::getMasterId) + .or() + .eq(TbCashierCart::getMasterId, ""); + } + ) + .or(query -> { + query.eq(TbCashierCart::getOrderId, finalCart.getOrderId()) + .or() + .isNull(TbCashierCart::getOrderId); + }); }); List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); From 0600a1d90eaa9a5c10e10a21b9cf6bfe936b28ee Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 11:28:56 +0800 Subject: [PATCH 126/143] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) 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 e7e9c07..fbdf078 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -285,7 +285,31 @@ public class OrderService { cashierCartMapper.updateByPrimaryKeySelective(cart); } } else { - List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending") + .eq(TbCashierCart::getShopId, cart.getShopId()); + + TbCashierCart finalCart = cart; + queryWrapper.eq(TbCashierCart::getTableId, cart.getTableId()) + .and(q -> { + q.or( + query -> { + query.eq(TbCashierCart::getMasterId, finalCart.getMasterId()) + .or() + .isNull(TbCashierCart::getMasterId) + .or() + .eq(TbCashierCart::getMasterId, ""); + } + ) + .or(query -> { + query.eq(TbCashierCart::getOrderId, finalCart.getOrderId()) + .or() + .isNull(TbCashierCart::getOrderId); + }); + }); + + List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); +// List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); // TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid, tableId); String finalMasterId = masterId; From 8eab206fff2e3df41a6824d15b9da945f9445589 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 11:34:14 +0800 Subject: [PATCH 127/143] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 32 ++++--------------- 1 file changed, 6 insertions(+), 26 deletions(-) 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 fbdf078..1ede0a7 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -285,31 +285,7 @@ public class OrderService { cashierCartMapper.updateByPrimaryKeySelective(cart); } } else { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending") - .eq(TbCashierCart::getShopId, cart.getShopId()); - - TbCashierCart finalCart = cart; - queryWrapper.eq(TbCashierCart::getTableId, cart.getTableId()) - .and(q -> { - q.or( - query -> { - query.eq(TbCashierCart::getMasterId, finalCart.getMasterId()) - .or() - .isNull(TbCashierCart::getMasterId) - .or() - .eq(TbCashierCart::getMasterId, ""); - } - ) - .or(query -> { - query.eq(TbCashierCart::getOrderId, finalCart.getOrderId()) - .or() - .isNull(TbCashierCart::getOrderId); - }); - }); - - List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); -// List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); + List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); // TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid, tableId); String finalMasterId = masterId; @@ -326,7 +302,11 @@ public class OrderService { }) .or((query4 -> { query4.isNull(TbCashierCart::getTradeDay) - .eq(TbCashierCart::getMasterId, ""); + .and(q -> { + q.eq(TbCashierCart::getMasterId, "") + .or() + .isNull(TbCashierCart::getMasterId); + }); })); })); From e1bd478ae577c882831adb89455efad942299505 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 11:43:22 +0800 Subject: [PATCH 128/143] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1ede0a7..8f4a570 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -291,7 +291,7 @@ public class OrderService { String finalMasterId = masterId; TbCashierCart cashierCart = mpCashierCartMapper.selectOne(new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) - .eq(TbCashierCart::getSkuId, shopId) + .eq(TbCashierCart::getSkuId, skuId) .eq(TbCashierCart::getProductId, productId) .eq(TbCashierCart::getTableId, tableId) .in(TbCashierCart::getStatus, "create") From 13fedb841bba848e17c7271e150833d06e08de1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 5 Sep 2024 15:24:49 +0800 Subject: [PATCH 129/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/rabbit/PrintMechineConsumer.java | 3 ++- .../system/cashierservice/service/MemberService.java | 4 ++++ src/main/resources/application-dev.yml | 4 +--- src/main/resources/application.yml | 3 ++- src/main/resources/mapper/TbShopUserMapper.xml | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) 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 634594f..22de17a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -19,6 +19,8 @@ import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -292,7 +294,6 @@ public class PrintMechineConsumer { log.info("获取当前类别是否未打印类别:{}", count); if (count > 0) { - // 统计已打数量 int printerNum = 0; boolean isReturn = false; diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index c86af5d..8862797 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -88,6 +88,10 @@ public class MemberService { public Result queryMember(String shopId, String phone,String isFlag, int page, int pageSize) { PageHelperUtil.startPage(page, pageSize); + + if(!"1".equals(isFlag)){ + isFlag=null; + } List tbShopUsers = tbShopUserMapper.selectByShopId(shopId, phone,isFlag); PageInfo pageInfo = new PageInfo(tbShopUsers); return Result.success(CodeEnum.SUCCESS, pageInfo); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 8ceb21e..ba41bd9 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -12,9 +12,6 @@ spring: minIdle: 5 maxActive: 20 maxWait: 60000 - logging: - level: - com.chaozhanggui.system.openness: info redis: # redis数据库索引(默认为0),我们使用索引为3的数据库,避免和其他数据库冲突 database: 0 @@ -52,6 +49,7 @@ mybatis: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath:mapper/*.xml + subscribe: message: miniprogramState: trial diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 61e6df1..7c61761 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,7 +10,8 @@ logging: # web日志 org.springframework.web: debug # mybatis日志 - org.mybatis: debug + mybits: DEBUG + org.apache.ibatis: DEBUG charset: # 输出控制台编码 console: UTF-8 diff --git a/src/main/resources/mapper/TbShopUserMapper.xml b/src/main/resources/mapper/TbShopUserMapper.xml index 0db26c6..d35ed59 100644 --- a/src/main/resources/mapper/TbShopUserMapper.xml +++ b/src/main/resources/mapper/TbShopUserMapper.xml @@ -372,7 +372,7 @@ and telephone like concat("%",#{phone},"%") - + and amount > 0 From d13d16238e31d476b2bc6b269ed9eb141798c7ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 5 Sep 2024 15:45:12 +0800 Subject: [PATCH 130/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/rabbit/BalanceConsumer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/BalanceConsumer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/BalanceConsumer.java index 75e5a7d..8532993 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/BalanceConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/BalanceConsumer.java @@ -167,7 +167,7 @@ public class BalanceConsumer { public static String convertDate(Date date){ - SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy年MM月dd号 HH:mm:ss"); + SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); return sdf4.format(new Date()); } From c7626c352a0453377031059b4e6550b5d803393c Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 16:06:22 +0800 Subject: [PATCH 131/143] =?UTF-8?q?1.=E6=94=AF=E4=BB=98=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/PayService.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) 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 65d5532..e9e4e0d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -28,6 +28,7 @@ import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +38,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.concurrent.atomic.AtomicReference; import static com.chaozhanggui.system.cashierservice.sign.CodeEnum.ACCOUNTEIXST; import static com.chaozhanggui.system.cashierservice.sign.CodeEnum.SUCCESS; @@ -132,11 +134,23 @@ public class PayService { @Autowired private MpShopTableMapper mpShopTableMapper; + private final RedisTemplate redisTemplate; + + public PayService(RedisTemplate redisTemplate) { + this.redisTemplate = redisTemplate; + } + public Result queryPayType(String shopId) { return Result.success(CodeEnum.SUCCESS, tbShopPayTypeMapper.selectByShopId(shopId)); } + private void clearTableInfoCache(TbOrderInfo orderInfo) { + String printKey = RedisCst.ORDER_PRINT_PRO + orderInfo.getId(); + // 重置打印数据 + redisTemplate.delete(printKey); + } + @Transactional(rollbackFor = Exception.class) public Result scanPay(String orderId, String authCode, String ip, String token, BigDecimal payAmount, BigDecimal discountAmount) { if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(authCode) || ObjectUtil.isEmpty(ip)) { @@ -304,6 +318,7 @@ public class PayService { orderInfo.getShopId()); redisUtil.del(tableCartKey); + clearTableInfoCache(orderInfo); return Result.success(CodeEnum.SUCCESS, object.getJSONObject("data")); } else { String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null; @@ -326,6 +341,8 @@ public class PayService { String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), orderInfo.getShopId()); redisUtil.del(tableCartKey); + clearTableInfoCache(orderInfo); + return Result.success(CodeEnum.PAYING); } // orderInfo.setStatus("fail"); @@ -382,6 +399,7 @@ public class PayService { String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), orderInfo.getShopId()); redisUtil.del(tableCartKey); + clearTableInfoCache(orderInfo); return Result.success(CodeEnum.SUCCESS, mainScanResp); } else if ("TRADE_AWAIT".equals(mainScanResp.getState())) { @@ -401,6 +419,8 @@ public class PayService { String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), orderInfo.getShopId()); redisUtil.del(tableCartKey); + clearTableInfoCache(orderInfo); + return Result.success(CodeEnum.PAYING); } } @@ -650,6 +670,7 @@ public class PayService { String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), orderInfo.getShopId()); redisUtil.del(tableCartKey); + clearTableInfoCache(orderInfo); return Result.success(CodeEnum.SUCCESS); } @@ -774,6 +795,7 @@ public class PayService { baObj.put("type","消费"); baObj.put("time",flow.getCreateTime()); producer.balance(baObj.toString()); + clearTableInfoCache(orderInfo); return Result.success(CodeEnum.SUCCESS); } @@ -873,6 +895,8 @@ public class PayService { String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), orderInfo.getShopId()); redisUtil.del(tableCartKey); + clearTableInfoCache(orderInfo); + return Result.success(CodeEnum.SUCCESS); } @@ -960,6 +984,7 @@ public class PayService { String tableCartKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), orderInfo.getShopId()); redisUtil.del(tableCartKey); + clearTableInfoCache(orderInfo); return Result.success(CodeEnum.SUCCESS); } @@ -1041,6 +1066,8 @@ public class PayService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + clearTableInfoCache(orderInfo); + return Result.success(CodeEnum.SUCCESS); } From a3956663d7f07ad0b796f445db2c52d899d85492 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 16:11:19 +0800 Subject: [PATCH 132/143] =?UTF-8?q?1.=E6=94=AF=E4=BB=98=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 8f4a570..483be1c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -819,7 +819,9 @@ public class OrderService { redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId()),object.toString()); orderId = orderInfo.getId(); - redisUtil.saveMessage(currentOrderKey, orderInfo.getId().toString()); + if (isPrint) { + redisUtil.saveMessage(currentOrderKey, orderInfo.getId().toString()); + } } From 20d86c6a758c46478941531b6864955df18043df Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 5 Sep 2024 16:14:00 +0800 Subject: [PATCH 133/143] =?UTF-8?q?1.=E6=94=AF=E4=BB=98=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/PayService.java | 5 +++++ 1 file changed, 5 insertions(+) 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 e9e4e0d..4bc3bc8 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -146,6 +146,11 @@ public class PayService { } private void clearTableInfoCache(TbOrderInfo orderInfo) { + if (StrUtil.isNotBlank(orderInfo.getTableId())) { + String currentOrderKey = RedisCst.getCurrentOrderKey(orderInfo.getTableId(), + orderInfo.getShopId()); + redisTemplate.delete(currentOrderKey); + } String printKey = RedisCst.ORDER_PRINT_PRO + orderInfo.getId(); // 重置打印数据 redisTemplate.delete(printKey); From 09a4918e139ce63439d5b0fc42fd33b8ec5d8772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 5 Sep 2024 17:06:51 +0800 Subject: [PATCH 134/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 1 + 1 file changed, 1 insertion(+) 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 65d5532..d580f6e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -844,6 +844,7 @@ public class PayService { orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); + orderInfo.setMemberId(vipUserId.toString()); tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); //更新购物车状态 int cartCount = tbCashierCartMapper.updateByOrderId(String.valueOf(orderId), "final"); From b8f04c65c0c6353f7e9c2ab5436d1b7b33b9c6bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 5 Sep 2024 17:34:14 +0800 Subject: [PATCH 135/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/PayService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 d580f6e..35af568 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -841,9 +841,9 @@ public class PayService { orderInfo.setPayAmount(orderInfo.getOrderAmount()); } - orderInfo.setPayType("cash"); + orderInfo.setPayType("deposit"); orderInfo.setStatus("closed"); - orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); + orderInfo.setPayOrderNo("deposit".concat(SnowFlakeUtil.generateOrderNo())); orderInfo.setMemberId(vipUserId.toString()); tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); //更新购物车状态 @@ -1065,7 +1065,7 @@ public class PayService { TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId())); - if ("1".equals(shopInfo.getIsReturn())) { + if ("0".equals(shopInfo.getIsReturn())) { if (ObjectUtil.isEmpty(pwd)) { return Result.fail(CodeEnum.PARAM); } @@ -1156,7 +1156,7 @@ public class PayService { detailPo.setStatus("closed"); } - BigDecimal returnAmount = it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId()))); + BigDecimal returnAmount = payAmount; detailPo.setReturnNum(map1.get(it.getId())); detailPos.add(detailPo); it.setNum(map1.get(it.getId())); @@ -1680,6 +1680,7 @@ public class PayService { public static void main(String[] args) { + System.out.println(MD5Util.encrypt("123456".concat("13718478323").concat("10"))); } } From 9be00af38cf1edb85346b1622a70f56069fa397e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Thu, 5 Sep 2024 17:39:16 +0800 Subject: [PATCH 136/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/PayService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 35af568..78fce42 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1065,7 +1065,7 @@ public class PayService { TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId())); - if ("0".equals(shopInfo.getIsReturn())) { + if ("1".equals(shopInfo.getIsReturn())) { if (ObjectUtil.isEmpty(pwd)) { return Result.fail(CodeEnum.PARAM); } @@ -1156,7 +1156,12 @@ public class PayService { detailPo.setStatus("closed"); } - BigDecimal returnAmount = payAmount; + BigDecimal returnAmount = it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId())));; + + if (ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio()) && ObjectUtil.isNotNull(orderInfo.getDiscountRatio())) { + returnAmount = returnAmount.multiply(orderInfo.getDiscountRatio()).setScale(2, BigDecimal.ROUND_DOWN); + } + detailPo.setReturnNum(map1.get(it.getId())); detailPos.add(detailPo); it.setNum(map1.get(it.getId())); From c2555d890f0882e8785ee3b03985853ffcb1124f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Fri, 6 Sep 2024 10:23:21 +0800 Subject: [PATCH 137/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/TbOrderDetailMapper.java | 2 +- .../rabbit/PrintMechineConsumer.java | 2 +- .../cashierservice/service/OrderService.java | 5 +- .../cashierservice/service/PayService.java | 70 ++++++++++++------- .../resources/mapper/TbOrderDetailMapper.xml | 8 ++- 5 files changed, 57 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbOrderDetailMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbOrderDetailMapper.java index b6d8232..d7fb1cd 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbOrderDetailMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbOrderDetailMapper.java @@ -25,7 +25,7 @@ public interface TbOrderDetailMapper { int updateByPrimaryKey(TbOrderDetail record); - void updateStatusByOrderId(@Param("orderId") int orderId,@Param("status") String status); + void updateStatusByOrderId(@Param("orderId") int orderId,@Param("status") String status,@Param("radio") BigDecimal radio); void updateStatusByOrderIdAndStatus(@Param("orderId") int orderId,@Param("status") String status); void deleteByOUrderId(@Param("orderId") int orderId); 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 22de17a..a60b8a0 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -186,7 +186,7 @@ public class PrintMechineConsumer { if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) { - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId()) || ObjectUtil.isNull(orderInfo.getMasterId()) ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList, orderInfo.getRemark(), null, null); + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId()) || ObjectUtil.isNull(orderInfo.getMasterId()) ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getPayAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList, orderInfo.getRemark(), null, null); String printType = "退款单"; 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 8f4a570..130143a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -509,8 +509,7 @@ public class OrderService { .set(TbCashierCart::getStatus, "create") .in(TbCashierCart::getId, ids)); if (orderId > 0) { - tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); - orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); } } } @@ -1171,7 +1170,7 @@ public class OrderService { // cashierCartMapper.updateStatusByMaster(shopId, masterId, "create", day, uuid); if (orderId > 0) { tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); - orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); } } return Result.success(CodeEnum.SUCCESS); 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 78fce42..f4bc8a3 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -284,7 +284,7 @@ public class PayService { log.info("更新购物车:{}", cartCount); //更新子单状态 - tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",orderInfo.getDiscountRatio()); JSONObject jsonObject = new JSONObject(); jsonObject.put("token", token); @@ -363,8 +363,11 @@ public class PayService { int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final"); log.info("更新购物车:{}", cartCount); - //更新子单状态 - tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); + if(ObjectUtil.isNotNull(orderInfo.getDiscountRatio())&&ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())){ + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",orderInfo.getDiscountRatio()); + }else { + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); + } JSONObject jsonObject = new JSONObject(); jsonObject.put("token", token); @@ -479,8 +482,11 @@ public class PayService { int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final"); log.info("更新购物车:{}", cartCount); - tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); - + if(ObjectUtil.isNotNull(orderInfo.getDiscountRatio())&&ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())){ + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",orderInfo.getDiscountRatio()); + }else { + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); + } JSONObject jsonObject = new JSONObject(); jsonObject.put("token", token); jsonObject.put("type", "create"); @@ -614,10 +620,11 @@ public class PayService { //更新购物车状态 int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final"); - - tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed"); - - tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); + if(ObjectUtil.isNotNull(orderInfo.getDiscountRatio())&&ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())){ + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",orderInfo.getDiscountRatio()); + }else { + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); + } log.info("更新购物车:{}", cartCount); @@ -743,9 +750,13 @@ public class PayService { int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final"); - tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed"); - tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); + if(ObjectUtil.isNotNull(orderInfo.getDiscountRatio())&&ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())){ + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",orderInfo.getDiscountRatio()); + }else { + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); + } + log.info("更新购物车:{}", cartCount); @@ -849,7 +860,13 @@ public class PayService { //更新购物车状态 int cartCount = tbCashierCartMapper.updateByOrderId(String.valueOf(orderId), "final"); - tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); + + if(ObjectUtil.isNotNull(orderInfo.getDiscountRatio())&&ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())){ + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",orderInfo.getDiscountRatio()); + }else { + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); + } + log.info("更新购物车:{}", cartCount); JSONObject jsonObject = new JSONObject(); @@ -926,11 +943,17 @@ public class PayService { orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); + tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); //更新购物车状态 int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final"); - tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); + + if(ObjectUtil.isNotNull(orderInfo.getDiscountRatio())&&ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())){ + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",orderInfo.getDiscountRatio()); + }else { + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); + } log.info("更新购物车:{}", cartCount); JSONObject jsonObject = new JSONObject(); @@ -1017,10 +1040,14 @@ public class PayService { tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); //更新购物车状态 int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final"); - - tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); log.info("更新购物车:{}", cartCount); + if(ObjectUtil.isNotNull(orderInfo.getDiscountRatio())&&ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())){ + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",orderInfo.getDiscountRatio()); + }else { + tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed",null); + } + JSONObject jsonObject = new JSONObject(); jsonObject.put("token", token); jsonObject.put("type", "create"); @@ -1065,7 +1092,7 @@ public class PayService { TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId())); - if ("1".equals(shopInfo.getIsReturn())) { + if ("0".equals(shopInfo.getIsReturn())) { if (ObjectUtil.isEmpty(pwd)) { return Result.fail(CodeEnum.PARAM); } @@ -1141,11 +1168,10 @@ public class PayService { // totalAmount = totalAmount.add(it.getPriceAmount()); totalAmount = totalAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId())))); saleAmount = saleAmount.add(it.getPrice()); + payAmount = payAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN) .multiply(new BigDecimal(map1.get(it.getId())))); - if (ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio()) && ObjectUtil.isNotNull(orderInfo.getDiscountRatio())) { - payAmount = payAmount.multiply(orderInfo.getDiscountRatio()).setScale(2, BigDecimal.ROUND_DOWN); - } +// // payAmount=payAmount.add(it.getPriceAmount()); packAMount = packAMount.add(it.getPackAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId())))); @@ -1158,10 +1184,6 @@ public class PayService { } BigDecimal returnAmount = it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId())));; - if (ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio()) && ObjectUtil.isNotNull(orderInfo.getDiscountRatio())) { - returnAmount = returnAmount.multiply(orderInfo.getDiscountRatio()).setScale(2, BigDecimal.ROUND_DOWN); - } - detailPo.setReturnNum(map1.get(it.getId())); detailPos.add(detailPo); it.setNum(map1.get(it.getId())); @@ -1255,7 +1277,7 @@ public class PayService { flow.setBizCode("accountReturnPay"); flow.setBizName("会员储值卡退款"); flow.setType("+"); - flow.setAmount(newOrderInfo.getOrderAmount()); + flow.setAmount(newOrderInfo.getPayAmount()); flow.setBalance(user.getAmount()); flow.setCreateTime(new Date()); flow.setIsReturn("0"); diff --git a/src/main/resources/mapper/TbOrderDetailMapper.xml b/src/main/resources/mapper/TbOrderDetailMapper.xml index f58d3ce..ba0243e 100644 --- a/src/main/resources/mapper/TbOrderDetailMapper.xml +++ b/src/main/resources/mapper/TbOrderDetailMapper.xml @@ -205,7 +205,13 @@ where id = #{id,jdbcType=INTEGER} - update tb_order_detail set status = #{status} where order_id = #{orderId} + update tb_order_detail set status = #{status} + + + ,price_amount=price_amount*#{radio} + + + where order_id = #{orderId} From eb1603a4ee0fc391f4f3c22182fdf486698718c1 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 6 Sep 2024 10:38:10 +0800 Subject: [PATCH 138/143] =?UTF-8?q?1.=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=99=AE=E9=80=9A=E4=B8=8B=E5=8D=95=E4=B8=8D=E6=B2=BF=E7=94=A8?= =?UTF-8?q?=E4=B8=8A=E7=AC=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 483be1c..d566c1d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -635,14 +635,14 @@ public class OrderService { } @Transactional(rollbackFor = Exception.class) - public Result createOrder(OrderVo orderVo, String clientType, String token, Integer oldOrderId, boolean isPrint) { + public Result createOrder(OrderVo orderVo, String clientType, String token, Integer oldOrderId, boolean isPost) { String day = DateUtils.getDay(); TbShopTable shopTable = null; String currentOrderKey = RedisCst.getCurrentOrderKey(orderVo.getTableId(), orderVo.getShopId().toString()); String orderIdValue = redisUtil.getMessage(currentOrderKey); - Integer orderId = orderIdValue == null ? 0 : Integer.parseInt(orderIdValue); + Integer orderId = isPost ? orderIdValue == null ? 0 : Integer.parseInt(orderIdValue) : 0; LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, orderVo.getShopId()) @@ -755,7 +755,7 @@ public class OrderService { if (orderInfo == null || !"unpaid".equals(orderInfo.getStatus())) { redisUtil.deleteByKey(currentOrderKey); } - if (orderId > 0 && orderInfo != null) { + if (orderInfo != null && orderId > 0) { // if (!orderInfo.getStatus().equals("unpaid")){ // return Result.fail(CodeEnum.ORDERCREATE); // } @@ -819,7 +819,7 @@ public class OrderService { redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId()),object.toString()); orderId = orderInfo.getId(); - if (isPrint) { + if (isPost) { redisUtil.saveMessage(currentOrderKey, orderInfo.getId().toString()); } @@ -874,7 +874,7 @@ public class OrderService { } if (!StrUtil.isBlank(orderVo.getTableId())) { - if (isPrint) { + if (isPost) { producer.printMechine(String.valueOf(orderId)); } mpShopTableMapper.update(null, new LambdaUpdateWrapper() From 781570e2bfb18090833bf91aa3a07dfb2d830c67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Fri, 6 Sep 2024 11:09:57 +0800 Subject: [PATCH 139/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/util/WxAccountUtil.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/WxAccountUtil.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/WxAccountUtil.java index 08a0a11..461531e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/WxAccountUtil.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/WxAccountUtil.java @@ -23,11 +23,11 @@ import java.util.Map; @Component public class WxAccountUtil { @Value("${wx.ysk.appId}") - private static String appId = "wx212769170d2c6b2a"; + private String appId = "wx212769170d2c6b2a"; @Value("${wx.ysk.secrete}") - private static String secrete = "8492a7e8d55bbb1b57f5c8276ea1add0"; + private String secrete = "8492a7e8d55bbb1b57f5c8276ea1add0"; @Value("${wx.ysk.warnMsgTmpId}") - private static String msgTmpId = "C08OUr80x6wGmUN1zpFhSQ3Sv7VF5vksdZigiEx2pD0"; + private String msgTmpId = "C08OUr80x6wGmUN1zpFhSQ3Sv7VF5vksdZigiEx2pD0"; private final TbShopMsgStateMapper shopMsgStateMapper; static LinkedHashMap linkedHashMap=new LinkedHashMap<>(); @@ -49,7 +49,7 @@ public class WxAccountUtil { // sendStockWarnMsg("13213", "31123", "234", "ojC-S6n2DDlpj52iVMoiLL0Ry4HI"); } - public static String getRadarQrCode(Integer shopId) { + public String getRadarQrCode(Integer shopId) { HashMap req = new HashMap<>(); req.put("expire_seconds", 300); req.put("action_name", "QR_STR_SCENE"); @@ -70,7 +70,7 @@ public class WxAccountUtil { } - public static String getAccessToken() { + public String getAccessToken() { String resp = HttpUtil.get(StrUtil.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}", appId, secrete)); JSONObject respInfo = JSONObject.parseObject(resp); if (!respInfo.containsKey("access_token")) { @@ -80,7 +80,7 @@ public class WxAccountUtil { return respInfo.getString("access_token"); } - public static JSONObject sendTemplateMsg(String templateId, String toUserOpenId, Map data) { + public JSONObject sendTemplateMsg(String templateId, String toUserOpenId, Map data) { log.info("开始发送微信模板消息, 接收用户openId: {}, 消息数据: {}", toUserOpenId, data); String accessToken = getAccessToken(); From 106c89ec581e97cdd24b7415a2c0695c2811eaa2 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 6 Sep 2024 11:37:22 +0800 Subject: [PATCH 140/143] =?UTF-8?q?1.=E7=94=9F=E6=88=90=E5=8F=96=E9=A4=90?= =?UTF-8?q?=E7=A0=81redis=E6=8A=A5=E9=94=99=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/service/OrderService.java | 10 +++++----- .../system/cashierservice/util/RedisUtils.java | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) 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 5b95d8d..8e13866 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -949,11 +949,11 @@ public class OrderService { orderCode =String.valueOf(Integer.valueOf(code)+1); } redisUtil.getIncrNum("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, "2"); - boolean flag = redisUtil.execsSet("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day,orderCode); - if (flag){ - return generateOrderCode(day,clientType,shopId); - } - // 增加计数器 +// boolean flag = redisUtil.execsSet("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day,orderCode); +// if (flag){ +// return generateOrderCode(day,clientType,shopId); +// } +// 增加计数器 return orderCode; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisUtils.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisUtils.java index 58c0951..9bd78ad 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisUtils.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisUtils.java @@ -646,7 +646,7 @@ public class RedisUtils { if (database!=0) { jedis.select(database); } - Object result = jedis.eval(secKillScript, Arrays.asList( key,num), new ArrayList<>()); + Object result = jedis.eval(secKillScript, Collections.singletonList( key), Collections.singletonList( num)); String reString = String.valueOf(result); return reString; @@ -684,4 +684,4 @@ public class RedisUtils { } return false ; } -} \ No newline at end of file +} From 4e2da5c6764653d5d0fdf2a24e876c02b69814e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Fri, 6 Sep 2024 17:23:52 +0800 Subject: [PATCH 141/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/controller/MemberController.java | 2 +- .../system/cashierservice/service/MemberService.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java index 05c65ab..6434ddb 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java @@ -26,7 +26,7 @@ public class MemberController { @RequestHeader("clientType") String clientType, @RequestParam("shopId") String shopId, @RequestParam("phone") String phone, - @RequestParam("isFlag") String isFlag, + @RequestParam(value = "isFlag",required = false,defaultValue ="0" ) String isFlag, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize ) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 8862797..293ecb5 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -92,6 +92,8 @@ public class MemberService { if(!"1".equals(isFlag)){ isFlag=null; } + + List tbShopUsers = tbShopUserMapper.selectByShopId(shopId, phone,isFlag); PageInfo pageInfo = new PageInfo(tbShopUsers); return Result.success(CodeEnum.SUCCESS, pageInfo); From 7d713a0a50497ef0f1e9a0a62f4a5aff68936270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Fri, 6 Sep 2024 17:38:19 +0800 Subject: [PATCH 142/143] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/controller/MemberController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java index 05c65ab..9a71769 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java @@ -26,7 +26,7 @@ public class MemberController { @RequestHeader("clientType") String clientType, @RequestParam("shopId") String shopId, @RequestParam("phone") String phone, - @RequestParam("isFlag") String isFlag, + @RequestParam(value = "isFlag",required = false,defaultValue = "0") String isFlag, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize ) { From 71b6cfe95c5eb3d7ffdcd7086528ec2eb80bbada Mon Sep 17 00:00:00 2001 From: yijiegong Date: Sat, 7 Sep 2024 00:19:49 +0800 Subject: [PATCH 143/143] =?UTF-8?q?=E9=80=80=E6=AC=BE=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chaozhanggui/system/cashierservice/service/PayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 cf36379..1dedc66 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1124,7 +1124,7 @@ public class PayService { TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId())); - if ("0".equals(shopInfo.getIsReturn())) { + if ("1".equals(shopInfo.getIsReturn())) { if (ObjectUtil.isEmpty(pwd)) { return Result.fail(CodeEnum.PARAM); }