using Edge.Core.Domain.FccNozzleInfo; using Edge.Core.Domain.FccNozzleInfo.Input; using Edge.Core.Domain.FccOilInfo; using Edge.Core.Domain.FccOilInfo.Input; using Edge.Core.Domain.FccOrderInfo; using Edge.Core.Domain.FccTankInfo; using Edge.Core.Domain.FccTankInfo.Input; using HengshanPaymentTerminal.MessageEntity.Incoming; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace HengshanPaymentTerminal.Http.Request { public class HttpRequest { } /// /// 发送油枪信息到云端数据对象 /// public class SendNozzleInfo : HttpRequest { public SendNozzleInfo(long id,UploadNozzleInfoInput uploadNozzleInfoInput,FccTankInfo? fccTankInfo) { this.NozzleId = id; this.PumpId = uploadNozzleInfoInput.FuelPoint; this.InternalGunNumber = uploadNozzleInfoInput.InternalNum; this.ExternalGunNumber = uploadNozzleInfoInput.NozzleNum; this.TankID = fccTankInfo?.Id ?? 0; this.ProductId = fccTankInfo?.OilId ?? 0; } public SendNozzleInfo(long id, UploadNozzleInfoForMazhineInput uploadNozzleInfoInput, FccTankInfo? fccTankInfo) { this.NozzleId = id; this.PumpId = uploadNozzleInfoInput.FuelPoint; this.InternalGunNumber = uploadNozzleInfoInput.InternalNum; this.ExternalGunNumber = uploadNozzleInfoInput.NozzleNum; this.TankID = fccTankInfo?.Id ?? 0; this.ProductId = fccTankInfo?.OilId ?? 0; } /// /// fcc油枪id /// public long NozzleId { get; set; } /// /// 加油点 /// public int PumpId { get; set; } /// /// 内部枪号 /// public int InternalGunNumber { get; set; } /// /// 外部枪号 /// public int ExternalGunNumber { get; set; } /// /// fcc 油罐id /// public long TankID { get; set; } /// /// 油品id /// public long ProductId { get; set; } } /// /// 更新油枪信息到云端数据对象 /// public class UpdateNozzleInfo : HttpRequest { public UpdateNozzleInfo(long id, UploadNozzleInfoInput uploadNozzleInfoInput, FccTankInfo? fccTankInfo) { this.NozzleId = id; this.PumpId = uploadNozzleInfoInput.FuelPoint; this.InternalGunNumber = uploadNozzleInfoInput.InternalNum; this.ExternalGunNumber = uploadNozzleInfoInput.NozzleNum; this.TankID = fccTankInfo?.Id ?? 0; this.ProductId = fccTankInfo?.OilId ?? 0; } public UpdateNozzleInfo(long id, UploadNozzleInfoForMazhineInput uploadNozzleInfoInput, FccTankInfo? fccTankInfo) { this.NozzleId = id; this.PumpId = uploadNozzleInfoInput.FuelPoint; this.InternalGunNumber = uploadNozzleInfoInput.InternalNum; this.ExternalGunNumber = uploadNozzleInfoInput.NozzleNum; this.TankID = fccTankInfo?.Id ?? 0; this.ProductId = fccTankInfo?.OilId ?? 0; } /// /// fcc油枪id /// public long NozzleId { get; set; } /// /// 加油点 /// public int PumpId { get; set; } /// /// 内部枪号 /// public int InternalGunNumber { get; set; } /// /// 外部枪号 /// public int ExternalGunNumber { get; set; } /// /// fcc 油罐id /// public long TankID { get; set; } /// /// 油品id /// public long ProductId { get; set; } } /// /// 删除油枪信息发送到云端数据对象 /// public class DeleteNozzleInfo : HttpRequest { public DeleteNozzleInfo(FccNozzleInfo fccNozzleInfo) { this.NozzleId = fccNozzleInfo.Id; this.PumpId = fccNozzleInfo.FuelPoint; this.InternalGunNumber = fccNozzleInfo.InternalNum; this.ExternalGunNumber = fccNozzleInfo.ExternalNum; this.TankID = -1; this.ProductId = -1; } /// /// fcc油枪id /// public long NozzleId { get; set; } /// /// 加油点 /// public int PumpId { get; set; } /// /// 内部枪号 /// public int InternalGunNumber { get; set; } /// /// 外部枪号 /// public int ExternalGunNumber { get; set; } /// /// fcc 油罐id /// public long TankID { get; set; } /// /// 油品id /// public long ProductId { get; set; } } /// /// 发送油罐信息给云端 /// public class SendTankInfo:HttpRequest { public SendTankInfo(long id,AddTankInput addTankInput) { this.TankId = id; this.TankNumber = addTankInput.Number; this.TankCapacity = addTankInput.Capacity; this.ProductId = addTankInput.OilId; this.ProductName = addTankInput.OilName; } /// /// FCC油罐id /// public long TankId { get; set; } /// /// 油罐号 /// public int TankNumber { get; set; } /// /// 油罐容量 /// public decimal TankCapacity { get; set; } /// /// 油品名称 /// public string? ProductName { get; set; } /// /// FCC油品id /// public long? ProductId { get; set; } } /// /// 更改油罐信息给云端 /// public class UpdateTankInfo : HttpRequest { public UpdateTankInfo(long id, UpdateTankInput updateTankInput) { this.TankId = id; this.TankNumber = updateTankInput.Number; this.TankCapacity = updateTankInput.Capacity; this.ProductId = updateTankInput.OilId; this.ProductName = updateTankInput.OilName; } /// /// FCC油罐id /// public long TankId { get; set; } /// /// 油罐号 /// public int TankNumber { get; set; } /// /// 油罐容量 /// public decimal TankCapacity { get; set; } /// /// 油品名称 /// public string? ProductName { get; set; } /// /// FCC油品id /// public long? ProductId { get; set; } } /// /// 删除油罐信息给云端 /// public class DeleteTankInfo : HttpRequest { public DeleteTankInfo(FccTankInfo fccTankInfo) { this.TankId = fccTankInfo.Id; this.TankNumber = fccTankInfo.Number; this.TankCapacity = fccTankInfo.Capacity; this.ProductId = fccTankInfo.OilId; this.ProductName = fccTankInfo.OilName; } /// /// FCC油罐id /// public long TankId { get; set; } /// /// 油罐号 /// public int TankNumber { get; set; } /// /// 油罐容量 /// public decimal TankCapacity { get; set; } /// /// 油品名称 /// public string? ProductName { get; set; } /// /// FCC油品id /// public long? ProductId { get; set; } } /// /// 上传油品信息到云端数据对象 /// public class SendOilInfo : HttpRequest { public SendOilInfo(long id, OilInfoInput oilInfoInput) { this.ProductId = id; this.ProductName = oilInfoInput.Name; this.ProductCode = oilInfoInput.Code.ToString(); this.ProductPrice = oilInfoInput.Price; } /// /// fcc 油品id /// public long ProductId { get; set; } /// /// 油品名 /// public string ProductName { get; set; } /// /// 油品码 /// public string ProductCode { get; set; } /// /// 单价 /// public decimal ProductPrice { get; set; } } /// /// 更新油品信息到云端数据对象 /// public class UpdateOilInfo : HttpRequest { public UpdateOilInfo(long id, OilInfoInput oilInfoInput) { this.ProductId = id; this.ProductName = oilInfoInput.Name; this.ProductCode = oilInfoInput.Code.ToString(); this.ProductPrice = oilInfoInput.Price; } /// /// fcc 油品id /// public long ProductId { get; set; } /// /// 油品名 /// public string ProductName { get; set; } /// /// 油品码 /// public string ProductCode { get; set; } /// /// 单价 /// public decimal ProductPrice { get; set; } } /// /// 删除油品信息到云端数据对象 /// public class DeleteOilInfo : HttpRequest { public DeleteOilInfo(FccOilInfo fccOilInfo) { this.ProductId = fccOilInfo.Id; this.ProductName = fccOilInfo.Name; this.ProductCode = fccOilInfo.Code.ToString(); this.ProductPrice = fccOilInfo.Price; } /// /// fcc 油品id /// public long ProductId { get; set; } /// /// 油品名 /// public string ProductName { get; set; } /// /// 油品码 /// public string ProductCode { get; set; } /// /// 单价 /// public decimal ProductPrice { get; set; } } /// /// fcc 发送订单给云端数据对象 /// public class CreateTransaction : HttpRequest { public CreateTransaction(FccOrderInfo fccOrderInfo) { this.ExternalGunNumber = fccOrderInfo.NozzleNum; this.OriginalAmount = fccOrderInfo.Amount; this.ActualPaymentAmount = null; this.Qty = fccOrderInfo.Volume; this.FuelItemTransactionEndTime = fccOrderInfo.EndTime ?? DateTime.Now; this.TransactionTime = fccOrderInfo.PaymentTime; this.Product = fccOrderInfo.OilName; this.Price = fccOrderInfo.Price; this.TransactionNumber = fccOrderInfo.Ttc.ToString(); this.MiniProgramID = null; this.PaymentMethod = null; this.FuelItemPumpTotalizerVolume = fccOrderInfo.PumpCode; } /// /// 油枪号 /// public int ExternalGunNumber { get; set; } /// /// 实际加油金额 /// public decimal OriginalAmount { get; set; } /// /// 实际支付金额 /// public decimal? ActualPaymentAmount { get; set; } /// /// 升数 /// public decimal Qty { get; set; } /// /// 挂枪时间 /// [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime FuelItemTransactionEndTime { get; set; } /// /// 交易时间 /// [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime? TransactionTime { get; set; } /// /// 油品名 /// public string Product { get; set; } public decimal Price { get; set; } /// /// 流水号 /// public string TransactionNumber { get; set; } /// /// 用户id /// public int? MiniProgramID { get; set; } /// /// 支付方式 /// public int? PaymentMethod { get; set; } /// /// 泵码 /// public decimal? FuelItemPumpTotalizerVolume { get; set; } } /// /// 发送云端油枪状态数据对象 /// public class SendNozzleStatu : HttpRequest { public SendNozzleStatu(long nozzleId,HeartBeatNozzleState heartBeatNozzleState) { this.NozzleId = nozzleId; this.Status = heartBeatNozzleState.STATU; } /// /// 油枪号 /// public long NozzleId { get; set; } /// /// 状态:01:不可用 02:关闭 03:空闲 04:呼叫 05:授权 06:开始加油 07:挂起开始加油 08:加油中 09:挂起加油 /// public int Status { get; set; } } /// /// 发送授权结果 /// public class SendAuthorizationResult : HttpRequest { /// /// 枪号 /// public long NozzleId { get; set; } /// /// 流水号 /// public string TransactionNumber { get; set; } = string.Empty; /// /// 结果 1:FCC 与油机断开连接;2:FCC 发送信息到油机,但超时未回复;3:授权失败;4:授权成功 /// public OilMachineStatus OilMachineStatus { get; set; } } /// /// 发送取消授权结果 /// public class SendUnAuthorizationResult : HttpRequest { /// /// 枪号 /// public long NozzleId { get; set; } /// /// 流水号 /// public string TransactionNumber { get; set; } = string.Empty; /// /// 结果 1:FCC 与油机断开连接;2:FCC 发送信息到油机,但超时未回复;3:授权失败;4:授权成功;5:未找到流水号 /// public OilMachineStatus OilMachineStatus { get; set; } } public enum OilMachineStatus { /// /// FCC与油机断开连接。 /// Disconnected = 1, /// /// FCC向油机发送授权,油机超时未回复。 /// AuthorizationTimeout = 2, /// /// 操作失败。 /// Failed = 3, /// /// 操作成功。 /// Success = 4, /// /// 未找到交易流水号。 /// TransactionNumberNotFound = 5 } /// /// 云端发送订单完成信息后回复 /// public class OnGetPaidInfo : HttpRequest { /// /// 订单id /// public long Id { get; set; } /// /// 结果 /// public int Result { get; set; } } /// /// 云端发送订单退款后回复 /// public class OnGetRefundInfo : HttpRequest { /// /// 订单id /// public long Id { get; set; } /// /// 结果 /// public int Result { get; set; } } /// /// 定义DateTime转json格式 /// public class CustomDateTimeConverter : IsoDateTimeConverter { public CustomDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; } } }