软测单独项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
120 KiB

using FangYar.BLL;
using FangYar.BLL.TBL;
using FangYar.Model.TBL;
using HardWareInteface.Common;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RestHttp;
using RoadFlow.Data.Model.WorkFlowExecute;
using RoadFlow.Platform;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Web;
using System.Web.Caching;
namespace FangYar.WebUI.Handle
{
/// <summary>
/// 云眸设备报警消息存储(进入区域侦测)
/// </summary>
public class hikAlarmReception : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain;charset=UTF-8";
string returnStr = "";
returnStr = ReceiveAlarmInfoPlate(context);
context.Response.Write(returnStr);
}
private string ReceiveAlarmInfoPlate(HttpContext context)
{
lock (hikAlarmQueueTask.infoQueue)
{
WriteLog("进入!");
HttpRequest request = context.Request;
Stream stream = request.InputStream;
string data = string.Empty;
if (stream.Length != 0)
{
try
{
using (StreamReader streamReader = new StreamReader(stream))
{
data = streamReader.ReadToEnd();
streamReader.Close();
}
//data = "{ \"ip\":\"192.168.1.225\",\"deviceKey\":\"DS-K1T671MF20210203V030200CHF73120905\",\"time\":\"2021-12-30 0:7:26\",\"personId\":\"52\",\"personType\":\"1\",\"type\":\"0\",\"name\":\"韩璞\",\"localUIRight\":\"False\",\"rightStime\":\"2021-07-08T00:00:00\",\"rightEtime\":\"2031-07-07T23:59:59\",\"path\":\"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
hikAlarmQueueTask.infoQueueFun(data); //添加 入队列
}
catch (Exception e)
{
WriteLog(e.Message);
WriteLog(e.StackTrace);
}
}
else
{
WriteLog("输入流的长度为0!");
}
return "true";
}
}
#region 自定义返回结果
public class ReutrnResult
{
public bool result { get; set; }
public string msg { get; set; }
}
#endregion
#region base转图片保存到服务器
/// <summary>
/// base转图片保存到服务器
/// </summary>
/// <param name="msg"></param>
private string GetFilePath(byte[] bytes, string devSerial)
{
string fileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString();//年月
string ImageFilePath = "/Attachment" + "/hikAlarmReception/" + devSerial + "/" + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString();
if (Directory.Exists(HttpContext.Current.Server.MapPath(ImageFilePath)) == false)//如果不存在就创建文件夹
{
Directory.CreateDirectory(HttpContext.Current.Server.MapPath(ImageFilePath));
}
string ImagePath, DbImagePath;
string str = DateTime.Now.ToString("yyyyHHddHHmmss");
DbImagePath = ImageFilePath + "/" + str;//定义图片名称
ImagePath = HttpContext.Current.Server.MapPath(ImageFilePath) + "/" + str;//定义图片名称
File.WriteAllBytes(ImagePath + ".png", bytes); //保存图片到服务器,然后获取路径
return DbImagePath + ".png";//获取保存后的路径
}
#endregion
#region 记录日志
/// <summary>
/// 记录日志
/// </summary>
/// <param name="msg"></param>
private void WriteLog(string msg)
{
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = msg, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "hikAlarmReception" });
//string path = AppDomain.CurrentDomain.BaseDirectory + "log\\hikAlarmReception\\";
//string filename = DateTime.Now.ToString("yyyyMMdd") + ".txt";
//if (Directory.Exists(path) == false)//如果不存在就创建文件夹
//{
// Directory.CreateDirectory(path);
//}
//FileInfo file = new FileInfo(path + filename);
//if (!file.Exists)
//{
// FileStream fs;
// fs = File.Create(path + filename);
// fs.Close();
//}
//using (FileStream fs = new FileStream(path + filename, FileMode.Append, FileAccess.Write))
//{
// using (StreamWriter sw = new StreamWriter(fs))
// {
// sw.WriteLine("时间:" + DateTime.Now.ToString() + " 信息:" + msg);
// }
//}
}
public bool IsReusable
{
get
{
return false;
}
}
#endregion
}
}