Files

1243 lines
30 KiB
C#
Raw Permalink Normal View History

2025-11-26 11:18:26 +08:00
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Models
{
public class ReturnData<T>
{
public bool IsSuccess { get; set; }
public T Result { get; set; }
}
public class HotelGroups
{
public int Id { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
public string Desc { get; set; }
public DateTime CreateTime { get; set; } = DateTime.Now;
}
public class HotelsAsync
{
/// <summary>
///
/// </summary>
public int ID { get; set; }
/// <summary>
///
/// </summary>
public string Code { get; set; }
/// <summary>
/// 默认酒店
/// </summary>
public string Name { get; set; }
/// <summary>
///
/// </summary>
public string EName { get; set; }
/// <summary>
/// 默認酒店
/// </summary>
public string TWName { get; set; }
/// <summary>
///
/// </summary>
public string Contact { get; set; }
/// <summary>
///
/// </summary>
public string Phone { get; set; }
/// <summary>
///
/// </summary>
public string Address { get; set; }
/// <summary>
///
/// </summary>
public string ValidateDate { get; set; }
/// <summary>
///
/// </summary>
public DateTime CreatDate { get; set; }
/// <summary>
///
/// </summary>
public string Remark { get; set; }
/// <summary>
///
/// </summary>
public int Status { get; set; }
/// <summary>
///
/// </summary>
public bool IsApprove { get; set; }
/// <summary>
///
/// </summary>
public int SysHotelGroupID { get; set; }
/// <summary>
/// 宝来威
/// </summary>
public string SysHotelGroupName { get; set; }
}
public class HotelDataItem
{
public string HotelGroupsName { get; set; }
public int HotelGroupsId { get; set; }
public List<HotelsItem> Hotels { get; set; }
}
public class AuthItem
{
public int AuthotypeId { get; set; }
public int AuthorityId { get; set; }
public string AuthorityName { get; set; }
}
public class HotelsItem
{
public List<AuthItem> Auth { get; set; }
public string HotelName { get; set; }
public string Code { get; set; }
public int HotelId { get; set; }
}
public class Userinfo
{
public string HeadImg { get; set; }
public string Uid { get; set; } = string.Empty;
}
public class Datainfo
{
public Userinfo Userinfo { get; set; }
public List<HotelDataItem> HotelData { get; set; }
public string Token { get; set; }
}
public class Root<T>
{
public T Data { get; set; }
public int Status { get; set; }
public string Message { get; set; }
}
public class asyncroomtype
{
public int Code { get; set; }
public string Name { get; set; }
}
# region TCP
/// <summary>
/// TCP 通讯类容 具体数据命令 请看同步目录文档 DOC-BLV-C1-V04a-20220321.docx 8.5TCP通讯格式
/// </summary>
public class TCPDATA
{
/// <summary>
/// 命令枚举
/// </summary>
public enum RCU_CMD
{
/// <summary>
/// 获取RUCS设备缓存
/// </summary>
GET_RUCS_RCU_LIST,// 1
/// <summary>
/// RUCS主动发送服务消息日志
/// </summary>
RUCS_DEBUGLOG, // 2 RUCS_DEBUGLOG
/// <summary>
/// RUCS 控制下发
/// </summary>
CONTROL_RCU_DEVISSUED,//3
/// <summary>
/// RUCS 升级下发
/// </summary>
RCU_UPGRADE_ISSUED,
/// <summary>
/// RUCS升级测试进度
/// </summary>
RUCS_CONN_UPGRADE_PROGRESS,
/// <summary>
/// RUCS 升级测试结果
/// </summary>
RUCS_CONN_UPGRADE_RESULTS
}
public class REATED_IDS
{
public string RELATED_MSG_ID { get; set; }
public string RELATED_TCP_ID { get; set; }
public string RELATED_UDP_ID { get; set; }
}
/// <summary>
/// 每条TCP通讯生成时自动生成一个ID有发送者+时间戳组成
/// </summary>
public string TCP_ID { get; set; }
/// <summary>
/// 数据生成时间
/// </summary>
public DateTime DATETIME { get; set; } = DateTime.Now;
/// <summary>
/// //跟本条数据生成有关的信息ID如果没有关联ID则选择空白
/// </summary>
public REATED_IDS REATED_IDs { get; set; }
/// <summary>
/// 是否记录到日志,,如无本参数则默认写入日志
/// </summary>
public bool LOG_TO_DB { get; set; }
/// <summary>
/// //命令
/// </summary>
public string CMD
{
get => cmd.ToString().ToUpper();
set
{
try
{
cmd = (RCU_CMD)Enum.Parse(typeof(RCU_CMD), value.ToUpper());
}
catch (Exception ex)
{
throw new Exception("数据不规范" + ex.Message);
}
}
}
RCU_CMD cmd
{
get;
set;
}
/// <summary>
/// 消 息参数,根据命令不同,消息参数格式和内容也不同
/// </summary>
public PARAs_Class PARAM { get; set; }
/// <summary>
/// 事件跟踪信息
/// </summary>
public TrackingInfo TRACKING_INFO { get; set; }
/// <summary>
/// 事件跟踪类
/// </summary>
public class TrackingInfo
{
/// <summary>
/// 事务ID TransactionID
/// </summary>
public string TRANSACTION_ID { get; set; }
/// <summary>
/// 追踪类型 TrackingType
/// </summary>
public string TRACKING_TYPE { get; set; }
}
/// <summary>
/// 消息体类
/// </summary>
public class PARAs_Class
{
/// <summary>
/// 发起方
/// </summary>
public string Initiator { get; set; } = "WEB";
/// <summary>
/// 数据类型
/// </summary>
public string Data_Type { get; set; }
/// <summary>
/// 下发 测试类型
/// </summary>
public int Issued_Test_Type { get; set; }
/// <summary>
/// 下发命令
/// </summary>
public string Issued_CMD { get; set; }
/// <summary>
/// 下发测试消息;
/// </summary>
public string Issued_Test_Message { get; set; }
/// <summary>
/// 下发测试结果;
/// </summary>
public int Issued_Test_Result { get; set; }
/// <summary>
/// 总包数
/// </summary>
public int The_Total_Packages { get; set; }
/// <summary>
/// 当前包
/// </summary>
public int The_Current_Package { get; set; }
/// <summary>
/// 设备个数 返回和请求度需要用到 返回 不限制
/// </summary>
public int QUANTITY { get; set; }
/// <summary>
/// 返回ruc信息集合
/// </summary>
public RUCS_RCU[] RCU_INFO { get; set; }
/// <summary>
/// 返回ruc信息类
/// </summary>
public class RUCS_RCU
{
public string IDX { get; set; }
public string MAC { get; set; }
public string UUID { get; set; }
public string PUBLIC_IP { get; set; }
public string LOCAL_IP { get; set; }
public int RCU_UDP_PORT { get; set; }
public int RUCS_UDP_PORT { get; set; }
public DateTime LAST_UPDATE { get; set; }
public string LAST_UDP_SN { get; set; }
public string IS_ONLINE { get; set; }
}
/// <summary>
/// 在线状态筛选 0 全部 不赛选 1 只返回在线 2 只返回不在线
/// </summary>
public int ONLINE_STATUS { get; set; }
/// <summary>
/// 升级文件类型 文件类型; 1: app固件; 2: 配置;
/// </summary>
public int Upgrade_File_Type { get; set; } = 1;
/// <summary>
/// 是否立即复位 是否立即复位; 1: 立即复位; 2: 手动复位;
/// </summary>
public int Upgrade_Is_Reset { get; set; } = 1;
/// <summary>
/// Upgrade_TimeOut_msRCU升级超时时间;
/// </summary>
public int Upgrade_Time_Out_s { get; set; } = 10;
/// <summary>
/// 返回具有指定的mac 的ruc
/// </summary>
public List<string> MAC_LIST { get; set; }
/// <summary>
/// 数据来源
/// </summary>
//public string DataSource { get; set; }
///// <summary>
///// 数据分类
///// </summary>
//public string Data_Type { get; set; }
/// <summary>
/// 数据内容
/// </summary>
public string Message { get; set; }
/// <summary>
/// 重发次数
/// </summary>
public int Resend_Count { get; set; } = 5;
/// <summary>
/// 重发间隔 ms
/// </summary>
public int Resend_Time_Out_ms { get; set; } = 500;
/// <summary>
/// 通讯测试总包数
/// </summary>
public int Conn_Test_Package_Count { get; set; } = 500;
/// <summary>
/// 通讯测试超时;
/// </summary>
public int Conn_Test_Time_Out_s { get; set; } = 500;
/// <summary>
/// 重发失败处理 暂定 false 不告诉我发送结果 TRUE 告知
/// </summary>
public bool Resend_Fail_Handling { get; set; }
/// <summary>
/// 下发数据内容
/// </summary>
public byte[] Issued_Data { get; set; } = new byte[0];
/// <summary>
/// 下发的mac
/// </summary>
public string MAC { get; set; }
}
#endregion
#region charts 使
/// <summary>
/// charts 绘图帮助返回类
/// </summary>
public class CHARTSHELP
{
/// <summary>
/// 绘图 类型 "line"
/// </summary>
public string type { get; set; } = "line";
/// <summary>
/// 表格名
/// </summary>
public string Title { get; set; } = "line";
/// <summary>
/// DATASETS 数据集
/// </summary>
public class DATASETS
{
public string symbol { get; set; } = String.Empty;
/// <summary>
/// 数据名
/// </summary>
public string label { get; set; } = String.Empty;
/// <summary>
/// 边框颜色
/// </summary>
public string borderColor { get; set; } = String.Empty;
/// <summary>
/// 背景颜色
/// </summary>
public string backgroundColor { get; set; } = String.Empty;
/// <summary>
/// 边框宽度
/// </summary>
public int borderWidth { get; set; } = 1;
/// <summary>
/// 数据
/// </summary>
public List<int> data { get; set; } = new List<int> { };
public class Data
{
public int x { get; set; }
public int y { get; set; }
}
}
public List<DATASETS> ds { get; set; } = new List<DATASETS>();
/// <summary>
/// 共用的x轴 labels
/// </summary>
public List<string> labels { get; set; } = new List<string>();
}
#endregion
#region echarts
public class ECHARTS
{
// 图例颜色
public List<string> color { get; set; } = new List<string>();
public dynamic yAxis { get; set; } = new { };
public Title title { get; set; } = new Title();
/// <summary>
/// 鼠标移上去显示数据
/// </summary>
public dynamic tooltip { get; set; } = new { trigger = "axis" };
public XAXIS legend { get; set; } = new XAXIS();
public XAXISDATA xAxis { get; set; } = new XAXISDATA();
//public DataHelp<string> yAxis { get; set; } = new DataHelp<string>();
public List<DataHelp> series { get; set; } = new List<DataHelp> { };
public class DataHelp
{
/// <summary>
/// 取消圆点
/// </summary>
public string symbol { get; set; } = "none";
public string name { get; set; }
public string type { get; set; } = "line";
public bool stillShowZeroSum { get; set; } = false;
/// <summary>
/// 相同 的 stack 会堆叠在一起
/// </summary>
public string stack { get; set; } = null;
/// <summary>
/// 平滑
/// </summary>
public bool smooth { get; set; } = true;
public List<dynamic> data { get; set; } = new List<dynamic>();
public LINESTYLE lineStyle { get; set; } = new LINESTYLE();
public dynamic label => type == "pie" ? new { normal = new { show = true, formatter = "{b} - {c} - {d}% " } } : null;
public class LINESTYLE
{
public NORMAL normal { get; set; } = new NORMAL();
public class NORMAL
{
public string color { get; set; }
}
}
}
}
}
public class Title
{
public string text { get; set; }
}
public class XAXISDATA
{
public List<string> data { get; set; } = new List<string>();
}
public class XAXIS
{
public List<string> data { get; set; } = new List<string>();
public string icon { get; set; } = "rect";
public string type { get; set; } = "scroll";
public string orient { get; set; } = "horizontal";// "vertical";
public string top { get; set; } = "20";
public string right { get; set; } = "0";
public string left { get; set; } = "center";
}
#endregion
#region Mysql datetime datetime(3)
/// <summary>
/// Mysql 修改datetime 为datetime(3) 显示毫秒 的帮助模型类
/// </summary>
public class MysqlModel
{
public string tablename { get; set; }
public string columnName { get; set; }
public string dataType { get; set; }
}
#endregion
#region
public class Host_
{
private DateTime registerDate = DateTime.Now;
private string subnetMask = "255.0.0.0";
private string gateway = "192.168.1.1";
private string dns = "114.114.114.114";
private int port = 3341;
private bool powerSupply = true;
private int authorizedHours = -1;
private int lockStatus = 2;//1锁开2锁关
/// <summary>
/// ID
/// </summary>
public virtual int ID
{
get;
set;
}
/// <summary>
/// 主机编号
/// </summary>
public virtual string HostNumber
{
get;
set;
}
/// <summary>
/// 房间号
/// </summary>
public virtual string RoomNumber
{
get;
set;
}
/// <summary>
/// IP
/// </summary>
public virtual string IP
{
get;
set;
}
/// <summary>
/// 局域网IP
/// </summary>
public virtual string LanIP
{
get;
set;
}
/// <summary>
/// 子网掩码
/// </summary>
public virtual string SubnetMask
{
get { return this.subnetMask; }
set
{
this.subnetMask = value;
}
}
/// <summary>
/// 网关
/// </summary>
public virtual string Gateway
{
get { return this.gateway; }
set
{
this.gateway = value;
}
}
/// <summary>
/// DNS
/// </summary>
public virtual string DNS
{
get { return this.dns; }
set
{
this.dns = value;
}
}
/// <summary>
/// 端口
/// </summary>
public virtual int Port
{
get { return this.port; }
set
{
this.port = value;
}
}
/// <summary>
/// 局域网端口
/// </summary>
public virtual int LanPort
{
get;
set;
}
/// <summary>
/// MAC
/// </summary>
public virtual string MAC
{
get;
set;
}
/// <summary>
/// 状态 0离线 1在线
/// </summary>
public virtual bool Status
{
get;
set;
}
/// <summary>
/// 版本号
/// </summary>
public virtual string Version
{
get;
set;
}
/// <summary>
/// 配置数据版本号
/// </summary>
public virtual string ConfigVersion
{
get;
set;
}
/// <summary>
/// 备注
/// </summary>
public virtual string Remark
{
get;
set;
}
/// <summary>
/// 注册日期
/// </summary>
public virtual DateTime RegisterDate
{
get { return this.registerDate; }
set { this.registerDate = value; }
}
/*
/// <summary>
/// 请求服务
/// </summary>
public virtual bool RequestService
{
get;
set;
}
/// <summary>
/// 请求清理
/// </summary>
public virtual bool RequestClear
{
get;
set;
}
/// <summary>
/// 请勿打扰
/// </summary>
public virtual bool RequestDNDST
{
get;
set;
}
/// <summary>
/// 请求退房
/// </summary>
public virtual bool RequestCheckOut
{
get;
set;
}
/// <summary>
/// 求救
/// </summary>
public virtual bool SOS
{
get;
set;
}*/
/// <summary>
/// 门锁 True/开False/关
/// </summary>
public virtual bool DoorLockStatus
{
get;
set;
}
/// <summary>
/// 房门状态更新时间
/// </summary>
public virtual DateTime? DoorLockStatusUpdateTime
{
get;
set;
}
/// <summary>
/// 保险箱:0关1开2未接保险箱
/// </summary>
public virtual int SafeStatus
{
get;
set;
}
/*
/// <summary>
/// 当前温度
/// </summary>
public virtual int CurrentTemp
{
get;
set;
}
/// <summary>
/// 设定温度
/// </summary>
public virtual int SettingTemp
{
get;
set;
}
/// <summary>
/// 风速
/// </summary>
public virtual int Speed
{
get;
set;
}
/// <summary>
/// 辅助房态
/// </summary>
public virtual string RoomStatusAidIDs
{
get;
set;
}
/// <summary>
/// 是否连通房
/// </summary>
public virtual bool IsConnectingRoom
{
get;
set;
}
/// <summary>
/// 连通房ID逗号隔开
/// </summary>
public virtual string ConnectingRooms
{
get;
set;
}*/
/// <summary>
/// 主机温度
/// </summary>
public virtual int HostTemp
{
get;
set;
}
/// <summary>
/// 客房电源
/// </summary>
public virtual bool PowerSupply
{
get { return this.powerSupply; }
set { this.powerSupply = value; }
}
/// <summary>
/// 授权剩余小时
/// </summary>
public virtual int AuthorizedHours
{
get { return this.authorizedHours; }
set { this.authorizedHours = value; }
}
/// <summary>
/// 锁状态1开2关
/// </summary>
public virtual int LockStatus
{
get { return this.lockStatus; }
set { this.lockStatus = value; }
}
/// <summary>
/// 锁电压
/// </summary>
public virtual float LockVoltage
{
get;
set;
}
/// <summary>
/// 阿里云对接产品key
/// </summary>
public virtual string ProductKey
{
get;
set;
}
/// <summary>
/// 阿里云对接设备名称
/// </summary>
public virtual string DeviceName
{
get;
set;
}
/// <summary>
/// 阿里云对接设备密钥
/// </summary>
public virtual string DeviceSecret
{
get;
set;
}
/// <summary>
/// 主机密钥
/// </summary>
public virtual string HostSecret
{
get;
set;
}
/// <summary>
/// 阿里云物联网平台为该设备颁发的设备ID作为该设备的唯一标识符。
/// </summary>
public virtual string IotId
{
get;
set;
}
/// <summary>
/// 是否下发密钥给主机
/// </summary>
public virtual bool IsPublish
{
get;
set;
}
/// <summary>
/// 若琪对接的webhook url通知播放欢迎词使用
/// </summary>
public virtual string RokidWebhookUrl
{
get;
set;
}
/// <summary>
/// 绑定小度音箱的序列号
/// </summary>
public virtual string XiaoDuCUID
{
get;
set;
}
/// <summary>
/// TCL电视序列号
/// </summary>
public virtual string TCLCUID
{
get;
set;
}
/// <summary>
/// 华为电视序列号
/// </summary>
public virtual string HuaWeiCUID
{
get;
set;
}
/// <summary>
/// 是否同步房号(生产工具同步)
/// </summary>
public virtual bool IsSyncRoomNumber
{
get;
set;
}
/// <summary>
/// 是否自动升级
/// </summary>
public virtual bool IsAutoUpdate
{
get;
set;
}
/// <summary>
/// MAC绑定时间
/// </summary>
public virtual DateTime? MACBindDate
{
get;
set;
}
/// <summary>
/// IP类型1自动2手动
/// </summary>
public virtual int IPType
{
get;
set;
}
/// <summary>
/// rcu到期时间
/// </summary>
public virtual DateTime? ExpireTime
{
get;
set;
}
/// <summary>
/// rcu运行时间
/// </summary>
public virtual DateTime? RunTime
{
get;
set;
}
/// <summary>
/// 设置rcu到期时间
/// </summary>
public virtual DateTime? SetExpireTime
{
get;
set;
}
/// <summary>
/// 是否锁定
/// </summary>
public virtual bool IsLock
{
get;
set;
}
/// <summary>
/// 季节
/// </summary>
public virtual string Season
{
get;
set;
}
/// <summary>
/// 服务器IP
/// </summary>
public virtual string ServerIP
{
get;
set;
}
/// <summary>
/// 服务器端口
/// </summary>
public virtual int ServerPort
{
get;
set;
}
/// <summary>
/// 最新更新日期
/// </summary>
public virtual DateTime? Last_Modified_Time
{
get;
set;
}
/// <summary>
/// 房型
/// </summary>
public virtual int RoomTypeID
{
get;
set;
}
/// <summary>
/// 酒店
/// </summary>
public virtual int HOTELID
{
get;
set;
}
/// <summary>
/// 房态
/// </summary>
public virtual int RoomStatusID
{
get;
set;
}
#endregion
}
/// <summary>
/// Rcu自己写入的日志文件数据
/// </summary>
public class RcuData {
/// <summary>
/// 时间
/// </summary>
public DateTime createdatetime { get; set; }
/// <summary>
/// 日志内容
/// </summary>
public string log_content { get; set; }
/// <summary>
/// 日志时间
/// </summary>
public string log_datetime { get; set; }
/// <summary>
/// 日志长度
/// </summary>
public int log_len { get; set; }
/// <summary>
/// 日志sn
/// </summary>
public int log_sn { get; set; }
/// <summary>
/// 日志间隔
/// </summary>
public int log_timespan { get; set; }
/// <summary>
/// 日志类型
/// </summary>
public int log_type { get; set; }
/// <summary>
/// 是否有效
/// </summary>
public bool log_valid { get; set; }
/// <summary>
/// log文件名
/// </summary>
public string logfilename { get; set; }
/// <summary>
/// 项目id
/// </summary>
public int logprojectid { get; set; }
/// <summary>
/// 房间id
/// </summary>
public int logroomid { get; set; }
/// <summary>
/// mac
/// </summary>
public string mac { get; set; }
/// <summary>
/// 备注
/// </summary>
public string remark { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_1 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_2 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_3 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_4 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_5 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_6 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_7 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_8 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_9 { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public string type_param_10 { get; set; }
}
public class LOGFILENAME {
public string logfilename { get; set; }
public string sum { get; set; }
}
}