package org.jeecg.modules.userCode.service;

import org.jeecg.common.api.vo.Result;
import org.jeecg.common.bestpay.model.PayResponse;

import org.jeecg.modules.bean.RechargeReq;
import org.jeecg.modules.userCode.model.req.OrderPayReq;
import org.jeecg.modules.userCode.model.req.RechargeInfoLogReq;
import org.jeecg.modules.userCode.model.req.WithawalReq;
import org.springframework.web.bind.annotation.RequestHeader;

/**
 * @author java996.icu
 * @description IPayService
 * @date 2021/4/13 15:07
 * @Version V1.0
 */
public interface IPayService {


    /**
     * 车主端--订单支付
     *
     * @param req
     * @param token
     * @return
     */
    Result<?> orderPay(OrderPayReq req, String token);
    Result<?> payOrderByBalance(OrderPayReq req, String token);


    /**
     * 支付回调
     *
     * @param payResponse
     */
    Result<?> notify(PayResponse payResponse);


    Result<?> orderPremiumPay(OrderPayReq req, String token);

    Result<?> premiumNotify(PayResponse payResponse);


    /**
     * 车主端-充值支付
     *
     * @param token
     * @return
     */
    Result<?> payRecharge(RechargeReq rechargeReq, String token);

    /**
     * 会员支付回调
     *
     * @param payResponse
     */
    Result<?> payRechargeNotify(PayResponse payResponse);


    /**
     * 余额日志
     * @return
     */
    Result<?> rechargeLog(String token, RechargeInfoLogReq rechargeInfoLogReq);

    Result<?> withdrawal(String token,WithawalReq withawalReq);


}
