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 { /// /// handler_ajax 的摘要说明 /// http://192.168.10.123:6060/ExchangeData/Handler/handler_ajax.ashx? /// 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; } } } }