初始化

This commit is contained in:
2025-11-21 08:48:01 +08:00
commit b4d684a84c
202 changed files with 28585 additions and 0 deletions

View File

@@ -0,0 +1,209 @@
using Common;
using CommonEntity;
using DAL.New_Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.VisualBasic;
using Newtonsoft.Json;
namespace UseSQLQueryData.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class BaoYiController : ControllerBase
{
public static string TimerReportData = "TimerReportData";
public RicsContext db { get; set; }
public IMemoryCache _memorycache { get; set; }
public BaoYiController(RicsContext context, IMemoryCache cache)
{
this.db = context;
this._memorycache = cache;
}
[HttpPost()]
public async Task<ReturnInfo> SaveRoomTypeModal()
{
ReturnInfo r = new ReturnInfo();
try
{
using var reader = new StreamReader(Request.Body);
string jsonString = await reader.ReadToEndAsync();
var userlist = Newtonsoft.Json.JsonConvert.DeserializeObject<List<BaoYiModel>>(jsonString);
var QQQ = userlist.GroupBy(A => A.roomTypeID).Select(A => A.Key);
using var tran = this.db.Database.BeginTransaction();
int roomTypeID = 0;
foreach (var item in QQQ)
{
roomTypeID = item;
await db.TbRoomTypeModals.Where(A => A.RoomTypeId == item).ExecuteDeleteAsync();
}
var roomType = db.TbRoomTypes.Find(roomTypeID);
foreach (var item in userlist)
{
var id = item.id;
var modalAddress = item.modalAddress; ;
var outlet = item.outlet;
var name = item.name;
var englishName = item.englishName;
var power = item.power;
var twName = item.twName;
var aliasName = item.aliasName;
var type = item.type;
var sort = item.sort;
var color = item.color;
var OfflineDisplay = item.OfflineDisplay;
var LowPower = item.LowPower;
//低电保存显示
var LowPowerDisplay = item.LowPowerDisplay;
//是否声音报警
var Beep = item.Beep;
//是否异常判断
var Abnormal = item.Abnormal;
var MultipleGroupID = item.MultipleGroupID;
var MultipleTCLName = item.MultipleTCLName;
var TCLDeviceName = item.TCLDeviceName;
var WXActiveIndicator = item.WXActiveIndicator;
var ActiveIndicator = item.ActiveIndicator;
var roomTypeModal = new TbRoomTypeModal();
roomTypeModal.RoomType = roomType;
roomTypeModal.ModalAddress = modalAddress;
roomTypeModal.Outlet = outlet;
roomTypeModal.Name = name;
roomTypeModal.EnglishName = englishName;
roomTypeModal.Twname = twName;
roomTypeModal.AliasName = aliasName;
roomTypeModal.Power = power;
roomTypeModal.Default1 = false;
roomTypeModal.Type = (int)type;
roomTypeModal.Subtype = null;
roomTypeModal.Sort = sort;
roomTypeModal.Color = color;
roomTypeModal.ActiveIndicator = ActiveIndicator;//新增时默认显示
roomTypeModal.WxactiveIndicator = true;//只要显示,微信默认允许控制
roomTypeModal.OfflineDisplay = OfflineDisplay;
roomTypeModal.LowPowerDisplay = LowPowerDisplay;
roomTypeModal.Beep = Beep;
roomTypeModal.Abnormal = Abnormal;
roomTypeModal.SourceType = 0;
roomTypeModal.MultipleTclname = MultipleTCLName;
roomTypeModal.TcldeviceName = TCLDeviceName;
roomTypeModal.IsUploadBaoJing = item.IsUploadBaoJing;
int a = 0;
int.TryParse(MultipleGroupID, out a);
roomTypeModal.MultipleGroupId = a;
db.TbRoomTypeModals.Add(roomTypeModal);
UpdateHostModals(roomTypeModal);
}
await db.SaveChangesAsync();
await this.db.Database.CommitTransactionAsync();
var TBL = db.TbHosts.Where(A => A.RoomTypeId == roomTypeID).Select(A => A.Id);
foreach (var item in TBL)
{
CSRedisCacheHelper.Del_Partition("TimerReportData_" + item, 3);
}
r.isok = true;
}
catch (Exception ex)
{
r.message = ex.Message + "\r\n" + ex.StackTrace;
r.isok = false;
}
return r;
}
private void UpdateHostModals(TbRoomTypeModal roomTypeModal)
{
if (roomTypeModal.RoomType == null)
{
return;
}
//List<Host> hosts = HostManager.LoadAll().Where(t => t.RoomType.ID == roomTypeModal.RoomType.ID).ToList();
List<TbHost> hosts = db.TbHosts.Where(A => A.RoomType != null && A.RoomType.Id == roomTypeModal.RoomType.Id).ToList();
foreach (TbHost host in hosts)//该房型下所有主机关联回路
{
//var hostModal = HostModalManager.GetByModalAddress(host.ID, roomTypeModal.ModalAddress);
var hostModal = db.TbHostModals.FirstOrDefault(A => A.HostId == host.Id && A.RoomTypeModal.ModalAddress.Equals(roomTypeModal.ModalAddress));
if (null == hostModal)
{
//HostModalManager.Save(new HostModal { HostID = host.ID, Modal = roomTypeModal, Status = 2, Time = 0, UpdateTime = DateTime.Now });
var n = new TbHostModal() { HostId = host.Id, RoomTypeModal = roomTypeModal, Status = 2, Time = 0, UpdateTime = DateTime.Now };
db.TbHostModals.Add(n);
}
}
}
[HttpPost()]
public void CacheTest_Add()
{
_memorycache.Set("A", "aaaa", DateTimeOffset.Now.AddMinutes(10));
}
[HttpPost()]
public string CacheTest()
{
_memorycache.TryGetValue("A", out string AAA);
return AAA;
}
}
public class BaoYiModel
{
public int id { get; set; }
public int roomTypeID { get; set; }
public string modalAddress { get; set; }
public string outlet { get; set; }
public string name { get; set; }
public string englishName { get; set; }
public int power { get; set; }
public string twName { get; set; }
public string aliasName { get; set; }
public DeviceType type { get; set; }
public int sort { get; set; }
public string color { get; set; }
public int LowPower { get; set; }
//离线保存显示
public bool OfflineDisplay { get; set; }
/// <summary>
/// 是否低电显示
/// </summary>
public bool LowPowerDisplay { get; set; }
public bool Beep { get; set; }
/// <summary>
/// 是否异常判断
/// </summary>
public virtual bool Abnormal { get; set; }
public bool WXActiveIndicator { get; set; }
public bool ActiveIndicator { get; set; }
public string? MultipleGroupID { get; set; }
public string? MultipleTCLName { get; set; }
public string? TCLDeviceName { get; set; }
/// <summary>
/// 是否上传到宝镜
/// </summary>
public bool IsUploadBaoJing { get; set; }
}
}

