package org.dromara.pay.service;

import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.pay.domain.bo.PayOrderBo;
import org.dromara.pay.domain.vo.PayOrderSubmitRespVO;
import org.dromara.pay.domain.vo.PayOrderVo;
import java.util.Collection;
import java.util.List;

/**
 * 支付订单Service接口
 *
 * @author pengles
 */
public interface PayOrderService {

    /**
     * 查询支付订单
     */
    PayOrderVo queryById(Long id);

    /**
     * 查询支付订单列表
     */
    TableDataInfo<PayOrderVo> queryPageList(PayOrderBo bo, PageQuery pageQuery);

    /**
     * 查询支付订单列表
     */
    List<PayOrderVo> queryList(PayOrderBo bo);

    /**
     * 新增支付订单
     */
    Boolean insertByBo(PayOrderBo bo);

    /**
     * 修改支付订单
     */
    Boolean updateByBo(PayOrderBo bo);

    /**
     * 校验并批量删除支付订单信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 提交支付订单
     */
    PayOrderSubmitRespVO submitOrder(PayOrderBo bo);
    
    /**
     * 支付成功回调通知
     */
    void notifyOrderSuccess(String orderNo, String channelOrderNo);
}
