From 52ebdfa90bf014880aa9503441f4215cf226c881 Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Mon, 8 Jul 2024 18:24:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=89=80=E6=9C=89=E6=A1=8C?= =?UTF-8?q?=E5=8F=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/TbOrderInfoRepository.java | 77 ++++++++++--------- .../service/impl/SummaryServiceImpl.java | 10 ++- .../ysk/cashier/vo/ShopTableSaleInfoVo.java | 4 +- 3 files changed, 52 insertions(+), 39 deletions(-) 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..ec595db9 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 @@ -1,18 +1,18 @@ /* -* Copyright 2019-2020 Zheng Jie -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright 2019-2020 Zheng Jie + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package cn.ysk.cashier.repository.order; import cn.ysk.cashier.pojo.order.TbOrderInfo; @@ -32,10 +32,10 @@ import java.util.Date; import java.util.List; /** -* @website https://eladmin.vip -* @author lyf -* @date 2024-03-02 -**/ + * @author lyf + * @website https://eladmin.vip + * @date 2024-03-02 + **/ public interface TbOrderInfoRepository extends JpaRepository, JpaSpecificationExecutor { @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.orderAmount)) " + "FROM TbOrderInfo info " + @@ -43,7 +43,7 @@ public interface TbOrderInfoRepository extends JpaRepository: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("start") Long start, @Param("end") Long end); @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo('refund', SUM(info.orderAmount)) " + @@ -51,21 +51,20 @@ public interface TbOrderInfoRepository extends JpaRepository: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("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) + " created_at BETWEEN :startTime AND :endTime AND status='closed'AND order_type <>'return' GROUP BY pay_type", nativeQuery = true) List countByShopId(@Param("shopId") String shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); @Query("SELECT info FROM TbOrderInfo info WHERE info.source = :source AND info.shopId=:shopId") - List selTbOrdersBysource(@Param("source")Integer source,@Param("shopId") String shopId); + List selTbOrdersBysource(@Param("source") Integer source, @Param("shopId") String shopId); @Query("SELECT count(1) FROM TbOrderInfo WHERE source = :source AND shopId=:shopId") - int isRefund(@Param("source")Integer source,@Param("shopId") String shopId); + int isRefund(@Param("source") Integer source, @Param("shopId") String shopId); /** - * * @param shopId * @param startTime * @param endTime @@ -105,20 +104,21 @@ public interface TbOrderInfoRepository extends JpaRepository queryTbOrderPayCountByDayExt(@Param("shopId") Integer shopId, @Param("startTime") Date startTime, @Param("endTime") Date endTime, - @Param("currentPage") Integer currentPage, @Param("currentSize")Integer currentSize); + @Param("currentPage") Integer currentPage, @Param("currentSize") Integer currentSize); @Query(value = "SELECT ifnull( sum( order_amount ), 0 ) AS amount,trade_day as tradeDay " + "FROM tb_order_info WHERE shop_id = :shopId AND ((status = 'closed') OR ( status ='refund' AND order_type != 'return' ))" + "AND trade_day BETWEEN :startTime AND :endTime " + - "GROUP BY shop_id,trade_day",nativeQuery = true) - List queryTbOrderPaySumByDay(@Param("shopId") String shopId,@Param("startTime") Date startTime, @Param("endTime") Date endTime); + "GROUP BY shop_id,trade_day", nativeQuery = true) + List queryTbOrderPaySumByDay(@Param("shopId") String shopId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); + @Query(value = "SELECT ifnull( sum( order_amount ), 0 )" + "FROM tb_order_info WHERE shop_id = :shopId AND ((status = 'closed') OR ( status ='refund' AND order_type != 'return' ))" + - "AND created_at > :startTime AND created_at < :endTime " ,nativeQuery = true) - Tuple queryPaySumByDayAll(@Param("shopId") String shopId,@Param("startTime") Long startTime, @Param("endTime") Long endTime); + "AND created_at > :startTime AND created_at < :endTime ", nativeQuery = true) + Tuple queryPaySumByDayAll(@Param("shopId") String shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); @Query("select count(1),sum (info.payAmount) FROM TbOrderInfo info WHERE info.shopId = :shopId AND info.status = 'closed' ") @@ -128,11 +128,12 @@ public interface TbOrderInfoRepository extends JpaRepository sumByDateOrderNum(@Param("shopId") String shopId,@Param("startTime") Date startTime, @Param("endTime") Date endTime); + "GROUP BY shop_id,trade_day", nativeQuery = true) + List sumByDateOrderNum(@Param("shopId") String shopId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); + @Query(value = "select count(1), sum(pay_amount) FROM tb_order_info WHERE shop_id = :shopId AND status = 'closed' " + - "AND trade_day BETWEEN :startTime AND :endTime ",nativeQuery = true) - Tuple sumByShopIdToday(@Param("shopId") String shopId,@Param("startTime") Date startTime, @Param("endTime") Date endTime); + "AND trade_day BETWEEN :startTime AND :endTime ", nativeQuery = true) + Tuple sumByShopIdToday(@Param("shopId") String shopId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountByDayVo(" + "info.tradeDay," + @@ -184,6 +185,10 @@ public interface TbOrderInfoRepository extends JpaRepository :startTime AND info.createdAt < :endTime " + "AND ((info.status = 'closed') OR ( info.status ='refund' AND info.orderType != 'return' )) " + - "GROUP BY info.tableId") - List queryShopTableSaleInfo(@Param("shopId") String shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); + "AND info.tableId = :qrcode ") + ShopTableSaleInfoVo queryShopTableSaleInfo(@Param("shopId") String shopId, @Param("qrcode") String qrcode, + @Param("startTime") Long startTime, @Param("endTime") Long endTime); + + @Query("select table.qrcode from TbShopTable table where table.shopId = :shopId") + List queryShopTableIds(@Param("shopId") Integer shopId); } 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..8ad531a6 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 @@ -475,13 +475,21 @@ public class SummaryServiceImpl implements SummaryService { @Override public List selectSummaryTable(Integer shopId, Date startTime, Date endTime) { + List shopTableCodes = tbOrderInfoRepository.queryShopTableIds(shopId); + long start = 1704038400000L; long end = Instant.now().toEpochMilli(); if (startTime != null && endTime != null) { start = startTime.getTime(); end = endTime.getTime(); } - return tbOrderInfoRepository.queryShopTableSaleInfo(shopId.toString(), start, end); + + List list = new ArrayList<>(); + for (String shopTableCode : shopTableCodes) { + ShopTableSaleInfoVo shopTableSaleInfoVo = tbOrderInfoRepository.queryShopTableSaleInfo(shopId.toString(), shopTableCode, start, end); + list.add(shopTableSaleInfoVo); + } + return list; } @Override diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/ShopTableSaleInfoVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/ShopTableSaleInfoVo.java index 5fef58a8..b36e8168 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/ShopTableSaleInfoVo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/ShopTableSaleInfoVo.java @@ -32,7 +32,7 @@ public class ShopTableSaleInfoVo { this.tableName = tableName; this.areaId = areaId; this.areaName = areaName; - this.orderCount = orderCount; - this.orderAmount = orderAmount; + this.orderCount = orderCount == null ? 0 : orderCount; + this.orderAmount = orderAmount == null ? 0 : orderAmount; } }