View File

@@ -0,0 +1,164 @@
using System.Net;
using System.Text;
using Common;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NLog;
using RestSharp;
namespace UseSQLQueryData.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class HiWeiController : ControllerBase
{
public static string HiWeiKey = "HiWei_";
public static int ExpireTimer = 60 * 3;
public string? HiWeiAppId { get; set; }
public string? HiWeiAppSecret { get; set; }
public IConfiguration ConfigurationBuilder { get; set; }
public static Logger logger = NLog.LogManager.GetCurrentClassLogger();
public HiWeiController(IConfiguration config)
{
this.ConfigurationBuilder = config;
HiWeiAppId = config["HiWeiAppId"];
HiWeiAppSecret = config["HiWeiAppSecret"];
}
[HttpGet()]
//public ReturnInfo HiWeiOAuthRequest(string response_type, string client_id, string client_secret, string redirect_uri)
public ReturnInfo HiWeiOAuthRequest(string? response_type, string? client_id, string? client_secret, string? redirect_uri, string? code, string? refresh_token)
{
ReturnInfo returninfo = new ReturnInfo();
try
{
//code wijsv8hf5izejkny 6c1014dab24c41369068d12e4f7e145c http://tvos.hw-iot.com.cn/voice-service/token/auth/SKG9ZSC3|
logger.Error("Data:" + response_type + " " + client_id + " " + client_secret + " " + redirect_uri);
Random r = new Random();
int newcode = r.Next(1, 10000);
string id = HiWeiAppId;
string secret = HiWeiAppSecret;
string Key = HiWeiKey + newcode;
if (response_type.Equals("code") && client_id.Equals(id) && client_secret.Equals(secret))
{
var t1 = Guid.NewGuid().ToString();
var t2 = Guid.NewGuid().ToString();
var t3 = Guid.NewGuid().ToString();
var t4 = Guid.NewGuid().ToString();
var token = Convert.ToBase64String(Encoding.UTF8.GetBytes(t1 + "###" + t2));
var reftoken = Convert.ToBase64String(Encoding.UTF8.GetBytes(t3 + "###" + t4));
HiWeiToken g = new HiWeiToken();
g.access_token = token;
g.refresh_token = reftoken;
g.expires_in = new TimeSpan(20, 0, 0).TotalSeconds;
CSRedisCacheHelper.redis3.Set(Key, g, ExpireTimer);
CSRedisCacheHelper.redis3.Set(refresh_token, g, ExpireTimer);
var client1 = new RestClient(redirect_uri);
var request1 = new RestRequest("", Method.Get);
request1.AddQueryParameter("code", newcode);
var QQQ = client1.Execute(request1);
var content = QQQ.Content;
logger.Error("返回的数据为:" + content);
HttpStatusCode HHH = QQQ.StatusCode;
}
else
{
returninfo.isok = false;
returninfo.message = "没有授权";
}
Dictionary<string, int> codere = new Dictionary<string, int>();
codere.Add("code", newcode);
returninfo.isok = true;
returninfo.response = codere;
}
catch (Exception ex)
{
returninfo.isok = false;
returninfo.message = ex.Message;
}
return returninfo;
}
[HttpGet()]
public object mytoken(string code)
{
return "aaaaa";
}
[HttpPost()]
public object gettoken([FromBody] Data data)
{
//ReturnInfo re = new ReturnInfo();
try
{
var ttt = System.Text.Json.JsonSerializer.Serialize(data);
logger.Error("获取token:" + ttt);
string grant_type = data.grant_type;
string code = data.code;
if (grant_type.Equals("authorization_code"))
{
logger.Error("code: " + code);
string Key = HiWeiKey + code;
var hi = CSRedisCacheHelper.redis3.Get<HiWeiToken>(Key);
if (hi != null)
{
logger.Error("返回了");
return hi;
}
else
{
logger.Error("没有获取到");
return null;
}
}
else if (grant_type.Equals("refresh_token"))
{
var hi = CSRedisCacheHelper.redis3.Get<HiWeiToken>("11111232323");
if (hi != null)
{
return hi;
}
else
{
return hi;
}
}
return null;
}
catch (Exception ex)
{
return null;
}
}
}
public class Data
{
public string code { get; set; }
public string grant_type { get; set; }
public string client_secret { get; set; }
public string client_id { get; set; }
}
public class HiWeiToken
{
public string access_token { get; set; }
public string refresh_token { get; set; }
public double expires_in { get; set; }
}
}

