using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.IO; using System.Drawing; using System.Collections; namespace FangYar.ZHSQAPP.ashx { /// /// CommonHandler 的摘要说明 /// public class CommonHandler : IHttpHandler { private FangYar.BLL.CommomBLL bll = new BLL.CommomBLL(); public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/json"; string action = context.Request.Params["Action"]; string returnstr = ""; switch (action) { case "GetTEXT": returnstr = GetTEXT(context); break; case "HYTYPE": returnstr = GetHYTYPE(context); break; case "getDicList": returnstr = getDicList(context); break; case "getModsDicList": returnstr = getModsDicList(context); break; case "UploadImg": returnstr = GetUploadImg(context); break; case "UserName": returnstr = GetUserName(context); break; case "GetHomeCount": //获取首页中的综合数据统计 returnstr = GetHomeCount(context); break; case "UploadFiles": // returnstr = UploadFiles(context); break; } context.Response.Write(returnstr); } //根据字典表 类型、value值获取text private string GetTEXT(HttpContext context) { string returnstr = ""; try { FangYar.Model.LoginUserModel user = FangYar.Common.UserHelper.GetUser(context); string modCode = context.Request.Params["mod_code"]; string dicValue = context.Request.Params["dic_value"]; if (user != null) { string modtype = context.Request.Params["modtype"]; returnstr = "{\"code\":0,\"msg\":\"\",\"data\":"; DataTable data = bll.GetTableList("*", "tbl_sys_dicdetail", " MOD_CODE ='" + modCode + "' and DIC_VALUE = '" + dicValue + "'"); returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } else { returnstr = "{\"code\":-2,\"msg\":\"登录超时\",\"count\":0,\"data\":[]}"; } } catch { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; } return returnstr; } //查询行业类型 private string GetHYTYPE(HttpContext context) { string returnstr = ""; try { FangYar.Model.LoginUserModel user = FangYar.Common.UserHelper.GetUser(context); if (user != null) { DataTable list = (DataTable)FangYar.Common.CacheHelper.GetCache("HYTYPE"); if (list == null) { list = bll.GetTableList("*", "tbl_sys_dicdetail", " MOD_CODE ='HYTYPE'"); FangYar.Common.CacheHelper.SetCache("HYTYPE", list); } string where = " DEV_CODE = '" + user.OrgID + "' "; where += " and RECORD_STATE ='0' "; returnstr = "{\"code\":1,\"msg\":\"\","; returnstr += "\"data\":{"; returnstr += FangYar.Common.JsonHelper.ToJson(list); returnstr += "}"; returnstr += "}"; } else { returnstr = "{\"code\":-2,\"msg\":\"登录超时\",\"count\":0,\"data\":[]}"; } } catch { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; } return returnstr; } //查询字典列表 private string getDicList(HttpContext context) { string returnstr = ""; try { string modtype = context.Request.Params["modtype"]; returnstr = "{\"code\":0,\"msg\":\"\",\"data\":"; DataTable data = bll.GetTableList("*", "tbl_sys_dicdetail", " MOD_CODE ='" + modtype + "' ORDER BY DIC_ORDER"); returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]"; } return returnstr; } //查询多类型字典列表 private string getModsDicList(HttpContext context) { string returnstr = ""; try { string modtypes = context.Request.Params["modtypes"]; string[] modtypeArray = modtypes.Split(','); string modtype_s = ""; for (int i = 0; i < modtypeArray.Length; i++) { if (i == 0) { modtype_s = "'" + modtypeArray[i] + "'"; } else { modtype_s += ",'" + modtypeArray[i] + "'"; } } returnstr = "{\"code\":0,\"msg\":\"\",\"data\":"; DataTable data = bll.GetTableList("*", "tbl_sys_dicdetail", " MOD_CODE in(" + modtype_s + ") order by MOD_CODE , DIC_ORDER"); returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]"; } return returnstr; } //图片上传 private string GetUploadImg(HttpContext context) { string end = "{\"code\": -1,\"msg\": \"\",\"data\": {\"src\": \"\"}}"; //返回的json var file = context.Request.Files[0]; //获取选中文件 string serverPath = context.Request.Params["fileUrl"]; Stream stream = file.InputStream; //将文件转为流 System.Drawing.Image img = Image.FromStream(stream);//将流中的图片转换为Image图片对象 Random ran = new Random((int)DateTime.Now.Ticks);//利用时间种子解决伪随机数短时间重复问题 if (!Directory.Exists(context.Server.MapPath("~/" + serverPath))) { DirectoryInfo directoryInfo = new DirectoryInfo(context.Server.MapPath("~/" + serverPath)); directoryInfo.Create(); } //文件保存位置及命名,精确到毫秒并附带一组随机数,防止文件重名,数据库保存路径为此变量 //string serverPath = "Upload/Device/"; string filename = serverPath + DateTime.Now.ToString("yyyyMMddhhmmssms") + ran.Next(99999) + ".jpg"; //路径映射为绝对路径 string path = context.Server.MapPath("~/") + filename; try { img.Save(path);//图片保存,JPEG格式图片较小 //保存成功后的json end = "{\"code\": 0,\"msg\": \"\",\"data\": {\"src\": \"" + filename + "\"}}"; } catch (Exception ex) { } return end; } //根据入库登录名,更新登录名获取相应 姓名 private string GetUserName(HttpContext context) { string returnstr = ""; try { string A_PER = context.Request.Params["A_PER"]; string U_PER = context.Request.Params["U_PER"]; returnstr = "{\"code\":0,\"msg\":\"\",\"Data\":"; DataTable data = bll.getUserName(A_PER, U_PER); returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; } return returnstr; } //获取首页综合总计数据 private string GetHomeCount(HttpContext context) { string returnstr = ""; try { string ORG_ID = context.Request.Params["ORG_ID"]; returnstr = "{\"code\":0,\"msg\":\"\",\"Data\":"; string where = ""; if (!string.IsNullOrEmpty(ORG_ID)) { where += " and (ORG_ID ='" + ORG_ID + "' or ORG_ID in (select o.org_id from fire_org o where o.pid = '" + ORG_ID + "') )"; } DataTable data = bll.getHomeCount(where); returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; } return returnstr; } // private string UploadFiles(HttpContext context) { int code = -1; string msg = ""; string URL = null; string uploadpath = null; string filename = null; string originalName = null; HttpPostedFile uploadFile = null; string serverPath = context.Request.Params["fileUrl"]; serverPath = serverPath + "/" + DateTime.Now.ToString("yyyy-MM-dd") + "/"; if (!Directory.Exists(context.Server.MapPath("~/" + serverPath))) { DirectoryInfo directoryInfo = new DirectoryInfo(context.Server.MapPath("~/" + serverPath)); directoryInfo.Create(); } uploadpath = context.Server.MapPath("~/" + serverPath); try { uploadFile = context.Request.Files[0]; originalName = uploadFile.FileName.Split('.')[0]; filename = originalName + "(" + System.Guid.NewGuid() + ")" + getFileExt(uploadFile); uploadFile.SaveAs(uploadpath + filename); URL = serverPath + filename; msg = "上传成功"; code = 1; } catch (Exception e) { code = -1; msg = "未知错误"; URL = ""; } string returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"url\":\"" + URL + "\"}"; return returnstr; } private bool checkSize(HttpPostedFile uploadFile, int size) { return uploadFile.ContentLength >= (size * 1024 * 1024000); } //获取文件扩展名 private string getFileExt(HttpPostedFile uploadFile) { string[] temp = uploadFile.FileName.Split('.'); return "." + temp[temp.Length - 1].ToLower(); } public bool IsReusable { get { return false; } } } }