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);