移动系统liao
2024-08-27 1571dee924ea10cdcb55300cf02f70c6208c0333
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
using cylsg.Core;
using cylsg.Core.Attributes;
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 = "获取或设置微信批次单号")]
        public string BatchId { get; set; }
 
      
 
        /// <summary>
        /// 获取或设置批次状态。
        /// </summary>
        [SugarColumn(ColumnDescription = "获取或设置批次状态")]
        public string? BatchStatus { 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>
    [Navigate(NavigateType.OneToMany,nameof(WeChatTransferItem.WeChatTransferOrderID))]
        public List<WeChatTransferItem> TransferDetailList { get; set; }
    }
 
 
    /// <summary>
    /// 转账单列表
    /// </summary>
    [SugarTable(TableDescription = "转账单账详细列表模型")]
    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; }
    }
 
 
 
}