package cn.iocoder.yudao.module.payment.service;


import cn.iocoder.yudao.module.inspection.entity.InspectionInfo;
import cn.iocoder.yudao.module.label.vo.LabelPageReqVO;
import cn.iocoder.yudao.module.label.vo.LabelRespVO;
import cn.iocoder.yudao.module.payment.entity.OrderInfo;
import cn.iocoder.yudao.module.payment.entity.commentVo;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Map;

/**
 * (OrderInfo)表服务接口
 *
 * @author makejava
 * @since 2023-07-24 18:30:29
 */
public interface OrderInfoService extends IService<OrderInfo> {
    void reviewOrder(String orderId, Integer starLevel, String reviewStr) throws Exception;

    IPage<OrderInfo> orderListApp(Page<OrderInfo> page, String status, String title, String type);

    List<InspectionInfo> workOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);

    IPage<InspectionInfo> pageWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime,Page<InspectionInfo> page);

    Map<String, Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);

    List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);

    IPage<InspectionInfo> pageDelworkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime,Page<InspectionInfo> page);

    IPage<OrderInfo> orderListSystem(Page<OrderInfo> page,OrderInfo orderInfo);

    /**
     * 分页查询订单
     *
     * @param orderInfo OrderInfo实体
     * @param page      分页参数
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.payment.entity.OrderInfo>
     * @author PQZ
     * @date 0:02 2024/9/20
     **/
    IPage<OrderInfo> queryListPage(OrderInfo orderInfo, Page<OrderInfo> page);




    Long createOrder(OrderInfo orderInfo) throws Exception;

    JSONObject pickCarDetail(Long pickCarId);

    JSONObject orderDetail(Long goodsId, String type, String title, Integer amount);

    void cancelPay(Long orderId);

    IPage<OrderInfo> orderList(Page<OrderInfo> page,String status, String title);

    String validation(String accessCode);

    OrderInfo getOrderByAccessCode(String accessCode);

    String validationMall(String accessCode);

    IPage<OrderInfo> validationListWx(Page<OrderInfo> page);

    IPage<OrderInfo> validationListPc(Page<OrderInfo> page);

    Integer commentOrder(OrderInfo orderInfo);

    Integer getNoCommentOrder();

    IPage<commentVo> getCommentOrderList(Page<commentVo> page,Long partnerId);

    IPage<OrderInfo> orderListPc(Page<OrderInfo> page,OrderInfo orderInfo);

    OrderInfo getOrderByOrderNo(String orderNo);
}

