1.代客下单 挂起订单

This commit is contained in:
SongZhang 2024-08-17 15:21:45 +08:00
parent e938911e4a
commit 89582d3bc8
5 changed files with 38 additions and 9 deletions

View File

@ -17,4 +17,5 @@ public class PendingDTO {
private Integer vipUserId;
@NotNull
private Boolean isPending;
private Integer orderId;
}

View File

@ -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<TbCashierCart> {
" 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<CarVO> 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<PendingCountVO> 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<TbCashierCartVO> selectPending(Integer shopId);
}

View File

@ -822,14 +822,23 @@ public class TbShopTableServiceImpl implements TbShopTableService {
@Override
public Object pending(PendingDTO pendingDTO) {
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
.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<TbCashierCart> cashierCarts = cashierCartMapper
.selectList(queryWrapper);
@ -875,13 +884,15 @@ public class TbShopTableServiceImpl implements TbShopTableService {
@Override
public Object getCar(Integer shopId) {
ArrayList<HashMap<String, Object>> data = new ArrayList<>();
ArrayList<Map<String, Object>> data = new ArrayList<>();
List<PendingCountVO> pendingCountVOS = cashierCartMapper.countPending(shopId);
List<TbCashierCart> tbCashierCarts = cashierCartMapper.selectList(new LambdaQueryWrapper<TbCashierCart>()
.eq(TbCashierCart::getShopId, shopId)
.eq(TbCashierCart::getStatus, "refund"));
cashierCartMapper.selectPending(shopId);
HashMap<String, List<TbCashierCart>> cashierMap = new HashMap<>();
for (TbCashierCart tbCashierCart : tbCashierCarts) {
List<TbCashierCart> list = cashierMap.computeIfAbsent(tbCashierCart.getOrderId().toString(), k -> new ArrayList<>());
@ -891,6 +902,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
pendingCountVOS.forEach(item -> {
Map<String, Object> map = BeanUtil.beanToMap(item, false, false);
map.put("carList", cashierMap.get(item.getOrderId().toString()));
data.add(map);
});
return data;
}

View File

@ -10,5 +10,6 @@ public class PendingCountVO {
private Long pendingAt;
private BigDecimal totalAmount;
private Integer totalCount;
private Integer totalNumber;
private Integer orderId;
}

View File

@ -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;
}