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