feat: 台桌状态根据detail表判断

This commit is contained in:
张松 2024-11-18 11:40:40 +08:00
parent 2f5d902a9b
commit 2fb2667b29
2 changed files with 10 additions and 7 deletions

View File

@ -48,4 +48,7 @@ public interface TbCashierCartMapper extends BaseMapper<TbCashierCart> {
@Update("update tb_cashier_cart set status=#{status}, total_amount=(number+#{changeNum})*sale_price,number=number+#{changeNum},total_number=total_number+#{changeNum} " + @Update("update tb_cashier_cart set status=#{status}, total_amount=(number+#{changeNum})*sale_price,number=number+#{changeNum},total_number=total_number+#{changeNum} " +
"where id=#{id}") "where id=#{id}")
int updateNumAmountStatus(Integer id, String status, Integer changeNum); int updateNumAmountStatus(Integer id, String status, Integer changeNum);
@Select("select a.* from tb_cashier_cart as a left join tb_order_detail as b on a.id=b.cart_id where a.shop_id=#{shopId} and a.status=#{state} and a.created_at>#{time} and b.id is not null;")
List<TbCashierCart> selectPlaceCart(Integer shopId, long time, String state);
} }

View File

@ -263,12 +263,13 @@ public class TbShopTableServiceImpl implements TbShopTableService {
List<TbShopTable> tbShopTableList = shopTablePage.getRecords(); List<TbShopTable> tbShopTableList = shopTablePage.getRecords();
ArrayList<Map<String, Object>> infoList = new ArrayList<>(); ArrayList<Map<String, Object>> infoList = new ArrayList<>();
List<TbCashierCart> cartList = tbCashierCartMapper.selectList(new LambdaQueryWrapper<TbCashierCart>() // List<TbCashierCart> cartList = tbCashierCartMapper.selectList(new LambdaQueryWrapper<TbCashierCart>()
.eq(TbCashierCart::getShopId, criteria.getShopId()) // .eq(TbCashierCart::getShopId, criteria.getShopId())
// .eq(TbCashierCart::getTableId, date.getQrcode()) //// .eq(TbCashierCart::getTableId, date.getQrcode())
.gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime()) // .gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime())
.eq(TbCashierCart::getStatus, "create")); // .eq(TbCashierCart::getStatus, "create"));
List<TbCashierCart> cartList = tbCashierCartMapper.selectPlaceCart(criteria.getShopId(), DateUtil.offsetDay(DateUtil.date(), -1).getTime(), "create");
HashMap<String, Integer> countMap = new HashMap<>(); HashMap<String, Integer> countMap = new HashMap<>();
cartList.forEach(item -> { cartList.forEach(item -> {
Integer count = countMap.computeIfAbsent(item.getTableId(), k -> 1); Integer count = countMap.computeIfAbsent(item.getTableId(), k -> 1);
@ -290,8 +291,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
for (TbShopTable date : tbShopTableList) { for (TbShopTable date : tbShopTableList) {
if (StrUtil.isBlank(date.getQrcode())) { if (StrUtil.isBlank(date.getQrcode())) {
date.setStatus("unbind"); date.setStatus("unbind");
} else if (countMap.get(date.getQrcode()) != null && countMap.get(date.getQrcode()) < 1 && !TableStateEnum.CLEANING.getState().equals(date.getStatus()) } else if (countMap.get(date.getQrcode()) != null && countMap.get(date.getQrcode()) < 1 && !TableStateEnum.CLEANING.getState().equals(date.getStatus())) {
) {
date.setStatus("idle"); date.setStatus("idle");
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>() mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getQrcode, date.getQrcode()) .eq(TbShopTable::getQrcode, date.getQrcode())