package com.hai.service;

import com.hai.entity.OutRechargeOrder;
import com.hai.model.OutOrderModel;
import com.hai.model.OutRechargeOrderModel;
import com.hai.model.OutUserOrderModel;
import io.swagger.models.auth.In;

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

public interface OutRechargeOrderService {

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

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

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

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

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

    /**
     * @Author Sum1Dream
     * @Description //取消订单 Administrator
     * @Date 18:37 2021/6/12
     * @Param [orderId]
     * @return void
     **/
    void cancelOrder(Long orderId);

    /**
     * @Author Sum1Dream
     * @Description //完成订单 Administrator
     * @Date 10:10 2021/6/14
     * @Param [orderId]
     * @return void
     **/
    void finishOrder(Long orderId);

    /**
     * 查询订单统计
     * @param map
     * @return
     */
    List<OutRechargeOrderModel> getOrderCount(Map<String,Object> map) throws Exception;

    /**
     * @Author Sum1Dream
     * @Description //查询订单未支付数量 Administrator
     * @Date 10:53 2021/6/14
     * @Param []
     * @return java.lang.Integer
     **/
    Long CountOrder();

    /**
     * @Author Sum1Dream
     * @Description //TODO Administrator
     * @Date 1:04 2021/6/22
     * @Param [map]
     * @return java.util.List<com.hai.model.OutRechargeOrderModel>
     **/
    List<OutOrderModel> getListOrderCount(Map<String , String> map)  throws Exception;

    /**
     * @Author Sum1Dream
     * @Description //TODO Administrator
     * @Date 0:56 2021/6/23
     * @Param [map]
     * @return java.util.List<com.hai.model.OutUserOrderModel>
     **/
    List<OutUserOrderModel> getUserCountList(Map<String , String> map)  throws Exception;

    /**
     * 汇联通支付
     * @param orderId
     */
    void hltUnionCardPay(Long userCardId, Long orderId);

    /**
     * 积分支付
     * @param userId
     * @param orderId
     */
    void goldPayOrder(Long userId, Long orderId);
}
