using System.Dynamic; using NewPdaSqlServer.DB; using NewPdaSqlServer.entity; using NewPdaSqlServer.util; using SqlSugar; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace NewPdaSqlServer.service.@base; public class LoginService : RepositoryNoEntity { public dynamic login(string name, string pwd) { var strPass = UtilityHelper.MD5Encrypt32(pwd); //var sysUser = Db.Queryable() // .Where(s => s.Account == name // && s.Password == strPass).First(); var parameters = new[] { new SugarParameter("@pi_account", name), new SugarParameter("@pi_password", strPass), new SugarParameter("@inP1", null), new SugarParameter("@inP2", null), new SugarParameter("@inP3", null) }; try { var sysUser = Db.Ado.SqlQuery("EXEC prc_pda_login_selUserOrgInfo @pi_account,@pi_password,@inP1,@inP2,@inP3", parameters).First(); if (sysUser == null) throw new Exception("用户不存在"); var db_password = sysUser.Password; if (!strPass.Equals(db_password)) throw new Exception("用户名或者密码错误"); return sysUser; } catch (Exception ex) { // 保留原有异常处理逻辑 throw new Exception($"{ex.Message}"); } } 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 CAST(A.guid AS VARCHAR(100)) = 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; } public dynamic changeOrg(dynamic query) { if (query == null) throw new ArgumentNullException(nameof(query), "参数对象不能为 null"); if (string.IsNullOrEmpty(query.userName?.ToString())) throw new ArgumentException("用户名不允许为空", nameof(query.userName)); var parameters = new[] { new SugarParameter("@pi_account", query.userName), new SugarParameter("@inP1", null), new SugarParameter("@inP2", null), new SugarParameter("@inP3", null) }; try { var orgInfo = Db.Ado.SqlQuery("EXEC prc_pda_my_selOrgInfo @pi_account,@inP1,@inP2,@inP3", parameters); //if (sysUser.Count < 1) throw new Exception("用户不存在关联组织"); return orgInfo; } catch (Exception ex) { // 保留原有异常处理逻辑 throw new Exception($"{ex.Message}"); } } }