View File

@@ -0,0 +1,78 @@
using CliWrap;
using CliWrap.Buffered;
using Common;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Web.Administration;
namespace UseSQLQueryData.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class IISController : ControllerBase
{
[HttpPost()]
public async Task<ReturnInfo> Recly()
{
var dt = DateTime.Now;
var span = new TimeSpan(0, 1, 0);
ReturnInfo r = new ReturnInfo();
try
{
if (dt - Program.Dt > span)
{
string Key = "IISRecycle";
CSRedisCacheHelper.redis3.Set(Key,1);
//using (ServerManager serverManager = new ServerManager())
//{
// var pool = serverManager.ApplicationPools["DefaultAppPool"];
// if (pool != null)
// {
// pool.Recycle();
// r.isok = true;
// }
// else
// {
// r.isok = false;
// }
//}
//Program.Dt = DateTime.Now;
//var cmd = await Cli.Wrap("1.cmd")
//.WithWorkingDirectory("D:\\BLW_Data\\cricsSQL")
//.ExecuteBufferedAsync();
//var result = await Cli.Wrap(@"C:\Windows\System32\inetsrv\appcmd.exe")
// .WithArguments("recycle apppool /apppool.name:DefaultAppPool")
// .ExecuteBufferedAsync();
//if (result.ExitCode == 0)
//{
// Console.WriteLine("应用程序池回收成功!");
// Console.WriteLine(result.StandardOutput);
//}
//else
//{
// Console.WriteLine($"回收失败,错误代码: {result.ExitCode}");
// Console.WriteLine(result.StandardError);
//}
r.isok = true;
}
else
{
r.isok = false;
r.message = "1分钟之间只能回收一次";
}
}
catch (Exception ex)
{
r.isok = false;
r.message = ex.Message;
}
return r;
}
}
}

