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 { /// /// 转账单账模型 /// [SugarTable(TableDescription = "转账单账模型")] [CoderFirst] public class WeChatTransferOrder: BaseModel { /// /// ID /// [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// /// 获取或设置商户批次单号。 /// [SugarColumn(ColumnDescription = "获取或设置商户批次单号")] public string OutBatchNumber { get; set; } /// /// 获取或设置微信批次单号。 /// [SugarColumn(ColumnDescription = "获取或设置微信批次单号",IsNullable =true)] public string? BatchId { get; set; } /// /// 获取或设置批次状态。 /// [SugarColumn(ColumnDescription = "获取或设置批次状态",IsNullable =true)] public string? BatchStatus { get; set; } /// /// 用户ID。 /// [SugarColumn(ColumnDescription = "用户ID")] public int UserID { get; set; } /// /// 用户表情。 /// [Navigate(NavigateType.OneToOne, nameof(UserID))] public User user { get; set; } /// /// 获取或设置批次的名称。 /// 示例: "2019年1月深圳分部报销单" /// /// [SugarColumn(ColumnDescription = "获取或设置批次的名称", IsNullable = true)] public string? BatchName { get; set; } /// /// 获取或设置批次的备注。 /// 示例: "2019年1月深圳分部报销单" /// /// [SugarColumn(ColumnDescription = "获取或设置批次的备注", IsNullable = true)] public string? BatchRemark { get; set; } /// /// 获取或设置关闭批次的原因。 /// 示例: "OVERDUE_CLOSE" /// /// [SugarColumn(ColumnDescription = "获取或设置关闭批次的原因", IsNullable = true)] public string? CloseReason { get; set; } /// /// 获取或设置批次中的总金额。 /// 示例: 4000000 /// /// [SugarColumn(ColumnDescription = "获取或设置批次中的总金额", IsNullable = true)] public int? TotalAmount { get; set; } /// /// 获取或设置批次中的项目总数。 /// 示例: 200 /// /// [SugarColumn(ColumnDescription = "获取或设置批次中的项目总数", IsNullable = true)] public int? TotalNum { get; set; } /// /// 获取或设置批次中的成功总金额。 /// 示例: 3900000 /// /// [SugarColumn(ColumnDescription = "获取或设置批次中的成功总金额", IsNullable = true)] public int? SuccessAmount { get; set; } /// /// 获取或设置批次中的成功项目数。 /// 示例: 199 /// /// [SugarColumn(ColumnDescription = "获取或设置批次中的成功项目数", IsNullable = true)] public int? SuccessNum { get; set; } /// /// 获取或设置批次中的失败总金额。 /// 示例: 100000 /// /// [SugarColumn(ColumnDescription = "获取或设置批次中的失败总金额", IsNullable = true)] public int? FailAmount { get; set; } /// /// 获取或设置批次中的失败项目数。 /// 示例: 1 /// /// [SugarColumn(ColumnDescription = "获取或设置批次中的失败项目数", IsNullable = true)] public int? FailNum { get; set; } /// /// 获取或设置转账场景标识符。 /// 示例: "1000" /// [SugarColumn(ColumnDescription = "获取或设置转账场景标识符", IsNullable = true)] public string? TransferSceneId { get; set; } /// /// 错误消息 /// [SugarColumn(ColumnDescription = "错误消息", IsNullable = true)] public string? ErrorMsg { get; set; } /// /// 错误标识 /// [SugarColumn(ColumnDescription = "错误标识", IsNullable = true)] public string? ErrorCode { get; set; } /// /// 获取或设置批次中的详细转账列表。 /// [Navigate(NavigateType.OneToMany,nameof(WeChatTransferItem.WeChatTransferOrderID))] public List TransferDetailList { get; set; } /// /// 再次发起时 的描述 /// [SugarColumn(ColumnDescription = "其他描述", IsNullable = true)] public string? RemakeDes { get; set; } /// /// 是否重新发起支付,当支付失败后,超出重新的支付单失败后,需要重新更换单号重新发起新的支付请求,重新发起支付请求单 /// [SugarColumn(ColumnDescription = "是重新发起的支付订单", IsNullable = true)] public int? WeChatTransferOrderPrId { get; set; } /// /// 重新支付订单列表 /// [Navigate(NavigateType.OneToMany, nameof(WeChatTransferOrderPrId))] public List? AgWeChatTransferOrders { get; set; } /// /// 是否已经完成处理 默认未处理 /// [SugarColumn(ColumnDescription = "是否已经完成处理", DefaultValue ="0")] public bool IsSetOK { get; set; }= false; /// /// 名字 /// [SugarColumn(IsIgnore = true)] public string? UserName { get; set; } /// /// 用户身份证 /// [SugarColumn(IsIgnore = true)] public string? UserIDCode { get; set; } /// /// 已提现工资 /// [SugarColumn(IsIgnore = true)] public decimal? YiTiXianGz { get; set; } /// /// 总工资 /// [SugarColumn(IsIgnore = true)] public decimal? ZhongGz { get; set; } /// /// 电话号码 /// [SugarColumn(IsIgnore = true)] public string? ItCode { get; set; } } /// /// 转账单列表 /// [SugarTable(TableDescription = "转账单账详细列表模型")] [CoderFirst] public class WeChatTransferItem:BaseModel { /// /// ID /// [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// /// WeChatTransferOrderID /// [SugarColumn(ColumnDescription = "获取或设置批次状态")] public int WeChatTransferOrderID { get; set; } /// /// 获取或设置商户明细单号。 /// [SugarColumn(ColumnDescription = "获取或设置批次状态")] public string OutDetailNumber { get; set; } /// /// 获取或设置转账金额(单位:分)。 /// [SugarColumn(ColumnDescription = "获取或设置批次状态")] public int TransferAmount { get; set; } /// /// 获取或设置转账备注。 /// [SugarColumn(ColumnDescription = "获取或设置批次状态")] public string TransferRemark { get; set; } /// /// 获取或设置收款用户的 OpenId。 /// [SugarColumn(ColumnDescription = "获取或设置收款用户的 OpenId")] public string OpenId { get; set; } /// /// 获取或设置收款用户姓名(需使用平台公钥/证书加密)。 /// [SugarColumn(ColumnDescription = "获取或设置收款用户姓名",IsNullable =true)] public string? UserName { get; set; } /// /// 获取或设置收款用户身份证号(需使用平台公钥/证书加密)。 /// [SugarColumn(ColumnDescription = "获取或设置收款用户身份证号",IsNullable =true)] public string? UserIdCardNumber { get; set; } /// /// 获取或设置明细状态。 /// INIT: 初始态。系统转账校验中 /// WAIT_PAY: 待确认。待商户确认, 符合免密条件时, 系统会自动扭转为转账中 /// PROCESSING: 转账中。正在处理中,转账结果尚未明确 /// SUCCESS: 转账成功 /// FAIL: 转账失败。需要确认失败原因后,再决定是否重新发起对该笔明细单的转账(并非整个转账批次单) /// 最大长度: 32 /// [SugarColumn(ColumnDescription = "获取或设置明细状态", IsNullable = true)] public string? DetailStatus { get; set; } /// /// 获取或设置明细失败原因。 /// 如果转账失败则有失败原因。 /// 可选取值: /// 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: 商户员工(转账验密人)超时未验密 /// [SugarColumn(ColumnDescription = "获取或设置明细失败原因", IsNullable = true)] public string? FailReason { get; set; } } }