package com.hai.service;

import com.hai.entity.HighChildOrder;
import com.hai.entity.HighOrder;
import com.hai.entity.HighOrderPre;
import com.hai.model.HighOrderPreModel;

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

public interface HighOrderPreService {

    /**
     * @Author Sum1Dream
     * @Description // 查询充值订单
     * @Date 15:18 2021/6/11
     * @Param [map]
     * @return java.util.List<com.hai.entity.HighOrderPre>
     **/
    List<HighOrderPre> getListOrderPre(Map<String , Object> map);

    /**
    * @Author Sum1Dream
    * @name ExportPreOrderList.java
    * @Description // 查询导出订单
    * @Date 12:09 下午 2021/11/22
    * @Param [java.util.Map<java.lang.String,java.lang.Object>]
    * @return java.util.List<com.hai.model.HighOrderPreModel>
    */
    List<HighOrderPreModel> ExportPreOrderList(Map<String , Object> map);

    /**
     * @Author Sum1Dream
     * @Description // 根据订单ID查询订单
     * @Date 15:19 2021/6/11
     * @Param [orderId]
     * @return com.hai.entity.HighOrderPre
     **/
    HighOrderPre findByOrderId(Long orderId);

    /**
     * 根据订单ID 查询预约信息
     * @param orderId
     * @return
     */
    HighOrderPre getPreByOrderId(Long orderId);

    /**
     * @Author Sum1Dream
     * @Description // 根据订单号查询订单
     * @Date 15:20 2021/6/11
     * @Param [orderNo]
     * @return com.hai.entity.HighOrderPre
     **/
    HighOrderPre findByOrderNo(String orderNo);

    /**
    * @Author Sum1Dream
    * @name findByRefund.java
    * @Description // 查询退款中订单
    * @Date 3:09 下午 2021/11/22
    * @Param [java.lang.String]
    * @return com.hai.entity.HighOrderPre
    */
    HighOrderPre findByRefund(String orderNo);

    /***
     * @Author Sum1Dream
     * @Description // 新增订单
     * @Date 15:25 2021/6/11
     * @Param [HighOrderPre]
     * @return void
     **/
    void insertOrderPre(HighOrderPre highOrderPre);

    /***
     * @Author Sum1Dream
     * @Description // 修改订单
     * @Date 15:26 2021/6/11
     * @Param [HighOrderPre]
     * @return void
     **/
    void updateOrderPre(HighOrderPre highOrderPre);

    /**
     * 订单完成
     * @param preOrderId
     */
    void orderComplete(Long preOrderId);


    /**
    * @Author Sum1Dream
    * @name orderToRefund.java
    * @Description // 预约订单退款
    * @Date 5:34 下午 2021/11/22
    * @Param [java.lang.Long]
    * @return void
    */
    void orderToRefund(HighChildOrder highChildOrder , HighOrder highOrder , HighOrderPre highOrderPre) throws Exception;
}
