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.
200 lines
6.8 KiB
200 lines
6.8 KiB
4 years ago
|
using System;
|
||
|
using System.Data;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Web;
|
||
|
using System.Web.Mvc;
|
||
|
using QMAPP.Common.Web.Controllers;
|
||
|
using QMFrameWork.WebUI.Attribute;
|
||
|
using QMFrameWork.Data;
|
||
|
using QMAPP.ServicesAgent;
|
||
|
using QMFrameWork.Common.Serialization;
|
||
|
using QMFrameWork.WebUI.DataSource;
|
||
|
using QMAPP.Common.Web.Util;
|
||
|
using QMAPP.Web.Models.Report;
|
||
|
using QMAPP.Entity.Sys;
|
||
|
using QMAPP.Entity.Report;
|
||
|
|
||
|
namespace QMAPP.Web.Controllers
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// 权限查询
|
||
|
/// </summary>
|
||
|
public class PowerQueryController : QController
|
||
|
{
|
||
|
#region 权限查询
|
||
|
/// <summary>
|
||
|
/// 权限查询
|
||
|
/// </summary>
|
||
|
/// <returns></returns>
|
||
|
[HandleException]
|
||
|
public ActionResult AuthorityList(bool? callBack)
|
||
|
{
|
||
|
AuthorityModel model = new AuthorityModel();
|
||
|
|
||
|
model.url = "/PowerQuery/GetList";
|
||
|
return View("AuthorityList", model);
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 权限查询信息
|
||
|
/// </summary>
|
||
|
/// <returns>结果</returns>
|
||
|
[HandleException]
|
||
|
public ActionResult GetList(bool? callBack)
|
||
|
{
|
||
|
AuthorityModel seachModel = null;//查询条件
|
||
|
PowerQyCondition condition = null;//查询条件
|
||
|
DataPage page = new DataPage();
|
||
|
PowerUtil pu = new PowerUtil();
|
||
|
try
|
||
|
{
|
||
|
//获取查询对象
|
||
|
seachModel = GetModel<AuthorityModel>();
|
||
|
|
||
|
#region 获取缓存值
|
||
|
if (callBack != null)
|
||
|
{
|
||
|
TryGetSelectBuffer<AuthorityModel>(out seachModel);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
//保存搜索条件
|
||
|
SetSelectBuffer<AuthorityModel>(seachModel);
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
//获取前台分页设置信息
|
||
|
page = this.GetDataPage(seachModel);
|
||
|
condition = CopyToModel<PowerQyCondition, AuthorityModel>(seachModel);
|
||
|
|
||
|
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
|
||
|
page = agent.InvokeServiceFunction<DataPage>("QueryUserPowerBLL_GetUserPowerList", condition, page);
|
||
|
|
||
|
List<PowerQueryResult> resultList = JsonConvertHelper.GetDeserialize<List<PowerQueryResult>>(page.Result.ToString());
|
||
|
|
||
|
//获取权限信息
|
||
|
List<string> systemIDs = new List<string> { "Main", "FJC" };
|
||
|
List<PowerInfo> allPowers = new List<PowerInfo>();
|
||
|
foreach (string systemID in systemIDs)
|
||
|
{
|
||
|
string powerFile = MvcApplication.PhysicsRootPath + @"App_Data\" + systemID + "Power.xml";
|
||
|
List<PowerInfo> powers = pu.GetPowerList(powerFile);
|
||
|
|
||
|
allPowers.AddRange(powers);
|
||
|
}
|
||
|
|
||
|
//匹配权限名称
|
||
|
foreach (PowerQueryResult r in resultList)
|
||
|
{
|
||
|
PowerInfo pi = allPowers.Find(p => p.PowerID == r.AUTHORITYID);
|
||
|
|
||
|
if (pi != null)
|
||
|
{
|
||
|
r.AUTHORITYNAME = pi.PowerDes;
|
||
|
|
||
|
if (pi.PowerType.ToLower() == "button")
|
||
|
{
|
||
|
PowerInfo parentPi = allPowers.Find(p => p.PowerID == pi.SuperID);
|
||
|
|
||
|
if (parentPi == null)
|
||
|
continue;
|
||
|
|
||
|
r.AUTHORITYNAME = parentPi.PowerDes + "-" + r.AUTHORITYNAME;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
r.AUTHORITYNAME="";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//数据格式转换
|
||
|
DataGridResult<PowerQueryResult> result = new DataGridResult<PowerQueryResult>();
|
||
|
result.Total = page.RecordCount;
|
||
|
result.Rows = resultList;
|
||
|
|
||
|
return Content(result.GetJsonSource());
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
throw ex;
|
||
|
}
|
||
|
}
|
||
|
#endregion
|
||
|
|
||
|
#region 导出excel
|
||
|
|
||
|
/// <summary>
|
||
|
/// 导出excel
|
||
|
/// </summary>
|
||
|
/// <returns>结果</returns>
|
||
|
[HttpPost]
|
||
|
[HandleException]
|
||
|
public ActionResult ExpertExcel()
|
||
|
{
|
||
|
AuthorityModel seachModel = null;
|
||
|
PowerQyCondition condition = null;
|
||
|
DataTable exportDt = new DataTable();
|
||
|
ServiceAgent wcfAgent = this.GetServiceAgent();
|
||
|
PowerUtil pu = new PowerUtil();
|
||
|
string selectKey = Request.Form["selectKey"];
|
||
|
try
|
||
|
{
|
||
|
//获取查询对象
|
||
|
seachModel = GetModel<AuthorityModel>();
|
||
|
condition = CopyToModel<PowerQyCondition, AuthorityModel>(seachModel);
|
||
|
|
||
|
//获取数据
|
||
|
exportDt = wcfAgent.InvokeServiceFunction<DataTable>("QueryUserPowerBLL_GetExportData", condition);
|
||
|
|
||
|
//获取权限信息
|
||
|
List<string> systemIDs = new List<string> { "Main", "MainData", "KB", "PLP", "Report" };
|
||
|
List<PowerInfo> allPowers = new List<PowerInfo>();
|
||
|
foreach (string systemID in systemIDs)
|
||
|
{
|
||
|
string powerFile = MvcApplication.PhysicsRootPath + @"App_Data\" + systemID + "Power.xml";
|
||
|
List<PowerInfo> powers = pu.GetPowerList(powerFile);
|
||
|
|
||
|
allPowers.AddRange(powers);
|
||
|
}
|
||
|
|
||
|
//匹配权限名称
|
||
|
foreach (DataRow r in exportDt.Rows)
|
||
|
{
|
||
|
PowerInfo pi = allPowers.Find(p => p.PowerID == r["AUTHORITYID"].ToString());
|
||
|
|
||
|
if (pi != null)
|
||
|
{
|
||
|
r["AUTHORITYNAME"] = pi.PowerDes;
|
||
|
|
||
|
if (pi.PowerType.ToLower() == "button")
|
||
|
{
|
||
|
PowerInfo parentPi = allPowers.Find(p => p.PowerID == pi.SuperID);
|
||
|
|
||
|
if (parentPi == null)
|
||
|
continue;
|
||
|
|
||
|
r["AUTHORITYNAME"] = parentPi.PowerDes + "-" + r["AUTHORITYNAME"].ToString();
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
r["AUTHORITYNAME"] = "";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//导出
|
||
|
QMFrameWork.WebUI.Util.IEFileTool efTool = new QMFrameWork.WebUI.Util.IEFileTool();
|
||
|
return efTool.GetExcelFileResult("UserPowerList", "权限信息" + System.DateTime.Now.ToString("yyyy-MM-dd") + ".xls", exportDt);
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
throw ex;
|
||
|
}
|
||
|
}
|
||
|
#endregion
|
||
|
}
|
||
|
}
|