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