package com.xhpc.payment.mapper;

import com.xhpc.payment.domain.XhpcRefundOrder;
import org.apache.ibatis.annotations.Param;

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

/**
 * 退款订单信息 数据层
 *
 * @author ruoyi
 */
public interface XhpcRefundOrderMapper {

    /**
     * 新增 退款订单信息
     *
     * @param xhpcRefundOrder 退款订单信息
     * @return 结果
     */
    public int insert(XhpcRefundOrder xhpcRefundOrder);

    /**
     * 修改退款订单信息
     *
     * @param xhpcRefundOrder 退款订单信息
     * @return 结果
     */
    public int update(XhpcRefundOrder xhpcRefundOrder);

    /**
     * 修改退款订单信息
     *
     * @param xhpcRefundOrder 退款订单信息
     * @return 结果
     */
    public int updateStatus(XhpcRefundOrder xhpcRefundOrder);

    /**
     * 修改退款订单审核状态信息
     *
     * @param xhpcRefundOrder 退款订单信息
     * @return 结果
     */
    public int updateExamineStatus(XhpcRefundOrder xhpcRefundOrder);

    /**
     * 查询退款订单详情
     *
     * @param refundOrderId 退款订单id
     * @return 结果
     */
    public Map<String, Object> info(@Param("refundOrderId") Long refundOrderId);

    /**
     * 退款订单分页列表
     *
     * @param phone
     * @param refundOrderNumber
     * @param status
     * @param createTimeStart
     * @param createTimeEnd
     * @return
     */
    public List<Map<String, Object>> page(@Param("phone") String phone, @Param("refundOrderNumber") String refundOrderNumber, @Param("status") String status, @Param("createTimeStart") String createTimeStart, @Param("createTimeEnd") String createTimeEnd,@Param("type")Integer type);


    /**
     * 统计订单列表
     *
     * @param phone
     * @param refundOrderNumber
     * @param status
     * @param createTimeStart
     * @param createTimeEnd
     * @return
     */
    public String sumMoney(@Param("phone") String phone, @Param("refundOrderNumber") String refundOrderNumber, @Param("status") String status, @Param("createTimeStart") String createTimeStart, @Param("createTimeEnd") String createTimeEnd,@Param("type")Integer type);



    /**
     * 通过用户id查询未完成充电订单
     *
     * @param userId 用户id
     * @return 结果
     */
    public List<Map<String, Object>> getNotChargeOrder(@Param("userId") Long userId);

    /**
     * 通过用户id查询未完成退款订单
     *
     * @param userId 用户id
     * @return 结果
     */
    public Map<String, Object> getNotRefundOrder(@Param("userId") Long userId);


    /**
     * 判断用户是否在充电中
     */
    int countXhpcRealTimeOrder(@Param("userId")Long userId);

    /**
     * 判断用户是否有异常订单未处理
     */
    int countXhpcChargeOrder(@Param("userId")Long userId);


    /**
     * 定时任务，每1小时，扫描一次，退款订单金额小于100，自动审核通过
     */
    public List<Long> moneyPage();
}
