查询所有桌台信息

This commit is contained in:
GYJ
2024-07-08 18:24:24 +08:00
parent 8245ae9b8c
commit 52ebdfa90b
3 changed files with 52 additions and 39 deletions

View File

@@ -1,18 +1,18 @@
/* /*
* Copyright 2019-2020 Zheng Jie * Copyright 2019-2020 Zheng Jie
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package cn.ysk.cashier.repository.order; package cn.ysk.cashier.repository.order;
import cn.ysk.cashier.pojo.order.TbOrderInfo; import cn.ysk.cashier.pojo.order.TbOrderInfo;
@@ -32,10 +32,10 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* @website https://eladmin.vip * @author lyf
* @author lyf * @website https://eladmin.vip
* @date 2024-03-02 * @date 2024-03-02
**/ **/
public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Integer>, JpaSpecificationExecutor<TbOrderInfo> { public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Integer>, JpaSpecificationExecutor<TbOrderInfo> {
@Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.orderAmount)) " + @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.orderAmount)) " +
"FROM TbOrderInfo info " + "FROM TbOrderInfo info " +
@@ -43,7 +43,7 @@ public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Intege
"AND info.createdAt>:start AND info.createdAt<:end " + "AND info.createdAt>:start AND info.createdAt<:end " +
"AND ((info.status = 'closed') OR (info.status = 'refund' AND info.orderType != 'return')) " + "AND ((info.status = 'closed') OR (info.status = 'refund' AND info.orderType != 'return')) " +
"GROUP BY info.payType") "GROUP BY info.payType")
List<TbOrderPayCountVo> queryTbOrderPayCount(@Param("shopId")String shopId, @Param("start") Long start, @Param("end") Long end); List<TbOrderPayCountVo> 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)) " + @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo('refund', SUM(info.orderAmount)) " +
@@ -51,21 +51,20 @@ public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Intege
"WHERE info.shopId = :shopId " + "WHERE info.shopId = :shopId " +
"AND info.status = 'refund' AND info.orderType = 'return' " + "AND info.status = 'refund' AND info.orderType = 'return' " +
"AND info.createdAt>:start AND info.createdAt<:end") "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("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 " + @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<Object[]> countByShopId(@Param("shopId") String shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); List<Object[]> 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") @Query("SELECT info FROM TbOrderInfo info WHERE info.source = :source AND info.shopId=:shopId")
List<TbOrderInfo> selTbOrdersBysource(@Param("source")Integer source,@Param("shopId") String shopId); List<TbOrderInfo> selTbOrdersBysource(@Param("source") Integer source, @Param("shopId") String shopId);
@Query("SELECT count(1) FROM TbOrderInfo WHERE source = :source AND shopId=: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 shopId
* @param startTime * @param startTime
* @param endTime * @param endTime
@@ -105,20 +104,21 @@ public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Intege
"AND ((status = 'closed') OR (status ='refund')) " + "AND ((status = 'closed') OR (status ='refund')) " +
"GROUP BY product_id,product_sku_id " + "GROUP BY product_id,product_sku_id " +
"ORDER BY salesNum DESC " + "ORDER BY salesNum DESC " +
"Limit :currentPage, :currentSize",nativeQuery = true) "Limit :currentPage, :currentSize", nativeQuery = true)
List<Object[]> queryTbOrderPayCountByDayExt(@Param("shopId") Integer shopId, @Param("startTime") Date startTime, @Param("endTime") Date endTime, List<Object[]> 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 " + @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' ))" + "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 " + "AND trade_day BETWEEN :startTime AND :endTime " +
"GROUP BY shop_id,trade_day",nativeQuery = true) "GROUP BY shop_id,trade_day", nativeQuery = true)
List<Object[]> queryTbOrderPaySumByDay(@Param("shopId") String shopId,@Param("startTime") Date startTime, @Param("endTime") Date endTime); List<Object[]> queryTbOrderPaySumByDay(@Param("shopId") String shopId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
@Query(value = "SELECT ifnull( sum( order_amount ), 0 )" + @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' ))" + "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) "AND created_at > :startTime AND created_at < :endTime ", nativeQuery = true)
Tuple queryPaySumByDayAll(@Param("shopId") String shopId,@Param("startTime") Long startTime, @Param("endTime") Long endTime); 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' ") @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<TbOrderInfo, Intege
@Query(value = "select count(1), trade_day FROM tb_order_info WHERE shop_id = :shopId " + @Query(value = "select count(1), trade_day FROM tb_order_info WHERE shop_id = :shopId " +
"AND ((status = 'closed') OR ( status ='refund' AND order_type != 'return' ))" + "AND ((status = 'closed') OR ( status ='refund' AND order_type != 'return' ))" +
"AND trade_day BETWEEN :startTime AND :endTime " + "AND trade_day BETWEEN :startTime AND :endTime " +
"GROUP BY shop_id,trade_day",nativeQuery = true) "GROUP BY shop_id,trade_day", nativeQuery = true)
List<Object[]> sumByDateOrderNum(@Param("shopId") String shopId,@Param("startTime") Date startTime, @Param("endTime") Date endTime); List<Object[]> 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' " + @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) "AND trade_day BETWEEN :startTime AND :endTime ", nativeQuery = true)
Tuple sumByShopIdToday(@Param("shopId") String shopId,@Param("startTime") Date startTime, @Param("endTime") Date endTime); Tuple sumByShopIdToday(@Param("shopId") String shopId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
@Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountByDayVo(" + @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountByDayVo(" +
"info.tradeDay," + "info.tradeDay," +
@@ -184,6 +185,10 @@ public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Intege
"WHERE info.shopId = :shopId " + "WHERE info.shopId = :shopId " +
"AND info.createdAt > :startTime AND info.createdAt < :endTime " + "AND info.createdAt > :startTime AND info.createdAt < :endTime " +
"AND ((info.status = 'closed') OR ( info.status ='refund' AND info.orderType != 'return' )) " + "AND ((info.status = 'closed') OR ( info.status ='refund' AND info.orderType != 'return' )) " +
"GROUP BY info.tableId") "AND info.tableId = :qrcode ")
List<ShopTableSaleInfoVo> queryShopTableSaleInfo(@Param("shopId") String shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); 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<String> queryShopTableIds(@Param("shopId") Integer shopId);
} }