View File

@@ -0,0 +1,91 @@
using Common;
using CommonEntity;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NLog;
namespace UseSQLQueryData.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class MonitorController : ControllerBase
{
public static Logger logger = LogManager.GetCurrentClassLogger();
[HttpPost()]
public ReturnInfo SetMonitor([FromBody] MonitorData lll)
{
ReturnInfo r = new ReturnInfo();
try
{
lll.DataList.RemoveAll(x => string.IsNullOrEmpty(x.IPAddress) || x.Port <= 0);
var osa = lll.DataList.Select(x => { x.AddDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); return x; }).ToList();
if (lll.Handler.Equals("add"))
{
var QQQ = CSRedisCacheHelper.Get<List<MonitorEndPoint>>("MonitorEndPointList");
foreach (var item in osa)
{
bool bbb= QQQ.Any(A=>A.IPAddress.Equals(item.IPAddress)&&A.Port==item.Port);
if (bbb==false)
{
QQQ.Add(item);
}
}
CSRedisCacheHelper.Forever<List<MonitorEndPoint>>("MonitorEndPointList",QQQ);
}
else if (lll.Handler.Equals("remove"))
{
var QQQ = CSRedisCacheHelper.Get<List<MonitorEndPoint>>("MonitorEndPointList");
foreach (var item in lll.DataList)
{
QQQ.RemoveAll(A => A.IPAddress.Equals(item.IPAddress) && A.Port == item.Port);
}
CSRedisCacheHelper.Forever<List<MonitorEndPoint>>("MonitorEndPointList", QQQ);
}
r.isok = true;
r.response = "sucess";
}
catch (Exception ex)
{
logger.Error(ex.Message);
logger.Error(ex.StackTrace);
r.isok = false;
r.response = ex.Message;
}
return r;
}
[HttpPost()]
public ReturnInfo GetMonitorData()
{
ReturnInfo r = new ReturnInfo();
try
{
var QQQ = CSRedisCacheHelper.Get<List<MonitorEndPoint>>("MonitorEndPointList");
r.isok = true;
r.response = QQQ;
}
catch (Exception ex)
{
logger.Error(ex.Message);
logger.Error(ex.StackTrace);
r.isok = false;
r.message = ex.Message;
}
return r;
}
}
public class MonitorData
{
public string? Handler { get; set; }
public List<MonitorEndPoint?> DataList { get; set; }
}
public class MonitorEndPoint
{
public string? IPAddress { get; set; }
public int? Port { get; set; } = 0;
public string? AddDateTime { get; set; }
}
}

View File

