package cn.ysk.cashier.mybatis.service;

import cn.ysk.cashier.cons.TableConstant;
import cn.ysk.cashier.enums.OrderStatusEnums;
import cn.ysk.cashier.pojo.order.TbOrderDetail;
import cn.ysk.cashier.pojo.order.TbOrderInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;
import java.util.List;

/**
 * (TbShopPermission)表服务接口
 *
 * @author makejava
 * @since 2024-09-14 17:08:48
 */
public interface MpOrderInfoService extends IService<TbOrderInfo> {

    /**
     * 根据原始订单查询退款订单
     *
     * @param orderId 原始订单id
     * @return 对应的退款订单
     */
    TbOrderInfo selectReturnOrderByOrderId(Integer orderId);

    /**
     * 修改订单的就餐类型和tableId
     *
     * @param orderId 订单id
     * @param useType 就餐类型
     * @return 是否成功
     */
    boolean updateTableIdAndUseTypeById(Integer orderId, String useType, String tableId);

  /**
   * 根据状态和id获取订单信息
   * @param orderId 订单id
   * @param status 状态枚举
   */
    TbOrderInfo selectOrderByIdAndState(Integer orderId, TableConstant.OrderInfo.Status status);

    boolean incrAmount(Integer orderId, BigDecimal subtract);
}

