using System.Dynamic; using NewPdaSqlServer.DB; using NewPdaSqlServer.entity; using NewPdaSqlServer.util; namespace NewPdaSqlServer.service.@base; public class LoginService : RepositoryNoEntity { public SysUser login(string name, string pwd) { var strPass = UtilityHelper.MD5Encrypt32(pwd); var sysUser = Db.Queryable() .Where(s => s.Account == name && s.Password == strPass).First(); if (sysUser == null) throw new Exception("用户不存在"); var db_password = sysUser.Password; if (!strPass.Equals(db_password)) throw new Exception("用户名或者密码错误"); return sysUser; } public List getUserMenu(string name) { var pageViewList = new List(); if ("admin".Equals(name)) { pageViewList = Db.Queryable() .Where(s => s.PageStatus == true) .OrderBy(s => s.PageIdx) .ToList(); } else { string sql = string.Format(@"SELECT A.* FROM MES_SYS_PAGEVIEW A LEFT JOIN SYS_USER_BIND B ON A.guid = B.aboutGuid LEFT JOIN SYS_USER C ON C.GUID = B.userGuid WHERE C.ACCOUNT = '{0}'", name); pageViewList = Db.Ado.SqlQuery(sql); } //if(pageViewList.Count < 0) //{ // throw new Exception("该用户没有权限访问"); //} try { var result = new List(); var groupedPageViews = pageViewList .GroupBy(p => string.IsNullOrEmpty(p.PageGroup) ? "未分组" : p.PageGroup) .ToList(); foreach (var group in groupedPageViews) { dynamic groupObj = new ExpandoObject(); groupObj.groupName = group.Key; // 分组名 groupObj.child = new List(); foreach (var pageView in group) { var mesFile = Db.Queryable() .Where(s => s.ParentGuid == pageView.Guid) .OrderByDescending(s => s.CreateDate) .First(); var icoimg = ""; if (mesFile != null) icoimg = "http://192.168.1.145:81/upload/" + mesFile.UrlPath; groupObj.child.Add(new MesSysPageview { Guid = pageView.Guid, PageView = pageView.PageView, Path = pageView.Path, Icoimg = icoimg, PageGroup = pageView.PageGroup, PageIdx = pageView.PageIdx, PageStatus = pageView.PageStatus }); } result.Add(groupObj); } return result; } catch(Exception e) { throw new Exception(e.Message); } } public int resetPassword(string newPwd, string name, string pwd) { login(name, pwd); var passwordHash = UtilityHelper.MD5Encrypt32(newPwd); return Db.Updateable() .SetColumns(s => s.Password == passwordHash) .Where(s => s.Account == name) .ExecuteCommand(); } public List getUserInfo(string userGuid) { //string sql = string.Format(@"SELECT A.* FROM MES_SYS_PAGEVIEW A // LEFT JOIN SYS_USER_BIND B ON A.guid = B.aboutGuid // LEFT JOIN SYS_USER C ON C.GUID = B.userGuid //WHERE C.ACCOUNT = '{0}'", userGuid); //var sysUser = Db.Ado.SqlQuery(sql); //return sysUser; return null; } }