From 90bfde259c95a59c728108523e31480611f42a34 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, 9 Jul 2024 10:50:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=B9=E9=87=8F=E5=87=BA?= =?UTF-8?q?=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/order/TbOrderInfoQueryCriteria.java | 4 +++ .../dto/order/TbPayCountQueryCriteria.java | 5 ++++ .../order/TbOrderInfoRepository.java | 8 ++--- .../service/impl/SummaryServiceImpl.java | 2 +- .../impl/order/TbOrderInfoServiceImpl.java | 30 +++++++++++++++++-- 5 files changed, 42 insertions(+), 7 deletions(-) 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 6bc87bab..581cf64c 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 @@ -68,4 +68,8 @@ public class TbOrderInfoQueryCriteria{ /** BETWEEN */ @Query(type = Query.Type.BETWEEN) private List createdAt; + + + @Query + private String tableName; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbPayCountQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbPayCountQueryCriteria.java index 60395400..164d6a7f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbPayCountQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbPayCountQueryCriteria.java @@ -6,6 +6,11 @@ import java.util.List; @Data public class TbPayCountQueryCriteria { + + private String shopId; + + private String tableName; + private List createdAt; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java index 8e632eda..85270a3e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java @@ -39,19 +39,19 @@ import java.util.List; public interface TbOrderInfoRepository extends JpaRepository, JpaSpecificationExecutor { @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.orderAmount)) " + "FROM TbOrderInfo info " + - "WHERE info.shopId = :shopId " + + "WHERE 1=1 and (:tableName is null or info.tableName=:tableName ) and info.shopId = :shopId " + "AND info.createdAt>:start AND info.createdAt<:end " + "AND ((info.status = 'closed') OR (info.status = 'refund' AND info.orderType != 'return')) " + "GROUP BY info.payType") - List queryTbOrderPayCount(@Param("shopId")String shopId, @Param("start") Long start, @Param("end") Long end); + List queryTbOrderPayCount(@Param("shopId")String shopId,@Param("tableName") String tableName ,@Param("start") Long start, @Param("end") Long end); @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo('refund', SUM(info.orderAmount)) " + "FROM TbOrderInfo info " + - "WHERE info.shopId = :shopId " + + "WHERE 1=1 and (:tableName is null or info.tableName=:tableName ) and info.shopId = :shopId " + "AND info.status = 'refund' AND info.orderType = 'return' " + "AND info.createdAt>:start AND info.createdAt<:end") - TbOrderPayCountVo queryTbOrderRefund(@Param("shopId")String shopId, @Param("start") Long start, @Param("end") Long end); + TbOrderPayCountVo queryTbOrderRefund(@Param("shopId")String shopId, @Param("tableName") String tableName ,@Param("start") Long start, @Param("end") Long end); @Query(value = "SELECT COUNT(1) ,pay_type AS payType FROM tb_order_info Where shop_id = :shopId AND " + " created_at BETWEEN :startTime AND :endTime AND status='closed'AND order_type <>'return' GROUP BY pay_type" ,nativeQuery = true) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/SummaryServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/SummaryServiceImpl.java index 239253e4..72eff9eb 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/SummaryServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/SummaryServiceImpl.java @@ -454,7 +454,7 @@ public class SummaryServiceImpl implements SummaryService { endTime = new Date(); } TbOrderPayCountVo payCount = tbOrderInfoRepository.queryOrderPayCount(shopId, start, end); - TbOrderPayCountVo refCount = tbOrderInfoRepository.queryTbOrderRefund(shopId, start, end); + TbOrderPayCountVo refCount = tbOrderInfoRepository.queryTbOrderRefund(shopId, null,start, end); payCount.setPayAmount(new BigDecimal(payCount.getPayAmount().toString()).subtract(new BigDecimal(refCount.getPayAmount().toString()))); payCount.setIcon("el-icon-coin"); list.add(payCount); 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 5a498eb9..6e767efa 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 @@ -150,7 +150,10 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { end = createdAt.get(1); } } - List payCountVoList = tbOrderInfoRepository.queryTbOrderPayCount(criteria.getShopId(), start, end); + if(ObjectUtil.isEmpty(criteria.getTableName())){ + criteria.setTableName(null); + } + 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())); @@ -167,7 +170,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { result.add(payCount); } } - TbOrderPayCountVo payRufund = tbOrderInfoRepository.queryTbOrderRefund(criteria.getShopId(), 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("退单"); @@ -400,6 +403,28 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { .collect(Collectors.joining("/")); map.put("商品信息", productNames); // + + if(ObjectUtil.isNotEmpty(tbOrderInfo.getOrderType())&&ObjectUtil.isNotNull(tbOrderInfo.getOrderType())){ + switch (tbOrderInfo.getPayType()){ + case "scanCode": + tbOrderInfo.setPayType("收款码支付"); + break; + case "deposit": + tbOrderInfo.setPayType("会员卡支付"); + break; + case "cash": + tbOrderInfo.setPayType("现金支付"); + break; + case "wx_lite": + tbOrderInfo.setPayType("微信支付"); + break; + + } + }else { + tbOrderInfo.setPayType(""); + } + + map.put("支付类型", tbOrderInfo.getPayType()); map.put("订单金额", tbOrderInfo.getOrderAmount()); map.put("退单金额", tbOrderInfo.getRefundAmount()); @@ -442,6 +467,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { map.put("状态", tbOrderInfo.getStatus()); map.put("创建日期", DateUtil.timeStampFormatyMdHms(tbOrderInfo.getCreatedAt())); map.put("备注", tbOrderInfo.getRemark()); + map.put("台桌",tbOrderInfo.getTableName()); list.add(map); } FileUtil.downloadExcel(list, response);