From 34c190ced8b121876db4a2f86ccc0ea928bb2738 Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Wed, 17 Jul 2024 11:25:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2=E6=90=BA?= =?UTF-8?q?=E5=B8=A6=E5=95=86=E5=93=81=E5=90=8D=E7=A7=B0=E6=A8=A1=E7=B3=8A?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/TbOrderInfoController.java | 4 +- .../dto/order/TbOrderInfoQueryCriteria.java | 4 +- .../order/TbOrderDetailRepository.java | 11 +++- .../impl/order/TbOrderInfoServiceImpl.java | 60 ++++++++++++++----- 4 files changed, 62 insertions(+), 17 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java index f8cbe8fe..1344077b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java @@ -16,6 +16,7 @@ package cn.ysk.cashier.controller.order; import cn.ysk.cashier.annotation.Log; +import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; import cn.ysk.cashier.dto.order.TbOrderInfoDto; import cn.ysk.cashier.dto.order.TbOrderInfoQueryCriteria; import cn.ysk.cashier.dto.order.TbPayCountQueryCriteria; @@ -55,6 +56,7 @@ public class TbOrderInfoController { @PostMapping("/date") @ApiOperation("查询订单") + @AnonymousPostMapping public ResponseEntity queryTbOrderInfo(@RequestBody TbOrderInfoQueryCriteria criteria){ return new ResponseEntity<>(tbOrderInfoService.queryAllPage(criteria),HttpStatus.OK); } @@ -90,4 +92,4 @@ public class TbOrderInfoController { // tbOrderInfoService.deleteAll(ids); // return new ResponseEntity<>(HttpStatus.OK); // } -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderInfoQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderInfoQueryCriteria.java index 581cf64c..3af79a3d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderInfoQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderInfoQueryCriteria.java @@ -72,4 +72,6 @@ public class TbOrderInfoQueryCriteria{ @Query private String tableName; -} \ No newline at end of file + + private String productName; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderDetailRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderDetailRepository.java index 5e705237..e8cdda21 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderDetailRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderDetailRepository.java @@ -136,4 +136,13 @@ public interface TbOrderDetailRepository extends JpaRepository findOrderIdsByProductNameLike(@Param("productName") String productName, @Param("shop_id") String shopId, + @Param("startTime") Date startTime, @Param("endTime") Date endTime); + +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java index 7143f08c..966d8ceb 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java @@ -1,10 +1,12 @@ package cn.ysk.cashier.service.impl.order; +import cn.hutool.core.date.DateTime; import cn.hutool.core.util.ObjectUtil; import cn.ysk.cashier.cons.rabbit.RabbitConstants; import cn.ysk.cashier.dto.order.TbOrderInfoDto; import cn.ysk.cashier.dto.order.TbOrderInfoQueryCriteria; import cn.ysk.cashier.dto.order.TbPayCountQueryCriteria; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mapper.order.TbOrderInfoMapper; import cn.ysk.cashier.mapper.product.TbProductMapper; import cn.ysk.cashier.mapper.product.TbProductSkuMapper; @@ -96,6 +98,36 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { if (StringUtils.isBlank(criteria.getStatus()) && StringUtils.isBlank(criteria.getSource())) { predicate = criteriaBuilder.and(predicate, criteriaBuilder.notEqual(root.get("orderType"), "return")); } + + if (StringUtils.isNotBlank(criteria.getProductName())) { + Date startTime, endTime; + DateTime offsetMonth = cn.hutool.core.date.DateUtil.offsetMonth(new Date(), 3); + if (criteria.getCreatedAt() != null && criteria.getCreatedAt().size() == 2) { + Long startLong = criteria.getCreatedAt().get(0); + Long endLong = criteria.getCreatedAt().get(1); + + startTime = new Date(startLong); + endTime = new Date(endLong); + + // 如果开始时间小于三个月前,不查询 + if (startTime.before(offsetMonth)) { + throw new BadRequestException("查询时间范围不能超过三个月"); + } + } else { + startTime = offsetMonth; + endTime = new Date(); + } + + List productIds = tbOrderDetailRepository.findOrderIdsByProductNameLike(criteria.getProductName(), + criteria.getShopId(), startTime, endTime); + + if (productIds.isEmpty()) { + predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("id"), 0)); + } else { + predicate = criteriaBuilder.and(predicate, root.get("id").in(productIds)); + } + } + return predicate; }, pageable); @@ -121,7 +153,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { detail.setRefundNumber(refundNumber); } }); - }else { + } else { details.parallelStream().forEach(detail -> { detail.setRefundNumber(detail.getNum()); }); @@ -151,10 +183,10 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { end = createdAt.get(1); } } - if(ObjectUtil.isEmpty(criteria.getTableName())){ + if (ObjectUtil.isEmpty(criteria.getTableName())) { criteria.setTableName(null); } - List payCountVoList = tbOrderInfoRepository.queryTbOrderPayCount(criteria.getShopId(),criteria.getTableName(), start, end); + List payCountVoList = tbOrderInfoRepository.queryTbOrderPayCount(criteria.getShopId(), criteria.getTableName(), start, end); BigDecimal totalPayAmount = BigDecimal.ZERO; for (TbOrderPayCountVo payCount : payCountVoList) { totalPayAmount = totalPayAmount.add(new BigDecimal(payCount.getPayAmount().toString())); @@ -171,7 +203,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { result.add(payCount); } } - TbOrderPayCountVo payRufund = tbOrderInfoRepository.queryTbOrderRefund(criteria.getShopId(),criteria.getTableName(), start, end); + TbOrderPayCountVo payRufund = tbOrderInfoRepository.queryTbOrderRefund(criteria.getShopId(), criteria.getTableName(), start, end); if (payRufund != null) { totalPayAmount = totalPayAmount.subtract(new BigDecimal(payRufund.getPayAmount().toString())); payRufund.setPayType("退单"); @@ -231,7 +263,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { dto.setIsRefund(0); dto.setRefundAmount(BigDecimal.ZERO); List tbOrderInfos = tbOrderInfoRepository.selTbOrdersBysource(tbOrderInfo.getId(), tbOrderInfo.getShopId()); - if(!CollectionUtils.isEmpty(tbOrderInfos)){ + if (!CollectionUtils.isEmpty(tbOrderInfos)) { dto.setIsRefund(1); dto.setRefundAmount(tbOrderInfos.stream().map(TbOrderInfo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); } @@ -250,15 +282,15 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { @Transactional(rollbackFor = Exception.class) public void expired(String orderId) { //修改耗材数据 - JSONObject jsonObject1=new JSONObject(); - jsonObject1.put("type","delete"); + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("type", "delete"); Optional byId = tbOrderInfoRepository.findById(Integer.valueOf(orderId)); if (byId != null && byId.isPresent()) { TbOrderInfo tbOrderInfo = byId.get(); if (tbOrderInfo.getStatus().equals("unpaid")) { upOrderStatus(tbOrderInfo); - jsonObject1.put("orderId",tbOrderInfo.getId()); + jsonObject1.put("orderId", tbOrderInfo.getId()); // 发送取消订单mq消息 rabbitTemplate.convertAndSend(RabbitConstants.CONS_COLLECT_PUT, RabbitConstants.CONS_COLLECT_ROUTINGKEY_PUT, jsonObject1.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); @@ -274,7 +306,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { redisUtils.set(CacheKey.ORDER_EXPIRED + tbOrderInfo.getId(), tbOrderInfo.getId(), 60 * 2); } else { upOrderStatus(tbOrderInfo); - jsonObject1.put("orderId",tbOrderInfo.getId()); + jsonObject1.put("orderId", tbOrderInfo.getId()); // 发送取消订单mq消息 rabbitTemplate.convertAndSend(RabbitConstants.CONS_COLLECT_PUT, RabbitConstants.CONS_COLLECT_ROUTINGKEY_PUT, @@ -360,7 +392,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); - all=all.stream().sorted(Comparator.comparing(TbOrderInfoDto::getId).reversed()).collect(Collectors.toList()); + all = all.stream().sorted(Comparator.comparing(TbOrderInfoDto::getId).reversed()).collect(Collectors.toList()); for (TbOrderInfoDto tbOrderInfo : all) { Map map = new LinkedHashMap<>(); map.put("订单编号", tbOrderInfo.getOrderNo()); @@ -408,8 +440,8 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { map.put("商品信息", productNames); // - if(ObjectUtil.isNotEmpty(tbOrderInfo.getPayType())&&ObjectUtil.isNotNull(tbOrderInfo.getPayType())){ - switch (tbOrderInfo.getPayType()){ + if (ObjectUtil.isNotEmpty(tbOrderInfo.getPayType()) && ObjectUtil.isNotNull(tbOrderInfo.getPayType())) { + switch (tbOrderInfo.getPayType()) { case "scanCode": tbOrderInfo.setPayType("收款码支付"); break; @@ -424,7 +456,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { break; } - }else { + } else { tbOrderInfo.setPayType(""); } @@ -471,7 +503,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { map.put("状态", tbOrderInfo.getStatus()); map.put("创建日期", DateUtil.timeStampFormatyMdHms(tbOrderInfo.getCreatedAt())); map.put("备注", tbOrderInfo.getRemark()); - map.put("台桌",tbOrderInfo.getTableName()); + map.put("台桌", tbOrderInfo.getTableName()); list.add(map); } FileUtil.downloadExcel(list, response);