View File

@@ -475,13 +475,21 @@ public class SummaryServiceImpl implements SummaryService {
@Override @Override
public List<ShopTableSaleInfoVo> selectSummaryTable(Integer shopId, Date startTime, Date endTime) { public List<ShopTableSaleInfoVo> selectSummaryTable(Integer shopId, Date startTime, Date endTime) {
List<String> shopTableCodes = tbOrderInfoRepository.queryShopTableIds(shopId);
long start = 1704038400000L; long start = 1704038400000L;
long end = Instant.now().toEpochMilli(); long end = Instant.now().toEpochMilli();
if (startTime != null && endTime != null) { if (startTime != null && endTime != null) {
start = startTime.getTime(); start = startTime.getTime();
end = endTime.getTime(); end = endTime.getTime();
} }
return tbOrderInfoRepository.queryShopTableSaleInfo(shopId.toString(), start, end);
List<ShopTableSaleInfoVo> list = new ArrayList<>();
for (String shopTableCode : shopTableCodes) {
ShopTableSaleInfoVo shopTableSaleInfoVo = tbOrderInfoRepository.queryShopTableSaleInfo(shopId.toString(), shopTableCode, start, end);
list.add(shopTableSaleInfoVo);
}
return list;
} }
@Override @Override

View File

@@ -32,7 +32,7 @@ public class ShopTableSaleInfoVo {
this.tableName = tableName; this.tableName = tableName;
this.areaId = areaId; this.areaId = areaId;
this.areaName = areaName; this.areaName = areaName;
this.orderCount = orderCount; this.orderCount = orderCount == null ? 0 : orderCount;
this.orderAmount = orderAmount; this.orderAmount = orderAmount == null ? 0 : orderAmount;
} }
} }