liushijie
2025-03-14 7f2111c25184bcc3ced97cea322e55b3a105dfc5
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
using LifePayment.Domain.Shared;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZeroD.Util;
 
namespace LifePayment.Application.Contracts;
 
public class CreateLifePayOrderInput<T> where T : class
{
    public Guid UserId { get; set; }
 
    ///// <summary>
    ///// 生活缴费支付类型
    ///// </summary>
    //[EnumValidation(typeof(LifePayTypeEnum), ErrorMessage = "支付类型异常")]
    //public LifePayTypeEnum LifePayType { get; set; }
 
    public T ProductData { get; set; }
}
 
public class LifePhoneData
{
    /// <summary>
    /// 运营商编码,例如:"yidong", "dianxin", "liantong"。
    /// </summary>
    [Required(ErrorMessage = "运营商编码是必填项。")]
    public string IspCode { get; set; }
 
    /// <summary>
    /// 充值面额,单位为元。测试账户:parValue=100:缴费成功,parValue>100:缴费失败。
    /// </summary>
    [Required(ErrorMessage = "充值面额是必填项。")]
    [Range(0.1, double.MaxValue, ErrorMessage = "充值面额异常")]
    public decimal ParValue { get; set; }
 
    /// <summary>
    /// 手机号。
    /// </summary>
    [Required(ErrorMessage = "手机号是必填项。")]
    [JsonProperty("phone")]
    public string Phone { get; set; }
 
    /// <summary>
    /// 机主名称(电信手机号必填)
    /// </summary>
    [JsonProperty("name")]
    public string Name { get; set; }
}
 
public class LifeElectricData
{
    /// <summary>
    /// 充值面额,单位为元。
    /// </summary>
    [Required(ErrorMessage = "充值面额是必填项。")]
    public decimal ParValue { get; set; }
 
    /// <summary>
    /// 电网类型,例如:"guowang"代表国家电网,"nanwang"代表南方电网。
    /// </summary>
    [Required(ErrorMessage = "电网类型是必填项。")]
    public string ElectricType { get; set; }
 
    /// <summary>
    /// 电费类型,国网必传:住宅、企事业、店铺三个选项。
    /// </summary>
    [Required(ErrorMessage = "电费类型是必填项。")]
    [StringLength(20, ErrorMessage = "电费类型长度不能超过20个字符。")]
    public string ElectricAccountType { get; set; }
 
    /// <summary>
    /// 电费户号。
    /// </summary>
    [Required(ErrorMessage = "电费户号是必填项。")]
    [StringLength(50, ErrorMessage = "电费户号长度不能超过50个字符。")]
    public string ElectricAccount { get; set; }
 
    /// <summary>
    /// 省份。
    /// </summary>
    [Required(ErrorMessage = "省份是必填项。")]
    [StringLength(20, ErrorMessage = "省份长度不能超过20个字符。")]
    public string Province { get; set; }
 
    /// <summary>
    /// 城市。
    /// </summary>
    //[Required(ErrorMessage = "城市是必填项。")]
    [StringLength(20, ErrorMessage = "城市长度不能超过20个字符。")]
    public string City { get; set; }
 
    /// <summary>
    /// 客户身份证后6位,南网必传。
    /// </summary>
    public string SixID { get; set; }
}
 
public class CreateLifePayOrderInput
{
    public Guid? UserId { get; set; }
 
    /// <summary>
    /// 用户手机号
    /// </summary>
    public string PhoneNumber { get; set; }
 
    ///// <summary>
    ///// 生活缴费支付类型
    ///// </summary>
    //public LifePayTypeEnum LifePayType { get; set; }
 
    /// <summary>
    /// 订单类型
    /// </summary>
    public LifePayOrderTypeEnum LifePayOrderType { get; set; }
 
    /// <summary>
    /// 订单号
    /// </summary>
    public string OrderNo { get; set; }
 
    /// <summary>
    /// 充值金额
    /// </summary>
    public decimal RechargeAmount { get; set; }
 
    /// <summary>
    /// 优惠金额
    /// </summary>
    public decimal DiscountAmount { get; set; }
 
    /// <summary>
    /// 实付金额
    /// </summary>
    public decimal PayAmount { get; set; }
 
    /// <summary>
    /// 支付时间
    /// </summary>
    public DateTime? PayTime { get; set; }
 
    /// <summary>
    /// 支付状态
    /// </summary>
    public LifePayStatusEnum PayStatus { get; set; }
 
    /// <summary>
    /// 外部订单号
    /// </summary>
    public string OutOrderNo { get; set; }
 
    /// <summary>
    /// 订单状态
    /// </summary>
    public LifePayOrderStatusEnum LifePayOrderStatus { get; set; }
 
    /// <summary>
    /// 完成时间
    /// </summary>
    public DateTime? FinishTime { get; set; }
 
    /// <summary>
    /// 退款凭证
    /// </summary>
    public string RefundCredentialsImgUrl { get; set; }
 
    /// <summary>
    /// 订单参数详情
    /// </summary>
    public string OrderParamDetailJsonStr { get; set; }
 
}
 
public class QueryLifePayOrderListInput : PageInput
{
    /// <summary>
    /// 订单类型
    /// </summary>
    public LifePayOrderTypeEnum? LifePayOrderType { get; set; }
 
    /// <summary>
    /// 开始支付时间
    /// </summary>
    public DateTime? BeginPayTime { get; set; }
 
    /// <summary>
    /// 结束支付时间
    /// </summary>
    public DateTime? EndPayTime { get; set; }
 
    /// <summary>
    /// 支付状态
    /// </summary>
    public LifePayStatusEnum? PayStatus { get; set; }
 
    /// <summary>
    /// 订单状态
    /// </summary>
    public LifePayOrderStatusEnum? LifePayOrderStatus { get; set; }
 
    /// <summary>
    /// 开始完成时间
    /// </summary>
    public DateTime? BeginFinishTime { get; set; }
 
    /// <summary>
    /// 结束完成时间
    /// </summary>
    public DateTime? EndFinishTime { get; set; }
 
    /// <summary>
    /// 用户Id
    /// </summary>
    public Guid? UserId { get; set; }
}
 
public class RefundLifePayOrderInput
{
    public Guid Id { get; set; }
 
    public string RefundCredentialsImgUrl { get; set; }
}