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


import cn.iocoder.yudao.module.rescue.domain.RescueInfo;
import cn.iocoder.yudao.module.rescue.domain.RescueOrderInfo;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;


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

/**
 * 救援订单Service接口
 * 
 * @author zcy
 * @date 2023-09-19
 */
public interface IRescueOrderInfoService  extends IService<RescueOrderInfo>
{
    /**
     * 查询救援订单
     * 
     * @param id 救援订单主键
     * @return 救援订单
     */
    public RescueOrderInfo selectRescueOrderInfoById(Long id);

    /**
     * 查询救援订单列表
     * 
     * @param rescueOrderInfo 救援订单
     * @return 救援订单集合
     */
    public List<RescueOrderInfo> selectRescueOrderInfoList(RescueOrderInfo rescueOrderInfo);

    /**
     * 新增救援订单
     * 
     * @param rescueOrderInfo 救援订单
     * @return 结果
     */
    public int insertRescueOrderInfo(RescueOrderInfo rescueOrderInfo);

    /**
     * 修改救援订单
     * 
     * @param rescueOrderInfo 救援订单
     * @return 结果
     */
    public int updateRescueOrderInfo(RescueOrderInfo rescueOrderInfo);

    /**
     * 批量删除救援订单
     * 
     * @param ids 需要删除的救援订单主键集合
     * @return 结果
     */
    public int deleteRescueOrderInfoByIds(Long[] ids);

    /**
     * 删除救援订单信息
     * 
     * @param id 救援订单主键
     * @return 结果
     */
    public int deleteRescueOrderInfoById(Long id);
    Map<String,Object> createOrder (RescueInfo orderInfo) throws Exception;
    RescueOrderInfo getOrderByOrderNo(String orderNo);
     Map<String, String> payNotify( JSONObject jsonObject);
    public void reviewOrder(String rescueId, Integer starLevel, String reviewStr) throws Exception;

    /**
     *
     * @param type count 数量  money 金额
     * @param timeType day 日 month 月 year 年
     * @return
     */
    List<Map<String, Object>> getRescueOrderCount(String type, String timeType);
}
