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";
}
}
}