软测单独项目
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.
 
 
 
 
 
 

315 lines
11 KiB

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
{
/// <summary>
/// CommonHandler 的摘要说明
/// </summary>
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;
}
}
}
}