using DataServer.api; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Web.Http; using HslCommunication.MQTT; using HslCommunication; using HslCommunication.LogNet; using QingHaiVisualizationAPI.Utils; namespace DongYingAPI.Controllers.api { public class SetLightingController : ApiController { static log4net.ILog log; DataServer.BLL.lighting_control bll = new DataServer.BLL.lighting_control(); public HttpResponseMessage Get(string name="",string value="") { var res = new get_information(); try { var data = new List(); if(!string.IsNullOrEmpty(name)&&!string.IsNullOrEmpty(value) ) { #region 控制 var list = bll.GetModelList(""); #region 群控 if (name == "M001") { //全关 if (value == Convert.ToString("3")) { foreach (var item in list) { var amodel = new DataServer.Model.lighting_control(); amodel.LightingId = item.LightingId; amodel.LightingName = item.LightingName; amodel.LightingState = "0"; amodel.LightingIndex = item.LightingIndex; amodel.LightingBrightness = "0"; bll.Update(amodel); } } //全开 if (value == Convert.ToString("2")) { foreach (var item in list) { var amodel = new DataServer.Model.lighting_control(); amodel.LightingId = item.LightingId; amodel.LightingName = item.LightingName; amodel.LightingState = "1"; amodel.LightingIndex = item.LightingIndex; amodel.LightingBrightness = "100"; bll.Update(amodel); } } //日常 if (value == Convert.ToString("0")) { foreach (var item in list) { var amodel = new DataServer.Model.lighting_control(); amodel.LightingId = item.LightingId; amodel.LightingName = item.LightingName; amodel.LightingState = "1"; amodel.LightingIndex = item.LightingIndex; amodel.LightingBrightness = "70"; bll.Update(amodel); } } //闭馆 if (value == Convert.ToString("4")) { foreach (var item in list) { var amodel = new DataServer.Model.lighting_control(); amodel.LightingId = item.LightingId; amodel.LightingName = item.LightingName; amodel.LightingState = "1"; amodel.LightingIndex = item.LightingIndex; amodel.LightingBrightness = "30"; bll.Update(amodel); } } //参观 if (value == Convert.ToString("1")) { foreach (var item in list) { var amodel = new DataServer.Model.lighting_control(); amodel.LightingId = item.LightingId; amodel.LightingName = item.LightingName; amodel.LightingState = "1"; amodel.LightingIndex = item.LightingIndex; amodel.LightingBrightness = "90"; bll.Update(amodel); } } //昼光 if (value == Convert.ToString("5")) { foreach (var item in list) { var amodel = new DataServer.Model.lighting_control(); amodel.LightingId = item.LightingId; amodel.LightingName = item.LightingName; amodel.LightingState = "1"; amodel.LightingIndex = item.LightingIndex; amodel.LightingBrightness = "80"; bll.Update(amodel); } } //天气 if (value == Convert.ToString("6")) { foreach (var item in list) { var amodel = new DataServer.Model.lighting_control(); amodel.LightingId = item.LightingId; amodel.LightingName = item.LightingName; amodel.LightingState = "1"; amodel.LightingIndex = item.LightingIndex; amodel.LightingBrightness = "60"; bll.Update(amodel); } } } #endregion else { #region 单控 var listmodel = list.FirstOrDefault(x => x.LightingIndex == name); var model = new DataServer.Model.lighting_control(); model.LightingId = listmodel.LightingId; model.LightingName = listmodel.LightingName; model.LightingIndex= listmodel.LightingIndex; if (value == Convert.ToString("0")) { model.LightingState = Convert.ToString("0"); } else { model.LightingState = Convert.ToString("1"); } #region 转化亮度 var lighting = ""; if (value == Convert.ToString("0")) { lighting = Convert.ToString("0"); } if (value == Convert.ToString("1")) { lighting = Convert.ToString("10"); } if (value == Convert.ToString("2")) { lighting = Convert.ToString("20"); } if (value == Convert.ToString("3")) { lighting = Convert.ToString("30"); } if (value == Convert.ToString("4")) { lighting = Convert.ToString("40"); } if (value == Convert.ToString("5")) { lighting = Convert.ToString("50"); } if (value == Convert.ToString("6")) { lighting = Convert.ToString("60"); } if (value == Convert.ToString("7")) { lighting = Convert.ToString("70"); } if (value == Convert.ToString("8")) { lighting = Convert.ToString("80"); } if (value == Convert.ToString("9")) { lighting = Convert.ToString("90"); } if (value == Convert.ToString("10")) { lighting = Convert.ToString("100"); } #endregion model.LightingBrightness = lighting; bll.Update(model); #endregion } #endregion log4net.Config.XmlConfigurator.Configure(); log = log4net.LogManager.GetLogger("loginfo"); var mqqt = new MqttClientService(); data controlData = new data(); controlData.h = new HeaderData(); controlData.h.rt = ""; // 如果需要同时设置多个数据项,可以使用字典 controlData.b = new BodyData(); controlData.b.dl = new Dictionary(); controlData.b.dl["" + name + ""] = "" + value + ""; mqqt.MqttClientStart(); mqqt.Publish("gc/data/4f0447b1-468f-45c2-9a05-40f0f79529cf", "J" + JsonConvert.SerializeObject(controlData)); data.Add(controlData); res.code = 200; res.msg = "成功"; res.data = data; } else { res.code = 201; res.msg = "参数不能为空"; } } catch (Exception ex) { res.code = 500; res.msg = "失败," + ex.Message; } HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(JsonConvert.SerializeObject(res), Encoding.GetEncoding("UTF-8"), "application/json") }; return result; } } }