添加查询缓存

有一些效果,原来10分钟就会崩溃的,现在延长了一个小时,不过有的时候,还是会崩溃
This commit is contained in:
2025-12-29 15:03:58 +08:00
parent 1ec13289dc
commit f9fe3a36e6
11 changed files with 550 additions and 280 deletions

Binary file not shown.

View File

@@ -6,6 +6,30 @@ using System.Text;
using System.Collections.Concurrent;
namespace Common
{
public class WebAPI_TongJi
{
public static long GetRoomAirList = 0;
public static long SetRCUAir = 0;
public static long GetRoomSceneList = 0;
public static long SetRCUScene = 0;
public static long GetRoomLightList =0;
public static long SetRCULight = 0;
public static long GetRoomCurtainList = 0;
public static long SetRCUCurtain = 0;
public static long GetRoomServiceList = 0;
public static long SetRCUService = 0;
public static long GetOperationLog = 0;
public static long GetRoomMusicList = 0;
public static long SetRCUMusic = 0;
public static long GetRCUStatus = 0;
public static long GetAirDetectList = 0;
public static long GetHostFaultList = 0;
public static long GetRoomTypeAndModalsList = 0;
public static long GetRCUInfoForPDU = 0;
public static long GetSessionKey = 0;
public static long GetPhoneNumber = 0;
public static long GetHotelInfoForWX = 0;
}
public class YUANZI_TongJi
{
public static long TotalReceiveCount = 0;

View File

@@ -64,8 +64,8 @@ namespace Common
}
catch (Exception ex)
{
string Key = "HttpRequest_" + resp.code + "_" + resp.roomNumber;
MemoryCacheHelper.Set(Key, 1, DateTimeOffset.Now.AddMinutes(10));
//string Key = "HttpRequest_" + resp.code + "_" + resp.roomNumber;
//MemoryCacheHelper.Set(Key, 1, DateTimeOffset.Now.AddMinutes(10));
logger.Error(string.Format("酒店({0})客房({1})调用设备状态或异常推送接口({2})失败:{3},数据:{4}", resp.code, resp.roomNumber, url, ex.Message, param));
return false;
}

View File

@@ -122,6 +122,7 @@ namespace CommonEntity
public static string KongTiaoAlert = "KT#Alert";
public static string WebChatDeviceFault = "WXFault";
public static string DuOSToken = "DuOSToken";
}
public class ChangLiangValue
{

View File

@@ -177,6 +177,7 @@
<property name="HostRepository" ref="Repository.Host" />
<property name="SysHotelRepository" ref="Repository.SysHotel" />
<property name="HostModalRepository" ref="Repository.HostModal" />
<property name="SysOauth2Repository" ref="Repository.SysOauth2" />
</object>
<object id="RCUHost.TFTPReceiver" type="RCUHost.Implement.TFTPReceiver, RCUHost" parent="RCUHost.GenericReceiverBase" singleton="true">

View File

@@ -1514,7 +1514,8 @@ namespace RCUHost.Implement
//添加统计信息
StepTongJi.SendInfo(3, "Task分配成功即将开始执行", context.MessageID, context.IsMonitor);
if (cmdType == 0x36)
byte cmdTypeTTT = context.SystemHeader.Value.CmdType;
if (cmdTypeTTT == 0x36)
{
IReceiver receiver = receivers[(CommandType)0x36];
if (receiver != null)

View File

@@ -1035,8 +1035,14 @@ namespace RCUHost.Implement
var d = hhh.RoomNumber;
foreach (string cuid in a)//多个英文逗号隔开
{
TianMaoOperation.PostWebRequestToTianMao("CheckoutWithAK",
Newtonsoft.Json.JsonConvert.SerializeObject(new { HotelId = cuid.Split('&')[0], RoomNo = cuid.Split('&')[1] }), c, d);//重置天猫精灵
string c1 = cuid.Split('&')[0];
string c2 = cuid.Split('&')[1];
if (!string.IsNullOrEmpty(c1) && !string.IsNullOrEmpty(c2))
{
TianMaoOperation.PostWebRequestToTianMao("CheckoutWithAK",
Newtonsoft.Json.JsonConvert.SerializeObject(new { HotelId = c1, RoomNo = c2 }), c, d);//重置天猫精灵
}
Interface3Log w1 = new Interface3Log();
w1.HotelCode = c;

View File

@@ -565,28 +565,41 @@ namespace Service.Implement
{
if (!string.IsNullOrEmpty(host.XiaoDuCUID))
{
string accessToken = SysOauth2Repository.GetXiaoDuToken();
string accessToken = "";
string KKK = CacheKey.DuOSToken;
var ooo = MemoryCacheHelper.Get(KKK);
if (ooo != null)
{
accessToken = ooo.ToString();
}
else
{
accessToken = SysOauth2Repository.GetXiaoDuToken();
MemoryCacheHelper.Set(KKK,accessToken,DateTimeOffset.Now.AddMinutes(20));
}
if (!string.IsNullOrEmpty(accessToken) && host.SysHotel.IsPowerOffResetXiaoDu)
{
System.Threading.Tasks.Task.Factory.StartNew(() =>
foreach (string cuid in host.XiaoDuCUID.Split(','))//多个小度英文逗号隔开
{
foreach (string cuid in host.XiaoDuCUID.Split(','))//多个小度英文逗号隔开
{
XiaoDuOperation.PostWebRequestToXiaoDu(accessToken, cuid, new XiaoDuParamJson() { method = "reset" }, host.SysHotel.Code, host.RoomNumber);//重置小度
}
});
XiaoDuOperation.PostWebRequestToXiaoDu(accessToken, cuid, new XiaoDuParamJson() { method = "reset" }, host.SysHotel.Code, host.RoomNumber);//重置小度
}
//Task.Factory.StartNew(() =>
//{
//});
}
}
if (!string.IsNullOrEmpty(host.TianMaoCUID))
{
System.Threading.Tasks.Task.Factory.StartNew(() =>
foreach (string cuid in host.TianMaoCUID.Split(','))//多个英文逗号隔开
{
foreach (string cuid in host.TianMaoCUID.Split(','))//多个英文逗号隔开
{
TianMaoOperation.PostWebRequestToTianMao("CheckoutWithAK",
Newtonsoft.Json.JsonConvert.SerializeObject(new { HotelId = cuid.Split('&')[0], RoomNo = cuid.Split('&')[1] }), host.SysHotel.Code, host.RoomNumber);//重置天猫精灵
}
});
TianMaoOperation.PostWebRequestToTianMao("CheckoutWithAK",
Newtonsoft.Json.JsonConvert.SerializeObject(new { HotelId = cuid.Split('&')[0], RoomNo = cuid.Split('&')[1] }), host.SysHotel.Code, host.RoomNumber);//重置天猫精灵
}
//Task.Factory.StartNew(() =>
//{
//});
}
}
@@ -595,12 +608,34 @@ namespace Service.Implement
if (roomStatus.ID == 8)
{
#region 退
HotelSeason hotelSeason = HotelSeasonRepository.LoadByHotelID(host.SysHotel.ID);//获取该酒店下季节设置记录
HotelSeason hotelSeason = null;
string KKKOne = "HotelSeason_" + host.SysHotel.ID;
var ooss = MemoryCacheHelper.Get(KKKOne);
if (ooss != null)
{
hotelSeason = ooss as HotelSeason;
}
else
{
hotelSeason = HotelSeasonRepository.LoadByHotelID(host.SysHotel.ID);//获取该酒店下季节设置记录
MemoryCacheHelper.Set(KKKOne, hotelSeason, DateTimeOffset.Now.AddMinutes(20));
}
if (hotelSeason != null)
{
//条件1出租后2取电后3断电后
List<HotelAirControl> list = HotelAirControlRepository.LoadAll(host.SysHotel.ID, 4, true);
List<HostModal> hostModals = HostModalRepository.LoadByHostID(host.ID).Where(r => r.Modal.Type == DeviceType.AirConditioner && r.Modal.ActiveIndicator).ToList();//获取启用的空调回路
string KKK = "HostModalRepository_" + host.ID;
List<HostModal> hostModals = null;
var ooo = MemoryCacheHelper.Get(KKK);
if (ooo != null)
{
hostModals = ooo as List<HostModal>;
}
else
{
hostModals = HostModalRepository.LoadByHostID(host.ID).Where(r => r.Modal.Type == DeviceType.AirConditioner && r.Modal.ActiveIndicator).ToList();//获取启用的空调回路
MemoryCacheHelper.Set(KKK, hostModals, DateTimeOffset.Now.AddMinutes(20));
}
if (list.Count > 0 && hostModals.Count > 0)
{
System.Reflection.PropertyInfo[] properties = typeof(HotelSeason).GetProperties();//获取所有属性

View File

@@ -604,6 +604,7 @@ namespace WebSite.Controllers
//return Json(new { IsSuccess = false, Result = "接口修改调整" }, JsonRequestBehavior.AllowGet);
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetRoomAirList);
WebApiInvoke_FenXi("GetRoomAirList");
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
@@ -646,7 +647,7 @@ namespace WebSite.Controllers
};
list.Add(air);
}
HttpContext.Cache.Insert(KKK, list, null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration);
HttpContext.Cache.Insert(KKK, list, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration);
}
string end_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
@@ -703,6 +704,7 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.SetRCUAir);
WebApiInvoke_FenXi("SetRCUAir");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
@@ -798,32 +800,45 @@ namespace WebSite.Controllers
public ActionResult GetRoomSceneList(string jsonData)
{
Interlocked.Increment(ref WebAPI_TongJi.GetRoomSceneList);
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
WebApiInvoke_FenXi("GetRoomSceneList");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
Host host = CheckRoomNumber(jData["code"].ToString(), jData["creatDate"].ToString(), ref msg, ref hotelID, roomNumber);
if (host == null)
{
return Json(new { IsSuccess = false, Result = msg }, JsonRequestBehavior.AllowGet);
}
IList<RoomTypeScene> modals = RoomTypeSceneManager.LoadAll().Where(r => r.RoomType.ID == host.RoomType.ID && r.ActiveIndicator).OrderBy(r => r.Sort).ToList();
if (modals == null || modals.Count < 1)
{
return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]未配置场景" }, JsonRequestBehavior.AllowGet);
}
string code = jData["code"].ToString();
string cd = jData["creatDate"].ToString();
List<SceneState> list = new List<SceneState>();
foreach (var modal in modals)
string KKK = "GetRoomSceneList_" + code + "_" + roomNumber + "_" + cd;
var ooo = HttpContext.Cache.Get(KKK);
if (ooo != null)
{
SceneState sceneState = new SceneState
list = ooo as List<SceneState>;
}
else
{
Host host = CheckRoomNumber(code, cd, ref msg, ref hotelID, roomNumber);
if (host == null)
{
SceneID = modal.ID,
Name = modal.Name,
Icon = modal.Icon
};
list.Add(sceneState);
return Json(new { IsSuccess = false, Result = msg }, JsonRequestBehavior.AllowGet);
}
IList<RoomTypeScene> modals = RoomTypeSceneManager.LoadAll().Where(r => r.RoomType.ID == host.RoomType.ID && r.ActiveIndicator).OrderBy(r => r.Sort).ToList();
if (modals == null || modals.Count < 1)
{
return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]未配置场景" }, JsonRequestBehavior.AllowGet);
}
foreach (var modal in modals)
{
SceneState sceneState = new SceneState
{
SceneID = modal.ID,
Name = modal.Name,
Icon = modal.Icon
};
list.Add(sceneState);
}
HttpContext.Cache.Insert(KKK, list, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 30, 0));
}
string end_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
@@ -846,6 +861,7 @@ namespace WebSite.Controllers
public ActionResult SetRCUScene(string jsonData)
{
Interlocked.Increment(ref WebAPI_TongJi.SetRCUScene);
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
@@ -864,7 +880,18 @@ namespace WebSite.Controllers
string sceneID = jData["sceneID"].ToString();//场景ID1、2、3
//string status = jData["status"].ToString();//状态1开2关
var scene = RoomTypeSceneManager.Get(int.Parse(sceneID));
RoomTypeScene scene = null;
string KKK = "SetSceneData_" + sceneID;
var ooo = HttpContext.Cache.Get(KKK);
if (ooo != null)
{
scene = ooo as RoomTypeScene;
}
else
{
scene = RoomTypeSceneManager.Get(int.Parse(sceneID));
HttpContext.Cache.Insert(KKK, scene, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 30, 0));
}
if (scene == null)
{
return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]无效的场景" }, JsonRequestBehavior.AllowGet);
@@ -892,58 +919,72 @@ namespace WebSite.Controllers
/// <returns></returns>
public ActionResult GetRoomLightList(string jsonData)
{
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
//return Json(new { IsSuccess = false, Result = "接口修改调整" }, JsonRequestBehavior.AllowGet);
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetRoomLightList);
WebApiInvoke_FenXi("GetRoomLightList");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
Host host = CheckRoomNumber(jData["code"].ToString(), jData["creatDate"].ToString(), ref msg, ref hotelID, roomNumber);
string code = jData["code"].ToString();
string cd = jData["creatDate"].ToString();
Host host = CheckRoomNumber(code, cd, ref msg, ref hotelID, roomNumber);
if (host == null)
{
return Json(new { IsSuccess = false, Result = msg }, JsonRequestBehavior.AllowGet);
}
//IList<HostModal> hostModals = HostModalManager.LoadAll().Where(r => (r.Modal.Type == DeviceType.Relay || r.Modal.Type == DeviceType.Dimmer
// || r.Modal.Type == DeviceType.PWMDimmer || r.Modal.Type == DeviceType.Traic || r.Modal.Type == DeviceType.PWMExpand || r.Modal.Type == DeviceType.PBLED)
// && r.HostID == host.ID && r.Modal.ActiveIndicator == true).ToList();
IList<HostModal> hostModals = HostModalManager.LoadByHostID(host.ID).Where(r => r.Modal.WXActiveIndicator).ToList();
//if ((hostModals1 == null || hostModals1.Count < 1) && (hostModals2 == null || hostModals2.Count < 1))
//{
// return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]未配置灯光或调光" }, JsonRequestBehavior.AllowGet);
//}
IList<Light> list = new List<Light>();
foreach (HostModal modal in hostModals)
string KKK = "GetRoomLightList_" + code + "_" + roomNumber + "_" + cd;
var QQQ = HttpContext.Cache.Get(KKK);
if (QQQ != null)
{
switch (modal.Modal.Type)
list = QQQ as IList<Light>;
}
else
{
//IList<HostModal> hostModals = HostModalManager.LoadAll().Where(r => (r.Modal.Type == DeviceType.Relay || r.Modal.Type == DeviceType.Dimmer
// || r.Modal.Type == DeviceType.PWMDimmer || r.Modal.Type == DeviceType.Traic || r.Modal.Type == DeviceType.PWMExpand || r.Modal.Type == DeviceType.PBLED)
// && r.HostID == host.ID && r.Modal.ActiveIndicator == true).ToList();
IList<HostModal> hostModals = HostModalManager.LoadByHostID(host.ID).Where(r => r.Modal.WXActiveIndicator).ToList();
//if ((hostModals1 == null || hostModals1.Count < 1) && (hostModals2 == null || hostModals2.Count < 1))
//{
// return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]未配置灯光或调光" }, JsonRequestBehavior.AllowGet);
//}
foreach (HostModal modal in hostModals)
{
case DeviceType.Relay://主机继电器
case DeviceType.Dimmer://LED调光
case DeviceType.PWMDimmer://PWM调光
case DeviceType.PWMExpand://PWM扩展
case DeviceType.PBLED:
case DeviceType.Traic://可控硅调光
case DeviceType.Strip://灯带调光
case DeviceType.A9IORelay:
case DeviceType.LVout://弱电输出
case DeviceType.Expand://扩展继电器
case DeviceType.PB20:
case DeviceType.PB20_LD:
case DeviceType.PB20_LS:
Light light = new Light
{
Name = ReturnNameByLanguage(modal.Modal.Name, modal.Modal.EnglishName, modal.Modal.TWName),
ModalAddress = modal.Modal.ModalAddress,
Status = modal.Status,
Brightness = modal.Brightness
};
list.Add(light);
break;
switch (modal.Modal.Type)
{
case DeviceType.Relay://主机继电器
case DeviceType.Dimmer://LED调光
case DeviceType.PWMDimmer://PWM调光
case DeviceType.PWMExpand://PWM扩展
case DeviceType.PBLED:
case DeviceType.Traic://可控硅调光
case DeviceType.Strip://灯带调光
case DeviceType.A9IORelay:
case DeviceType.LVout://弱电输出
case DeviceType.Expand://扩展继电器
case DeviceType.PB20:
case DeviceType.PB20_LD:
case DeviceType.PB20_LS:
Light light = new Light
{
Name = ReturnNameByLanguage(modal.Modal.Name, modal.Modal.EnglishName, modal.Modal.TWName),
ModalAddress = modal.Modal.ModalAddress,
Status = modal.Status,
Brightness = modal.Brightness
};
list.Add(light);
break;
}
}
HttpContext.Cache.Insert(KKK, list, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 30, 0));
}
string end_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
TongJi(jsonData, start_time, end_time, jData, "GetRoomLightList");
//SaveSystemLog(AuthorityID, HttpContext.InnerLanguage("LightControl"), "获取客房" + roomNumber + "灯光信息", true, "api", hotelID);
return Json(new { IsSuccess = true, Result = list }, JsonRequestBehavior.AllowGet);
@@ -964,6 +1005,7 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.SetRCULight);
WebApiInvoke_FenXi("SetRCULight");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
@@ -1014,29 +1056,42 @@ namespace WebSite.Controllers
//return Json(new { IsSuccess = false, Result = "接口修改调整" }, JsonRequestBehavior.AllowGet);
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetRoomCurtainList);
WebApiInvoke_FenXi("GetRCUStatus");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
Host host = CheckRoomNumber(jData["code"].ToString(), jData["creatDate"].ToString(), ref msg, ref hotelID, roomNumber);
string code = jData["code"].ToString();
string cd = jData["creatDate"].ToString();
Host host = CheckRoomNumber(code, cd, ref msg, ref hotelID, roomNumber);
if (host == null)
{
return Json(new { IsSuccess = false, Result = msg }, JsonRequestBehavior.AllowGet);
}
IList<HostModal> hostModals = HostModalManager.Load(host.ID, DeviceType.Curtain).Where(r => r.Modal.WXActiveIndicator).ToList();
if (hostModals == null || hostModals.Count < 1)
{
return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]未配置窗帘" }, JsonRequestBehavior.AllowGet);
}
IList<Curtain> list = new List<Curtain>();
foreach (HostModal modal in hostModals)
string KKK = "GetRoomCurtainList_" + code + "_" + roomNumber + "_" + code;
var data = HttpContext.Cache.Get(KKK);
if (data != null)
{
Curtain curtain = new Curtain
list = data as IList<Curtain>;
}
else
{
IList<HostModal> hostModals = HostModalManager.Load(host.ID, DeviceType.Curtain).Where(r => r.Modal.WXActiveIndicator).ToList();
if (hostModals == null || hostModals.Count < 1)
{
Name = ReturnNameByLanguage(modal.Modal.Name, modal.Modal.EnglishName, modal.Modal.TWName),
ModalAddress = modal.Modal.ModalAddress,
Status = modal.Status
};
list.Add(curtain);
return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]未配置窗帘" }, JsonRequestBehavior.AllowGet);
}
foreach (HostModal modal in hostModals)
{
Curtain curtain = new Curtain
{
Name = ReturnNameByLanguage(modal.Modal.Name, modal.Modal.EnglishName, modal.Modal.TWName),
ModalAddress = modal.Modal.ModalAddress,
Status = modal.Status
};
list.Add(curtain);
}
HttpContext.Cache.Insert(KKK, list, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 30, 0));
}
string end_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
@@ -1062,6 +1117,7 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.SetRCUCurtain);
WebApiInvoke_FenXi("SetRCUCurtain");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
@@ -1111,6 +1167,7 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetRoomMusicList);
WebApiInvoke_FenXi("GetRoomMusicList");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
@@ -1161,6 +1218,7 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.SetRCUMusic);
WebApiInvoke_FenXi("SetRCUMusic");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
@@ -1251,31 +1309,44 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetRoomServiceList);
WebApiInvoke_FenXi("GetRoomServiceList");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
Host host = CheckRoomNumber(jData["code"].ToString(), jData["creatDate"].ToString(), ref msg, ref hotelID, roomNumber);
string code = jData["code"].ToString();
string cd = jData["creatDate"].ToString();
Host host = CheckRoomNumber(code, cd, ref msg, ref hotelID, roomNumber);
if (host == null)
{
return Json(new { IsSuccess = false, Result = msg }, JsonRequestBehavior.AllowGet);
}
IList<HostModal> hostModals = HostModalManager.Load(host.ID, DeviceType.ServiceInfo).Where(r => r.Modal.WXActiveIndicator).ToList();
if (hostModals == null || hostModals.Count < 1)
{
return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]未配置服务信息" }, JsonRequestBehavior.AllowGet);
}
//logger.Error(string.Format("api获取酒店{0}客房{1}服务列表,来自{2}", jData["code"].ToString(), roomNumber, GetClientIP()));
IList<Light> list = new List<Light>();
foreach (HostModal modal in hostModals)
string KKK = "GetRoomServiceList_" + code + "_" + roomNumber + "_" + cd;
var data = HttpContext.Cache.Get(KKK);
if (data != null)
{
Light light = new Light
list = data as IList<Light>;
}
else
{
IList<HostModal> hostModals = HostModalManager.Load(host.ID, DeviceType.ServiceInfo).Where(r => r.Modal.WXActiveIndicator).ToList();
if (hostModals == null || hostModals.Count < 1)
{
Name = ReturnNameByLanguage(modal.Modal.Name, modal.Modal.EnglishName, modal.Modal.TWName),
ModalAddress = modal.Modal.ModalAddress,
Status = modal.Status
};
list.Add(light);
return Json(new { IsSuccess = false, Result = "房号[" + roomNumber + "]未配置服务信息" }, JsonRequestBehavior.AllowGet);
}
//logger.Error(string.Format("api获取酒店{0}客房{1}服务列表,来自{2}", jData["code"].ToString(), roomNumber, GetClientIP()));
foreach (HostModal modal in hostModals)
{
Light light = new Light
{
Name = ReturnNameByLanguage(modal.Modal.Name, modal.Modal.EnglishName, modal.Modal.TWName),
ModalAddress = modal.Modal.ModalAddress,
Status = modal.Status
};
list.Add(light);
}
HttpContext.Cache.Insert(KKK, list, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 30, 0));
}
string end_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
@@ -1299,6 +1370,7 @@ namespace WebSite.Controllers
{
try
{
Interlocked.Increment(ref WebAPI_TongJi.SetRCUService);
WebApiInvoke_FenXi("SetRCUService");
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
@@ -1389,7 +1461,7 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetOperationLog);
WebApiInvoke_FenXi("GetOperationLog");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
Host host = CheckRoomNumber(jData["code"].ToString(), jData["creatDate"].ToString(), ref msg, ref hotelID, "");
@@ -1444,26 +1516,39 @@ namespace WebSite.Controllers
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetAirDetectList);
WebApiInvoke_FenXi("GetAirDetectList");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
Host host = CheckRoomNumber(jData["code"].ToString(), jData["creatDate"].ToString(), ref msg, ref hotelID, roomNumber);
if (host == null)
{
return Json(new { IsSuccess = false, Result = msg }, JsonRequestBehavior.AllowGet);
}
string code = jData["code"].ToString();
string cd = jData["creatDate"].ToString();
IList<Light> list = new List<Light>();
var hostModals = HostModalManager.Load(host.ID, DeviceType.AirDetect).Where(r => r.Modal.WXActiveIndicator);
foreach (HostModal modal in hostModals)
string KKK = "GetAirDetectList_" + code + "_" + roomNumber + "_" + cd;
var ooo = HttpContext.Cache.Get(KKK);
if (ooo != null)
{
Light light = new Light
list = ooo as IList<Light>;
}
else
{
Host host = CheckRoomNumber(code, cd, ref msg, ref hotelID, roomNumber);
if (host == null)
{
Name = ReturnNameByLanguage(modal.Modal.Name, modal.Modal.EnglishName, modal.Modal.TWName),
ModalAddress = modal.Modal.ModalAddress,
Brightness = modal.Brightness
};
list.Add(light);
return Json(new { IsSuccess = false, Result = msg }, JsonRequestBehavior.AllowGet);
}
var hostModals = HostModalManager.Load(host.ID, DeviceType.AirDetect).Where(r => r.Modal.WXActiveIndicator);
foreach (HostModal modal in hostModals)
{
Light light = new Light
{
Name = ReturnNameByLanguage(modal.Modal.Name, modal.Modal.EnglishName, modal.Modal.TWName),
ModalAddress = modal.Modal.ModalAddress,
Brightness = modal.Brightness
};
list.Add(light);
}
HttpContext.Cache.Insert(KKK, list, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 30, 0));
}
string end_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
@@ -1494,7 +1579,7 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetHostFaultList);
WebApiInvoke_FenXi("GetHostFaultList");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string roomNumber = jData["roomNumber"].ToString();
@@ -1623,7 +1708,7 @@ namespace WebSite.Controllers
string start_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetRoomTypeAndModalsList);
WebApiInvoke_FenXi("GetRoomTypeAndModalsList");
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
Host host1 = CheckRoomNumber(jData["code"].ToString(), jData["creatDate"].ToString(), ref msg, ref hotelID, "");
@@ -2465,6 +2550,7 @@ namespace WebSite.Controllers
{
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetSessionKey);
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string code = jData["code"].ToString();
string appid = jData["appid"].ToString();
@@ -2501,6 +2587,7 @@ namespace WebSite.Controllers
{
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetPhoneNumber);
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string encryptedData = jData["encrypted_data"].ToString();
string iv = jData["iv"].ToString();
@@ -2539,6 +2626,7 @@ namespace WebSite.Controllers
{
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetHotelInfoForWX);
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
string phone = jData["phone"].ToString();
if (string.IsNullOrEmpty(phone))
@@ -3210,6 +3298,7 @@ namespace WebSite.Controllers
{
try
{
Interlocked.Increment(ref WebAPI_TongJi.GetRCUInfoForPDU);
JObject jData = (JObject)JsonConvert.DeserializeObject(jsonData);
Host host1 = CheckRoomNumber(jData["code"].ToString(), jData["creatDate"].ToString(), ref msg, ref hotelID, "");
if (host1 == null && hotelID == 0)
@@ -5284,6 +5373,76 @@ namespace WebSite.Controllers
string mns3 = Newtonsoft.Json.JsonConvert.SerializeObject(ux2);
CSRedisCacheHelper.redis3.Publish("redis-udppackage", mns3);
long l1 = Interlocked.Read(ref WebAPI_TongJi.GetRoomAirList);
long l2 = Interlocked.Read(ref WebAPI_TongJi.SetRCUAir);
long l3 = Interlocked.Read(ref WebAPI_TongJi.GetRoomSceneList);
long l4 = Interlocked.Read(ref WebAPI_TongJi.SetRCUScene);
long l5 = Interlocked.Read(ref WebAPI_TongJi.GetRoomLightList);
long l6 = Interlocked.Read(ref WebAPI_TongJi.SetRCULight);
long l7 = Interlocked.Read(ref WebAPI_TongJi.GetRoomCurtainList);
long l8 = Interlocked.Read(ref WebAPI_TongJi.SetRCUCurtain);
long l9 = Interlocked.Read(ref WebAPI_TongJi.GetRoomServiceList);
long l10 = Interlocked.Read(ref WebAPI_TongJi.SetRCUService);
long l11 = Interlocked.Read(ref WebAPI_TongJi.GetOperationLog);
long l12 = Interlocked.Read(ref WebAPI_TongJi.GetRoomMusicList);
long l13 = Interlocked.Read(ref WebAPI_TongJi.SetRCUMusic);
long l14 = Interlocked.Read(ref WebAPI_TongJi.GetRCUStatus);
long l15 = Interlocked.Read(ref WebAPI_TongJi.GetAirDetectList);
long l16 = Interlocked.Read(ref WebAPI_TongJi.GetHostFaultList);
long l17 = Interlocked.Read(ref WebAPI_TongJi.GetRoomTypeAndModalsList);
long l18 = Interlocked.Read(ref WebAPI_TongJi.GetRCUInfoForPDU);
long l19 = Interlocked.Read(ref WebAPI_TongJi.GetSessionKey);
long l20 = Interlocked.Read(ref WebAPI_TongJi.GetPhoneNumber);
long l21 = Interlocked.Read(ref WebAPI_TongJi.GetHotelInfoForWX);
Dictionary<string, long> dicwebapidata = new Dictionary<string, long>();
dicwebapidata.Add("GetRoomAirList", l1);
dicwebapidata.Add("SetRCUAir", l2);
dicwebapidata.Add("GetRoomSceneList", l3);
dicwebapidata.Add("SetRCUScene", l4);
dicwebapidata.Add("GetRoomLightList", l5);
dicwebapidata.Add("SetRCULight", l6);
dicwebapidata.Add("GetRoomCurtainList", l7);
dicwebapidata.Add("SetRCUCurtain", l8);
dicwebapidata.Add("GetRoomServiceList", l9);
dicwebapidata.Add("SetRCUService", l10);
dicwebapidata.Add("GetOperationLog", l11);
dicwebapidata.Add("GetRoomMusicList", l12);
dicwebapidata.Add("SetRCUMusic", l13);
dicwebapidata.Add("GetRCUStatus", l14);
dicwebapidata.Add("GetAirDetectList", l15);
dicwebapidata.Add("GetHostFaultList", l16);
dicwebapidata.Add("GetRoomTypeAndModalsList", l17);
dicwebapidata.Add("GetRCUInfoForPDU", l18);
dicwebapidata.Add("GetSessionKey", l19);
dicwebapidata.Add("GetPhoneNumber", l20);
dicwebapidata.Add("GetHotelInfoForWX", l21);
CSRedisCacheHelper.Publish("webapidata_consumer", JsonConvert.SerializeObject(dicwebapidata));
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomAirList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUAir, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomSceneList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUScene, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomLightList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCULight, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomCurtainList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUCurtain, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomServiceList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUService, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetOperationLog, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomMusicList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUMusic, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRCUStatus, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetAirDetectList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetHostFaultList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomTypeAndModalsList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRCUInfoForPDU, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetSessionKey, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetPhoneNumber, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetHotelInfoForWX, 0);
//logger.Error("推送的走到这里了");
//DataTongJi.TotalCount.Clear();
Interlocked.Exchange(ref YUANZI_TongJi.TotalReceiveCount, 0);
@@ -5540,6 +5699,75 @@ namespace WebSite.Controllers
string mns3 = Newtonsoft.Json.JsonConvert.SerializeObject(ux2);
CSRedisCacheHelper.redis3.Publish("redis-udppackage", mns3);
long l1 = Interlocked.Read(ref WebAPI_TongJi.GetRoomAirList);
long l2 = Interlocked.Read(ref WebAPI_TongJi.SetRCUAir);
long l3 = Interlocked.Read(ref WebAPI_TongJi.GetRoomSceneList);
long l4 = Interlocked.Read(ref WebAPI_TongJi.SetRCUScene);
long l5 = Interlocked.Read(ref WebAPI_TongJi.GetRoomLightList);
long l6 = Interlocked.Read(ref WebAPI_TongJi.SetRCULight);
long l7 = Interlocked.Read(ref WebAPI_TongJi.GetRoomCurtainList);
long l8 = Interlocked.Read(ref WebAPI_TongJi.SetRCUCurtain);
long l9 = Interlocked.Read(ref WebAPI_TongJi.GetRoomServiceList);
long l10 = Interlocked.Read(ref WebAPI_TongJi.SetRCUService);
long l11 = Interlocked.Read(ref WebAPI_TongJi.GetOperationLog);
long l12 = Interlocked.Read(ref WebAPI_TongJi.GetRoomMusicList);
long l13 = Interlocked.Read(ref WebAPI_TongJi.SetRCUMusic);
long l14 = Interlocked.Read(ref WebAPI_TongJi.GetRCUStatus);
long l15 = Interlocked.Read(ref WebAPI_TongJi.GetAirDetectList);
long l16 = Interlocked.Read(ref WebAPI_TongJi.GetHostFaultList);
long l17 = Interlocked.Read(ref WebAPI_TongJi.GetRoomTypeAndModalsList);
long l18 = Interlocked.Read(ref WebAPI_TongJi.GetRCUInfoForPDU);
long l19 = Interlocked.Read(ref WebAPI_TongJi.GetSessionKey);
long l20 = Interlocked.Read(ref WebAPI_TongJi.GetPhoneNumber);
long l21 = Interlocked.Read(ref WebAPI_TongJi.GetHotelInfoForWX);
Dictionary<string, long> dicwebapidata = new Dictionary<string, long>();
dicwebapidata.Add("GetRoomAirList", l1);
dicwebapidata.Add("SetRCUAir", l2);
dicwebapidata.Add("GetRoomSceneList", l3);
dicwebapidata.Add("SetRCUScene", l4);
dicwebapidata.Add("GetRoomLightList", l5);
dicwebapidata.Add("SetRCULight", l6);
dicwebapidata.Add("GetRoomCurtainList", l7);
dicwebapidata.Add("SetRCUCurtain", l8);
dicwebapidata.Add("GetRoomServiceList", l9);
dicwebapidata.Add("SetRCUService", l10);
dicwebapidata.Add("GetOperationLog", l11);
dicwebapidata.Add("GetRoomMusicList", l12);
dicwebapidata.Add("SetRCUMusic", l13);
dicwebapidata.Add("GetRCUStatus", l14);
dicwebapidata.Add("GetAirDetectList", l15);
dicwebapidata.Add("GetHostFaultList", l16);
dicwebapidata.Add("GetRoomTypeAndModalsList", l17);
dicwebapidata.Add("GetRCUInfoForPDU", l18);
dicwebapidata.Add("GetSessionKey", l19);
dicwebapidata.Add("GetPhoneNumber", l20);
dicwebapidata.Add("GetHotelInfoForWX", l21);
CSRedisCacheHelper.Publish("webapidata_consumer", JsonConvert.SerializeObject(dicwebapidata));
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomAirList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUAir, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomSceneList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUScene, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomLightList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCULight, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomCurtainList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUCurtain, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomServiceList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUService, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetOperationLog, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomMusicList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.SetRCUMusic, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRCUStatus, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetAirDetectList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetHostFaultList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRoomTypeAndModalsList, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetRCUInfoForPDU, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetSessionKey, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetPhoneNumber, 0);
Interlocked.Exchange(ref WebAPI_TongJi.GetHotelInfoForWX, 0);
//logger.Error("推送的走到这里了");
//DataTongJi.TotalCount.Clear();
Interlocked.Exchange(ref YUANZI_TongJi.TotalReceiveCount, 0);
@@ -5742,8 +5970,17 @@ namespace WebSite.Controllers
[HttpPost()]
public ActionResult GetRCUStatus(string host_number, string mac)
{
bool is_online = CSRedisCacheHelper.Contains(host_number, mac);
return Json(is_online, JsonRequestBehavior.AllowGet);
Interlocked.Increment(ref WebAPI_TongJi.GetRCUStatus);
try
{
bool is_online = CSRedisCacheHelper.Contains(host_number, mac);
return Json(is_online, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return Json(false, JsonRequestBehavior.AllowGet);
}
}
#endregion

View File

@@ -786,6 +786,9 @@ namespace WebSite
Exception ex = Server.GetLastError();
logger.Error("IIS:" + ex.Message);
logger.Error(ex.StackTrace);
// 清理可能导致循环异常的资源
HttpContext.Current.ClearError();
}
catch (Exception ex)
{
@@ -802,9 +805,9 @@ namespace WebSite
var ip = Request.UserHostAddress;
var url = Request.Url.AbsolutePath.ToLower();
// 定期清理恶意IP记录避免字典无限增长
var nowUtc = DateTime.UtcNow;
CleanupIpRecordIfNeeded(nowUtc);
// 定期清理恶意IP记录避免字典无限增长
var nowUtc = DateTime.UtcNow;
CleanupIpRecordIfNeeded(nowUtc);
// 定义要拦截的路径模式
var maliciousPatterns = new[]

View File

@@ -1,119 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0"?>
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=152368
-->
<configuration>
<!--配置节点-->
<configSections>
<!--spring节点-->
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc" />
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core" />
<section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc"/>
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
</sectionGroup>
<!--log4net节点-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<section name="databaseSettings" type="System.Configuration.NameValueSectionHandler" />
<section name="cacheManager" type="CacheManager.Core.Configuration.CacheManagerSection, CacheManager.Core" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<section name="databaseSettings" type="System.Configuration.NameValueSectionHandler"/>
<section name="cacheManager" type="CacheManager.Core.Configuration.CacheManagerSection, CacheManager.Core"/>
<sectionGroup name="enyim.com">
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching"/>
</sectionGroup>
</configSections>
<!--log4net-->
<log4net debug="false">
<logger name="NHibernate">
<level value="OFF" />
<level value="OFF"/>
<!-- 完全关闭 NHibernate 日志 -->
</logger>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="Logs\Log.log" />
<param name="datePattern" value="MM-dd HH:mm" />
<param name="AppendToFile" value="true" />
<param name="File" value="Logs\Log.log"/>
<param name="datePattern" value="MM-dd HH:mm"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs/Log.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" value="100K" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<param name="File" value="Logs/Log.log"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="100K"/>
<param name="RollingStyle" value="Size"/>
<param name="StaticLogFileName" value="true"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
<root>
<!--<level value="ERROR" />-->
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
<level value="INFO"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
<!--spring-->
<spring>
<context>
<!--Dao-->
<resource uri="assembly://Dao/Dao.Config/DaoBase.xml" />
<resource uri="assembly://Dao/Dao.Config/Dao.xml" />
<resource uri="assembly://Dao/Dao.Config/DaoBase.xml"/>
<resource uri="assembly://Dao/Dao.Config/Dao.xml"/>
<!-- RCUHost -->
<resource uri="assembly://RCUHost/RCUHost.Config/Receiver.xml" />
<resource uri="assembly://RCUHost/RCUHost.Config/Receiver.xml"/>
<!--Service-->
<resource uri="assembly://Service/Service.Config/ServiceBase.xml" />
<resource uri="assembly://Service/Service.Config/Service.xml" />
<resource uri="assembly://Service/Service.Config/ServiceBase.xml"/>
<resource uri="assembly://Service/Service.Config/Service.xml"/>
<!--Web-->
<resource uri="assembly://WebSite/WebSite.Config/Controllers.xml" />
<resource uri="assembly://WebSite/WebSite.Config/Controllers.xml"/>
</context>
</spring>
<appSettings>
<add key="Spring.Data.NHibernate.Support.OpenSessionInViewModule.SessionFactoryObjectName" value="NHibernateSessionFactory" />
<add key="CurrentUrl" value="http://127.0.0.1" />
<add key="Spring.Data.NHibernate.Support.OpenSessionInViewModule.SessionFactoryObjectName" value="NHibernateSessionFactory"/>
<add key="CurrentUrl" value="http://127.0.0.1"/>
<add key="TFTPPort" value="6900"/>
<!--需要同步PMS房态的酒店编码多个以英文逗号隔开-->
<add key="code" value="TCHG_Hotel" />
<add key="rokid_client_id" value="C485849C" />
<add key="rokid_client_secret" value="8C9FB-6D854-CE2A0-16DAD-2AD7A" />
<add key="code" value="TCHG_Hotel"/>
<add key="rokid_client_id" value="C485849C"/>
<add key="rokid_client_secret" value="8C9FB-6D854-CE2A0-16DAD-2AD7A"/>
<!--freego对接参数,freego_codes多个以英文逗号隔开-->
<add key="freego_url" value="https://lock.wangjile.cn/api/rcuapi/register" />
<add key="freego_codes" value="" />
<add key="freego_appid" value="JTHpnN9V" />
<add key="freego_appsecret" value="snNyTY9sVo7fcsEa" />
<add key="freego_url" value="https://lock.wangjile.cn/api/rcuapi/register"/>
<add key="freego_codes" value=""/>
<add key="freego_appid" value="JTHpnN9V"/>
<add key="freego_appsecret" value="snNyTY9sVo7fcsEa"/>
<!--看板主机基数-->
<add key="host_base_count" value="100000" />
<add key="host_base_count" value="100000"/>
<!--华为vtId-->
<add key="huawei_vtId" value="BOTb2be27cdccda45a09dff2m1baolaiwei" />
<add key="huawei_cuid" value="0179993ce80b03896b44830dbca467957c9e88396061d0a65d05873aef042492" />
<add key="huawei_vtId" value="BOTb2be27cdccda45a09dff2m1baolaiwei"/>
<add key="huawei_cuid" value="0179993ce80b03896b44830dbca467957c9e88396061d0a65d05873aef042492"/>
<!--发送通讯数据给debugger系统-->
<add key="send_to_debugger" value="0"/>
<!--获取升级文件包路径和工具同步路径-->
@@ -121,29 +116,28 @@
<add key="tool_sync_url" value="http://auth.blv-oa.com/OuterSyncApi/SyncData?Pwd=fs%sd"/>
<add key="tool_sync_url_base_url" value="http://auth.blv-oa.com"/>
<!-- redis Start -->
<add key="session_expire_minutes" value="5" />
<add key="redis_server_session" value="127.0.0.1:6379" />
<add key="redis_max_read_pool" value="1000" />
<add key="redis_max_write_pool" value="1000" />
<add key="monitor_log_expire_minutes" value="30" />
<add key="session_expire_minutes" value="5"/>
<add key="redis_server_session" value="127.0.0.1:6379"/>
<add key="redis_max_read_pool" value="1000"/>
<add key="redis_max_write_pool" value="1000"/>
<add key="monitor_log_expire_minutes" value="30"/>
<!--redis end-->
<add key="debug_hotel_code" value="" />
<add key="missionsys_address" value="http://localhost:4000/"/>
<add key="currentsys_address" value="http://localhost:1867/"/>
<add key="baojing_airreport_address" value="http://localhost:5026"/>
<add key="baojing_airreport_key" value="BLV@blv-oc.com"/>
<add key="debug_log_report_url" value="http://localhost:8086/blw/mqtt_publish"/>
<add key="debug_log_report_mqtt_topic" value="blw/log/report"/>
<add key="debug_log_report_key" value="yt65rS3O9htMicUc"/>
<add key="debug_registerinfo" value="0"/>
<add key="tongjiflag" value="0"/>
<add key="TCLLoginUrl" value="https://ai.tclyun.cn/"/>
<add key="TCLAppId" value="3fc1fe5560bdf2efda50a8dc23521d8a"/>
<add key="TCLAppSecret" value="48c30d8fcca4e14ab4842e9bfd54c082"/>
<add key="debug_hotel_code" value=""/>
<add key="missionsys_address" value="http://localhost:4000/"/>
<add key="currentsys_address" value="http://localhost:1867/"/>
<add key="baojing_airreport_address" value="http://localhost:5026"/>
<add key="baojing_airreport_key" value="BLV@blv-oc.com"/>
<add key="debug_log_report_url" value="http://localhost:8086/blw/mqtt_publish"/>
<add key="debug_log_report_mqtt_topic" value="blw/log/report"/>
<add key="debug_log_report_key" value="yt65rS3O9htMicUc"/>
<add key="debug_registerinfo" value="0"/>
<add key="tongjiflag" value="0"/>
<add key="TCLLoginUrl" value="https://ai.tclyun.cn/"/>
<add key="TCLAppId" value="3fc1fe5560bdf2efda50a8dc23521d8a"/>
<add key="TCLAppSecret" value="48c30d8fcca4e14ab4842e9bfd54c082"/>
<!--日志-->
<add key="TCLLogReportTopic" value="48c30d8fcca4e14ab4842e9bfd54c082"/>
<add key="SkyWorthLogReportTopic" value="48c30d8fcca4e14ab4842e9bfd54c082"/>
<add key="TCLLogReportTopic" value="48c30d8fcca4e14ab4842e9bfd54c082"/>
<add key="SkyWorthLogReportTopic" value="48c30d8fcca4e14ab4842e9bfd54c082"/>
<!--FCSID-->
<!--
<add key ="FCS_PropertyID" value="071673b3-d893-440b-b3f0-64a0d964eb29"/>
@@ -164,163 +158,131 @@
<add key="FCS_MenCi_Close" value="b6ab30c2-3e54-4a5a-acf0-d9b985c409be"/>
<add key="FCS_MenCi_Open" value="547c567d-9b6f-44f6-9983-5792a2602251"/>-->
<!--FCSID 测试-->
<add key="FCS_PropertyID" value="6b04e51f-8f51-4bb4-8e8c-e92744790165"/>
<add key="FCSLoginUrl" value="https://api.fcs1cloud.com"/>
<add key="FCSLoginUserName" value="nwshy.rcu"/>
<add key="FCSLoginPassWord" value="P@ss1234"/>
<add key="FCS_Carbon_UUID" value="55a836a9-c81d-46d9-8462-aad2e99ae24b"/>
<add key="FCS_SOS_UUID" value="9a4d876e-e916-4a4a-af76-5b6cf1c7907a"/>
<add key="FCS_TouSu_UUID" value="97e8f2f4-070f-49ca-98fd-18f9cc01a776"/>
<add key="FCS_PropertyID" value="6b04e51f-8f51-4bb4-8e8c-e92744790165"/>
<add key="FCSLoginUrl" value="https://api.fcs1cloud.com"/>
<add key="FCSLoginUserName" value="nwshy.rcu"/>
<add key="FCSLoginPassWord" value="P@ss1234"/>
<add key="FCS_Carbon_UUID" value="55a836a9-c81d-46d9-8462-aad2e99ae24b"/>
<add key="FCS_SOS_UUID" value="9a4d876e-e916-4a4a-af76-5b6cf1c7907a"/>
<add key="FCS_TouSu_UUID" value="97e8f2f4-070f-49ca-98fd-18f9cc01a776"/>
<add key="FCS_Clean_UUID" value="657e8338-0954-495b-aaa2-8db9948a466b"/>
<add key="FCS_TiSongWuPin" value="63d3695b-c6ed-46d1-a7f8-5bff2fbcf86e"/>
<add key="FCS_RCU_Device_Offline" value="dc7d6957-1f09-4c5f-99cc-d417be984bf4"/>
<add key="FCS_RCU_Online" value="ef175965-736e-4e31-8581-21143240b9a7"/>
<add key="FCS_RCU_Offline" value="211a02fc-b55f-40b0-89fd-1f773f5022b1"/>
<add key="FCS_MenCi_Close" value="c30f4abf-4327-49e7-bf16-53ad924eeda5"/>
<add key="FCS_MenCi_Open" value="65b04233-b03a-4595-b2ac-ccd59702b1fa"/>
<add key="FCS_MenCi_Open" value="65b04233-b03a-4595-b2ac-ccd59702b1fa"/>
<!--Hi 喂-->
<add key="HiWeiAppId" value="wijsv8hf5izejkny"/>
<add key="HiWeiAppSecret" value="6c1014dab24c41369068d12e4f7e145c"/>
<add key="webchat_redisstr" value="47.119.147.104:26379"/>
<add key="webchat_redis_pwd" value="1001^_^lool"/>
</appSettings>
<connectionStrings>
<add name="connectionString" connectionString="DESKTOP-DUNS5K7;database=RICS;uid=sa;pwd=123456" providerName="System.Data.SqlClient"/>
</connectionStrings>
<databaseSettings>
<add key="provider" value="System.Data.SqlClient" />
<add key="connectionString" value="Data Source=DESKTOP-DUNS5K7;Initial Catalog=RICS;Persist Security Info=True;User ID=sa;Password=123456;Max Pool Size=300;" />
<add key="dialect" value="NHibernate.Dialect.MsSql2008Dialect" />
<add key="driver_class" value="NHibernate.Driver.SqlClientDriver" />
<add key="show_sql" value="true" />
<add key="hbm2ddl.auto" value="update" />
<add key="provider" value="System.Data.SqlClient"/>
<add key="connectionString" value="Data Source=DESKTOP-DUNS5K7;Initial Catalog=RICS;Persist Security Info=True;User ID=sa;Password=123456;Max Pool Size=300;"/>
<add key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
<add key="driver_class" value="NHibernate.Driver.SqlClientDriver"/>
<add key="show_sql" value="true"/>
<add key="hbm2ddl.auto" value="update"/>
</databaseSettings>
<cacheManager xmlns="http://tempuri.org/CacheManagerCfg.xsd">
<managers>
<cache name="myCache" updateMode="Up" enableStatistics="false" enablePerformanceCounters="false">
<handle name="myHandle" ref="systemRuntimeHandle" expirationMode="Sliding" timeout="15s" />
<handle name="myHandle" ref="systemRuntimeHandle" expirationMode="Sliding" timeout="15s"/>
</cache>
</managers>
<cacheHandles>
<handleDef id="systemRuntimeHandle" type="CacheManager.SystemRuntimeCaching.MemoryCacheHandle`1, CacheManager.SystemRuntimeCaching" defaultExpirationMode="Sliding" defaultTimeout="5m" />
<handleDef id="systemRuntimeHandle" type="CacheManager.SystemRuntimeCaching.MemoryCacheHandle`1, CacheManager.SystemRuntimeCaching" defaultExpirationMode="Sliding" defaultTimeout="5m"/>
</cacheHandles>
</cacheManager>
<enyim.com>
<memcached protocol="Binary">
<servers>
<add address="127.0.0.1" port="11211" />
<add address="127.0.0.1" port="11211"/>
</servers>
<socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
<socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00"/>
</memcached>
</enyim.com>
<system.web>
<httpRuntime maxRequestLength="5000" requestValidationMode="2.0" />
<compilation debug="false" targetFramework="4.0">
<httpRuntime maxRequestLength="5000" requestValidationMode="2.0"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<authentication mode="Forms">
<forms name="MyAuth" cookieless="UseCookies" loginUrl="~/LogOn" timeout="2880" />
<forms name="MyAuth" cookieless="UseCookies" loginUrl="~/LogOn" timeout="2880"/>
</authentication>
<pages validateRequest="false">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
</namespaces>
</pages>
<httpModules>
<add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate30" />
<add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate30"/>
</httpModules>
<!--显示错误-->
<customErrors mode="Off" />
<customErrors mode="Off"/>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate30" />
<add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate30"/>
</modules>
<httpProtocol>
<customHeaders>
<add name="P3P" value="CP=&quot;IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA&quot;" />
<add name="P3P" value="CP=&quot;IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA&quot;"/>
</customHeaders>
</httpProtocol>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
<directoryBrowse enabled="true" />
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" />
<bindingRedirect oldVersion="0.84.0.0" newVersion="0.86.0.518" />
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73"/>
<bindingRedirect oldVersion="0.84.0.0" newVersion="0.86.0.518"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Routing" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
<assemblyIdentity name="System.Web.Routing" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Abstractions" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
<assemblyIdentity name="System.Web.Abstractions" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IThirdpartyService" />
<binding name="BasicHttpBinding_IThirdpartyService1" />
<binding name="syncstatusSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
<binding name="BasicHttpBinding_XRHotel_ServiceSoap" maxReceivedMessageSize="2147483647" />
<binding name="blwwsSoap" />
<binding name="BasicHttpBinding_IThirdpartyService"/>
<binding name="BasicHttpBinding_IThirdpartyService1"/>
<binding name="syncstatusSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
<binding name="BasicHttpBinding_XRHotel_ServiceSoap" maxReceivedMessageSize="2147483647"/>
<binding name="blwwsSoap"/>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://119.29.101.13:2017/JTE.Server/ThirdpartyService"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IThirdpartyService"
contract="ServiceReference1.IThirdpartyService" name="BasicHttpBinding_IThirdpartyService" />
<endpoint address="http://119.29.101.13:2017/JTE.Server/ThirdpartyService"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IThirdpartyService1"
contract="ServiceReference2.IThirdpartyService" name="BasicHttpBinding_IThirdpartyService1" />
<endpoint address="http://pms.boonlive-rcu.com:89/syncstatus.asmx"
binding="basicHttpBinding" bindingConfiguration="syncstatusSoap"
contract="syncstatus.syncstatusSoap" name="syncstatusSoap" />
<endpoint address="http://61.143.60.101:6024/XRHotel_WS" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_XRHotel_ServiceSoap"
contract="XR_PMS.XRHotel_ServiceSoap" name="BasicHttpBinding_XRHotel_ServiceSoap" />
<endpoint address="http://pms.boonlive-rcu.com:89/blwws.asmx"
binding="basicHttpBinding" bindingConfiguration="blwwsSoap"
contract="ServiceReference1.blwwsSoap" name="blwwsSoap" />
<endpoint address="http://119.29.101.13:2017/JTE.Server/ThirdpartyService" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IThirdpartyService" contract="ServiceReference1.IThirdpartyService" name="BasicHttpBinding_IThirdpartyService"/>
<endpoint address="http://119.29.101.13:2017/JTE.Server/ThirdpartyService" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IThirdpartyService1" contract="ServiceReference2.IThirdpartyService" name="BasicHttpBinding_IThirdpartyService1"/>
<endpoint address="http://pms.boonlive-rcu.com:89/syncstatus.asmx" binding="basicHttpBinding" bindingConfiguration="syncstatusSoap" contract="syncstatus.syncstatusSoap" name="syncstatusSoap"/>
<endpoint address="http://61.143.60.101:6024/XRHotel_WS" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_XRHotel_ServiceSoap" contract="XR_PMS.XRHotel_ServiceSoap" name="BasicHttpBinding_XRHotel_ServiceSoap"/>
<endpoint address="http://pms.boonlive-rcu.com:89/blwws.asmx" binding="basicHttpBinding" bindingConfiguration="blwwsSoap" contract="ServiceReference1.blwwsSoap" name="blwwsSoap"/>
</client>
</system.serviceModel>
</configuration>