321 lines
9.7 KiB
C#
321 lines
9.7 KiB
C#
using Face.Domain.Entities;
|
|
using Face.Services.Enums;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Face.Domain.ViewModels;
|
|
using Newtonsoft.Json;
|
|
using System.IO;
|
|
using System.Net;
|
|
using Face.Services.Manager;
|
|
using SqlSugar;
|
|
|
|
namespace Face.Services.Cache
|
|
{
|
|
/// <summary>
|
|
/// 缓存
|
|
/// </summary>
|
|
public static class CacheHelp
|
|
{
|
|
|
|
|
|
|
|
private static readonly string FaceListKsy = "sysFaceList";//人脸机列表
|
|
private static readonly string HotelListKsy = "sysHotelslList";//酒店列表
|
|
private static readonly string RoomCustomerKsy = "sysRoomCustomerList";//入住客人信息列表
|
|
private static readonly string RoomCheckKey = "sysRoomCheckKeyList";//开放入住信息
|
|
private static readonly string HotelGroupKey = "sysHotelGroupList";
|
|
private static readonly string sysUserOperationKey = "UserOperation_";//用户当前选择库
|
|
private static readonly string RoomGroupKey = "sysRoomGroupList";
|
|
private static readonly string testinfo = "systest";
|
|
|
|
#region Hash缓存前缀
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 获取写入酒店列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static List<Hotels> GetHotelslist()
|
|
{
|
|
return BaseCacheHelp.GetCache(HotelListKsy, () =>
|
|
{
|
|
var list = new List<Hotels>();
|
|
|
|
list = SqlSugarBase.authoriydb.Queryable<Hotels>().ToList();
|
|
|
|
return list;
|
|
});
|
|
}
|
|
/// <summary>
|
|
/// 删除酒店缓存
|
|
/// </summary>
|
|
public static void ClearHotelList()
|
|
{
|
|
|
|
BaseCacheHelp.ClearCache(HotelListKsy);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 用户当前选择库
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <param name="dbID"></param>
|
|
/// <returns></returns>
|
|
public static int GetUserOperation(string userName, int dbID = 0)
|
|
{
|
|
if (dbID == 0)
|
|
{
|
|
return BaseCacheHelp.GetCache(sysUserOperationKey + userName, () =>
|
|
{
|
|
return dbID;
|
|
});
|
|
}
|
|
else
|
|
{
|
|
BaseCacheHelp.SetCache(sysUserOperationKey + userName, () =>
|
|
{
|
|
return dbID;
|
|
});
|
|
return dbID;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 获取写入人脸机列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static List<DeviceManage> GetFaceList()
|
|
{
|
|
|
|
return BaseCacheHelp.GetCache(FaceListKsy, () =>
|
|
{
|
|
var list = new List<DeviceManage>();
|
|
using (SqlSugarClient db = SqlSugarBase.GesmartDb())
|
|
{
|
|
list = db.Queryable<DeviceManage>().ToList();
|
|
}
|
|
return list;
|
|
});
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取总数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int Geiface(string name,int i)
|
|
{
|
|
|
|
return BaseCacheHelp.GetCache(name, () =>
|
|
{
|
|
return i;
|
|
});
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 删除人脸机缓存
|
|
/// </summary>
|
|
public static void ClearFaceList()
|
|
{
|
|
BaseCacheHelp.ClearCache(FaceListKsy);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 删除入住客人信息
|
|
/// </summary>
|
|
public static void ClearRoomCustomer()
|
|
{
|
|
BaseCacheHelp.ClearCache(RoomCustomerKsy);
|
|
}
|
|
/// <summary>
|
|
/// 获取开房入住信息列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static List<Hosts> GetRoomCheck()
|
|
{
|
|
return BaseCacheHelp.GetCache(RoomCheckKey, () =>
|
|
{
|
|
var list = new List<Hosts>();
|
|
|
|
list =SqlSugarBase.authoriydb.Queryable<Hosts>().ToList();
|
|
|
|
return list;
|
|
});
|
|
}
|
|
/// <summary>
|
|
/// 删除开房入住信息
|
|
/// </summary>
|
|
public static void ClearRoomCheck()
|
|
{
|
|
BaseCacheHelp.ClearCache(RoomCheckKey);
|
|
}
|
|
/// <summary>
|
|
/// 获取酒店项目信息列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static List<HotelGroups> GetHotelGroup()
|
|
{
|
|
return BaseCacheHelp.GetCache(HotelGroupKey, () =>
|
|
{
|
|
var list = new List<HotelGroups>();
|
|
|
|
list = SqlSugarBase.authoriydb.Queryable<HotelGroups>().ToList();
|
|
|
|
return list;
|
|
});
|
|
}
|
|
//从数据库查询
|
|
public static List<HotelGroups> GetHotelGroup2()
|
|
{
|
|
var list = new List<HotelGroups>();
|
|
|
|
list = SqlSugarBase.authoriydb.Queryable<HotelGroups>().ToList();
|
|
|
|
return list;
|
|
}
|
|
/// <summary>
|
|
/// 删除酒店项目信息
|
|
/// </summary>
|
|
public static void ClearHotelGroup()
|
|
{
|
|
BaseCacheHelp.ClearCache(HotelGroupKey);
|
|
}
|
|
/// <summary>
|
|
/// 获取房间号信息列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static List<Hosts> GetRoomGroup()
|
|
{
|
|
return BaseCacheHelp.GetCache(RoomGroupKey, () =>
|
|
{
|
|
var list = new List<Hosts>();
|
|
|
|
list = SqlSugarBase.authoriydb.Queryable<Hosts>().ToList();
|
|
|
|
return list;
|
|
});
|
|
}
|
|
public static List<Interfacefield> GetInInfoList()
|
|
{
|
|
var res =BaseCacheHelp.GetCache(testinfo, () =>
|
|
{
|
|
return new List<Interfacefield>();
|
|
});
|
|
//foreach (var info in res)
|
|
//{
|
|
// //已经过期的
|
|
// if( DateTime.Now - info.CheckTime.AddHours(1) > TimeSpan.FromSeconds(0))
|
|
// {
|
|
// OutClass oc = new OutClass
|
|
// {
|
|
// HotelCode = info.HotelCode,
|
|
// roomid = info.roomid,
|
|
// checkOutTime = DateTime.Now
|
|
|
|
// };
|
|
// outinfo(oc);
|
|
// continue;
|
|
// }
|
|
// //未过期的
|
|
// var time = info.CheckTime.AddMinutes(5) - DateTime.Now;
|
|
// Task.Factory.StartNew(async () => {
|
|
// await Task.Delay(time);
|
|
// OutClass oc = new OutClass
|
|
// {
|
|
// HotelCode = info.HotelCode,
|
|
// roomid = info.roomid,
|
|
// checkOutTime = DateTime.Now
|
|
|
|
// };
|
|
// outinfo(oc);
|
|
// });
|
|
//}
|
|
return res;
|
|
}
|
|
|
|
public static void SetInInfoList(Interfacefield info)
|
|
{
|
|
|
|
var time = info.CheckTime.AddMinutes(3) - DateTime.Now ;
|
|
Task.Factory.StartNew( ()=> {
|
|
Task.Delay(time).Wait();
|
|
OutClass oc = new OutClass
|
|
{
|
|
HotelCode = info.HotelCode,
|
|
roomid = info.roomid,
|
|
checkOutTime = DateTime.Now
|
|
|
|
};
|
|
outinfo(oc);
|
|
});
|
|
BaseCacheHelp.SetCache(testinfo,new Func<List<Interfacefield>>(() =>
|
|
{
|
|
var data = GetInInfoList();
|
|
data.Add(info);
|
|
data = data.Where(x => DateTime.Now - x.CheckTime <= TimeSpan.FromHours(3)).ToList();
|
|
return data;
|
|
}));
|
|
}
|
|
/// <summary>
|
|
/// 删除房间信息
|
|
/// </summary>
|
|
public static void ClearRoomGroup()
|
|
{
|
|
BaseCacheHelp.ClearCache(RoomGroupKey);
|
|
}
|
|
|
|
public static bool outinfo(OutClass po)//退房测试
|
|
{
|
|
try
|
|
{
|
|
string url = "http://face.blv-oa.com/Interface/CheckOut";
|
|
//InterfaceController li = new InterfaceController();
|
|
//li.CheckOut("abc", JsonConvert.SerializeObject(
|
|
// po
|
|
// ));
|
|
string postData = $"key=abc&data={JsonConvert.SerializeObject(po)}";
|
|
WebRequest request = WebRequest.Create(url);
|
|
request.Method = "Post";
|
|
request.ContentType = "application/x-www-form-urlencoded";
|
|
StreamWriter sw = new StreamWriter(request.GetRequestStream());
|
|
sw.Write(postData);
|
|
sw.Flush();
|
|
|
|
WebResponse response = request.GetResponse();
|
|
Stream s = response.GetResponseStream();
|
|
StreamReader sr = new StreamReader(s, Encoding.GetEncoding("UTF-8"));
|
|
string Show = sr.ReadToEnd();
|
|
ReturnResult info = JsonConvert.DeserializeObject<ReturnResult>(Show);//josn转换实体类
|
|
sw.Dispose();
|
|
sw.Close();
|
|
sr.Dispose();
|
|
sr.Close();
|
|
s.Dispose();
|
|
s.Close();
|
|
return info.Status == 200;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelp.WriteExceptionLog(ex);
|
|
throw;
|
|
}
|
|
|
|
}
|
|
public class OutClass
|
|
{
|
|
public string HotelCode { get; set; }
|
|
public string roomid { get; set; }
|
|
|
|
public DateTime checkOutTime { get; set; }
|
|
}
|
|
}
|
|
|
|
}
|