移动系统liao
2025-03-19 16b063870156db78148440971ab46c649e3e6018
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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
using cylsg.Core;
using cylsg.Core.Attributes;
using cylsg.Model.UserModel;
using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
 
namespace cylsg.Model.TransferOrder
{
    /// <summary>
    /// 转账单账模型
    /// </summary>
    [SugarTable(TableDescription = "转账单账模型")]
    [CoderFirst]
    public class WeChatTransferOrder: BaseModel
    {
        /// <summary>
        /// ID
        /// </summary>
        [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true, IsIdentity = true)]
        public int Id { get; set; }
        /// <summary>
        /// 获取或设置商户批次单号。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置商户批次单号")]
        public string OutBatchNumber { get; set; }
 
        /// <summary>
        /// 获取或设置微信批次单号。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置微信批次单号",IsNullable =true)]
        public string? BatchId { get; set; }
 
      
 
        /// <summary>
        /// 获取或设置批次状态。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置批次状态",IsNullable =true)]
        public string? BatchStatus { get; set; }
 
        /// <summary>
        /// 用户ID。
        /// </summary>
        [SugarColumn(ColumnDescription = "用户ID")]
        public int  UserID { get; set; }
 
 
 
        /// <summary>
        /// 用户表情。
        /// </summary>
        [Navigate(NavigateType.OneToOne, nameof(UserID))]
        public User user { get; set; }
 
        /// <summary>
        /// 获取或设置批次的名称。
        /// 示例: "2019年1月深圳分部报销单"
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置批次的名称", IsNullable = true)]
        public string? BatchName { get; set; }
 
        /// <summary>
        /// 获取或设置批次的备注。
        /// 示例: "2019年1月深圳分部报销单"
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置批次的备注", IsNullable = true)]
        public string? BatchRemark { get; set; }
 
        /// <summary>
        /// 获取或设置关闭批次的原因。
        /// 示例: "OVERDUE_CLOSE"
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置关闭批次的原因", IsNullable = true)]
        public string? CloseReason { get; set; }
 
        /// <summary>
        /// 获取或设置批次中的总金额。
        /// 示例: 4000000
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置批次中的总金额", IsNullable = true)]
        public int? TotalAmount { get; set; }
 
        /// <summary>
        /// 获取或设置批次中的项目总数。
        /// 示例: 200
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置批次中的项目总数", IsNullable = true)]
        public int? TotalNum { get; set; }
 
 
 
        /// <summary>
        /// 获取或设置批次中的成功总金额。
        /// 示例: 3900000
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置批次中的成功总金额", IsNullable = true)]
        public int? SuccessAmount { get; set; }
 
        /// <summary>
        /// 获取或设置批次中的成功项目数。
        /// 示例: 199
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置批次中的成功项目数", IsNullable = true)]
        public int? SuccessNum { get; set; }
 
        /// <summary>
        /// 获取或设置批次中的失败总金额。
        /// 示例: 100000
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置批次中的失败总金额", IsNullable = true)]
        public int? FailAmount { get; set; }
 
        /// <summary>
        /// 获取或设置批次中的失败项目数。
        /// 示例: 1
        /// </summary>
        /// 
        [SugarColumn(ColumnDescription = "获取或设置批次中的失败项目数", IsNullable = true)]
        public int? FailNum { get; set; }
 
        /// <summary>
        /// 获取或设置转账场景标识符。
        /// 示例: "1000"
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置转账场景标识符", IsNullable = true)]
        public string? TransferSceneId { get; set; }
        /// <summary>
        /// 错误消息
        /// </summary>
        [SugarColumn(ColumnDescription = "错误消息", IsNullable = true)]
        public string? ErrorMsg { get; set; }
 
        /// <summary>
        /// 错误标识
        /// </summary>
        [SugarColumn(ColumnDescription = "错误标识", IsNullable = true)]
        public string? ErrorCode { get; set; }
        /// <summary>
        /// 获取或设置批次中的详细转账列表。
        /// </summary>
        [Navigate(NavigateType.OneToMany,nameof(WeChatTransferItem.WeChatTransferOrderID))]
        public List<WeChatTransferItem> TransferDetailList { get; set; }
 
