using System; using System.Collections.Generic; using System.Linq; using System.Text; using RestSharp; using Common; using System.Configuration; namespace CommonEntity { public class TCLToken { public int errno { get; set; } public string errmsg { get; set; } public TCLTokenData data { get; set; } } public class TCLTokenData { public string access_token { get; set; } public long expires_in { get; set; } public long deadline { get; set; } public string refresh_token { get; set; } } public class TCLCommon { public static string TCLLoginUrl = ConfigurationManager.AppSettings["TCLLoginUrl"]; public static string TCLAppId = ConfigurationManager.AppSettings["TCLAppId"]; public static string TCLAppSecret = ConfigurationManager.AppSettings["TCLAppSecret"]; private static log4net.ILog logger = log4net.LogManager.GetLogger(typeof(TCLCommon)); /// /// 获取TCL Token /// public static void GetTCLTV_Token() { try { var client1 = new RestClient(TCLLoginUrl); var request1 = new RestRequest("oauth/token", Method.GET); request1.AddParameter("app_id", TCLAppId); request1.AddParameter("app_secret", TCLAppSecret); var QQQ = client1.Execute(request1); string ddd = QQQ.Content; var FFFA = Newtonsoft.Json.JsonConvert.DeserializeObject(ddd); string TokenKey = CacheKey.TCLToken; CSRedisCacheHelper.Set_Partition(TokenKey, FFFA, 1); } catch (Exception ex) { logger.Error("TCL Token Error" + ex.Message); } } /// /// 给TCL发送数据 /// /// /// /// /// public static void SendData(string hotelcode, string roomnum, string CUID, string skillid, string sceneCode, int count = 0) { try { string ID = Guid.NewGuid().ToString("N"); string ti = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); Dictionary dicg = new Dictionary(); dicg.Add("Step", "1"); dicg.Add("HotelCode", hotelcode); dicg.Add("RoomNumber", roomnum); dicg.Add("RequestTime", roomnum); dicg.Add("CmdType", sceneCode); dicg.Add("RequestId", ID); var dic1 = new Dictionary(); dic1.Add("cuid", roomnum); dic1.Add("sceneCode", sceneCode); dic1.Add("botId", skillid); logger.Error("TCL send data"); string TokenKey = CacheKey.TCLToken; var T = CSRedisCacheHelper.Get_Partition(TokenKey, 1); if (T != null) { logger.Equals("TCL Token是" + T.data.access_token); dic1.Add("token", T.data.access_token); var jsondic = Newtonsoft.Json.JsonConvert.SerializeObject(dic1); dicg.Add("RequestCmd", jsondic); //LogRecorrd.WebAPI_DataSend(dicg, "api/tcl_tv"); Interface3Log w1 = new Interface3Log(); w1.HotelCode = hotelcode; w1.RoomNumber = roomnum; w1.TriggerTime = DateTime.Now; w1.ActionData = new HttpActionData() { RequestData = Newtonsoft.Json.JsonConvert.SerializeObject(dicg) }; w1.CommandType = ChangLiangValue.TCL; var q1 = Newtonsoft.Json.JsonConvert.SerializeObject(w1); CSRedisCacheHelper.Publish(CacheKey.InvokeHttpInterface, q1); var client1 = new RestClient(TCLLoginUrl); var request1 = new RestRequest("open/countercontrol/scene_trigger", Method.POST); request1.AddHeader("Authorization", "Bearer " + T.data.access_token); Dictionary dic = new Dictionary(); dic.Add("cuid", CUID); dic.Add("sceneCode", sceneCode); dic.Add("botId", skillid); request1.AddJsonBody(dic); var QQQ = client1.Execute(request1); string ddd = QQQ.Content; //string ti1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); //Dictionary dicg1 = new Dictionary(); //dicg1.Add("HotelCode", hotelcode); //dicg1.Add("RoomNumber", roomnum); //dicg1.Add("RequestId", ID); //dicg1.Add("ResponseMsg", ddd); //dicg1.Add("ResponseTime", ti1); //LogRecorrd.WebAPI_DataSend(dicg1, "api/tcl_tv"); logger.Error("TCL 电视触发了 情景。返回数据为:" + ddd); Interface3Log ww = new Interface3Log(); ww.HotelCode = hotelcode; ww.RoomNumber = roomnum; ww.TriggerTime = DateTime.Now; ww.ActionData = new HttpActionData() { ResponseData = ddd }; ww.CommandType = ChangLiangValue.TCL; var qq = Newtonsoft.Json.JsonConvert.SerializeObject(ww); CSRedisCacheHelper.Publish(CacheKey.InvokeHttpInterface, qq); } else { logger.Equals("TCL Token 为空"); if (count == 0) { GetTCLTV_Token(); count = count + 1; SendData(hotelcode, roomnum, CUID, skillid, sceneCode, count++); } } } catch (Exception ex) { logger.Error("TCL SenData" + ex.Message); } } } }