using Cowain.Bake.Common.Core; using Cowain.Bake.Common.Enums; using Cowain.Bake.Model; using Cowain.Bake.Model.Entity; using Prism.Ioc; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using Unity; namespace Cowain.Bake.BLL { public class UserService : ServiceBase { public UserService(IUnityContainer unityContainer) : base(unityContainer) { _unityContainer = unityContainer; } /// /// 登录 /// /// 用户名 /// 密码 /// 登录成功 public bool Login(string name, string pwd, out string msg) { msg = ""; using (var Context = new BakingEntities()) { TUserManage ulist = Context.Set().Where(item => item.UserId == name && item.Password == pwd).FirstOrDefault(); if (ulist != null) { if (!ulist.Valid ?? false) { msg = $"用户:{ulist.UserName},已注销!"; return false; } var ge = _unityContainer.Resolve(); //重新开辟了内存。 ge.CurrentUser.Copy(ulist); //重新开辟了内存。 //获取菜单,后期需要修改,根据权限加载,现在是加载所有菜单 var ml = Context.Set().Where(item => item.State == true).OrderBy(x => x.Id).ToList(); if (ml != null && ml.Count > 0) { ge.CurrentUser.Menus.Clear(); ml.ForEach(p => ge.CurrentUser.Menus.Add(p)); } _unityContainer.Resolve().AddLog(name, E_LogType.Operate.ToString()); return true; } else { return false; } } } //public int ModifyPassword(int id, string newPassword) //{ // using (var Context = new BakingEntities()) // { // var ulist = Context.Set().Where(item => item.Id == id).ToList(); // if (ulist.Count == 1) // { // ulist[0].Password = newPassword; // return Context.SaveChanges(); // } // else // return 0; // } //} public List GetAllUsers() { using (var Context = new BakingEntities()) { return Context.Set().ToList(); } } public List QueryUser(string userEnter) { using (var Context = new BakingEntities()) { List user = Context.Set().Where(x => x.UserId == userEnter).ToList(); return user; } } public string GetCurrentUserAuthority() { using (var Context = new BakingEntities()) { var memory = _unityContainer.Resolve(); TUserManage user = Context.Set().Where(x => x.UserId == memory.CurrentUser.UserId).FirstOrDefault(); return Context.Set().Where(a => a.RoleId == user.RoleId).ToList()[0].AccessNode; } } public bool IsHasAuthority(string target) { if (GetCurrentUserAuthority().Contains(target)) { return true; } return false; } public List GetAllRole() { using (var Context = new BakingEntities()) { return Context.Set().ToList(); } } public int GetCurrentRoleId() { using (var Context = new BakingEntities()) { var memory = _unityContainer.Resolve(); TUserManage user = Context.Set().Where(x => x.UserId == memory.CurrentUser.UserId).FirstOrDefault(); return user.RoleId; } } public bool CheckPermission(ERole permission) { // 获取当前登录用户的权限级别 int userPermissionLevel = GetCurrentRoleId(); // 根据权限级别判断是否具有指定权限 if (userPermissionLevel == (int)ERole.Admin) // 管理员 { return true; } else if (userPermissionLevel == (int)ERole.Mantainer && (permission == ERole.Operater || permission == ERole.Mantainer)) { return true; } else if (userPermissionLevel == (int)ERole.Operater && permission == ERole.Operater) { return true; } return false; } public List GetAllMenuInfo() { using (var Context = new BakingEntities()) { return Context.Set().ToList(); } } public string GetAuthority(string role) { using (var Context = new BakingEntities()) { return Context.Set().Where(x => x.RoleName == role).FirstOrDefault().AccessNode; } } public bool ValidPassword(string name, string pwd) //有效密码 { using (var Context = new BakingEntities()) { if (null == Context.Set().Where(item => item.UserId == name && item.Password == pwd).FirstOrDefault()) { return false; } else { return true; } } } public int ModifyPassword(string newPassword) { using (var Context = new BakingEntities()) { var memory = _unityContainer.Resolve(); var userInfo = Context.Set().Where(item => item.UserId == memory.CurrentUser.UserId).FirstOrDefault(); if (null == userInfo) { return 0; } userInfo.Password = newPassword; return Context.SaveChanges(); } } } }