/// <summary> /// 新增\修改 /// </summary> /// <param name="Dto"></param> /// <returns></returns> public async Task <Guid> SaveAsync(Sys_MenuDto Dto) { var model = Dto.Model; var functionIds = Dto.FunctionIds; model = await this.InsertOrUpdateAsync(model); // await dbMenuFunction.DeleteAsync(w => w.MenuFunction_MenuID == model.Menu_ID); if (functionIds.Count > 0) { var _Sys_MenuFunctionList = await dbMenuFunction.ToListAsync(w => w.MenuFunction_MenuID == model.Menu_ID); foreach (var item in functionIds) { var _Sys_MenuFunction = _Sys_MenuFunctionList.FirstOrDefault(w => w.MenuFunction_FunctionID == item); var menufuncModel = new Sys_MenuFunction(); menufuncModel.MenuFunction_ID = _Sys_MenuFunction == null?Guid.NewGuid() : _Sys_MenuFunction.MenuFunction_ID; menufuncModel.MenuFunction_FunctionID = item; menufuncModel.MenuFunction_MenuID = model.Menu_ID; await dbMenuFunction.InsertAsync(menufuncModel); } } return(model.Menu_ID); }
/// <summary> /// 获取拥有的菜单对象的权限 /// </summary> /// <param name="_Sys_MenuList"></param> /// <returns></returns> public async Task <List <Dictionary <string, object> > > GetPowerState(List <Sys_Menu> _Sys_MenuList) { var _Sys_FunctionList = await dbFunction.Query().OrderBy(w => w.Function_Num).ToListAsync(); var _Sys_MenuFunctionList = await dbMenuFunction.Query().ToListAsync(); var _Sys_RoleMenuFunctionList = await dbRoleMenuFunction.ToListAsync(w => this.accountService.info.RoleIDList.Contains(w.RoleMenuFunction_RoleID)); var _PowerStateList = new List <Dictionary <string, object> >(); if (this.accountService.info.IsSuperManage) { foreach (var item in _Sys_MenuList) { var _PowerState = new Dictionary <string, object>(); foreach (var _Sys_Function in _Sys_FunctionList) { var ispower = _Sys_MenuFunctionList.Any(w => w.MenuFunction_MenuID == item.Menu_ID && w.MenuFunction_FunctionID == _Sys_Function.Function_ID); if (_Sys_Function.Function_ByName == "Have" | item.Menu_ParentID == this.appConfiguration.SysMenuID) { ispower = true; } _PowerState.Add(_Sys_Function.Function_ByName, ispower); } _PowerState["MenuID"] = item.Menu_ID; _PowerStateList.Add(_PowerState); } return(_PowerStateList); } foreach (var item in _Sys_MenuList) { var _PowerState = new Dictionary <string, object>(); foreach (var _Sys_Function in _Sys_FunctionList) { if (this.accountService.info.RoleIDList?.Count > 0) { var ispower = _Sys_RoleMenuFunctionList.Any(w => this.accountService.info.RoleIDList.Contains(w.RoleMenuFunction_RoleID.ToGuid()) && w.RoleMenuFunction_MenuID == item.Menu_ID && w.RoleMenuFunction_FunctionID == _Sys_Function.Function_ID); _PowerState.Add(_Sys_Function.Function_ByName, ispower); } else { _PowerState.Add(_Sys_Function.Function_ByName, false); } } _PowerState["MenuID"] = item.Menu_ID; _PowerStateList.Add(_PowerState); } return(_PowerStateList); }
/// <summary> /// 根据用户信息获取 Account 对象 /// </summary> /// <param name="Id"></param> /// <returns></returns> public async Task <AccountInfo> GetAccountByUserId(Guid Id) { var _Sys_User = await this.FindByIdAsync(Id); var _Account = new AccountInfo(); var _Sys_UserRole = await dbUserRole.ToListAsync(w => w.UserRole_UserID == _Sys_User.User_ID); // _Account.RoleIDList = _Sys_UserRole.Select(w => w.UserRole_RoleID).ToList(); _Account.UserID = _Sys_User.User_ID.ToGuid(); _Account.UserName = _Sys_User.User_Name; _Account._Sys_User = _Sys_User; //如果是超级管理员 帐户 _Account.IsSuperManage = _Sys_UserRole.Any(w => w.UserRole_RoleID == AppConfig.AdminConfig.AdminRoleID); return(_Account); }
/// <summary> /// 新增\修改 /// </summary> /// <param name="Dto"></param> /// <returns></returns> public async Task <Guid> SaveAsync(Sys_UserDto Dto) { var model = Dto.Model; var roleIds = Dto.RoleIds; if (string.IsNullOrWhiteSpace(model.User_Pwd)) { MessageBox.Show("密码不能为空!"); } if (model.User_ID == Guid.Empty) { model.User_Pwd = string.IsNullOrWhiteSpace(model.User_Pwd) ? "123" : model.User_Pwd; //Tools.MD5Encrypt("123"); model = await this.InsertAsync(model); } else { await this.UpdateByIdAsync(model); } //变更用户角色 if (roleIds.Count > 0) { var _Sys_UserRoleList = await dbUserRole.ToListAsync(w => w.UserRole_UserID == model.User_ID); await dbUserRole.DeleteAsync(w => w.UserRole_UserID == model.User_ID); foreach (var item in roleIds) { var _Sys_UserRole = _Sys_UserRoleList.FirstOrDefault(w => w.UserRole_RoleID == item); var userRoleModel = new Sys_UserRole(); userRoleModel.UserRole_ID = _Sys_UserRole == null?Guid.NewGuid() : _Sys_UserRole.UserRole_ID; userRoleModel.UserRole_RoleID = item; userRoleModel.UserRole_UserID = model.User_ID; await dbUserRole.InsertAsync(userRoleModel); } } return(model.User_ID); }