From 86bdcbe3c5c1fc3d1a5f9496bd27ae98b5611784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A9=E9=B9=8F=E8=BE=89?= <18322780655@163.com> Date: Tue, 25 Jun 2024 09:58:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/dao/TbOrderInfoMapper.java | 3 + .../cashierservice/dao/TbUserInfoMapper.java | 2 + .../cashierservice/entity/po/ConsInfoPO.java | 21 +++ .../cashierservice/entity/po/OrderPo.java | 5 + .../cashierservice/entity/po/SkuInfoPo.java | 12 ++ .../cashierservice/rabbit/ConsConsumer.java | 47 ++++++ .../rabbit/PrintMechineConsumer.java | 3 - .../cashierservice/rabbit/RabbitConfig.java | 16 ++ .../rabbit/RabbitConstants.java | 12 ++ .../cashierservice/rabbit/RabbitProducer.java | 9 ++ .../cashierservice/service/ConsService.java | 153 ++++++++++++++++++ .../cashierservice/service/MemberService.java | 6 + .../cashierservice/service/OrderService.java | 74 ++++++++- .../cashierservice/service/PayService.java | 5 - .../system/cashierservice/sign/CodeEnum.java | 4 + .../cashierservice/util/PrinterUtils.java | 11 +- .../system/cashierservice/util/RedisCst.java | 2 + .../generator-mapper/generatorConfig.xml | 3 +- .../resources/mapper/TbCashierCartMapper.xml | 2 +- .../resources/mapper/TbOrderInfoMapper.xml | 38 ++++- .../resources/mapper/TbUserInfoMapper.xml | 4 + 21 files changed, 406 insertions(+), 26 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/entity/po/ConsInfoPO.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/entity/po/SkuInfoPo.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/rabbit/ConsConsumer.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/service/ConsService.java diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbOrderInfoMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbOrderInfoMapper.java index 7d5202e..837a81c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbOrderInfoMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbOrderInfoMapper.java @@ -2,6 +2,7 @@ package com.chaozhanggui.system.cashierservice.dao; import com.chaozhanggui.system.cashierservice.entity.TbOrderInfo; import com.chaozhanggui.system.cashierservice.entity.po.OrderPo; +import com.chaozhanggui.system.cashierservice.entity.po.SkuInfoPo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @@ -42,4 +43,6 @@ public interface TbOrderInfoMapper { Map selectByOrderId(String orderId); + + List selectSkuByOrderId(String orderId); } \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserInfoMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserInfoMapper.java index 462dc5e..8103386 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserInfoMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserInfoMapper.java @@ -21,4 +21,6 @@ public interface TbUserInfoMapper { TbUserInfo selectByCardNo(String cardNo); TbUserInfo selectByPhone(String phone); + + int selectCountByPhone(String phone); } \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/ConsInfoPO.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/ConsInfoPO.java new file mode 100644 index 0000000..bf47651 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/ConsInfoPO.java @@ -0,0 +1,21 @@ +package com.chaozhanggui.system.cashierservice.entity.po; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class ConsInfoPO implements Serializable { + + private Integer id; + + private BigDecimal amount; + + + public ConsInfoPO(Integer id, BigDecimal amount) { + this.id = id; + this.amount = amount; + } +} 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 b2e3805..6ff778f 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 @@ -4,6 +4,7 @@ import com.chaozhanggui.system.cashierservice.entity.TbOrderDetail; import lombok.Data; import java.math.BigDecimal; +import java.util.List; @Data public class OrderPo { @@ -21,5 +22,9 @@ public class OrderPo { private Integer productNum; private BigDecimal orderAmount; private TbOrderDetail orderDetail; + private String outNumber; + private String tableName; + private List skuInfos; + } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/SkuInfoPo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/SkuInfoPo.java new file mode 100644 index 0000000..f972a64 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/SkuInfoPo.java @@ -0,0 +1,12 @@ +package com.chaozhanggui.system.cashierservice.entity.po; + +import lombok.Data; + +@Data +public class SkuInfoPo { + + private String productName; + private String productSkuName; + private Integer num; + private String categoryId; +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/ConsConsumer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/ConsConsumer.java new file mode 100644 index 0000000..58e4103 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/ConsConsumer.java @@ -0,0 +1,47 @@ +package com.chaozhanggui.system.cashierservice.rabbit; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.chaozhanggui.system.cashierservice.dao.TbCashierCartMapper; +import com.chaozhanggui.system.cashierservice.dao.TbConsInfoMapper; +import com.chaozhanggui.system.cashierservice.dao.TbProskuConMapper; +import com.chaozhanggui.system.cashierservice.entity.TbCashierCart; +import com.chaozhanggui.system.cashierservice.entity.TbConsInfo; +import com.chaozhanggui.system.cashierservice.entity.TbProskuCon; +import com.chaozhanggui.system.cashierservice.entity.po.ConsInfoPO; +import com.chaozhanggui.system.cashierservice.service.ConsService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import java.sql.Time; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@Slf4j +@Component +@RabbitListener(queues = {RabbitConstants.CONS_COLLECT_QUEUE_PUT}) +@Service + +public class ConsConsumer { + + + @Autowired + ConsService consService; + + @RabbitHandler + public void listener(String message) { + try { + consService.exect(message); + } catch (Exception e) { + e.printStackTrace(); + } + } +} 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 29f1e17..ed7c965 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -53,9 +53,6 @@ public class PrintMechineConsumer { @RabbitHandler public void listener(String message) { - - - String orderId = message; diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConfig.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConfig.java index 02134f3..8bce4c1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConfig.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConfig.java @@ -89,6 +89,22 @@ public class RabbitConfig { + @Bean + public DirectExchange consExchange_Register() { + return new DirectExchange(RabbitConstants.CONS_COLLECT_PUT); + } + + @Bean + public Queue queuecons_Register() { + return new Queue(RabbitConstants.CONS_COLLECT_QUEUE_PUT, true); //队列持久 + } + + @Bean + public Binding bindingcons_Register() { + return BindingBuilder.bind(queuePrint_Register()).to(printExchange_Register()).with(RabbitConstants.CONS_COLLECT_ROUTINGKEY_PUT); + } + + 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 09b3725..6bfaf65 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConstants.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitConstants.java @@ -19,4 +19,16 @@ public interface RabbitConstants { public static final String PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT = "print_mechine_collect_routingkey_put"; + + + + + public static final String CONS_COLLECT_PUT="cons_collect_put"; + + public static final String CONS_COLLECT_QUEUE_PUT = "cons_collect_queue_put"; + + + public static final String CONS_COLLECT_ROUTINGKEY_PUT = "cons_collect_routingkey_put"; + + } 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 60ff113..213aace 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java @@ -35,6 +35,15 @@ 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); + } + + @Override public void confirm(CorrelationData correlationData, boolean ack, String cause) { logger.info(" 回调id:" + correlationData); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ConsService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ConsService.java new file mode 100644 index 0000000..c17a28b --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ConsService.java @@ -0,0 +1,153 @@ +package com.chaozhanggui.system.cashierservice.service; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.chaozhanggui.system.cashierservice.dao.TbCashierCartMapper; +import com.chaozhanggui.system.cashierservice.dao.TbConsInfoFlowMapper; +import com.chaozhanggui.system.cashierservice.dao.TbConsInfoMapper; +import com.chaozhanggui.system.cashierservice.dao.TbProskuConMapper; +import com.chaozhanggui.system.cashierservice.entity.TbCashierCart; +import com.chaozhanggui.system.cashierservice.entity.TbConsInfo; +import com.chaozhanggui.system.cashierservice.entity.TbConsInfoFlow; +import com.chaozhanggui.system.cashierservice.entity.TbProskuCon; +import com.chaozhanggui.system.cashierservice.entity.po.ConsInfoPO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.*; + +@Slf4j +@Service +public class ConsService { + + @Autowired + TbCashierCartMapper tbCashierCartMapper; + + + @Autowired + TbProskuConMapper tbProskuConMapper; + + + @Autowired + TbConsInfoMapper tbConsInfoMapper; + + @Autowired + TbConsInfoFlowMapper tbConsInfoFlowMapper; + + @Transactional(rollbackFor = Exception.class) + public void exect(String message) throws Exception { + log.info("耗材信息更新开始:{}",message); + JSONObject jsonObject = JSON.parseObject(message); + + String type=jsonObject.getString("type"); + + if(Objects.nonNull(type)){ + + if("create".equals(type)){ + + String cartId=jsonObject.getString("cartId"); + + TbCashierCart cart= tbCashierCartMapper.selectByPrimaryKey(Integer.valueOf(cartId)); + if(Objects.isNull(cart)){ + log.info("不存在的购物车信息::{}",cartId); + return; + } + + + //减少耗材库存信息 + List tbProskuCons= tbProskuConMapper.selectBySkuIdAndShopId(Integer.valueOf(cart.getSkuId()),Integer.valueOf(cart.getShopId())); + if(Objects.isNull(tbProskuCons)||tbProskuCons.size()<=0){ + log.info("没有对应的耗材配置: skuId:{},shopId:{}",cart.getSkuId(),cart.getShopId()); + return; + } + + List consInfoPOS=new ArrayList<>(); + List consInfoFlows=new ArrayList<>(); + for (TbProskuCon tbProskuCon : tbProskuCons) { + TbConsInfo tbConsInfo= tbConsInfoMapper.selectByPrimaryKey(tbProskuCon.getConInfoId()); + if(Objects.nonNull(tbConsInfo)){ + ConsInfoPO consInfoPO=new ConsInfoPO(tbConsInfo.getId(),tbConsInfo.getSurplusStock()); + consInfoPOS.add(consInfoPO); + + TbConsInfoFlow flow=new TbConsInfoFlow(); + flow.setConsId(tbConsInfo.getId()); + flow.setShopId(tbConsInfo.getShopId()); + flow.setConName(tbConsInfo.getConName()); + flow.setAmount(tbConsInfo.getSurplusStock()); + flow.setBalance(tbConsInfo.getStockNumber().subtract(tbConsInfo.getSurplusStock())); + flow.setBizCode("createCart"); + flow.setBizName("加入购物陈消耗"); + flow.setBizType("-"); + flow.setCreateTime(new Date()); + flow.setUpdateTime(new Date()); + consInfoFlows.add(flow); + } + } + + + + //更新耗材信息 + tbConsInfoMapper.batchStock(consInfoPOS); + //记录更新日志 + tbConsInfoFlowMapper.insertBatch(consInfoFlows); + return; + } + + + if("delete".equals(type)){ + + List jsonArray= Arrays.asList(jsonObject.getJSONArray("skuIds")); + + String shopId= jsonObject.getString("shopId"); + if(Objects.isNull(jsonArray)||jsonArray.size()<=0){ + log.info("错误的商品规格信息"); + return; + } + List consInfoPOS=new ArrayList<>(); + List consInfoFlows=new ArrayList<>(); + + for(int i=0;i tbProskuCons= tbProskuConMapper.selectBySkuIdAndShopId(Integer.valueOf(jsonArray.get(i)+""),Integer.valueOf(shopId)); + if(Objects.isNull(tbProskuCons)||tbProskuCons.size()<=0){ + log.info("没有对应的耗材配置: skuId:{},shopId:{}",jsonArray.get(i),shopId); + return; + } + + for (TbProskuCon tbProskuCon : tbProskuCons) { + TbConsInfo tbConsInfo= tbConsInfoMapper.selectByPrimaryKey(tbProskuCon.getConInfoId()); + if(Objects.nonNull(tbConsInfo)){ + ConsInfoPO consInfoPO=new ConsInfoPO(tbConsInfo.getId(),tbConsInfo.getSurplusStock().negate()); + consInfoPOS.add(consInfoPO); + + TbConsInfoFlow flow=new TbConsInfoFlow(); + flow.setConsId(tbConsInfo.getId()); + flow.setShopId(tbConsInfo.getShopId()); + flow.setConName(tbConsInfo.getConName()); + flow.setAmount(tbConsInfo.getSurplusStock()); + flow.setBalance(tbConsInfo.getStockNumber().add(tbConsInfo.getSurplusStock())); + flow.setBizCode("cancelCart"); + flow.setBizName("取消购物车返回"); + flow.setBizType("+"); + flow.setCreateTime(new Date()); + flow.setUpdateTime(new Date()); + consInfoFlows.add(flow); + } + } + } + + //更新耗材信息 + tbConsInfoMapper.batchStock(consInfoPOS); + //记录更新日志 + tbConsInfoFlowMapper.insertBatch(consInfoFlows); + return; + } + + } + + } +} 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 8719dab..39f3097 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -106,6 +106,11 @@ public class MemberService { return Result.fail(CodeEnum.MEMBERHAVED); } + + if(tbUserInfoMapper.selectCountByPhone(phone)>1){ + return Result.fail(CodeEnum.SAMEUSER); + } + // for (TbShopUser tbShopUser : tbShopUsers) { // if("1".equals(tbShopUser.getIsVip().toString())){ // return Result.fail(CodeEnum.MEMBERHAVED); @@ -126,6 +131,7 @@ public class MemberService { tbShopUserMapper.updateByPrimaryKeySelective(tbShopUser); return Result.success(CodeEnum.SUCCESS); } + TbShopUser tbShopUser = new TbShopUser(); TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPhone(phone); if(tbUserInfo!=null){ 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 f764c12..ef66fd0 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -6,17 +6,12 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; -import com.chaozhanggui.system.cashierservice.entity.po.CartPo; -import com.chaozhanggui.system.cashierservice.entity.po.OrderPo; -import com.chaozhanggui.system.cashierservice.entity.po.ProductSkuPo; -import com.chaozhanggui.system.cashierservice.entity.po.QueryCartPo; +import com.chaozhanggui.system.cashierservice.entity.po.*; import com.chaozhanggui.system.cashierservice.entity.vo.CartVo; +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; -import com.chaozhanggui.system.cashierservice.util.HttpClientUtil; -import com.chaozhanggui.system.cashierservice.util.RedisUtil; -import com.chaozhanggui.system.cashierservice.util.RedisUtils; +import com.chaozhanggui.system.cashierservice.util.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -65,6 +60,9 @@ public class OrderService { TbTokenMapper tokenMapper; @Autowired RedisUtil redisUtil; + + @Autowired + RabbitProducer producer; private static ConcurrentHashMap> codeMap = new ConcurrentHashMap<>(); private static ConcurrentHashMap> userMap = new ConcurrentHashMap<>(); @@ -201,11 +199,19 @@ public class OrderService { } } + skuWithBLOBs.setStockNumber(skuWithBLOBs.getStockNumber()-number); skuWithBLOBs.setUpdatedAt(System.currentTimeMillis()); tbProductSkuMapper.updateByPrimaryKey(skuWithBLOBs); redisUtil.saveMessage("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + DateUtils.getDay(),masterId.substring(1,masterId.length())); + + //修改耗材数据 + JSONObject jsonObject=new JSONObject(); + jsonObject.put("cartId",cart.getId()); + jsonObject.put("type","create"); + producer.cons(jsonObject.toString()); + return Result.success(CodeEnum.SUCCESS, masterId); } @@ -293,9 +299,19 @@ public class OrderService { tbProductSkuMapper.updateByPrimaryKey(skuWithBLOBs); } + List skuIds=new ArrayList<>(); + skuIds.add(cashierCart.getSkuId()); cashierCartMapper.deleteByCartId(masterId, cartId); + //修改耗材数据 + JSONObject jsonObject=new JSONObject(); + jsonObject.put("type","delete"); + jsonObject.put("skuIds",skuIds); + jsonObject.put("shopId",cashierCart.getShopId()); + producer.cons(jsonObject.toString()); + + return Result.success(CodeEnum.SUCCESS); } @@ -404,6 +420,27 @@ public class OrderService { if (flag) { redisUtil.deleteByKey("SHOP:CODE:USER:" + clientType + ":" + orderVo.getShopId() + ":" + day + orderVo.getUserId()); } + + JSONObject object=new JSONObject(); + String outNumber= redisUtil.getMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId().toString())); + Integer number=1; + if(Objects.isNull(outNumber)){ + object.put("outNumber",number); + object.put("times",DateUtils.getDay()); + }else { + object=JSONObject.parseObject(outNumber); + if(object.getString("times").equals(DateUtils.getDay())){ + number=object.getInteger("outNumber")+1; + object.put("outNumber",number); + }else { + object.put("outNumber",number); + object.put("times",DateUtils.getDay()); + } + } + orderInfo.setOutNumber(number+""); + redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId().toString()),object.toString()); + + return Result.success(CodeEnum.SUCCESS, orderInfo); } @@ -651,15 +688,19 @@ public class OrderService { 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<>(); for (TbCashierCart cashierCart : list) { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { orderId = Integer.valueOf(cashierCart.getOrderId()); + skuIds.add(cashierCart.getSkuId()); } 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()); productSkuPos.add(skuPo); } + + } if (orderId > 0) { @@ -676,6 +717,15 @@ public class OrderService { tbProductSkuMapper.batchStockNum(productSkuPos); } + + + //修改耗材数据 + JSONObject jsonObject=new JSONObject(); + jsonObject.put("type","delete"); + jsonObject.put("skuIds",skuIds); + jsonObject.put("shopId",cartVo.getShopId()); + producer.cons(jsonObject.toString()); + return Result.success(CodeEnum.SUCCESS); } @@ -694,14 +744,22 @@ public class OrderService { log.info("orderType:" + orderType); log.info("status:" + status); List list = tbOrderInfoMapper.selectAllByShop(shopId, orderType, day, orderNo); + for (OrderPo orderInfo : list) { if (StringUtils.isEmpty(orderInfo.getImgUrl())) { orderInfo.setImgUrl("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240223/a04e0d3beef74d099ebd0fd1f7c41873.jpg"); } orderInfo.setZdNo("POS"); orderInfo.setNames(orderInfo.getProductName().split(",")); + + List skuInfoPos=tbOrderInfoMapper.selectSkuByOrderId(orderInfo.getId().toString()); + if(Objects.isNull(skuInfoPos)||skuInfoPos.size()<0){ + skuInfoPos=new ArrayList<>(); + } + orderInfo.setSkuInfos(skuInfoPos); } PageInfo pageInfo = new PageInfo(list); + log.info("获取订单:{}", JSONUtil.toJSONString(pageInfo)); return Result.success(CodeEnum.SUCCESS, pageInfo); } 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 105a094..3b79b14 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1003,16 +1003,11 @@ public class PayService { tbQuickPayMapper.insert(tbQuickPay); - - JSONObject jsonObject = new JSONObject(); jsonObject.put("token", token); jsonObject.put("type", "quick"); jsonObject.put("amount",tbQuickPay.getAmount()); producer.putOrderCollect(jsonObject.toJSONString()); - - - return Result.success(CodeEnum.SUCCESS, tbQuickPay); } 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 f7a00a4..db89141 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java @@ -90,6 +90,10 @@ public enum CodeEnum { + SAMEUSER("100034",false,"相同的手机号已存在多个记录","fail"), + + + 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 bfebdf3..a23706e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java @@ -96,6 +96,7 @@ public class PrinterUtils { sb.append(""+detailPO.getMerchantName()+"

"); sb.append(""+type+"【"+detailPO.getMasterId()+"】

"); + sb.append(""+detailPO.getOutNumber()+"

"); sb.append("订单号: "+detailPO.getOrderNo()+"
"); sb.append("交易时间: "+detailPO.getTradeDate()+"
"); sb.append("收银员: "+detailPO.getOperator()+"


"); @@ -103,7 +104,7 @@ public class PrinterUtils { char paddingCharacter = ' '; sb.append(""+String.format("%-15s","品名").replace(' ', paddingCharacter)+String.format("%-4s","数量").replace(' ', paddingCharacter)+String.format("%4s","小计").replace(' ', paddingCharacter)+"
"); for (OrderDetailPO.Detail detail : detailPO.getDetailList()) { - if(detail.getProductName().length()>4){ + if(detail.getProductName().length()>4&&detail.getProductName().length()<=10){ int count=getProducrName(detail.getProductName()); if(count<=0){ @@ -114,6 +115,11 @@ public class PrinterUtils { sb.append(""+String.format("%-"+length+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); } + }else if(detail.getProductName().length()>10){ + + sb.append(""+detail.getProductName()+"
"); + sb.append(""+String.format("%20s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%11s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); + }else { sb.append(""+String.format("%-15s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); } @@ -299,7 +305,7 @@ public class PrinterUtils { List detailList= new ArrayList<>(); - OrderDetailPO.Detail detail=new OrderDetailPO.Detail("花香水牛拿铁","1","19000.90","不甜,麻辣"); + OrderDetailPO.Detail detail=new OrderDetailPO.Detail("小萄(7.5*微气泡葡萄酒)","1","19000.90","不甜,麻辣"); OrderDetailPO.Detail detail3=new OrderDetailPO.Detail("单位iiii","4","40000.00",null); OrderDetailPO.Detail detail4=new OrderDetailPO.Detail("喔喔奶茶","1","19000.90","微甜,微辣"); @@ -307,6 +313,7 @@ public class PrinterUtils { detailList.add(detail3); detailList.add(detail4); OrderDetailPO detailPO=new OrderDetailPO("牛叉闪闪","普通打印","#365","DD20240306134718468","2024-03-06 15:00:00","【POS-1】001","79000.80","5049758.96","deposit","0",detailList,"变态辣"); + detailPO.setOutNumber("1"); String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; printTickets(voiceJson,1,1,"ZF544PG03W00002",getCashPrintData(detailPO,"结算单","")); 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 e432f12..36c2984 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisCst.java @@ -14,4 +14,6 @@ public class RedisCst { public static final String CART = "CZG:CART:"; public static final Object PRODUCT = "PRODUCT:"; + + public static final String OUT_NUMBER="ORDER:NUMBER:"; } diff --git a/src/main/resources/generator-mapper/generatorConfig.xml b/src/main/resources/generator-mapper/generatorConfig.xml index 5e2caa9..b3483b2 100644 --- a/src/main/resources/generator-mapper/generatorConfig.xml +++ b/src/main/resources/generator-mapper/generatorConfig.xml @@ -52,9 +52,10 @@ -
+ \ No newline at end of file diff --git a/src/main/resources/mapper/TbCashierCartMapper.xml b/src/main/resources/mapper/TbCashierCartMapper.xml index f28fdb2..73c8e41 100644 --- a/src/main/resources/mapper/TbCashierCartMapper.xml +++ b/src/main/resources/mapper/TbCashierCartMapper.xml @@ -102,7 +102,7 @@ and uuid = #{uuid} - + insert into tb_cashier_cart (id, master_id, order_id, ref_order_id, total_amount, product_id, cover_img, is_sku, sku_id, diff --git a/src/main/resources/mapper/TbOrderInfoMapper.xml b/src/main/resources/mapper/TbOrderInfoMapper.xml index 344708d..a817fe2 100644 --- a/src/main/resources/mapper/TbOrderInfoMapper.xml +++ b/src/main/resources/mapper/TbOrderInfoMapper.xml @@ -65,11 +65,24 @@ where id = #{id,jdbcType=INTEGER} @@ -565,4 +578,17 @@ select * from tb_order_info where trade_day = #{day} and table_id = #{masterId} GROUP BY d.order_id + + \ No newline at end of file diff --git a/src/main/resources/mapper/TbUserInfoMapper.xml b/src/main/resources/mapper/TbUserInfoMapper.xml index 3502533..86aef61 100644 --- a/src/main/resources/mapper/TbUserInfoMapper.xml +++ b/src/main/resources/mapper/TbUserInfoMapper.xml @@ -572,4 +572,8 @@ + + \ No newline at end of file