From 72fa1a55244ee3941e5e174ccb244059851761f5 Mon Sep 17 00:00:00 2001 From: TianMaiCheng <746290578@qq.com> Date: Tue, 10 Mar 2026 15:57:43 +0800 Subject: [PATCH] =?UTF-8?q?FCS=E7=9A=84=20=E7=94=A8=E6=88=B7=E5=90=8D?= =?UTF-8?q?=E5=92=8C=E5=AF=86=E7=A0=81=20=E6=AF=8F=E4=B8=AA=E9=85=92?= =?UTF-8?q?=E5=BA=97=E4=B8=8D=E4=B8=80=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 给 浩 哥增加 专门的碳达人接口 --- CRICS_V3_1124.suo | Bin 12780544 -> 12780544 bytes CommonEntity/FCS.cs | 8 +- Dao/ISysHotelRepository.cs | 2 + Dao/Implement/SysHotelRepository.cs | 6 ++ Service/ISysHotelManager.cs | 2 + Service/Implement/SysHotelManager.cs | 6 ++ WebSite/Controllers/ApiController.cs | 112 +++++++++++++++++----- WebSite/Controllers/RoomTypeController.cs | 39 ++++---- 8 files changed, 132 insertions(+), 43 deletions(-) diff --git a/CRICS_V3_1124.suo b/CRICS_V3_1124.suo index c552fa133a08b5e0918fcdb98f309559d953dd6d..b7c5f86e64cc275235797da5b45c9f10f14de08f 100644 GIT binary patch delta 22094 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 delta 24652 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 U?!zwk5trNNav!a7ADj1o0JBBDH~;_u diff --git a/CommonEntity/FCS.cs b/CommonEntity/FCS.cs index 5e809ab..c7aa7b1 100644 --- a/CommonEntity/FCS.cs +++ b/CommonEntity/FCS.cs @@ -184,7 +184,9 @@ namespace CommonEntity var FFFA = Newtonsoft.Json.JsonConvert.DeserializeObject(ddd); - string TokenKey = CacheKey.FCSToken; + //string TokenKey = CacheKey.FCSToken; + + string TokenKey = CacheKey.FCSToken + "_" + HotelCode; CSRedisCacheHelper.Set_Partition(TokenKey, FFFA, 1); } } @@ -345,7 +347,9 @@ namespace CommonEntity //logger.Error("FCS push data"); if (!string.IsNullOrEmpty(location_UUID)) { - string Key = CacheKey.FCSToken; + //string Key = CacheKey.FCSToken; + + string Key = CacheKey.FCSToken + "_" + code; var TokenTakeOut = CSRedisCacheHelper.Get_Partition(Key, 1); if (TokenTakeOut == null) { diff --git a/Dao/ISysHotelRepository.cs b/Dao/ISysHotelRepository.cs index e29ff13..e1592f4 100644 --- a/Dao/ISysHotelRepository.cs +++ b/Dao/ISysHotelRepository.cs @@ -24,5 +24,7 @@ namespace Dao List GetNeedData(); List IsExistsSomeDeviceRoomModal(int id, string roomnum, string start_address, string end_address); + + List get_fcs_hotels(); } } diff --git a/Dao/Implement/SysHotelRepository.cs b/Dao/Implement/SysHotelRepository.cs index a568922..a24e728 100644 --- a/Dao/Implement/SysHotelRepository.cs +++ b/Dao/Implement/SysHotelRepository.cs @@ -207,5 +207,11 @@ namespace Dao.Implement { return LoadAll().Where(r => r.ETV_HotelID.Equals(hotelid) && r.IsDeleted != true).OrderBy(r => r.Sort).FirstOrDefault(); } + + + public List get_fcs_hotels() + { + return LoadAll().Where(r => r.IsDeleted != true && (r.FCSLoginUrl != "" && r.FCSLoginUrl != null)).ToList(); + } } } diff --git a/Service/ISysHotelManager.cs b/Service/ISysHotelManager.cs index fb2b8a6..b0fdc9e 100644 --- a/Service/ISysHotelManager.cs +++ b/Service/ISysHotelManager.cs @@ -27,5 +27,7 @@ namespace Service List GetNeedData(); List IsExistsSomeDeviceRoomModal(int id, string roomnum, string start_address, string end_address); + + List get_fcs_hotel(); } } diff --git a/Service/Implement/SysHotelManager.cs b/Service/Implement/SysHotelManager.cs index e91e5d0..cebff61 100644 --- a/Service/Implement/SysHotelManager.cs +++ b/Service/Implement/SysHotelManager.cs @@ -168,5 +168,11 @@ namespace Service.Implement { return ((ISysHotelRepository)(this.CurrentRepository)).GetByETV_HotelId(hotelid); } + + + public List get_fcs_hotel() + { + return ((ISysHotelRepository)(this.CurrentRepository)).get_fcs_hotels(); + } } } diff --git a/WebSite/Controllers/ApiController.cs b/WebSite/Controllers/ApiController.cs index 41ae302..dd23829 100644 --- a/WebSite/Controllers/ApiController.cs +++ b/WebSite/Controllers/ApiController.cs @@ -599,7 +599,7 @@ namespace WebSite.Controllers /// /// /// - + //public ActionResult GetRoomAirList_Deprecate(string jsonData) public ActionResult GetRoomAirList(string jsonData) { @@ -3855,7 +3855,7 @@ namespace WebSite.Controllers } catch (Exception ex) { - logger.Error("定时升级出错:"+ex.Message); + logger.Error("定时升级出错:" + ex.Message); return Json(new { IsSuccess = false, Data = ex.Message }); } } @@ -3875,7 +3875,7 @@ namespace WebSite.Controllers HostUpdateController hh = new HostUpdateController(); logger.Error("开始升级: " + fileName + " host_list: " + lll); //升级 - hh.ShengJI_NEW(host_list, fileName, HostManager,roomTypeID); + hh.ShengJI_NEW(host_list, fileName, HostManager, roomTypeID); } [HttpPost()] @@ -3954,7 +3954,7 @@ namespace WebSite.Controllers HostUpdateController hh = new HostUpdateController(); logger.Error("开始升级: " + fileName + " host_list: " + lll); //升级 - return hh.新改造(host_list, fileName,roomTypeID,HostManager); + return hh.新改造(host_list, fileName, roomTypeID, HostManager); } #endregion @@ -4172,22 +4172,27 @@ namespace WebSite.Controllers { try { - var client1 = new RestClient(FCSLoginUrl); - var request1 = new RestRequest("/api/security/authenticate", Method.POST); + var list = SysHotelManager.get_fcs_hotel(); + foreach (var item in list) + { + var code = item.Code; + var client1 = new RestClient(FCSLoginUrl); + var request1 = new RestRequest("/api/security/authenticate", Method.POST); - Dictionary dic = new Dictionary(); - User us = new User(); - us.username = FCSLoginUserName; - us.password = FCSLoginPassWord; - us.oauth_id = 1; - request1.AddJsonBody(us); + Dictionary dic = new Dictionary(); + User us = new User(); + us.username = item.FCSLoginUserName; + us.password = item.FCSLoginPassWord; + us.oauth_id = 1; + request1.AddJsonBody(us); - var QQQ = client1.Execute(request1); - string ddd = QQQ.Content; - var FFFA = Newtonsoft.Json.JsonConvert.DeserializeObject(ddd); + var QQQ = client1.Execute(request1); + string ddd = QQQ.Content; + var FFFA = Newtonsoft.Json.JsonConvert.DeserializeObject(ddd); - string TokenKey = CacheKey.FCSToken; - CSRedisCacheHelper.Set_Partition(TokenKey, FFFA, 1); + string TokenKey = CacheKey.FCSToken + "_" + code; + CSRedisCacheHelper.Set_Partition(TokenKey, FFFA, 1); + } } catch (Exception) { @@ -4298,16 +4303,18 @@ namespace WebSite.Controllers { try { - string Key = CacheKey.FCSToken; - var TokenTakeOut = CSRedisCacheHelper.Get_Partition(Key, 1); - if (TokenTakeOut == null) - { - return Json(new { Status = "ok", Message = "NoData" }, JsonRequestBehavior.AllowGet); - } + + //string Key = CacheKey.FCSToken; + //var TokenTakeOut = CSRedisCacheHelper.Get_Partition(Key, 1); + //if (TokenTakeOut == null) + //{ + // return Json(new { Status = "ok", Message = "NoData" }, JsonRequestBehavior.AllowGet); + //} var dic = CSRedisCacheHelper.HMGetAll(3, CacheKey.FCSOrder); foreach (var item in dic) { var OrderData = JsonConvert.DeserializeObject(item.Value); + var code = OrderData.HotelCode; var CleanUUID = OrderData.ItemUUID; var HostNUMBER = OrderData.HostNUMBER; var PropertyID = OrderData.PropertyID; @@ -4319,6 +4326,15 @@ namespace WebSite.Controllers var client1 = new RestClient(FCSLoginUrl); var request1 = new RestRequest("/job/status", Method.POST); + + + + string Key = CacheKey.FCSToken + "_" + code; + var TokenTakeOut = CSRedisCacheHelper.Get_Partition(Key, 1); + if (TokenTakeOut == null) + { + continue; + } request1.AddHeader("token", TokenTakeOut.data.access_token); request1.AddHeader("property", PropertyID); request1.AddJsonBody(ooo); @@ -6274,6 +6290,56 @@ namespace WebSite.Controllers } } + /// + /// 碳达人 宝易软件 + /// + /// + [HttpPost()] + public ActionResult SaveRoomTypeModal_CarbonVIP() + { + try + { + + byte[] byts = new byte[Request.InputStream.Length]; + Request.InputStream.Read(byts, 0, byts.Length); + string jsonData = System.Text.Encoding.UTF8.GetString(byts); + var uuu = JsonConvert.DeserializeObject(jsonData); + int roomtypeid = uuu.roomtype_id; + var lll = uuu.CarbonVIPList; + var rlist = RoomTypeModalManager.LoadAll(roomtypeid, 1); + foreach (var item in lll) + { + var add = item.ModalAddress; + var up = item.IsUploadBaoJing; + var modal = rlist.FirstOrDefault(A => A.ModalAddress.Equals(add)); + if (modal != null) + { + modal.IsUploadBaoJing = up; + RoomTypeModalManager.Update(modal);//新增房型下单个回路 + Task.Factory.StartNew((state) => + { + var mmm = (RoomTypeModal)state; + UpdateHostModals(mmm); + }, modal);//更新主机回路 + } + } + return Json(new { IsSuccess = true, Message = HttpContext.InnerLanguage("SaveSuccess") }); + } + catch (Exception ex) + { + return Json(new { IsSuccess = false, Message = HttpContext.InnerLanguage("SaveFailedBecause") + ex.Message }); + } + } + public class tandaren_upload + { + public int roomtype_id { get; set; } + public List CarbonVIPList { get; set; } + } + public class single_tandaren + { + public string ModalAddress { get; set; } + public bool IsUploadBaoJing { get; set; } + } public class BaoYiModel { public int id { get; set; } diff --git a/WebSite/Controllers/RoomTypeController.cs b/WebSite/Controllers/RoomTypeController.cs index d2ea0c8..0a9ffd5 100644 --- a/WebSite/Controllers/RoomTypeController.cs +++ b/WebSite/Controllers/RoomTypeController.cs @@ -188,9 +188,9 @@ namespace WebSite.Controllers Beep = false, Abnormal = false, Color = rm.Color, - TCLDeviceName="", - MultipleTCLName="", - MultipleGroupID=0 + TCLDeviceName = "", + MultipleTCLName = "", + MultipleGroupID = 0 }); } } @@ -267,7 +267,7 @@ namespace WebSite.Controllers } //编辑回路 [Authorize] - public ActionResult RoomTypeModalEdit(int id, int roomTypeId, DeviceType deviceType, string modalAddress = "", string outlet = "", string name = "", string color = "", string aliasName="", string multipleTCLName="", int multipleGroupID=0) + public ActionResult RoomTypeModalEdit(int id, int roomTypeId, DeviceType deviceType, string modalAddress = "", string outlet = "", string name = "", string color = "", string aliasName = "", string multipleTCLName = "", int multipleGroupID = 0) { RoomTypeModal roomTypeModal = null; if (id != 0) @@ -275,12 +275,12 @@ namespace WebSite.Controllers roomTypeModal = RoomTypeModalManager.Get(id); if (string.IsNullOrEmpty(roomTypeModal.MultipleTCLName)) { - roomTypeModal.MultipleTCLName = ""; + roomTypeModal.MultipleTCLName = ""; } if (string.IsNullOrEmpty(roomTypeModal.TCLDeviceName)) { - roomTypeModal.TCLDeviceName = ""; + roomTypeModal.TCLDeviceName = ""; } } else @@ -302,9 +302,9 @@ namespace WebSite.Controllers Sort = 1, Color = color, SourceType = 0, - TCLDeviceName="", - MultipleGroupID=0, - MultipleTCLName="" + TCLDeviceName = "", + MultipleGroupID = 0, + MultipleTCLName = "" }; } return View(roomTypeModal); @@ -361,7 +361,7 @@ namespace WebSite.Controllers /// /// [Authorize] - public ActionResult SaveRoomTypeModal(int id, int roomTypeID, string modalAddress, string outlet, string name, string englishName, int power, string twName, string aliasName, DeviceType type, int sort, string color,string MultipleGroupID,string MultipleTCLName,string TCLDeviceName)//int lowPower, DeviceSubtype? subtype, int sort) + public ActionResult SaveRoomTypeModal(int id, int roomTypeID, string modalAddress, string outlet, string name, string englishName, int power, string twName, string aliasName, DeviceType type, int sort, string color, string MultipleGroupID, string MultipleTCLName, string TCLDeviceName)//int lowPower, DeviceSubtype? subtype, int sort) { try { @@ -397,7 +397,7 @@ namespace WebSite.Controllers roomTypeModal.MultipleTCLName = MultipleTCLName; roomTypeModal.TCLDeviceName = TCLDeviceName; int a = 0; - int.TryParse(MultipleGroupID,out a); + int.TryParse(MultipleGroupID, out a); roomTypeModal.MultipleGroupID = a; RoomTypeModalManager.Save(roomTypeModal);//新增房型下单个回路 string logDetail = "【" + (Language == Language.CN ? roomTypeModal.Name : roomTypeModal.EnglishName) + "】"; @@ -428,7 +428,7 @@ namespace WebSite.Controllers roomTypeModal.MultipleTCLName = MultipleTCLName; roomTypeModal.TCLDeviceName = TCLDeviceName; int a = 0; - int.TryParse(MultipleGroupID,out a); + int.TryParse(MultipleGroupID, out a); roomTypeModal.MultipleGroupID = a; RoomTypeModalManager.Update(roomTypeModal);//更新房型下回路 string logDetail = "【" + (Language == Language.CN ? roomTypeModal.Name : roomTypeModal.EnglishName) + "】"; @@ -833,13 +833,16 @@ namespace WebSite.Controllers { foreach (var host in hosts) { - System.Threading.Tasks.Task.Factory.StartNew(() => + if (!string.IsNullOrEmpty(host.XiaoDuCUID)) { - foreach (string cuid in host.XiaoDuCUID.Split(','))//多个小度英文逗号隔开 + System.Threading.Tasks.Task.Factory.StartNew(() => { - XiaoDuOperation.PostWebRequestToXiaoDu(accessToken, cuid, new XiaoDuParamJson() { method = "deviceSync", isNoBlocked = 1 }, host.SysHotel.Code, host.RoomNumber);//更新技能 - } - }); + foreach (string cuid in host.XiaoDuCUID.Split(','))//多个小度英文逗号隔开 + { + XiaoDuOperation.PostWebRequestToXiaoDu(accessToken, cuid, new XiaoDuParamJson() { method = "deviceSync", isNoBlocked = 1 }, host.SysHotel.Code, host.RoomNumber);//更新技能 + } + }); + } } } if (!string.IsNullOrEmpty(hotelCode)) @@ -1208,7 +1211,7 @@ namespace WebSite.Controllers var roomType = RoomTypeManager.Get(roomTypeID); if (roomType == null) { - throw new ApplicationException("房型不能为空"); + throw new ApplicationException("房型不能为空"); } var sysHotel = SysHotelManager.Get(roomType.HotelID); RoomTypeProgramFiles entity = new RoomTypeProgramFiles