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.
232 lines
59 KiB
232 lines
59 KiB
9 months ago
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Web;
|
||
|
using System.IO;
|
||
|
using System.Reflection;
|
||
|
using System.Collections;
|
||
|
|
||
|
namespace FangYar.WebUI.ashx
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// CarTest_SHZ 的摘要说明
|
||
|
/// </summary>
|
||
|
public class CarTest_SHZ : IHttpHandler
|
||
|
{
|
||
|
|
||
|
FangYar.BLL.TBL_CARACCESS bll = new FangYar.BLL.TBL_CARACCESS();
|
||
|
FangYar.BLL.TBL_SYS_CAR car_bll = new FangYar.BLL.TBL_SYS_CAR();
|
||
|
|
||
|
public void ProcessRequest(HttpContext context)
|
||
|
{
|
||
|
|
||
|
// 记录操作日志
|
||
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Other, "车辆测试操作请求SHZ", "");
|
||
|
|
||
|
context.Response.ContentType = "text/plain";
|
||
|
string returnStr = "";
|
||
|
|
||
|
returnStr = ReceiveAlarmInfoPlate(context);
|
||
|
context.Response.Write(returnStr);
|
||
|
}
|
||
|
private string ReceiveAlarmInfoPlate(HttpContext context)
|
||
|
{
|
||
|
WriteLog("进入!");
|
||
|
HttpRequest request = context.Request;
|
||
|
Stream stream = request.InputStream;
|
||
|
string data = string.Empty;
|
||
|
string response = string.Empty;
|
||
|
bool isadd = false;
|
||
|
|
||
|
data = "type=online&mode=5&plate_num=新1&car_logo=未知&plate_val=true&confidence=28&plate_color=蓝色&car_color=未知&vehicle_type=轿车&start_time=1568082659&park_id=2&cam_id=18030004bea5&cam_ip=10.0.0.21&vdc_type=in&is_whitelist=false&triger_type=video&picture=_9j_4AAQSkZJRgABAQIAdgB2AAD_7wAPAAAAAAAAAAAAAAAAAP_bAEMABgQFBQUEBgUFBQcGBgcJDwoJCAgJEw0OCw8WExcXFhMVFRgbIx4YGiEaFRUeKR8hJCUnKCcYHSsuKyYuIyYnJv_bAEMBBgcHCQgJEgoKEiYZFRkmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJv_AABEIAiADwAMBIgACEQEDEQH_xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv_xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5-jp6vHy8_T19vf4-fr_xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv_xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4-Tl5ufo6ery8_T19vf4-fr_2gAMAwEAAhEDEQA_APnQdOaT6UDkV6Mtn4Yl8H6jrV_4Zj0Swltjb6JML2aa-vLxNoZ_mYRNECG8xhGgG4KvzCgo86pa9m174daNaf8ACR-H4dPkiuNA0qS9j177QWa9nhjilmiaDO1EK3UQXGCu0EtJlgOW1HRPDK_Bix8RabFdyax_bYsry4ufkUfuGkMcaKxXYPkwxG4kHoCFAFzgxSk17JP4S8H6h_wlEeiW2mz6Ppvh9tQ07VLfVS99LNHHEx86AynaCxkVgYUxwBtOK820Xw9NqGi6jrtzcR6fpVijJ9pmBInuSpMdvGByzscZxwi5ZuMAsLmIPWg17Lr3w70e0PiPw_Dp8kVxoGlyXsevfaCzXs8McUs8TQZ2ohW6iC4wV2glpMsAk_hLwfqH_CUR6JbabPo-m-H21DTtUt9VL30s0ccTHzoDKdoLGRWBhTHAG04oFc8b70h4rd0bw7Pf6NqOuXNxHp-lWKMn2mYEie5Kkx28YHLOxxnHCLlm4wD0Go6J4ZHwZsfEOmxXb6x_bYsry4uTsUf6O0hjjRWK7B8mGPzEg9AQoBnAk0V7Pr3w70a0_wCEj8Pw6fJFcaBpcl7HrxuCzXs8McUs0TQZ2ohW6iC4wV2glpMsB4xj3qQWoc_SlGM17Nr3w70a0_4SPw_Fp8kU-gaXJex68bgs17PDHFLNE0GdqIVuoguMFdoJaTLAc6LTwxL4P1HWr_wymiWEtsbfRJlvZpr68vE2hn-ZhE0QIbzGEaAbgq_MKoLnnRoNXxa6b_wj_wBt_tb_AImn2vyv7N-zN_qdmfO837v3vl2de_SvVL34WRaH8M_El3qmm39x4osYrW48xYpBbWyPJ86RsPlmZYwzSMNyLkAH5WJLgeOUtex3vwti0P4Z-JLvU9Nv7jxRYxWtxvWKQW1sjyfOkbD5ZmWMM0jfMi5AByrE-V_ZdN_sD7b_AGt_xNPtflf2b9mb_U7M-d5v3fvfLs69-lAFDtSc16KLTwxL4P1HWr_w0miWEtsbfRJlvZpr68vE27n-ZhE0QIbzGEaAbgq_MKs_EbwI-hzXWjaHpNpejRbaO4v9STUFkvJgVBeRrUSkxRAyKP8AVkgKGLkEmkFzzAmkOM07-dIfpxQAn4UdKDRTGIKUCgUDrQIU0h5FKaSmAH1oopO9FwA5x7UfjRQaQCfrRQaX8KAEpDSniigBKKDRQAvNJRRQAUhoooAO9FFFMBT0pKdjjikA5pXAQUp6-tFFABSikJoHWgBWBwKQClbOKTPGKQxO9FFHegAooNFMVw5oozR3oEFFFFAC80lFFAC0GikoAWik7UtAw5oPSiikIKOaBSGgBfxooooGL-lJzRSnpQO4c0hooHSgApeaOKKAAUCjrR2oAAKXmkooAUUUZopAKKO1A7UUAFHsc0cUpoC4DpxRRS_nQG4lLijnP-NLQIKQUuPag9KQw70tHag9KB7BSd_el_QUtADcf5NKaMY96O3SgBM--aB9KWlUcgcDPqaAE_Gkxz1xTiO3XFCjJAyBn-8cD86AE79qDS9-aMUAJRS4oxzSAO_rR-P4UduvFKeg4oAOfWjmlx_k0UDG0UuOc0fjQAmRRQe3FJQIOexpKWkoGAoPT3ozjikPWgQnFd74q8Z-GfEWoXuo3Pg-7WeSxFnZQf2x_o2n7UCxtFEkKnCkFthbaSzcc8cEMdP5V7D4f0W6PhgQxaN4Lv4baKZ7iObUxPItx5TDKkXvlr5kal2YGPHkO23MMW6yGc5qfxHnvYNTvV0mOLxJrNgunalqwmLLPABhtsG3ajuqxqzZI-QlVQsTVIeKdG_4V7_wh_8AYV9_x-f2h9r_ALTT_j58nys7PI_1ffZu3dt_et3xJoOr6f4du7Gw_wCEes9EhsdPurz_AE61lmurs26uSrl3kDndMUVCqMivsB3nfpa78KV0_R9V09bPU49Y0KwOpXWsSwsNPvQFDSW8TY4KKRtbq7eaGCgLtA0OI0vxNZ6Loeo2miaVPBqWqWn2G8v7q8Ew8hv9akUQjUJvIXli5UDAIJ3VU8V-Ip9fubeNLaPTtKsUMWn6ZAxMdrGTk8nl3Y8u55Y8njAHYaJpHh3XtA8QXi-HLTTrSx0WS5s5rfVXu9Q-0RlFBmiD8IzbizeQiqrZyow1bPiPw34KtPD8N3caZpujpe-E4dTtpYdSla5bUXI2xJC8zkxHkElDgbvnGMgA5bUviNPewanejSY4fEms2K6dqWrCYlZ4ANrbYNu1HdVjVmyR8hKqhYmsvS_E1nouh6jZ6Jpc9vqWqWf2G8v7q8Ew8hv9akUQjUJvIXli5UDAIJ3Vo_FLTdH0z_hFv7I0iDTv7R0G21K48qaaTdLNuyP3jthRt4A55OSeManxG8CPoc91o2iaVaXo0W2juL_U01BZLyYFQXka1EuYogZFH-rJAUMXIJNAHHeK_EU2v3ECJbR6dpVihi0_TYGJitYycnk8u7Hl3PLHk8YA1B4p0b_hXv8Awh_9hX2ftn9ofa_7TT_j58nys7PI_wBX32bt3bf3q7qOi-GV-DNj4i02K7k1j-2xZXlxc_IB_o7SGONFYrsHyYYjcSD0BCjgu1Ie53up_Eae9g1O9Gkxw-JNZsF07UtWE5ZZ4ANrbYNu1HdVjVmyR8hKqhYmuDIwPWvTtFVL3w3e2cHgvQmN1aRa1FGlxehCkVzJaN5ha4Gzb5kj794RUU7gc5RnjfUvDtrottYabZeHr2ZLZ7NAtrqUc0Vs8jXENxH57BUJ8zOMueeGdHKqxbFDU_iNPewanejSI4fEms2C6dqWrCcss8AG1tsG3ajuqxqzZI-QlVQsTSeKvGXhrxFqF7qNz4QulnksRZ2UH9sf6Np-1AsbRRJCpwpBbYW2ks3HPD_Celwab4Y1bVNVutIga8-y2hs9V-1FDbyl51dhbLvVma2jZPmGUDEjDxlpfH3hzQ7TTLufTrrRbW80W5isb62sBf
|
||
|
WriteLog(data.ToString());
|
||
|
#region 用于传递数据的输出
|
||
|
|
||
|
if (stream.Length != 0)
|
||
|
{
|
||
|
WriteLog(data.ToString());
|
||
|
}
|
||
|
#endregion
|
||
|
string[] sArray = data.Split('&');
|
||
|
|
||
|
FangYar.Model.TBL_CARACCESS model = new FangYar.Model.TBL_CARACCESS();
|
||
|
|
||
|
for (int i = 0; i < sArray.Length; i++)
|
||
|
{
|
||
|
string[] keyValue = sArray[i].Split('=');
|
||
|
PropertyInfo[] propertys = model.GetType().GetProperties();
|
||
|
Hashtable ht = new Hashtable();
|
||
|
if (keyValue[0].ToUpper() == "TYPE" && keyValue[1] != "online")
|
||
|
{
|
||
|
isadd = false;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
else if (keyValue[0].ToUpper() == "TYPE")
|
||
|
{
|
||
|
model.TYPE = keyValue[1];
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "PLATE_NUM")
|
||
|
{
|
||
|
model.CAR_PLATE = keyValue[1];
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "PLATE_COLOR")
|
||
|
{
|
||
|
model.COLOR = keyValue[1];
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "CAR_COLOR")
|
||
|
{
|
||
|
model.CAR_COLOR = keyValue[1];
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "CAR_LOGO")
|
||
|
{
|
||
|
model.CAR_LOGO = keyValue[1];
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "PARK_ID")
|
||
|
{
|
||
|
model.PARK_ID = keyValue[1];
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "CAM_ID")
|
||
|
{
|
||
|
model.CAMERA_ID = keyValue[1];
|
||
|
if (keyValue[1] == "18030004bdef")//进
|
||
|
{
|
||
|
model.INOROUT = "0";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
model.INOROUT = "1";
|
||
|
}
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "START_TIME")
|
||
|
{
|
||
|
string str = keyValue[1];
|
||
|
long unixTimeStamp = long.Parse(str);
|
||
|
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
|
||
|
DateTime dt = startTime.AddSeconds(unixTimeStamp);
|
||
|
model.START_TIME = dt;
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "PICTURE")
|
||
|
{
|
||
|
string str = keyValue[1].Replace('-', '+').Replace('_', '/').Replace('.', '=');
|
||
|
|
||
|
string dummyData = str.Trim().Replace("%", "").Replace(",", "").Replace(" ", "+");
|
||
|
if (dummyData.Length % 4 > 0)
|
||
|
{
|
||
|
dummyData = dummyData.PadRight(dummyData.Length + 4 - dummyData.Length % 4, '=');
|
||
|
}
|
||
|
byte[] byteArray = Convert.FromBase64String(dummyData);
|
||
|
model.PICTURE = byteArray;
|
||
|
}
|
||
|
else if (keyValue[0].ToUpper() == "CLOSEUP_PIC")
|
||
|
{
|
||
|
string str = keyValue[1].Replace('-', '+').Replace('_', '/').Replace('.', '=');
|
||
|
|
||
|
string dummyData = str.Trim().Replace("%", "").Replace(",", "").Replace(" ", "+");
|
||
|
if (dummyData.Length % 4 > 0)
|
||
|
{
|
||
|
dummyData = dummyData.PadRight(dummyData.Length + 4 - dummyData.Length % 4, '=');
|
||
|
}
|
||
|
byte[] byteArray = Convert.FromBase64String(dummyData);
|
||
|
model.CLOSEUP_PIC = byteArray;
|
||
|
}
|
||
|
isadd = true;
|
||
|
}
|
||
|
if (isadd)
|
||
|
{
|
||
|
model.ID = Guid.NewGuid().ToString("N");
|
||
|
model.ORG_ID = "fbbb44bb458c4336a84e009df74c8598";
|
||
|
FangYar.Model.TBL_SYS_CAR car_model = car_bll.CarNumGetModel(model.ORG_ID, model.CAR_PLATE);
|
||
|
if (car_model != null)
|
||
|
{
|
||
|
model.CLASS = car_model.CLASS;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
model.CLASS = "2";
|
||
|
}
|
||
|
|
||
|
isadd = bll.Add(model);
|
||
|
}
|
||
|
// }
|
||
|
// catch (Exception e)
|
||
|
// {
|
||
|
// WriteLog(e.Message);
|
||
|
// }
|
||
|
|
||
|
//}
|
||
|
//else
|
||
|
//{
|
||
|
// WriteLog("输入流的长度为0!");
|
||
|
//}
|
||
|
|
||
|
if (isadd == true)
|
||
|
{
|
||
|
return "true";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return "false";
|
||
|
}
|
||
|
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// 记录日志
|
||
|
/// </summary>
|
||
|
/// <param name="msg"></param>
|
||
|
private void WriteLog2(string msg)
|
||
|
{
|
||
|
string path = AppDomain.CurrentDomain.BaseDirectory + "log\\caraccess_shz\\text.txt";
|
||
|
|
||
|
FileInfo file = new FileInfo(path);
|
||
|
if (!file.Exists)
|
||
|
{
|
||
|
FileStream fs;
|
||
|
fs = File.Create(path);
|
||
|
fs.Close();
|
||
|
}
|
||
|
|
||
|
|
||
|
using (FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write))
|
||
|
{
|
||
|
|
||
|
using (StreamWriter sw = new StreamWriter(fs))
|
||
|
{
|
||
|
sw.WriteLine(DateTime.Now.ToString() + "—" + msg);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
private void WriteLog(string msg)
|
||
|
{
|
||
|
string path = AppDomain.CurrentDomain.BaseDirectory + "log\\caraccess_shz\\";
|
||
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|