package com.hzya.frame.seeyon.cbs8.service;

import com.hzya.frame.basedao.service.IBaseService;
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;

import java.util.List;

/**
 * @Description oa对接cbs
 * @Author xiangerlin
 * @Date 2024/6/6 16:31
 **/
public interface IPaymentService extends IBaseService<PaymentEntity,String> {

    /**
     * 查询待支付的数据 需要推送到CBS的
     * 如果需要查询流程状态已结束的 需要调用方设置finishedflag=1
     * @param entity
     * @return
     * @throws Exception
     */
    List<PaymentEntity> queryUnpaid(PaymentEntity entity)throws Exception;

    /**
     * 查询交易成功的数据
     * 内置了查询条件payResult = PayState.payStateGetValue("g"); 支付成功
     * @param entity
     * @return
     * @throws Exception
     */
    List<PaymentEntity> querySuccess(PaymentEntity entity)throws Exception;

    /**
     * 查询交易成功，且电子回单为空的
     * @param entity
     * @return
     * @throws Exception
     */
    List<PaymentEntity> queryElecIsNull(PaymentEntity entity)throws Exception;

    /**
     * 查询支付中的数据
     * 内置了查询条件 payResult = '支付中' or payResult not in ('审批撤销','审批拒绝','处理失败','退票','支付成功','取消支付','修改支付','支付失败')
     * @param entity
     * @return
     * @throws Exception
     */
    List<PaymentEntity> queryInPayment(PaymentEntity entity)throws Exception;

    /**
     * 更新支付状态
     * @param entity
     * @throws Exception
     */
    void updatePayState(PaymentEntity entity)throws Exception;

    /**
     * 更新电子回单字段
     * @param entity
     * @throws Exception
     */
    void updateElec(PaymentEntity entity)throws Exception;
}
