using Edge.Core.Domain.FccOrderInfo; using HengshanPaymentTerminal.Http.Response; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Text.Json; using System.Threading.Tasks; namespace HengshanPaymentTerminal.Mqtt.Request { /// /// 云端 MQTT 数据对象 /// public class MqttRequest { ///// ///// 类型 ///// //public MQTT_TYPE type { get; set; } /// /// 数据 /// public string data { get; set; } public string? UserName { get; set; } public string? UserPhoneNumber { get; set; } } /// /// 标识 MQTT 数据类型 /// public enum MQTT_TYPE { /// /// 授权 /// AUTHORIZATION = 1, /// /// 取消授权 /// UNAUTHORIZATION = 2, /// /// 已支付发送订单信息 /// PAID = 3, /// /// 退款发送订单信息 /// REFUND = 4 } /// /// 云端 Mqtt 发送授权请求数据对象 /// public class MqttAuthorizationRequest { /// /// 订单唯一标识符 /// public long Id { get; set; } /// /// 油站唯一标识符 /// public Guid Buid { get; set; } /// /// 用户ID /// public long MiniProgramID { get; set; } /// /// 枪号 /// public long NozzleId { get; set; } /// /// 油品ID /// public long ProductId { get; set; } /// /// 实际支付金额 /// public decimal? ActualPaymentAmount { get; set; } /// /// 授权时间 /// public DateTime? AuthorizationTime { get; set; } /// /// 创建人 /// public string? CreateBy { get; set; } /// /// 订单创建时间 /// public DateTime? CreateTime { get; set; } /// /// 挂枪时间 /// public DateTime? FuelItemTransactionEndTime { get; set; } /// /// 是否删除 /// public sbyte? IsDeleted { get; set; } = 0; /// /// 订单状态 /// public transactionsORDERSTATUS OrderStatus { get; set; } /// /// 订单类型 /// public transactionsORDERTYPE OrderType { get; set; } /// /// 原金额 /// public decimal OriginalAmount { get; set; } /// /// 支付方式 /// public long? PaymentMethod { get; set; } /// /// 油品名称 /// public string ProductName { get; set; } /// /// 原升数 /// public decimal Qty { get; set; } /// /// 实际加油升数 /// public decimal? OriginalQty { get; set; } /// /// 退款金额 /// public decimal? RefundAmount { get; set; } /// /// 订单流水号 /// public string TransactionNumber { get; set; } /// /// 交易时间 /// public DateTime? TransactionTime { get; set; } /// /// 加密字符串,用于验证金额是否篡改 /// public string secret { get; set; } /// /// 支付返回结果 /// public string RawResult { get; set; } /// /// 错误信息 /// public string ErrorDetail { get; set; } /// /// 支付结果代码 /// public string ResultCode { get; set; } /// /// 是否授权 /// public AuthorizationStatus authorizationStatus { get; set; } /// /// 单价 /// public decimal Price { get; set; } public FccOrderInfo ToComponent(DateTime authorizationTime, string paymentName,string? userName,string? phoneNumber) { string userNameStr = userName ?? ""; string phoneStr = phoneNumber ?? string.Empty; return new FccOrderInfo() { AuthorizationTime = authorizationTime, PaymentTime = TransactionTime, NozzleNum = (int)NozzleId, OilName = ProductName, PaymentStatus = 1, PayType = (int?)PaymentMethod, CloundOrderId = Id, Amount = OriginalAmount, Volume = Qty, AmountPayable = ActualPaymentAmount, UploadState = 1, IsDelete = 0, Price = this.Price, PaymentName = paymentName, UserName = userNameStr, PhoneNumber = phoneStr }; } } /// /// 云端发送取消授权数据对象 /// public class MqttUnAhorizationRequest { /// /// 订单唯一标识符 /// public long Id { get; set; } /// /// 油站唯一标识符 /// public Guid Buid { get; set; } /// /// 用户ID /// public long MiniProgramID { get; set; } /// /// 枪号 /// public long NozzleId { get; set; } /// /// 油品ID /// public long ProductId { get; set; } /// /// 实际支付金额 /// public decimal? ActualPaymentAmount { get; set; } /// /// 授权时间 /// public DateTime? AuthorizationTime { get; set; } /// /// 创建人 /// public string? CreateBy { get; set; } /// /// 订单创建时间 /// public DateTime? CreateTime { get; set; } /// /// 挂枪时间 /// public DateTime? FuelItemTransactionEndTime { get; set; } /// /// 是否删除 /// public sbyte? IsDeleted { get; set; } = 0; /// /// 订单状态 /// public transactionsORDERSTATUS OrderStatus { get; set; } /// /// 订单类型 /// public transactionsORDERTYPE OrderType { get; set; } /// /// 原金额 /// public decimal OriginalAmount { get; set; } /// /// 支付方式 /// public long? PaymentMethod { get; set; } /// /// 油品名称 /// public string ProductName { get; set; } /// /// 原升数 /// public decimal Qty { get; set; } /// /// 实际加油升数 /// public decimal? OriginalQty { get; set; } /// /// 退款金额 /// public decimal? RefundAmount { get; set; } /// /// 订单流水号 /// public string TransactionNumber { get; set; } /// /// 交易时间 /// public DateTime? TransactionTime { get; set; } /// /// 加密字符串,用于验证金额是否篡改 /// public string secret { get; set; } /// /// 支付返回结果 /// public string RawResult { get; set; } /// /// 错误信息 /// public string ErrorDetail { get; set; } /// /// 支付结果代码 /// public string ResultCode { get; set; } /// /// 是否授权 /// public AuthorizationStatus authorizationStatus { get; set; } /// /// 单价 /// public decimal? Price { get; set; } } /// /// 云端发送订单已支付数据对象 /// public class MqttPaidRequest : MqttRequest { /// /// 订单唯一标识符 /// public long Id { get; set; } /// /// 油站唯一标识符 /// public Guid Buid { get; set; } /// /// 用户ID /// public long MiniProgramID { get; set; } /// /// 枪号 /// public long NozzleId { get; set; } /// /// 油品ID /// public long ProductId { get; set; } /// /// 实际支付金额 /// public decimal? ActualPaymentAmount { get; set; } /// /// 授权时间 /// public DateTime? AuthorizationTime { get; set; } /// /// 创建人 /// public string? CreateBy { get; set; } /// /// 订单创建时间 /// public DateTime? CreateTime { get; set; } /// /// 挂枪时间 /// public DateTime? FuelItemTransactionEndTime { get; set; } /// /// 是否删除 /// public sbyte? IsDeleted { get; set; } = 0; /// /// 订单状态 /// public transactionsORDERSTATUS OrderStatus { get; set; } /// /// 订单类型 /// public transactionsORDERTYPE OrderType { get; set; } /// /// 原金额 /// public decimal OriginalAmount { get; set; } /// /// 支付方式 /// public long? PaymentMethod { get; set; } /// /// 油品名称 /// public string ProductName { get; set; } /// /// 原升数 /// public decimal Qty { get; set; } /// /// 实际加油升数 /// public decimal? OriginalQty { get; set; } /// /// 退款金额 /// public decimal? RefundAmount { get; set; } /// /// 订单流水号 /// public string TransactionNumber { get; set; } /// /// 交易时间 /// public DateTime? TransactionTime { get; set; } /// /// 加密字符串,用于验证金额是否篡改 /// public string secret { get; set; } /// /// 支付返回结果 /// public string RawResult { get; set; } /// /// 错误信息 /// public string ErrorDetail { get; set; } /// /// 支付结果代码 /// public string ResultCode { get; set; } /// /// 是否授权 /// public AuthorizationStatus authorizationStatus { get; set; } /// /// 单价 /// public decimal Price { get; set; } public decimal? FuelItemPumpTotalizerVolume { get; set; } public FccOrderInfo ToComponent(string? userName,string? phoneNumber,string paymentName) { string userNameStr = userName ?? ""; string phoneStr = phoneNumber ?? string.Empty; int? paymentType = null; if (this.PaymentMethod != null) paymentType = (int?)this.PaymentMethod; return new FccOrderInfo() { PaymentTime = this.TransactionTime, NozzleNum = (int)this.NozzleId, OilName = this.ProductName, PaymentStatus = (int)this.OrderStatus, PayType = paymentType, CloundOrderId = this.Id, AmountPayable = this.ActualPaymentAmount, UploadState = 1, IsDelete = 0, Price = this.Price, UserName = userNameStr, PhoneNumber = phoneStr, PaymentName = paymentName, AuthorizationStatus = 0, RefundStatus = 0, VolumePayable = this.Qty, }; } } /// /// 云端发送订单退款数据对象 /// public class MqttRefundRequest : MqttRequest { /// /// 订单唯一标识符 /// public long Id { get; set; } /// /// 油站唯一标识符 /// public Guid Buid { get; set; } /// /// 用户ID /// public long MiniProgramID { get; set; } /// /// 枪号 /// public long NozzleId { get; set; } /// /// 油品ID /// public long ProductId { get; set; } /// /// 实际支付金额 /// public decimal? ActualPaymentAmount { get; set; } /// /// 授权时间 /// public DateTime? AuthorizationTime { get; set; } /// /// 创建人 /// public string? CreateBy { get; set; } /// /// 订单创建时间 /// public DateTime? CreateTime { get; set; } /// /// 挂枪时间 /// public DateTime? FuelItemTransactionEndTime { get; set; } /// /// 是否删除 /// public sbyte? IsDeleted { get; set; } = 0; /// /// 订单状态 /// public transactionsORDERSTATUS OrderStatus { get; set; } /// /// 订单类型 /// public transactionsORDERTYPE OrderType { get; set; } /// /// 原金额 /// public decimal OriginalAmount { get; set; } /// /// 支付方式 /// public long? PaymentMethod { get; set; } /// /// 油品名称 /// public string ProductName { get; set; } /// /// 原升数 /// public decimal Qty { get; set; } /// /// 实际加油升数 /// public decimal? OriginalQty { get; set; } /// /// 退款金额 /// public decimal? RefundAmount { get; set; } /// /// 订单流水号 /// public string TransactionNumber { get; set; } /// /// 交易时间 /// public DateTime? TransactionTime { get; set; } /// /// 加密字符串,用于验证金额是否篡改 /// public string secret { get; set; } /// /// 支付返回结果 /// public string RawResult { get; set; } /// /// 错误信息 /// public string ErrorDetail { get; set; } /// /// 支付结果代码 /// public string ResultCode { get; set; } /// /// 是否授权 /// public AuthorizationStatus authorizationStatus { get; set; } /// /// 单价 /// public decimal? Price { get; set; } /// /// 订单编号 /// public string BillNumber { get; set; } /// /// 退款状态 /// [JsonProperty] public RefundStatus RefundStatus { get; set; } /// /// 泵码 /// [JsonProperty] public decimal? FuelItemPumpTotalizerVolume { get; set; } } }