package cn.pluss.platform.jft;

import cn.pluss.platform.api.Result;
import cn.pluss.platform.dto.jft.JftPayDataDTO;
import cn.pluss.platform.dto.jft.JftReceiptOrderDTO;
import cn.pluss.platform.entity.JftReceiptOrder;
import cn.pluss.platform.vo.JftReceiptOrderVO;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 * 收款单订单详情 服务类
 * </p>
 *
 * @author crystal
 * @since 2022-06-16
 */
public interface JftReceiptOrderService extends IService<JftReceiptOrder> {

    /**
     * 根据收款单id盒状态查询收款单详情
     * @param id
     * @return
     */
    List<JftReceiptOrder> listByReceiptId(Long id,String status);

    /**
     * 创建订单信息
     * @param order
     * @return
     */
    JSONObject createOrder(JftReceiptOrderDTO order);

    /**
     * 根据订单号查询订单信息
     * @param ordNo
     * @return
     */
    JftReceiptOrder getOrderByNo(String ordNo);

    /**
     * 处理支付成功异步回调通知业务逻辑
     * @param receiptOrder
     */
    void updatePaySuccessNotify(JftReceiptOrder receiptOrder);

    /**
     *
     * @param dto
     * @return
     */
    Result<Object> tradePay(JftPayDataDTO dto,HttpServletRequest request);

    /**
     * 订单分页查询
     * @param page
     * @param order
     * @return
     */
    Page<JftReceiptOrderVO> pageData(Page<JftReceiptOrderVO> page, JftReceiptOrderDTO order);
}
