LonglslandExhibitionCenter/LonglslandExhibitionCenter/Controllers/api/SetFullSwitchController.cs

125 lines
5.6 KiB
C#

using DataService.api;
using Microsoft.Ajax.Utilities;
using Newtonsoft.Json;
using QingHaiVisualizationAPI.Utils;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Http;
namespace LonglslandExhibitionCenter.Controllers.api
{
/// <summary>
/// 照明-全控全开全关
/// </summary>
public class SetFullSwitchController : ApiController
{
static log4net.ILog log;
DataService.BLL.lighting_info bll = new DataService.BLL.lighting_info();
public HttpResponseMessage Get(string name = "")
{
var res = new get_full_switch();
try
{
var data = new List<data>();
if (!string.IsNullOrEmpty(name))
{
var list = bll.GetModelList("");
var alist = list.DistinctBy(x => x.LightingType).ToList();
foreach (var item in alist)
{
var Type = item.LightingType;
var Number = item.LightingNumber;
var Id = item.ClientId;
var clist = bll.GetModelList("").Where(x => x.LightingNumber == Number && x.LightingType == Type && x.ClientId == Id).ToList();
if (name == "全开")
{
foreach (var aitem in clist)
{
var model = new DataService.Model.lighting_info()
{
LightingId = aitem.LightingId,
LightingNumber = aitem.LightingNumber,
LightingName = aitem.LightingName,
LightingType = aitem.LightingType,
LightingState = "255",
LightingMalfunction = aitem.LightingMalfunction,
PointerCode = aitem.PointerCode,
ClientId = aitem.ClientId,
Reserve1 = aitem.Reserve1,
Reserve2 = aitem.Reserve2,
Reserve3 = aitem.Reserve3,
Reserve4 = aitem.Reserve4,
Reserve5 = aitem.Reserve5,
};
bll.Update(model);
}
}
if (name == "全关")
{
foreach (var aitem in clist)
{
var model = new DataService.Model.lighting_info()
{
LightingId = aitem.LightingId,
LightingNumber = aitem.LightingNumber,
LightingName = aitem.LightingName,
LightingType = aitem.LightingType,
LightingState = "0",
LightingMalfunction = aitem.LightingMalfunction,
PointerCode = aitem.PointerCode,
ClientId = aitem.ClientId,
Reserve1 = aitem.Reserve1,
Reserve2 = aitem.Reserve2,
Reserve3 = aitem.Reserve3,
Reserve4 = aitem.Reserve4,
Reserve5 = aitem.Reserve5,
};
bll.Update(model);
}
}
var dlist = bll.GetModelList("").Where(x => x.LightingNumber == Number && x.LightingType == Type && x.ClientId == Id).ToList();
log4net.Config.XmlConfigurator.Configure();
log = log4net.LogManager.GetLogger("loginfo");
var mqqt = new MqttClientService();
data controlData = new data();
controlData.h = new HeaderData();
controlData.h.rt = Number;
// 如果需要同时设置多个数据项,可以使用字典
controlData.b = new BodyData();
controlData.b.dl = new Dictionary<string, string>();
foreach (var citem in dlist)
{
controlData.b.dl["" + citem.PointerCode + ""] = "" + citem.LightingState + "";
}
data.Add(controlData);
mqqt.MqttClientStart();
mqqt.Publish("/gc/data/" + Id, "J" + JsonConvert.SerializeObject(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;
}
}
}