From 89582d3bc8e65c2f049608cb93156eaccf6c470c Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 17 Aug 2024 15:21:45 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=8C=82=E8=B5=B7=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/dto/shoptable/PendingDTO.java | 1 + .../mybatis/mapper/TbCashierCartMapper.java | 6 +++- .../impl/shopimpl/TbShopTableServiceImpl.java | 28 +++++++++++++------ .../cn/ysk/cashier/vo/PendingCountVO.java | 1 + .../cn/ysk/cashier/vo/TbCashierCartVO.java | 11 ++++++++ 5 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/vo/TbCashierCartVO.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java index 773e3af5..7bfbedf3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java @@ -17,4 +17,5 @@ public class PendingDTO { private Integer vipUserId; @NotNull private Boolean isPending; + private Integer orderId; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index 236e460d..cda17036 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -4,6 +4,7 @@ import cn.ysk.cashier.mybatis.entity.Activate; import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.vo.CarVO; import cn.ysk.cashier.vo.PendingCountVO; +import cn.ysk.cashier.vo.TbCashierCartVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -20,7 +21,10 @@ public interface TbCashierCartMapper extends BaseMapper { " from tb_cashier_cart where table_id is not null and shop_id = #{shopId} and status = 'refund' group by shop_Id, master_id order by trade_day desc") List selectCar(@Param("shopId") Integer shopId); - @Select(" SELECT order_id orderId, pending_at, sum(total_amount) toalAmount, count(id) totalCount from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} " + + @Select(" SELECT order_id orderId, pending_at, sum(total_amount) totalAmount, count(id) totalCount, count(total_number) totalNumber from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} " + " GROUP BY order_id ORDER BY trade_day") List countPending(@Param("shopId") Integer shopId); + + @Select("select a.*, b.spec_snap from tb_cashier_cart as a left join tb_product_sku as b on a.sku_id=b.id where a.shop_id=#{shopId} and a.status='refund';") + List selectPending(Integer shopId); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 1938bec8..67d93221 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -822,14 +822,23 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object pending(PendingDTO pendingDTO) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .eq(TbCashierCart::getShopId, pendingDTO.getShopId()) - .eq(TbCashierCart::getTableId, pendingDTO.getTableId()) - .eq(TbCashierCart::getStatus, "create"); - if (pendingDTO.getVipUserId() != null) { - queryWrapper.eq(TbCashierCart::getUserId, pendingDTO.getVipUserId()); + .eq(TbCashierCart::getShopId, pendingDTO.getShopId()); + + if (!pendingDTO.getIsPending()) { + if (pendingDTO.getOrderId() == null) { + throw new BadRequestException("取消挂起订单id不为空"); + } + queryWrapper.eq(TbCashierCart::getOrderId, pendingDTO.getOrderId()); }else { - queryWrapper.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()) - .isNull(TbCashierCart::getUserId); + queryWrapper.eq(TbCashierCart::getTableId, pendingDTO.getTableId()) + .eq(TbCashierCart::getStatus, "create"); + if (pendingDTO.getVipUserId() != null) { + queryWrapper.eq(TbCashierCart::getUserId, pendingDTO.getVipUserId()); + }else { + queryWrapper.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()) + .isNull(TbCashierCart::getUserId); + } + } List cashierCarts = cashierCartMapper .selectList(queryWrapper); @@ -875,13 +884,15 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object getCar(Integer shopId) { - ArrayList> data = new ArrayList<>(); + ArrayList> data = new ArrayList<>(); List pendingCountVOS = cashierCartMapper.countPending(shopId); List tbCashierCarts = cashierCartMapper.selectList(new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) .eq(TbCashierCart::getStatus, "refund")); + cashierCartMapper.selectPending(shopId); + HashMap> cashierMap = new HashMap<>(); for (TbCashierCart tbCashierCart : tbCashierCarts) { List list = cashierMap.computeIfAbsent(tbCashierCart.getOrderId().toString(), k -> new ArrayList<>()); @@ -891,6 +902,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { pendingCountVOS.forEach(item -> { Map map = BeanUtil.beanToMap(item, false, false); map.put("carList", cashierMap.get(item.getOrderId().toString())); + data.add(map); }); return data; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java index 47c673e3..43bcf404 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java @@ -10,5 +10,6 @@ public class PendingCountVO { private Long pendingAt; private BigDecimal totalAmount; private Integer totalCount; + private Integer totalNumber; private Integer orderId; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbCashierCartVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbCashierCartVO.java new file mode 100644 index 00000000..5268c775 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbCashierCartVO.java @@ -0,0 +1,11 @@ +package cn.ysk.cashier.vo; + +import cn.ysk.cashier.pojo.order.TbCashierCart; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class TbCashierCartVO extends TbCashierCart { + private String specSnap; +}