@@ -0,0 +1,364 @@
using System.Data;
using CliWrap;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OutputCaching;
using Microsoft.Data.SqlClient;
using NLog;
using RestSharp;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace UseSQLQueryData.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class ValuesController : ControllerBase
{
public static string SqlConnectionString = "server=WIN-061EVIHKD86\\BLW;database=CRICS;uid=sa;pwd=pass@123$%^;TrustServerCertificate=True;";
//public static string SqlConnectionString = "Data Source=DESKTOP-DUNS5K7;Initial Catalog=CRICS;User ID=sa;Password=123456;Trust Server Certificate=True";
public static Logger logger = LogManager.GetCurrentClassLogger();
[HttpGet()]
[OutputCache()]
public async Task<ReturnInfo> GetRoomCount()
{
ReturnInfo returnInfo = new ReturnInfo();
//return returnInfo;
try
{
using SqlConnection con = new SqlConnection(SqlConnectionString);
con.Open();
using SqlCommand sqlCommand = con.CreateCommand();
string sql = @"select A.HotelID,B.Code,Count(A.HotelID) as TotalCount from tb_Hosts A
left join tb_Sys_Hotels B
on A.HotelID=B.ID
where A.IsDeleted=0 and B.IsDeleted=0
group by HotelID,B.Code
ORDER BY HotelID;";
sqlCommand.CommandText = sql;
//SqlParameter ps1 = new SqlParameter("@HotelID", hotelid);
//sqlCommand.Parameters.Add(ps1);
SqlDataAdapter adapter = new SqlDataAdapter(sqlCommand);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
DataTable dt = dataSet.Tables[0];
List<ChaXun> chaList = new List<ChaXun>();
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow item in dt.Rows)
{
var id = item["HotelID"].ToString();
var totalcount = item["TotalCount"].ToString();
var code = item["Code"].ToString();
ChaXun cha = new ChaXun();
cha.HotelID = id;
cha.HotelCode = code;
cha.TotalCount = totalcount;
chaList.Add(cha);
}
}
returnInfo.isok = true;
returnInfo.response = chaList;
}
catch (Exception ex)
{
returnInfo.isok = false;
returnInfo.message = ex.Message;
}
return returnInfo;
}
/// <summary>
/// 生成主机标识号
/// </summary>
/// <param name="HotelID"></param>
/// <returns></returns>
[HttpPost()]
public async Task<ReturnInfo> GenericHOSTNUMBER([FromForm] string HotelID, [FromForm] string HotelCode)
{
//2147 --099008
ReturnInfo r = new ReturnInfo();
try
{
logger.Error("HotelID:" + HotelID + " HotelCode:" + HotelCode);
ushort a = ushort.Parse(HotelCode);
byte[] bbf = BitConverter.GetBytes(a);
byte b1 = bbf[0];
byte b2 = bbf[1];
string nn1 = b1.ToString("000");
string nn2 = b2.ToString("000");
string nn3 = nn1 + nn2;
using SqlConnection con = new SqlConnection("server=WIN-061EVIHKD86\\BLW;database=CRICS;uid=sa;pwd=pass@123$%^;TrustServerCertificate=True;");
con.Open();
SqlTransaction tran = con.BeginTransaction();
using SqlCommand sqlCommand = con.CreateCommand();
sqlCommand.Transaction = tran;
string sql = string.Format("select ID,MAC from tb_Hosts where HotelID={0} and IsDeleted=0 and MAC is not NULL and MAC!='';", HotelID);
sqlCommand.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(sqlCommand);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
DataTable dt = dataSet.Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow item in dt.Rows)
{
var id = item["ID"].ToString();
var mymac = item["MAC"].ToString();
if (!string.IsNullOrEmpty(mymac))
{
string[] NNN = mymac.Split('-');
string n1 = NNN[4];
string n2 = NNN[5];
byte bbn1 = Convert.ToByte(n1, 16);
byte bbn2 = Convert.ToByte(n2, 16);
short MAC1 = Convert.ToInt16(bbn1);
short MAC2 = Convert.ToInt16(bbn2);
string HOSTNUMBER = nn3 + MAC1.ToString("000") + MAC2.ToString("000");
string sql111 = string.Format(@"update tb_Hosts set HostNumber='{0}' where ID={1} and (HostNumber is NULL or HostNumber='');", HOSTNUMBER, id);
sqlCommand.CommandText = sql111;
await sqlCommand.ExecuteNonQueryAsync();
}
}
}
tran.Commit();
r.isok = true;
r.response = "success";
}
catch (Exception ex)
{
logger.Error("出错了" + ex.Message);
r.isok = false;
r.message = ex.Message;
}
return r;
}
/// <summary>
///
/// </summary>
/// <param name="HotelID"></param>
/// <returns></returns>
[HttpPost()]
public async Task<ReturnInfo> SendGetRCUInfoData(string HotelID)
{
ReturnInfo r = new ReturnInfo();
try
{
}
catch (Exception)
{
throw;
}
return r;
}
[HttpPost()]
public async Task<string> HttpRecv()
{
using var reader = new StreamReader(Request.Body);
var body = await reader.ReadToEndAsync();
return body;
}
#region TFTP
public static string BaseUrl = "https://www.boonlive-rcu.com/";
[HttpPost()]
public async Task<ReturnInfo> GetTFTPInfo()
{
ReturnInfo r = new ReturnInfo();
try
{
using SqlConnection con = new SqlConnection(SqlConnectionString);
await con.OpenAsync();
using SqlCommand sqlCommand = con.CreateCommand();
string sql = @"select A.*,B.HostNumber,B.MAC from TFTP_set A left join tb_Hosts B on A.HostID=B.ID;";
sqlCommand.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(sqlCommand);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
DataTable dt = dataSet.Tables[0];
List<TFTPSet> chaList = new List<TFTPSet>();
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow item in dt.Rows)
{
var id = item["ID"].ToString();
var HotelCode = item["HotelCode"].ToString();
var HotelID = item["HotelID"].ToString();
var RoomNumber = item["RoomNumber"].ToString();
var HostID = item["HostID"].ToString();
var HostNumber = item["HostNumber"].ToString();
var MAC = item["MAC"].ToString();
var TargetPort = item["TargetPort"].ToString();
var TargetDomain = item["TargetDomain"].ToString();
var LT = item["LastTime"].ToString();
var IT = item["IsTrigger"].ToString();
var CT = item["CreateTime"].ToString();
TFTPSet cha = new TFTPSet();
cha.hotelcode = HotelCode;
cha.hotelid = HotelID;
cha.hostnumber = HostNumber;
cha.roomnumber = RoomNumber;
cha.mac = MAC;
cha.hostid = HostID;
cha.domain = TargetDomain;
cha.port = TargetPort;
cha.lasttime = LT;
cha.isenable = IT;
cha.createtime = CT;
chaList.Add(cha);
}
}
var U = chaList.GroupBy(A => new { A.hotelid, A.hotelcode });
List<TFTP> tl = new List<TFTP>();
foreach (var item in U)
{
TFTP t = new TFTP();
t.hotelcode = item.Key.hotelcode;
t.hotelid = item.Key.hotelid;
t.TFTPRoomList = item.ToList();
tl.Add(t);
}
r.isok = true;
r.response = tl;
}
catch (Exception)
{
throw;
}
return r;
}
/// <summary>
///
/// </summary>
/// <param name="listdata">[{"hotelcode":"","hostnumber":"","mac":""}]</param>
/// <returns></returns>
[HttpPost()]
public async Task<ReturnInfo> TFTPReadSet([FromBody] List<Dictionary<string, string>> listdata)
{
ReturnInfo r = new ReturnInfo();
try
{
var options = new RestClientOptions(BaseUrl);
var client = new RestClient(options);
var request = new RestRequest("api/TFTPReadSet");
request.AddJsonBody(listdata);
RestResponse response = await client.PostAsync(request);
string? str1 = response.Content;
r.isok = true;
r.response = str1;
}
catch (Exception ex)
{
r.isok = false;
r.response = ex.Message;
}
return r;
}
[HttpPost()]
public async Task<ReturnInfo> TFTPSet_Execute([FromBody] FTP_JSON body)
{
ReturnInfo r = new ReturnInfo();
try
{
var options = new RestClientOptions(BaseUrl);
var client = new RestClient(options);
var request = new RestRequest("api/TFTPSet_Execute");
request.AddJsonBody(body);
RestResponse response = await client.PostAsync(request);
string? str1 = response.Content;
r.isok = true;
r.response = str1;
}
catch (Exception ex)
{
r.isok = false;
r.response = ex.Message;
}
return r;
}
#endregion
}
public class TFTP
{
public string hotelcode { get; set; }
public string hotelid { get; set; }
public List<TFTPSet> TFTPRoomList { get; set; }
}
public class TFTPSet
{
public string hotelcode { get; set; }
public string hotelid { get; set; }
public string hostid { get; set; }
public string roomnumber { get; set; }
public string hostnumber { get; set; }
public string mac { get; set; }
public string port { get; set; }
public string domain { get; set; }
/// <summary>
/// 上传 几个小时的日志
/// </summary>
public string lasttime { get; set; }
public string isenable { get; set; }
public string createtime { get; set; }
}
public class host_data
{
public string hostnumber { get; set; }
public string mac { get; set; }
}
public class FTP_JSON
{
public List<host_data> host_data { get; set; }
public bool isenable { get; set; }
public string domain { get; set; }
public UInt16 port { get; set; }
public UInt16 lasttime { get; set; }
}
public class ChaXun
{
public string HotelID { get; set; }
public string HotelCode { get; set; }
public string TotalCount { get; set; }
}
public class ReturnInfo
{
public bool isok { set; get; } // 是否成功true成功
public string message { set; get; } // 传递接口信息or报错信息
public int status { set; get; } // 服务器报错信息正确为200错误404/500等
public object response { set; get; } // 获取到的信息本体若报错则为null
}
}

View File

@@ -0,0 +1,33 @@
using Microsoft.AspNetCore.Mvc;
namespace UseSQLQueryData.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
}