Files

442 lines
14 KiB
C#
Raw Permalink Normal View History

2025-11-20 15:56:30 +08:00
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Messaging;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;
using BLWWS_BLL;
using ConsoleApp1;
using Newtonsoft.Json;
using RestSharp;
namespace ConsoleApp1
{
public class portinfo
{
/// <summary>
/// 名称
/// </summary>
public string LodgerNmae { get; set; }
/// <summary>
/// 身份证
/// </summary>
public string IDNumber { get; set; }
/// <summary>
/// 性别 0女 1男
/// </summary>
public Nullable<int> Sex { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public Nullable<System.DateTime> CheckInDate { get; set; }
/// <summary>
/// 消息来源
/// </summary>
public int Sourcedian { get; set; }
/// <summary>
/// 图片
/// </summary>
public string picture { get; set; }
/// <summary>
/// 备注
/// </summary>
public string remark { get; set; }
/// <summary>
/// 图片时间
/// </summary>
public Nullable<System.DateTime> pictureDate { get; set; }
/// <summary>
/// 酒店code
/// </summary>
public string HotelCode { get; set; }
/// <summary>
/// 房间号
/// </summary>
public string roomid { get; set; }
/// <summary>
/// 电话号码
/// </summary>
public string phonenumber { get; set; }
/// <summary>
/// 开房时间
/// </summary>
public DateTime CheckTime { get; set; }
/// <summary>
/// 退房时间
/// </summary>
public DateTime checkOutTime { get; set; }
/// <summary>
/// 密钥
/// </summary>
public string key { get; set; }
public int pmsinfoid { get; set; }
}
}
public class XMSData
{
public string hotelid { get; set; }
/// <summary>
/// 订单账号(酒店唯一)
/// </summary>
public string accnt { get; set; }
public string groupid { get; set; }
public string name { get; set; }
public Dictionary<string, string> original { get; set; }
public extrasData extras { get; set; }
}
public class originalData
{
//public string name { get; set; }
//public string mobile { get; set; }
//public string roomno { get; set; }
//public string type { get; set; }
//public string rtc { get; set; }
//public string rmnum { get; set; }
//public string sta { get; set; }
}
// "arr":"1750586400000",
// "rtc":"CPC",
// "sta":"R",
// "rmnum":"1",
// "roomno":"",
// "mobile":"1212345678",
// "name":"李二",
// "type":"CPC",
// "dep":"1750651200000"
public class extrasData
{
public string name { get; set; }
public string mobile { get; set; }
/// <summary>
/// 房间号
/// </summary>
public string roomno { get; set; }
public string type { get; set; }
public string rtc { get; set; }
public string rmnum { get; set; }
/// <summary>
/// 订单状态
///Q问询
///X取消预订
///Nnoshow
///R预订
///I在住
///O本日结账
///S挂账退房
///D昨日结账
///H历史订单
/// </summary>
public string sta { get; set; }
public string arr { get; set; }
public string dep { get; set; }
}
internal class Program
{
public static long GetCurrentTimeStamp(DateTime dt)
{
TimeSpan ts = dt - new DateTime(1970, 1, 1, 8, 0, 0, DateTimeKind.Local);
long current_timestamp = Convert.ToInt64(ts.TotalSeconds);
return current_timestamp;
}
public class PMSDataBase
{
public string hotel_code { get; set; } = "";
public string time { get; set; } = "";
public string sign { get; set; } = "";
public string hotel_id { get; set; } = "";
public string order_no { get; set; } = "";
public string room_no { get; set; } = "";
public string check_out_original { get; set; }
}
static void Main(string[] args)
{
var DQQQ = File.ReadAllText("1.txt");
//<items><item customer="安赞同" idcard="2110**********222X" sex="女" country="0" checkindate="2025-06-19 16:26:14" checkoutdate="2025-06-20 12:00:00"/></items>
XDocument doc32 = XDocument.Parse(DQQQ);
XElement Root1 = doc32.Root;
string orderno = Root1.Attribute("orderno")?.Value;
string cost = Root1.Attribute("cost")?.Value;
//是否有早餐
string breakfast = Root1.Attribute("breakfast")?.Value;
//押金
string deposit = Root1.Attribute("deposit")?.Value;
var LESuuu = Root1.Elements("item");
var NNNjkl = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, object>>>(DQQQ);
PMSDataBase data = new PMSDataBase()
{
hotel_code = "2079",
time = "1751426235",
sign = "a68b2596ce7c1ca970e82a00626c16e3",
hotel_id = "1101",
order_no = "",
room_no = "1102",
check_out_original = ""
};
string BaseURL = "https://f.blv-oa.com:8099/rcu_pms_api/v1";
var client123 = new RestClient(BaseURL);
var request123 = new RestRequest("/order/checkOut", Method.POST);
request123.AddJsonBody(data);
var Response = client123.Execute(request123).Content;
string content12345 = Response;
long lllhhh = GetCurrentTimeStamp(DateTime.Now);
decimal DDD = Convert.ToDecimal(32432423.34343);
decimal lll = DDD / 1024;
decimal a = Math.Round(lll, 2);
Console.WriteLine("aaaaaaaaaaaa");
string content = "";
string PPP = File.ReadAllText("3.txt");
byte[] photo = Tools.HEXString2ByteArray(PPP);
//分辨率 判断
using (var ms = new MemoryStream(photo))
{
ms.Write(photo, 0, photo.Length);
using (System.Drawing.Image image = System.Drawing.Image.FromStream(ms, false, false)) // 不加载图像数据
{
bool bf = image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg);
Console.WriteLine(image.Height);
Console.WriteLine(image.Width);
}
}
try
{
string sss111 = File.ReadAllText("3.txt");
var OOO = JsonConvert.DeserializeObject<XMSData>(sss111);
string Url111 = "http://pms.boonlive-rcu.com:8989";
var client1 = new RestClient(Url111);
//var request1 = new RestRequest("api/XMSOrderPush?xrsecret=Ip202rSR132zJGKH", Method.POST);
var request1 = new RestRequest("api/XMSOrderPush", Method.POST);
request1.AddQueryParameter("xrsecret", "Ip202rSR132zJGKH");
request1.AddJsonBody(OOO);
var response = client1.Execute(request1);
var content111 = response.Content;
////string url = "http://face.blv-oa.com/Interface/checkinInterface?key=abc&data={"LodgerNmae":"王悦","IDNumber":"1133397752487743488","Sex":0,"picture":"http://pms.boonlive-rcu.com:89/pic/1133397752487743488_1384391.jpg","HotelCode":"2079","roomid":"1906","phonenumber":"19847388255","CheckTime":"2025-06-20 11:19:04","pmsinfoid":1905524}";
//string url = File.ReadAllText("2.txt");
//var NNN1= JsonConvert.DeserializeObject<portinfo>(url);
//return;
//var client1 = new RestClient(url);
//var request1 = new RestRequest(Method.POST);
//request1.AddJsonBody(null);
//var Response = client1.Execute(request1).Content;
//content = Response;
//string result = string.Empty;
//HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
//req.ContentType = "application/json";
//req.Method = "POST";
////req.Timeout = 10000;//设置请求超时时间,单位为毫秒
//byte[] data = Encoding.UTF8.GetBytes("");
//req.ContentLength = data.Length;
//using (Stream reqStream = req.GetRequestStream())
//{
// reqStream.Write(data, 0, data.Length);
//}
//HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
//using (Stream stream = resp.GetResponseStream())
//{
// using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
// {
// result = reader.ReadToEnd();//获取响应内容
// }
//}
}
catch (Exception ex)
{
}
Console.ReadKey();
string xmlString = File.ReadAllText("1.txt");
XDocument doc1 = XDocument.Parse(xmlString);
XElement Root = doc1.Root;
string NNN = Root.Attribute("orderno")?.Value;
var LES = Root.Elements("item");
foreach (var item in LES)
{
string customer = item.Attribute("customer").Value;
string sex = item.Attribute("sex").Value;
}
//ServiceReference1.blwwsSoapClient c = new ServiceReference1.blwwsSoapClient();
//c.Test();
//string token = GetToken_G();
//Console.WriteLine(token);
//ConcurrentDictionary<string, string> GlobalData = new ConcurrentDictionary<string, string>();
//GlobalData.AddOrUpdate("A", token, (k, v) => { return token; });
//GlobalData.AddOrUpdate("A", token, (k, v) => { return token; });
//GlobalData.AddOrUpdate("A", token, (k, v) => { return token; });
//GlobalData.AddOrUpdate("A", token, (k, v) => { return token; });
Console.ReadKey();
}
static public string UserCode = "KKJK";
static public string UserKey = "KKJK0428";
static public string BaseUrl = "https://armitage-ipms.shijicloud.com";
public static string GetToken_G()
{
Dictionary<string, string> Params = new Dictionary<string, string>();
Params.Add("userCode", UserCode);
Params.Add("key", UserKey);
var tokenstr = Send_Http_Request_Params("/iPMSAPI/iPMSApiService/api/applySecurityToken", Params);
Console.WriteLine(tokenstr);
if (!string.IsNullOrEmpty(tokenstr))
{
var dic = JsonConvert.DeserializeObject<Dictionary<string, string>>(tokenstr);
string token = dic["securityToken"];
return token;
}
return "";
}
public static string Send_Http_Request_Params(string Url, Dictionary<string, string> Params)
{
var client1 = new RestClient(BaseUrl);
var request1 = new RestRequest(Url, Method.POST);
foreach (KeyValuePair<string, string> item in Params)
{
request1.AddParameter(item.Key, item.Value);
}
var response = client1.Execute(request1);
var content = response.Content;
return content;
}
public static string queueName2 = @".\private$\faceServerToWeb";
public static MessageQueue mq2 = null;
/// <summary>
/// 从消息队列中读取命令,并执行
/// </summary>
public static void ReceiveCmdLoop()
{
while (true)
{
try
{
//判断队列是否存在
if (MessageQueue.Exists(queueName2))
{
mq2 = new MessageQueue(queueName2);
}
else
{
//创建队列
mq2 = MessageQueue.Create(queueName2);
}
//给管理员队列权力
mq2.SetPermissions("Administrator", MessageQueueAccessRights.FullControl);
//匿名登录
mq2.SetPermissions("ANONYMOUS LOGON", MessageQueueAccessRights.FullControl);
mq2.SetPermissions("Everyone", MessageQueueAccessRights.FullControl);
while (true)
{
Message msgRx = mq2.Receive();
msgRx.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
string strRx = msgRx.Body.ToString();
Thread.Sleep(1300); //阻塞当前线程1秒让其他线程运行
}
}
catch (Exception ex)
{
Thread.Sleep(5000); //阻塞当前线程5秒再重新启动
continue;
}
}
}
/// <summary>
/// 向消息队列中发送消息
/// </summary>
/// <param name="sendMsg">消息</param>
/// <returns></returns>
public static string QueueSend(string sendMsg)
{
try
{
if (mq2 == null)
{
if (MessageQueue.Exists(queueName2))
{
mq2 = new MessageQueue(queueName2);
}
else
{
mq2 = MessageQueue.Create(queueName2);
}
mq2.SetPermissions("Administrator", MessageQueueAccessRights.FullControl);
mq2.SetPermissions("ANONYMOUS LOGON", MessageQueueAccessRights.FullControl);
mq2.SetPermissions("Everyone", MessageQueueAccessRights.FullControl);
}
Message msgTx = new Message
{
Body = "",
Formatter = new XmlMessageFormatter(new Type[] { typeof(string) })
};
mq2.Send(msgTx);
return "Succeed push msg to MQ !";
}
catch (Exception ex)
{
mq2 = null;
return ex.ToString();
}
}
}