From 9344dcd4f7febe85870a023090271d9e90ad46be Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期六, 30 八月 2025 14:19:21 +0800
Subject: [PATCH] 1.多组织权限分配 2.登录优化

---
 appsettings.json                    |    2 
 Controllers/BaseController.cs       |   34 +++++++++++++++++
 service/Wom/WomdaaManager.cs        |    4 +-
 Controllers/Wom/WomdaaController.cs |   11 ++++-
 service/base/LoginService.cs        |   41 ++++++++++++++++----
 5 files changed, 78 insertions(+), 14 deletions(-)

diff --git a/Controllers/BaseController.cs b/Controllers/BaseController.cs
new file mode 100644
index 0000000..3caae53
--- /dev/null
+++ b/Controllers/BaseController.cs
@@ -0,0 +1,34 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using System;
+
+public class BaseController : ControllerBase
+{
+    protected string OrgId
+    {
+        get
+        {
+            var orgId = GetOrgIdFromHeader();
+            if (string.IsNullOrEmpty(orgId))
+            {
+                throw new ArgumentException("璇锋眰缁勭粐ID涓嶅瓨鍦紒璇锋鏌ヨ姹傚ご涓槸鍚﹀寘鍚湁鏁堢殑OrgId銆�");
+            }
+            return orgId;
+        }
+    }
+
+    private string GetOrgIdFromHeader()
+    {
+        if (HttpContext.Request.Headers.TryGetValue("OrgId", out var orgIdValue))
+        {
+            return orgIdValue.ToString();
+        }
+        return null;
+    }
+
+    // 鍙�夛細鎻愪緵涓�涓畨鍏ㄨ幏鍙朞rgId鐨勬柟娉曪紝涓嶆姏鍑哄紓甯歌�屾槸杩斿洖榛樿鍊兼垨null
+    protected bool TryGetOrgId(out string orgId)
+    {
+        orgId = GetOrgIdFromHeader();
+        return !string.IsNullOrEmpty(orgId);
+    }
+}
\ No newline at end of file
diff --git a/Controllers/Wom/WomdaaController.cs b/Controllers/Wom/WomdaaController.cs
index 1d26e46..b4dc967 100644
--- a/Controllers/Wom/WomdaaController.cs
+++ b/Controllers/Wom/WomdaaController.cs
@@ -1,5 +1,6 @@
 锘縰sing System.Dynamic;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
 using NewPdaSqlServer.service.@base;
@@ -10,8 +11,9 @@
 
 [ApiController]
 [Route("api/[controller]")]
-public class WomdaaController : ControllerBase
+public class WomdaaController : BaseController
 {
+
     private readonly WomdaaManager m = new();
     private readonly MesPrintMangeer _mCf = new();
 
@@ -28,7 +30,7 @@
         try
         {
             dynamic resultInfos = new ExpandoObject();
-            resultInfos.tbBillList = m.GetProductionPickDaa001(query);
+            resultInfos.tbBillList = m.GetProductionPickDaa001(query, OrgId);
             return new ResponseResult
             {
                 status = 0,
@@ -50,10 +52,13 @@
     [HttpPost("GetItemsByDaa001")]
     public ResponseResult GetItemsByDaa001(WarehouseQuery query)
     {
+        // 浠� HttpContext.Items 鑾峰彇 orgId
+        var orgId = HttpContext.Request.Headers["OrgId"].ToString();
+
         try
         {
             dynamic resultInfos = new ExpandoObject();
-            resultInfos.tbBillList = m.GetItemsByDaa001(query);
+            resultInfos.tbBillList = m.GetItemsByDaa001(query, OrgId);
             return new ResponseResult
             {
                 status = 0,
diff --git a/appsettings.json b/appsettings.json
index 5a06ee3..5895e74 100644
--- a/appsettings.json
+++ b/appsettings.json
@@ -10,7 +10,7 @@
     "TestErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest",
     "ProductionErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest",
     //"DataBaseConn": "Data Source=192.168.1.146;Initial Catalog=TEST_MES;User ID=sa;Password =qixi123;Encrypt=True;TrustServerCertificate=True;"
-    "DataBaseConn": "Data Source=192.168.1.146;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes;Encrypt=True;TrustServerCertificate=True;"
+    "DataBaseConn": "Data Source=192.168.1.146,12468;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes;Encrypt=True;TrustServerCertificate=True;"
   },
   "Version": "1.0.0",
   "X-KDApi-AcctID": "6244701c616bff",
diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs
index e5a8733..cff4625 100644
--- a/service/Wom/WomdaaManager.cs
+++ b/service/Wom/WomdaaManager.cs
@@ -17,7 +17,7 @@
     //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 WomdaaManager.cs
 
     //鑾峰彇宸ュ崟鍙�
-    public List<string> GetProductionPickDaa001(WarehouseQuery query)
+    public List<string> GetProductionPickDaa001(WarehouseQuery query,string orgId)
     {
         var sql =
             "SELECT DAA001 FROM WOMDAA A LEFT JOIN (SELECT COUNT(1) UN_NUM, PID FROM WOMDAB  WHERE DAB006 > DAB007 GROUP BY DAB002) B ON A.GUID = B.daaGuid WHERE DAA001 = " +
@@ -28,7 +28,7 @@
     }
 
     //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡
-    public ProductionPickDto GetItemsByDaa001(WarehouseQuery query)
+    public ProductionPickDto GetItemsByDaa001(WarehouseQuery query,string OrgId)
     {
         return getDaa001(query);
     }
diff --git a/service/base/LoginService.cs b/service/base/LoginService.cs
index e43cb5e..e3e9081 100644
--- a/service/base/LoginService.cs
+++ b/service/base/LoginService.cs
@@ -2,24 +2,49 @@
 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<dynamic> getUserMenu(string name)

--
Gitblit v1.9.3