初始化项目
This commit is contained in:
336
Services/Tool/HttpRequestHelp.cs
Normal file
336
Services/Tool/HttpRequestHelp.cs
Normal file
@@ -0,0 +1,336 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Models;
|
||||
using Models.ApiModei;
|
||||
using Models.ModelItems;
|
||||
using Newtonsoft.Json;
|
||||
using Services.Manager;
|
||||
|
||||
namespace Services.Tool
|
||||
{
|
||||
public class HttpRequestHelp
|
||||
{
|
||||
//巫工Api
|
||||
static string Url = "https://www.boonlive-rcu.com/api/"; // 注释掉巫工API 改为宝来威 "https://pms.boonlive-rcu.com/api/";
|
||||
static string Key = "blw_ws@2015";
|
||||
/// <summary>
|
||||
/// 根据MAC获取主机
|
||||
/// </summary>
|
||||
/// <param name="Mac"></param>
|
||||
/// <returns></returns>
|
||||
public static List<Hosts> GetHostByMAC(string Mac)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Mac))
|
||||
return null;
|
||||
var res = new Dictionary<string, dynamic>();
|
||||
res.Add("jsonData", JsonConvert.SerializeObject(new { key = Key, mac = Mac }));
|
||||
var resdata = Post<ReturnData<List<HostsAsync>>>(Url + "GetHostByMAC", res);
|
||||
if (resdata != null && resdata.IsSuccess)
|
||||
{
|
||||
List<Hosts> newdata = new List<Hosts>();
|
||||
foreach (var item in resdata.Result)
|
||||
{
|
||||
newdata.Add(new Hosts()
|
||||
{
|
||||
Id = item.ID,
|
||||
HotelID = item.HotelID,
|
||||
Status = item.Status?1:0,
|
||||
HotelName = item.HotelName,
|
||||
Desc = item.Remark,
|
||||
RoomNumber = item.RoomNumber,
|
||||
RoomStatusID = item.RoomStatusID,
|
||||
MAC = item.MAC,
|
||||
});
|
||||
}
|
||||
return newdata;
|
||||
}
|
||||
else
|
||||
{
|
||||
Logs.WriteTimingUDPLog(JsonConvert.SerializeObject(resdata));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<UserInfo> GetUserList()
|
||||
{
|
||||
var res = new Dictionary<string, dynamic>();
|
||||
res.Add("jsonData", JsonConvert.SerializeObject(new { key = Key}));
|
||||
var resdata = Post<ReturnData<List<UserInfoAsync>>>(Url + "GetUserList", res);
|
||||
if (resdata != null && resdata.IsSuccess)
|
||||
{
|
||||
List<UserInfo> newdata = new List<UserInfo>();
|
||||
foreach (var item in resdata.Result)
|
||||
{
|
||||
var s = 2;
|
||||
if(!int.TryParse(item.Sex,out s))
|
||||
{
|
||||
if(item.Sex == "男")
|
||||
{
|
||||
s = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (item.Sex == "女")
|
||||
s = 1;
|
||||
else
|
||||
s = 2;
|
||||
}
|
||||
}
|
||||
if (newdata.FirstOrDefault(x => x.Uid.ToLower() == item.Account.ToLower())!= null) {
|
||||
continue;
|
||||
}
|
||||
newdata.Add(new UserInfo()
|
||||
{
|
||||
OldId = item.ID,
|
||||
IsImport = 1,
|
||||
IsValid = item.ActiveIndicator?0:1,
|
||||
HotelGroupID = item.SysHotelGroupID,
|
||||
HotelID = item.HotelID,
|
||||
CreateTime = item.CreatedDate,
|
||||
Desc = item.Remark,
|
||||
Sex = s,
|
||||
Uid = item.Account,
|
||||
Pwd = item.Password,
|
||||
EndTime = item.CreatedDate.AddMonths(2)
|
||||
});
|
||||
}
|
||||
return newdata;
|
||||
}else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 写入mac地址
|
||||
/// </summary>
|
||||
/// <param name="hotels"></param>
|
||||
/// <param name="Mac"></param>
|
||||
/// <param name="roomNumber"></param>
|
||||
/// <returns></returns>
|
||||
public static bool SetHostMAC(int hotelsid, string Mac,string roomNumber)
|
||||
{
|
||||
// code”:“酒店编码,我司提供,例如:1001”, “creatDate”:“日期,我司提供,例如:2016 - 09 - 05”, “roomNumber”:“房号,如:8888”,
|
||||
//深圳市宝来威智能科技有限公司 第 20页 共 22页 “mac”:“mac 地址,如:34 - D0 - B8 - 1F - 02 - 15”
|
||||
var hotels = new Hotels();
|
||||
|
||||
hotels = SqlSugarBase.Db.Queryable<Hotels>().First(x => x.Id == hotelsid);
|
||||
if (hotels == null)
|
||||
return false;
|
||||
var res = new Dictionary<string, dynamic>();
|
||||
res.Add("jsonData", JsonConvert.SerializeObject(new { key = Key, roomNumber= roomNumber, mac = Mac, code = hotels.Code, creatDate = hotels.CreateTime.ToString("yyyy-MM-dd") }));
|
||||
var resdata = Post<ReturnData<string>>(Url + "SetHostMAC", res);
|
||||
if (resdata == null)
|
||||
return false;
|
||||
return resdata.IsSuccess && resdata.Result.Contains("成功");
|
||||
}
|
||||
/// <summary>
|
||||
/// 房间表主机表信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<HostsAdd> GetHosts(int hotelsid)
|
||||
{
|
||||
var hotels = new Hotels();
|
||||
hotels = SqlSugarBase.Db.Queryable<Hotels>().First(x=>x.Id == hotelsid);
|
||||
|
||||
|
||||
|
||||
if (hotels == null || hotels == default(Hotels))
|
||||
return null;
|
||||
var res = new Dictionary<string, dynamic>();
|
||||
res.Add("jsonData", JsonConvert.SerializeObject(new { key = Key, code = hotels.Code, creatDate = hotels.CreateTime.ToString("yyyy-MM-dd")}));
|
||||
|
||||
try
|
||||
{
|
||||
var resdata = Post<ReturnData<List<HostsAsync>>>(Url + "GetHostList", res);
|
||||
if (resdata != null && resdata.IsSuccess)
|
||||
{
|
||||
List<HostsAdd> newdata = new List<HostsAdd>();
|
||||
var FaceList = FaceServer.SelfaceSN_HotelID(hotels.Id);
|
||||
foreach (var item in resdata.Result)
|
||||
{
|
||||
var temp = FaceList.FirstOrDefault(x => x.RoomId == item.ID);
|
||||
if (temp == null)
|
||||
temp = new DeviceManage();
|
||||
newdata.Add(new HostsAdd()
|
||||
{
|
||||
Id = item.ID,
|
||||
HotelID = item.HotelID,
|
||||
HotelName = item.HotelName,
|
||||
Status = item.Status ? 1 : 0,
|
||||
Desc = item.Remark,
|
||||
RoomNumber = item.RoomNumber,
|
||||
RoomStatusID = item.RoomStatusID,
|
||||
MAC = item.MAC,
|
||||
FaceSN = temp.SerialNo,
|
||||
FaceStatus = temp.Status,
|
||||
maintainStatus = temp.maintainStatus,
|
||||
RoomTypeID = item.RoomTypeID
|
||||
});
|
||||
}
|
||||
return newdata;
|
||||
}
|
||||
else
|
||||
return null;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取酒店列表 全部酒店信息
|
||||
/// </summary>
|
||||
public static List<Hotels> GetHotelList() {
|
||||
var res = new Dictionary<string, dynamic>();
|
||||
res.Add("jsonData",JsonConvert.SerializeObject( new{ key= Key }));
|
||||
var resdata = Post<ReturnData<List<HotelsAsync>>>(Url+ "GetHotelList", res);
|
||||
if (resdata!=null && resdata.IsSuccess)
|
||||
{
|
||||
List<Hotels> newdata = new List<Hotels>();
|
||||
foreach (var item in resdata.Result)
|
||||
{
|
||||
newdata.Add(new Hotels() {
|
||||
Id = item.ID,
|
||||
Name = item.Name,
|
||||
Status = item.Status,
|
||||
Desc = item.Remark,
|
||||
CreateTime = item.CreatDate,
|
||||
GroupId = item.SysHotelGroupID,
|
||||
IsApprove = item.IsApprove?1:0,
|
||||
Code = item.Code.ToString()
|
||||
});
|
||||
}
|
||||
return newdata;
|
||||
}
|
||||
//return resdata.Result;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取酒店组 全部酒店组信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<HotelGroups> GetHotelGroups()
|
||||
{
|
||||
var res = new Dictionary<string, dynamic>();
|
||||
res.Add("jsonData", JsonConvert.SerializeObject(new { key = Key }));
|
||||
var resdata = Post<ReturnData<List<HotelGroups>>>(Url + "GetHotelGroupList", res);
|
||||
if (resdata != null && resdata.IsSuccess)
|
||||
return resdata.Result;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取IP
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <returns></returns>
|
||||
public static dynamic GetIp(string url)
|
||||
{
|
||||
return Get<Data>(url);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取ip的帮助类
|
||||
/// </summary>
|
||||
public class Data
|
||||
{
|
||||
public int status { get; set; }
|
||||
public string t { get; set; }
|
||||
public string set_cache_time { get; set; }
|
||||
public List<dynamic> data { get; set; }
|
||||
}
|
||||
|
||||
public class ReturnData<T>
|
||||
{
|
||||
public bool IsSuccess { get; set; }
|
||||
public T Result{ get; set; }
|
||||
}
|
||||
private static T Get<T>(string url, int Timeout = 10000)
|
||||
{
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
request.Method = "GET";
|
||||
request.ContentType = "text/html;charset=UTF-8";
|
||||
request.UserAgent = null;
|
||||
request.Timeout = Timeout;
|
||||
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
||||
Stream myResponseStream = response.GetResponseStream();
|
||||
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
|
||||
string retString = myStreamReader.ReadToEnd();
|
||||
myStreamReader.Close();
|
||||
myResponseStream.Close();
|
||||
if (!string.IsNullOrEmpty(retString))
|
||||
return JsonConvert.DeserializeObject<T>(retString);
|
||||
else
|
||||
return default(T);
|
||||
}
|
||||
/// <summary>
|
||||
/// 指定Post地址使用Get 方式获取全部字符串
|
||||
/// </summary>
|
||||
/// <param name="url">请求后台地址</param>
|
||||
/// <returns></returns>
|
||||
private static T Post<T>(string url, Dictionary<string, dynamic> dic)
|
||||
{
|
||||
string result = "";
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
|
||||
req.Method = "POST";
|
||||
req.ContentType = "application/x-www-form-urlencoded";
|
||||
#region 添加Post 参数
|
||||
StringBuilder builder = new StringBuilder();
|
||||
int i = 0;
|
||||
foreach (var item in dic)
|
||||
{
|
||||
if (i > 0)
|
||||
builder.Append("&");
|
||||
builder.AppendFormat("{0}={1}", item.Key, item.Value);
|
||||
i++;
|
||||
}
|
||||
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
|
||||
req.ContentLength = data.Length;
|
||||
using (Stream reqStream = req.GetRequestStream())
|
||||
{
|
||||
reqStream.Write(data, 0, data.Length);
|
||||
reqStream.Close();
|
||||
}
|
||||
#endregion
|
||||
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
|
||||
Stream stream = resp.GetResponseStream();
|
||||
//获取响应内容
|
||||
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
|
||||
{
|
||||
result = reader.ReadToEnd();
|
||||
}
|
||||
try
|
||||
{
|
||||
if (!string.IsNullOrEmpty(result))
|
||||
return JsonConvert.DeserializeObject<T>(result);
|
||||
else
|
||||
{
|
||||
Logs.WriteTimingUDPLog(result);
|
||||
return default(T);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelp.WriteExceptionLog(ex);
|
||||
return default(T);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user