From b903237d13a6b62d3e9dc1a8e3381ace2f523ab3 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期四, 04 九月 2025 13:07:53 +0800
Subject: [PATCH] 1.生产领料查询优化

---
 service/base/LoginService.cs |  164 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 150 insertions(+), 14 deletions(-)

diff --git a/service/base/LoginService.cs b/service/base/LoginService.cs
index 5c4fa83..5314f17 100644
--- a/service/base/LoginService.cs
+++ b/service/base/LoginService.cs
@@ -1,35 +1,126 @@
-锘縰sing NewPdaSqlServer.DB;
+锘縰sing 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 SysUser login(string name, string pwd)
+    public dynamic login(string name, string pwd)
     {
+
         var strPass = UtilityHelper.MD5Encrypt32(pwd);
-        var sysUser = Db.Queryable<SysUser>()
-            .Where(s => s.Account == name
-                        && s.Password == strPass).First();
+        //var sysUser = Db.Queryable<SysUser>()
+        //    .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;
+
+        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<dynamic>("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<MesSysPageview> getUserMenu(string name)
+    public List<dynamic> getUserMenu(string name)
     {
-        var sql = "";
-
+        var pageViewList = new List<MesSysPageview>();
         if ("admin".Equals(name))
-            return Db.Queryable<MesSysPageview>()
+        {
+            pageViewList = Db.Queryable<MesSysPageview>()
+           .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<MesSysPageview>(sql);
+        }
+
+        //if(pageViewList.Count < 0)
+        //{
+        //    throw new Exception("璇ョ敤鎴锋病鏈夋潈闄愯闂�");
+        //}
+
+        try
+        {
+            var result = new List<dynamic>();
+
+
+            var groupedPageViews = pageViewList
+                .GroupBy(p =>
+                    string.IsNullOrEmpty(p.PageGroup) ? "鏈垎缁�" : p.PageGroup)
                 .ToList();
 
-        return null;
+            foreach (var group in groupedPageViews)
+            {
+                dynamic groupObj = new ExpandoObject();
+                groupObj.groupName = group.Key; // 鍒嗙粍鍚�  
+                groupObj.child = new List<MesSysPageview>();
+
+                foreach (var pageView in group)
+                {
+                    var mesFile = Db.Queryable<MesFile>()
+                        .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)
@@ -42,4 +133,49 @@
             .Where(s => s.Account == name)
             .ExecuteCommand();
     }
+
+
+    public List<dynamic> 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<dynamic>(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<dynamic>("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}");
+        }
+
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3