using LeaRun.Application.Cache;
using LeaRun.Application.Entity.SystemManage.ViewModel;
using LeaRun.Util;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using LeaRun.Application.Entity.BaseManage;
using LeaRun.Application.Busines.AuthorizeManage;
using LeaRun.Application.Code;
using LeaRun.Application.Entity.AuthorizeManage;
namespace LeaRun.Application.Web.Controllers
{
///
/// 版 本 6.1
/// Copyright (c) 2013-2016 上海力软信息技术有限公司
/// 创建人:佘赐雄
/// 日 期:2015.09.01 13:32
/// 描 述:客户端数据
///
public class ClientDataController : MvcControllerBase
{
private DataItemCache dataItemCache = new DataItemCache();
private OrganizeCache organizeCache = new OrganizeCache();
private DepartmentCache departmentCache = new DepartmentCache();
private PostCache postCache = new PostCache();
private RoleCache roleCache = new RoleCache();
private UserGroupCache userGroupCache = new UserGroupCache();
private UserCache userCache = new UserCache();
private AuthorizeBLL authorizeBLL = new AuthorizeBLL();
#region 获取数据
///
/// 批量加载数据给客户端(把常用数据全部加载到浏览器中 这样能够减少数据库交互)
///
///
[HttpPost]
[AjaxOnly]
public ActionResult GetClientDataJson()
{
var jsonData = new
{
organize = this.GetOrganizeData(), //公司
department = this.GetDepartmentData(), //部门
post = this.GetPostData(), //岗位
role = this.GetRoleData(), //角色
userGroup = this.GetUserGroupData(), //用户组
user = this.GetUserData(), //用户
dataItem = this.GetDataItem(), //字典
authorizeMenu = this.GetModuleData(), //导航菜单
authorizeButton = this.GetModuleButtonData(), //功能按钮
authorizeColumn = this.GetModuleColumnData(), //功能视图
};
return ToJsonResult(jsonData);
}
#endregion
#region 处理基础数据
///
/// 获取公司数据
///
///
private object GetOrganizeData()
{
var data = organizeCache.GetList();
Dictionary dictionary = new Dictionary();
foreach (OrganizeEntity item in data)
{
var fieldItem = new
{
EnCode = item.EnCode,
FullName = item.FullName
};
dictionary.Add(item.OrganizeId, fieldItem);
}
return dictionary;
}
///
/// 获取部门数据
///
///
private object GetDepartmentData()
{
var data = departmentCache.GetList();
Dictionary dictionary = new Dictionary();
foreach (DepartmentEntity item in data)
{
var fieldItem = new
{
EnCode = item.EnCode,
FullName = item.FullName,
OrganizeId = item.OrganizeId
};
dictionary.Add(item.DepartmentId, fieldItem);
}
return dictionary;
}
///
/// 获取岗位数据
///
///
private object GetUserGroupData()
{
var data = userGroupCache.GetList();
Dictionary dictionary = new Dictionary();
foreach (RoleEntity item in data)
{
var fieldItem = new
{
EnCode = item.EnCode,
FullName = item.FullName
};
dictionary.Add(item.RoleId, fieldItem);
}
return dictionary;
}
///
/// 获取岗位数据
///
///
private object GetPostData()
{
var data = postCache.GetList();
Dictionary dictionary = new Dictionary();
foreach (RoleEntity item in data)
{
var fieldItem = new
{
EnCode = item.EnCode,
FullName = item.FullName
};
dictionary.Add(item.RoleId, fieldItem);
}
return dictionary;
}
///
/// 获取角色数据
///
///
private object GetRoleData()
{
var data = roleCache.GetList();
Dictionary dictionary = new Dictionary();
foreach (RoleEntity item in data)
{
var fieldItem = new
{
EnCode = item.EnCode,
FullName = item.FullName
};
dictionary.Add(item.RoleId, fieldItem);
}
return dictionary;
}
///
/// 获取用户数据
///
///
private object GetUserData()
{
var data = userCache.GetList();
Dictionary dictionary = new Dictionary();
foreach (UserEntity item in data)
{
var fieldItem = new
{
EnCode = item.EnCode,
Account = item.Account,
RealName = item.RealName,
OrganizeId = item.OrganizeId,
DepartmentId = item.DepartmentId
};
dictionary.Add(item.UserId, fieldItem);
}
return dictionary;
}
///
/// 获取数据字典
///
///
private object GetDataItem()
{
var dataList = dataItemCache.GetDataItemList();
var dataSort = dataList.Distinct(new Comparint("EnCode"));
Dictionary dictionarySort = new Dictionary();
foreach (DataItemModel itemSort in dataSort)
{
var dataItemList = dataList.Where(t => t.EnCode.Equals(itemSort.EnCode));
Dictionary dictionaryItemList = new Dictionary();
foreach (DataItemModel itemList in dataItemList)
{
dictionaryItemList.Add(itemList.ItemValue, itemList.ItemName);
}
foreach (DataItemModel itemList in dataItemList)
{
dictionaryItemList.Add(itemList.ItemDetailId, itemList.ItemName);
}
dictionarySort.Add(itemSort.EnCode, dictionaryItemList);
}
return dictionarySort;
}
#endregion
#region 处理授权数据
///
/// 获取功能数据
///
///
private object GetModuleData()
{
return authorizeBLL.GetModuleList(SystemInfo.CurrentUserId);
}
///
/// 获取功能按钮数据
///
///
private object GetModuleButtonData()
{
var data = authorizeBLL.GetModuleButtonList(SystemInfo.CurrentUserId);
var dataModule = data.Distinct(new Comparint("ModuleId"));
Dictionary dictionary = new Dictionary();
foreach (ModuleButtonEntity item in dataModule)
{
var buttonList = data.Where(t => t.ModuleId.Equals(item.ModuleId));
dictionary.Add(item.ModuleId, buttonList);
}
return dictionary;
}
///
/// 获取功能视图数据
///
///
private object GetModuleColumnData()
{
var data = authorizeBLL.GetModuleColumnList(SystemInfo.CurrentUserId);
var dataModule = data.Distinct(new Comparint("ModuleId"));
Dictionary dictionary = new Dictionary();
foreach (ModuleColumnEntity item in dataModule)
{
var columnList = data.Where(t => t.ModuleId.Equals(item.ModuleId));
dictionary.Add(item.ModuleId, columnList);
}
return dictionary;
}
#endregion
}
}