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 } }