2025-03-27 15:05:14 +08:00

227 lines
13 KiB
C#

using HZQR.Common;
using QRWL.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using Business = SuperMap.RealEstate.ExchangeData.Business;
using HWSB = SuperMap.RealEstate.HighWay.Storage.Business;
namespace SuperMap.RealEstate.ExchangeData.Handler
{
/// <summary>
/// handler_ajax 的摘要说明
/// http://192.168.10.123:6060/ExchangeData/Handler/handler_ajax.ashx?
/// </summary>
public class handler_ajax : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
ServiceModel.Transaction _Transaction = new ServiceModel.Transaction();
string reString = string.Empty;
string action_type = HttpContext.Current.Request.Form["action_type"];
string action_data = HttpContext.Current.Request.Form["action_data"];
if (string.IsNullOrEmpty(action_type))
{
action_type = HttpContext.Current.Request.Params["action_type"];
action_data = HttpContext.Current.Request.Params["action_data"];
}
try
{
switch (action_type)
{
case "RealData":
#region
//接口参数
//action_type=RealData&action_data=331060&service_type=1
try
{
if (!string.IsNullOrEmpty(action_data))
{
DataTable _DataTable = new Business.CONFIGURATION(_Transaction).ExecuteDataTable(string.Format(
@"SELECT E.NUMBER_PEOPLE,E.CREATE_TIME,D.SERVERPART_ID,D.SERVERPARTCODE,D.SHOPCODE,
D.HEAT_X,D.HEAT_Y,D.SERVICE_TYPE,D.VIDEO_IP,D.CAMERA_ORDER,D.SHOPVIDEO_ID
FROM
(SELECT A.SERVERPART_ID,C.SERVERPARTCODE,C.SHOPCODE,A.LOGUSERNAME, A.LOGPASSWORD,
B.VIDEOPORT,C.HEAT_X,C.HEAT_Y,C.SHOPVIDEO_ID,C.VIDEO_IP,C.SERVICE_TYPE,C.CAMERA_ORDER
FROM HIGHWAY_EXCHANGE.T_EXTRANET A,HIGHWAY_EXCHANGE.T_EXTRANETDETAIL B,HIGHWAY_EXCHANGE.T_SHOPVIDEO C
WHERE A.EXTRANET_ID = B.EXTRANET_ID AND B.EXTRANETDETAIL_ID = C.EXTRANETDETAIL_ID AND
A.SERVERPART_ID IS NOT NULL AND B.EXTRANETDETAIL_ID IS NOT NULL AND C.EXTRANETDETAIL_ID IS NOT NULL AND
B.LOGUSERNAME IS NOT NULL AND B.LOGPASSWORD IS NOT NULL AND B.VIDEOPORT IS NOT NULL AND
A.EXTRANET_IP IS NOT NULL AND C.ISMONITOR = 1) D
LEFT JOIN
(SELECT SHOPVIDEO_ID,NUMBER_PEOPLE,CREATE_TIME,
ROW_NUMBER() OVER(PARTITION BY SHOPVIDEO_ID ORDER BY CREATE_TIME DESC) AS ROW_FLG
FROM HIGHWAY_EXCHANGE.T_MAPNUMSTATISTICS
WHERE CREATE_TIME >= TO_DATE('{0}','YYYY/MM/DD HH24:MI:SS') AND
CREATE_TIME <= TO_DATE('{1}','YYYY/MM/DD HH24:MI:SS')) E
ON
D.SHOPVIDEO_ID = E.SHOPVIDEO_ID AND E.ROW_FLG = '1'
WHERE
D.SERVERPART_ID = {2} ORDER BY D.SERVICE_TYPE DESC,D.CAMERA_ORDER ASC",
DateTime.Now.AddMinutes(-6).ToString(), DateTime.Now.ToString(), action_data));
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
reString = "{\"code\":1,\"msg\":\"成功\",\"data\":" + JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
reString = "{\"code\":-1,\"msg\":\"暂无数据\",\"data\":[]}";
}
}
else
{
reString = "{\"code\":-1,\"msg\":\"缺少action_data\",\"data\":[]}";
}
}
catch
{
reString = "{\"code\":-1,\"msg\":\"接口错误\",\"data\":[]}";
}
#endregion
break;
case "TotalAmountData":
#region
//接口参数
//action_type=TotalAmountData&action_data=331060&service_type=1&cycletime_count=10
try
{
string cycletime_count = HttpContext.Current.Request.Form["cycletime_count"];
if (string.IsNullOrEmpty(cycletime_count))
{
cycletime_count = HttpContext.Current.Request.Params["cycletime_count"];
if (string.IsNullOrEmpty(cycletime_count))
{
cycletime_count = "60";//统计时间间隔
}
}
if (!string.IsNullOrEmpty(action_data) && !string.IsNullOrEmpty(cycletime_count))
{
//半小时统计
DataTable _DataTable = new Business.CONFIGURATION(_Transaction).ExecuteDataTable(String.Format(
@"SELECT
(CASE FLOOR((TO_CHAR(A.CREATE_TIME + 1/1440*{0}, 'MI')) / {0})
WHEN 0 THEN TO_CHAR(A.CREATE_TIME + 1/1440*{0}, 'YYYY/MM/DD HH24') || ':00:00'
WHEN 1 THEN TO_CHAR(A.CREATE_TIME + 1/1440*{0}, 'YYYY/MM/DD HH24') || ':30:00' END) AS DT,
SUM(A.NUMBER_PEOPLE) AS NUMBER_PEOPLE
FROM
HIGHWAY_EXCHANGE.T_MAPNUMSTATISTICS A,
HIGHWAY_EXCHANGE.T_EXTRANET B,
HIGHWAY_EXCHANGE.T_EXTRANETDETAIL C,
HIGHWAY_EXCHANGE.T_SHOPVIDEO D
WHERE
A.SHOPVIDEO_ID = D.SHOPVIDEO_ID AND D.EXTRANETDETAIL_ID = C.EXTRANETDETAIL_ID AND
C.EXTRANET_ID = B.EXTRANET_ID AND B.SERVERPART_ID = {1} AND
A.CREATE_TIME BETWEEN TRUNC(SYSDATE) AND SYSDATE
GROUP BY
(CASE FLOOR((TO_CHAR(A.CREATE_TIME + 1/1440*{0}, 'MI')) / {0})
WHEN 0 THEN TO_CHAR(A.CREATE_TIME + 1/1440*{0}, 'YYYY/MM/DD HH24') || ':00:00'
WHEN 1 THEN TO_CHAR(A.CREATE_TIME + 1/1440*{0}, 'YYYY/MM/DD HH24') || ':30:00' END)
ORDER BY DT", int.Parse(cycletime_count), action_data));
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
reString = "{\"code\":1,\"msg\":\"成功\",\"data\":" + JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
reString = "{\"code\":-1,\"msg\":\"暂无数据\",\"data\":[]}";
}
}
else
{
reString = "{\"code\":-1,\"msg\":\"缺少action_data/cycletime_count\",\"data\":[]}";
}
}
catch
{
reString = "{\"code\":-1,\"msg\":\"接口错误\",\"data\":[]}";
}
#endregion
break;
case "ChannelList":
#region
//接口参数
//action_type=ChannelList&action_data=331060&service_type=1&vedio_type=1000
try
{
string vedio_type = HttpContext.Current.Request.Form["vedio_type"];
string service_type = HttpContext.Current.Request.Form["service_type"];
if (string.IsNullOrEmpty(vedio_type))
{
vedio_type = HttpContext.Current.Request.Params["vedio_type"];
}
if (string.IsNullOrEmpty(service_type))
{
service_type = HttpContext.Current.Request.Params["service_type"];
}
if (!string.IsNullOrEmpty(action_data) && !string.IsNullOrEmpty(service_type))
{
DataTable _DataTable = new Business.CONFIGURATION(_Transaction).ExecuteDataTable(
string.Format(@"SELECT A.SERVERPART_ID,C.SERVERPARTCODE,B.EXTRANETDETAIL_ID,A.LOGUSERNAME,
B.LOGINPORT,A.LOGPASSWORD,B.VIDEOPORT,A.EXTRANET_IP,C.SHOPVIDEO_ID,C.VIDEO_IP
FROM HIGHWAY_EXCHANGE.T_EXTRANET A,HIGHWAY_EXCHANGE.T_EXTRANETDETAIL B,HIGHWAY_EXCHANGE.T_SHOPVIDEO C
WHERE A.EXTRANET_ID = B.EXTRANET_ID AND B.EXTRANETDETAIL_ID = C.EXTRANETDETAIL_ID AND
A.SERVERPART_ID IS NOT NULL AND B.EXTRANETDETAIL_ID IS NOT NULL AND
C.EXTRANETDETAIL_ID IS NOT NULL AND B.LOGUSERNAME IS NOT NULL AND B.LOGPASSWORD IS NOT NULL AND
B.VIDEOPORT IS NOT NULL AND A.EXTRANET_IP IS NOT NULL AND A.SERVERPART_ID = '{0}' {1} {2} ",
action_data, service_type == "0" ? " " : (" AND C.SERVICE_TYPE =" + service_type),
string.IsNullOrEmpty(vedio_type) ? "" : (" AND VEDIO_TYPE = " + vedio_type)));
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
reString = "{\"code\":1,\"msg\":\"成功\",\"data\":" + JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
reString = "{\"code\":-1,\"msg\":\"暂无数据\",\"data\":[]}";
}
}
else
{
reString = "{\"code\":-1,\"msg\":\"缺少action_data\",\"data\":[]}";
}
}
catch
{
reString = "{\"code\":-1,\"msg\":\"接口错误\",\"data\":[]}";
}
#endregion
break;
//导入商品数据
case "ImportGoods":
reString = CommonInterface.DataTransfer.ImportGoods(_Transaction);
break;
//更新数据变更日志表
case "UpdateDataVersion":
reString = CommonInterface.DataTransfer.UpdateDataVersion(_Transaction);
break;
default:
reString = "{\"code\":-1,\"msg\":\"缺少action_type/service_type\",\"data\":[]}";
break;
}
}
catch
{
reString = "{\"code\":-1,\"msg\":\"未知错误\",\"data\":[]}";
}
context.Response.Charset = "UTF-8";
context.Response.ContentType = "application/json;charset=UTF-8";
context.Response.ContentEncoding.GetBytes("UTF-8");
context.Response.Write(reString);
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
}