using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace VRS.Handler { /// /// Tanhei 的摘要说明 /// public class Tanhei : BaseHandler, IHttpHandler { DataService.BLL.pro_base_gateway bll_gateway = new DataService.BLL.pro_base_gateway(); DataService.BLL.pro_base_sensor bll_sensor = new DataService.BLL.pro_base_sensor(); DataService.BLL.pro_base_device bll_device = new DataService.BLL.pro_base_device(); DataService.BLL.pro_base_device_point bll_device_point = new DataService.BLL.pro_base_device_point(); DataService.BLL.pro_scene_open bll_scene_open = new DataService.BLL.pro_scene_open(); DataService.BLL.pro_scene_base bll_scene_base = new DataService.BLL.pro_scene_base(); DataService.BLL.admin_user bll_user = new DataService.BLL.admin_user(); public void ProcessRequest(HttpContext context) { baseContext = context; context.Response.ContentType = "application/json"; CrossDomain(); if (null == context.Request["action"]) { var result = GetResult(false, "缺少参数:action"); context.Response.Write(result); context.Response.End(); } string action = context.Request["action"].ToLower(); //log.write_log("登录接口:" + action); switch (action) { //通过用户获取开放场景 case "queryscenebyuser": QuerySceneByUser(context); break; //获取六个基础网关和属性 case "querygateway": QueryGateway(context); break; //获取基础传感器及答案配置 case "querysensor": QuerySensor(context); break; case "querydevice": QueryDevice(context); break; case "querydevicepoint": QueryDevicePoint(context); break; default: var result = GetResult(false, "方法名不存在:" + action); context.Response.Write(result); break; } } public void QueryGateway(HttpContext context) { var lang = context.Request.Params["lang"]; string msg = ""; if (string.IsNullOrEmpty(lang)) { lang = "0"; msg = "中文"; } if (lang == "1") { msg = "英文"; } else if (lang == "0") { msg = "中文"; } var list = bll_gateway.GetModelList(string.Format(" r1 ='{0}' ", lang)); var result = GetResult(true, list, msg); context.Response.Write(result); context.Response.End(); } public void QuerySensor(HttpContext context) { var lang = context.Request.Params["lang"]; string msg = ""; if (string.IsNullOrEmpty(lang)) { lang = "0"; msg = "中文"; } if (lang == "1") { msg = "英文"; } else if (lang == "0") { msg = "中文"; } var list = bll_sensor.GetModelList(string.Format(" r1 ='{0}' ", lang)); var result = GetResult(true, list, msg); context.Response.Write(result); context.Response.End(); } public void QueryDevice(HttpContext context) { var lang = context.Request.Params["lang"]; string msg = ""; if (string.IsNullOrEmpty(lang)) { lang = "0"; msg = "中文"; } if (lang == "1") { msg = "英文"; } else if (lang == "0") { msg = "中文"; } var list = bll_device.GetModelList(string.Format(" r1 ='{0}' ", lang)); var result = GetResult(true, list, msg); context.Response.Write(result); context.Response.End(); } public void QueryDevicePoint(HttpContext context) { var lang = context.Request.Params["lang"]; string msg = ""; if (string.IsNullOrEmpty(lang)) { lang = "0"; msg = "中文"; } if (lang == "1") { msg = "英文"; } else if (lang == "0") { msg = "中文"; } var list = bll_device_point.GetModelList(string.Format(" r1 ='{0}' ", lang)); var result = GetResult(true, list, msg); context.Response.Write(result); context.Response.End(); } /// /// 查询开放的场景 /// /// public void QuerySceneByUser(HttpContext context) { var user_id = context.Request.Params["user_id"]; var user = bll_user.GetModel(user_id); if (null == user) { var ret = GetResult(false, "用户不存在 , user_id:" + user_id); context.Response.Write(ret); context.Response.End(); } var now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var qry = " 1=1 and state=1 "; qry = qry + string.Format(" and school_id='{0}' ", user.school_id); //now>start && now< end //qry = qry + string.Format(" and start_time<'{0}' ", now); //qry = qry + string.Format(" and end_time>'{0}' ", now); qry = qry + string.Format(" and start_timenow() "); var list = bll_scene_open.GetModelList(qry); var user_grade = user.grade; var dic_scene = new Dictionary(); foreach (var open in list) { if (!string.IsNullOrEmpty(open.grade)) { var array_grade = open.grade.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (array_grade.Contains(user_grade)) { if (!dic_scene.ContainsKey(open.scene_id)) { var model = bll_scene_base.GetModel(open.scene_id); dic_scene.Add(open.scene_id, model); } } } else { if (!dic_scene.ContainsKey(open.scene_id)) { var model = bll_scene_base.GetModel(open.scene_id); dic_scene.Add(open.scene_id, model); } } } var list_scene = dic_scene.Values.Select(s => s.scene_name).ToArray(); var scenes = string.Join(",", list_scene); var result = GetResult(true, scenes, ""); context.Response.Write(result); context.Response.End(); } public bool IsReusable { get { return false; } } } }