package com.ruoyi.system.service; import java.math.BigDecimal; import java.util.List; import com.ruoyi.system.domain.SysTaskAdditionalFee; import com.ruoyi.system.domain.SysTaskPayment; import com.ruoyi.system.domain.vo.TaskPaymentInfoVO; import com.ruoyi.system.domain.vo.TaskPaymentCreateVO; import com.ruoyi.system.domain.vo.TaskPaymentResultVO; /** * 任务支付Service接口 * * @author ruoyi * @date 2025-01-15 */ public interface ISysTaskPaymentService { /** * 获取任务支付信息 * * @param taskId 任务ID * @return 支付信息 */ TaskPaymentInfoVO getPaymentInfo(Long taskId); /** * 新增附加费用 * * @param taskId 任务ID * @param feeType 费用类型 * @param feeName 费用名称 * @param unitAmount 单价 * @param quantity 数量 * @param remark 备注 * @return 附加费用汇总 */ BigDecimal addAdditionalFee(Long taskId, String feeType, String feeName, BigDecimal unitAmount, Integer quantity, String remark); /** * 删除附加费用 * * @param taskId 任务ID * @param feeId 费用ID * @return 附加费用汇总 */ BigDecimal removeAdditionalFee(Long taskId, Long feeId); /** * 创建支付 * * @param createVO 创建支付VO * @return 支付结果 */ TaskPaymentResultVO createPayment(TaskPaymentCreateVO createVO); /** * 查询支付状态 * * @param taskId 任务ID * @param paymentId 支付ID(可选) * @return 支付结果 */ TaskPaymentResultVO getPaymentStatus(Long taskId, Long paymentId); /** * 支付回调处理 * * @param outTradeNo 商户订单号 * @param tradeNo 三方交易号 * @param provider 支付提供商 * @return 是否处理成功 */ boolean handlePaymentCallback(String outTradeNo, String tradeNo, String provider); /** * 查询任务的附加费用列表 * * @param taskId 任务ID * @return 附加费用列表 */ List getAdditionalFees(Long taskId); /** * 查询任务的最新支付记录 * * @param taskId 任务ID * @return 支付记录 */ SysTaskPayment getLatestPayment(Long taskId); }