        /// <summary>
        /// 再次发起时 的描述
        /// </summary>
        [SugarColumn(ColumnDescription = "其他描述", IsNullable = true)]
        public string? RemakeDes { get; set; }
        /// <summary>
        /// 是否重新发起支付,当支付失败后,超出重新的支付单失败后,需要重新更换单号重新发起新的支付请求,重新发起支付请求单
        /// </summary>
        [SugarColumn(ColumnDescription = "是重新发起的支付订单", IsNullable = true)]
        public int? WeChatTransferOrderPrId { get; set; }
 
 
        /// <summary>
        /// 重新支付订单列表
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(WeChatTransferOrderPrId))]
        public List<WeChatTransferOrder>? AgWeChatTransferOrders { get; set; }
 
        /// <summary>
        /// 是否已经完成处理  默认未处理
        /// </summary>
        [SugarColumn(ColumnDescription = "是否已经完成处理", DefaultValue ="0")]
        public bool   IsSetOK { get; set; }= false;
 
        /// <summary>
        /// 名字
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public string? UserName { get; set; }
 
        /// <summary>
        /// 用户身份证
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public string? UserIDCode { get; set; }
 
 
        /// <summary>
        /// 已提现工资
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public decimal? YiTiXianGz { get; set; }
 
        /// <summary>
        /// 总工资
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public decimal? ZhongGz { get; set; }
 
        /// <summary>
        /// 电话号码
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public string? ItCode { get; set; }
 
    }
 
 
    /// <summary>
    /// 转账单列表
    /// </summary>
    [SugarTable(TableDescription = "转账单账详细列表模型")]
    [CoderFirst]
    public class WeChatTransferItem:BaseModel
    {
        /// <summary>
        /// ID
        /// </summary>
        [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true, IsIdentity = true)]
        public int Id { get; set; }
 
 
        /// <summary>
        /// WeChatTransferOrderID
        /// </summary>       
        [SugarColumn(ColumnDescription = "获取或设置批次状态")]
        public int WeChatTransferOrderID { get; set; }
        /// <summary>
        /// 获取或设置商户明细单号。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置批次状态")]
        public string OutDetailNumber { get; set; }
 
 
        /// <summary>
        /// 获取或设置转账金额(单位:分)。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置批次状态")]
        public int TransferAmount { get; set; }
 
        /// <summary>
        /// 获取或设置转账备注。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置批次状态")]
        public string TransferRemark { get; set; }
 
        /// <summary>
        /// 获取或设置收款用户的 OpenId。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置收款用户的 OpenId")]
        public string OpenId { get; set; }
 
        /// <summary>
        /// 获取或设置收款用户姓名(需使用平台公钥/证书加密)。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置收款用户姓名",IsNullable =true)]
        public string? UserName { get; set; }
 
        /// <summary>
        /// 获取或设置收款用户身份证号(需使用平台公钥/证书加密)。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置收款用户身份证号",IsNullable =true)]
        public string? UserIdCardNumber { get; set; }
 
        /// <summary>
        /// 获取或设置明细状态。
        /// INIT: 初始态。系统转账校验中
        /// WAIT_PAY: 待确认。待商户确认, 符合免密条件时, 系统会自动扭转为转账中
        /// PROCESSING: 转账中。正在处理中,转账结果尚未明确
        /// SUCCESS: 转账成功
        /// FAIL: 转账失败。需要确认失败原因后,再决定是否重新发起对该笔明细单的转账(并非整个转账批次单)
        /// 最大长度: 32
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置明细状态", IsNullable = true)]
        public string? DetailStatus { get; set; }
 
        /// <summary>
        /// 获取或设置明细失败原因。
        /// 如果转账失败则有失败原因。
        /// 可选取值:
        /// ACCOUNT_FROZEN: 该用户账户被冻结
        /// REAL_NAME_CHECK_FAIL: 收款人未实名认证,需要用户完成微信实名认证
        /// NAME_NOT_CORRECT: 收款人姓名校验不通过,请核实信息
        /// OPENID_INVALID: Openid格式错误或者不属于商家公众账号
        /// TRANSFER_QUOTA_EXCEED: 超过用户单笔收款额度,核实产品设置是否准确
        /// DAY_RECEIVED_QUOTA_EXCEED: 超过用户单日收款额度,核实产品设置是否准确
        /// MONTH_RECEIVED_QUOTA_EXCEED: 超过用户单月收款额度,核实产品设置是否准确
        /// DAY_RECEIVED_COUNT_EXCEED: 超过用户单日收款次数,核实产品设置是否准确
        /// PRODUCT_AUTH_CHECK_FAIL: 未开通该权限或权限被冻结,请核实产品权限状态
        /// OVERDUE_CLOSE: 超过系统重试期,系统自动关闭
        /// ID_CARD_NOT_CORRECT: 收款人身份证校验不通过,请核实信息
        /// ACCOUNT_NOT_EXIST: 该用户账户不存在
        /// TRANSFER_RISK: 该笔转账可能存在风险,已被微信拦截
        /// OTHER_FAIL_REASON_TYPE: 其它失败原因
        /// REALNAME_ACCOUNT_RECEIVED_QUOTA_EXCEED: 用户账户收款受限,请引导用户在微信支付查看详情
        /// RECEIVE_ACCOUNT_NOT_PERMMIT: 未配置该用户为转账收款人,请在产品设置中调整,添加该用户为收款人
        /// PAYEE_ACCOUNT_ABNORMAL: 用户账户收款异常,请联系用户完善其在微信支付的身份信息以继续收款
        /// PAYER_ACCOUNT_ABNORMAL: 商户账户付款受限,可前往商户平台获取解除功能限制指引
        /// TRANSFER_SCENE_UNAVAILABLE: 该转账场景暂不可用,请确认转账场景ID是否正确
        /// TRANSFER_SCENE_INVALID: 你尚未获取该转账场景,请确认转账场景ID是否正确
        /// TRANSFER_REMARK_SET_FAIL: 转账备注设置失败, 请调整后重新再试
        /// RECEIVE_ACCOUNT_NOT_CONFIGURE: 请前往商户平台-商家转账到零钱-前往功能-转账场景中添加
        /// BLOCK_B2C_USERLIMITAMOUNT_BSRULE_MONTH: 超出用户单月转账收款20w限额,本月不支持继续向该用户付款
        /// BLOCK_B2C_USERLIMITAMOUNT_MONTH: 用户账户存在风险收款受限,本月不支持继续向该用户付款
        /// MERCHANT_REJECT: 商户员工(转账验密人)已驳回转账
        /// MERCHANT_NOT_CONFIRM: 商户员工(转账验密人)超时未验密
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置明细失败原因", IsNullable = true)]
        public string? FailReason {  get; set; }
    }
 
 
 
}