wlzboy
5 天以前 fe33646ee6e2d1e57f2b51812e94983a0e9efb04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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<SysTaskAdditionalFee> getAdditionalFees(Long taskId);
    
    /**
     * 查询任务的最新支付记录
     * 
     * @param taskId 任务ID
     * @return 支付记录
     */
    SysTaskPayment getLatestPayment(Long taskId);
}