From 82694a18fbd90ca4b1bfefdd4945d388909c46a0 Mon Sep 17 00:00:00 2001
From: YL <YL@LAPTOP-SE03PLUR>
Date: 星期四, 11 十一月 2021 01:28:56 +0800
Subject: [PATCH] 用户权限功能
---
WebAPI/Models/UserPower.cs | 17 +++++
WebAPI/ListModels.cs | 11 +++
WebAPI/Controllers/WebAPIController.cs | 4
WebAPI/WebAPI.csproj | 1
WebAPI/Controllers/PublicPageMethodController.cs | 114 +++++++++++++++++++++++++++++++++++--
5 files changed, 138 insertions(+), 9 deletions(-)
diff --git a/WebAPI/Controllers/PublicPageMethodController.cs b/WebAPI/Controllers/PublicPageMethodController.cs
index 26339ef..dc37059 100644
--- a/WebAPI/Controllers/PublicPageMethodController.cs
+++ b/WebAPI/Controllers/PublicPageMethodController.cs
@@ -1,4 +1,5 @@
锘縰sing DBUtility;
+using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
@@ -3366,16 +3367,18 @@
string sName = "";
if (sGnbm != "" && sGnbm != null)
{
- sName = sGnbm.Substring(1, sGnbm.Length - 1);
- if (sName == "鏉冮檺绠$悊-鐢ㄦ埛")
+ if (sGnbm == "鏉冮檺绠$悊-鐢ㄦ埛")
{
sName = "";
+ }
+ else {
+ sName = sGnbm;
}
}
ds = oCN.RunProcReturn("select * from Gy_Czygl where czybm='" + czybm + "'", "Gy_Czygl");
string AuthorityID = ClsPub.isStrNull(ds.Tables[0].Rows[0]["AuthorityID"]);
- ds = oCN.RunProcReturn("SELECT id hid,case when id<=" + AuthorityID.Length + " then case when SUBSTRING('" + AuthorityID + "',id,1)=1 then 1 else 0 end else 0 end 鏄惁鏉冮檺,gnms 鍔熻兘璇存槑,gnbm hgnbm FROM xt_xtgnb where useflag=1 and sjgnbm='" + sName + "' and rightflag=1 order by gnbm", "xt_xtgnb");
+ ds = oCN.RunProcReturn("SELECT id hid,case when id<=" + AuthorityID.Length + " then case when SUBSTRING('" + AuthorityID + "',id,1)=1 then 1 else 0 end else 0 end AuthorityID,'' AuthorityHID, gnms ,gnbm hgnbm FROM xt_xtgnb where useflag=1 and sjgnbm='" + sName + "' and rightflag=1 order by gnbm", "xt_xtgnb");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
@@ -3410,10 +3413,14 @@
public object PowerLoadTree()
{
SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN();
- string sql = string.Format(@"select 'T鏉冮檺绠$悊-鐢ㄦ埛' id,'' HNumber,'鏉冮檺绠$悊--鐢ㄦ埛' title,'' ParentID, 'true' spread
+ string sql = string.Format(@"select '鏉冮檺绠$悊-鐢ㄦ埛' id,'' HNumber,'鏉冮檺绠$悊--鐢ㄦ埛' title,'' ParentID
union all
- Select 'T'+gnbm id,gnsy HNumber,gnmc as title,case when sjgnbm<>null then sjgnbm else 'T鏉冮檺绠$悊-鐢ㄦ埛' end ParentID, 'true' spread
- from Xt_Xtgnb where useflag=1 and rightflag=1 and (gnbm NOT LIKE '99%') and sjgnbm='' and mjbz=0 ");
+ select gnbm id,gnsy HNumber,gnmc as title, case when sjgnbm='' then '鏉冮檺绠$悊--鐢ㄦ埛' else sjgnbm end ParentID from Xt_Xtgnb where sjgnbm=''
+ union all
+ Select gnbm id,gnsy HNumber,gnmc as title,sjgnbm as ParentID
+ from Xt_Xtgnb where mjbz=0 and useflag=1 and rightflag=1 and sjgnbm in(
+ select gnbm from Xt_Xtgnb where mjbz=0 and useflag=1 and rightflag=1
+ ) ");
ds = oCN.RunProcReturn(sql, "Xt_Xtgnb");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
@@ -3434,7 +3441,100 @@
}
#endregion
+ #region 鐢ㄦ埛鍏宠仈鏉冮檺鎻愪氦
+ [Route("Gy_MaintenanceMode/SaverPower")]
+ [HttpPost]
+ public object SaverPower([FromBody] JObject msg)
+ {
+ var _value = msg["msg"].ToString();
+ string msg1 = _value.ToString();
+ string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+ string msg2 = sArray[0].ToString();
+ string msg3 = sArray[1].ToString();
+ string msg4 = sArray[2].ToString();
+ ListModels oListModels = new ListModels();
+ try
+ {
+ List<Models.UserPower> lsmain = new List<Models.UserPower>();
+ msg3 = msg3.Substring(1, msg3.Length - 2);
+ msg3 = msg3.Replace("\\", "");
+ msg3 = msg3.Replace("\n", ""); //\n
+ lsmain = oListModels.getObjectByJson_UserPower(msg3);
+ ds = oCN.RunProcReturn("select * from Gy_Czygl where czybm='" + msg4.Trim() + "'", "Gy_Czygl");
+ string AuthorityID = ClsPub.isStrNull(ds.Tables[0].Rows[0]["AuthorityID"]);
+ string Auth_str = AuthorityID;
+ string MKID = "";
+ int lENSTR = 0; //妯″潡ID
+ DataSet oDs = new DataSet();
+ for (int i = 0; i < lsmain.Count; i++)
+ {
+ MKID = ClsPub.isStrNull(lsmain[i].hid);
+ lENSTR = ClsPub.isInt(MKID.Substring(0, MKID.Length));
+ if (lsmain[i].AuthorityHID == "1")
+ {
+ for (int h = Auth_str.Trim().Length; h <= lENSTR - 1; h++)
+ {
+ Auth_str = Auth_str.Trim() + "0";
+ }
+
+ Auth_str = Auth_str.Substring(0, lENSTR - 1) + "1" + Auth_str.Substring(lENSTR, Auth_str.Length - lENSTR);
+ }
+ else
+ {
+ if (Auth_str.Length >= lENSTR)
+ {
+ Auth_str = Auth_str.Substring(0, lENSTR - 1) + "0" + Auth_str.Substring(lENSTR, Auth_str.Length - lENSTR);
+ }
+ }
+ oDs = oCN.RunProcReturn("select * from xt_xtgnb where useflag=1 and gnbm like '" + lsmain[i].hgnbm + "%'", "xt_xtgnb");
+ if (oDs.Tables[0].Rows.Count != 0)
+ {
+ for (int k = 0; k < oDs.Tables[0].Rows.Count; k++)
+ {
+ int ID = ClsPub.isInt(oDs.Tables[0].Rows[k]["id"]);
+ if (lsmain[i].AuthorityHID == "1")
+ {
+ if (lsmain[i].AuthorityHID == "1")
+ {
+ for (int h = Auth_str.Trim().Length; h <= ID - 1; h++)
+ {
+ Auth_str = Auth_str.Trim() + "0";
+ }
+ Auth_str = Auth_str.Substring(0, ID - 1) + "1" + Auth_str.Substring(ID, Auth_str.Length - ID);
+ }
+ }
+ else
+ {
+ if (Auth_str.Length >= ID)
+ {
+ Auth_str = Auth_str.Substring(0, ID - 1) + "0" + Auth_str.Substring(ID, Auth_str.Length - ID);
+ }
+ }
+ }
+ }
+ oDs = null;
+ }
+ oCN.RunProc("UPDATE Gy_Czygl SET AuthorityID='" + Auth_str + "' WHERE czybm='" + msg4.Trim() + "'");
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "鎺堟潈鎴愬姛锛�";
+ objJsonResult.data = ds.Tables[0];
+ }
+ catch (Exception e)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = e.Message;
+ objJsonResult.data =null;
+ }
+ return objJsonResult;
+ }
+
+
+
#endregion
- }
+ #endregion
+
+ }
}
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index ab01574..37c0a4a 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -2242,7 +2242,7 @@
objJsonResult.code = "1";
objJsonResult.count = 1;
- objJsonResult.Message = "鍒犻櫎鎴愬姛锛�";
+ objJsonResult.Message = "鏌ヨ鎴愬姛锛�";
objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(mu);
return objJsonResult;
}
@@ -2250,7 +2250,7 @@
{
objJsonResult.code = "0";
objJsonResult.count = 0;
- objJsonResult.Message = "鍒犻櫎澶辫触锛�";
+ objJsonResult.Message = "鏌ヨ澶辫触锛�";
objJsonResult.data = e.ToString();
return objJsonResult;
}
diff --git a/WebAPI/ListModels.cs b/WebAPI/ListModels.cs
index e9c88df..763a0f1 100644
--- a/WebAPI/ListModels.cs
+++ b/WebAPI/ListModels.cs
@@ -1638,5 +1638,16 @@
return list;
}
+ /// <summary>
+ /// 鐢ㄦ埛鏉冮檺鐨刯son
+ /// </summary>
+ /// <param name="jsonString"></param>
+ /// <returns></returns>
+ public List<Models.UserPower> getObjectByJson_UserPower(string jsonString)
+ {
+ jsonString = "[" + jsonString.ToString() + "]";
+ List<Models.UserPower> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Models.UserPower>>(jsonString);
+ return list;
+ }
}
}
\ No newline at end of file
diff --git a/WebAPI/Models/UserPower.cs b/WebAPI/Models/UserPower.cs
new file mode 100644
index 0000000..0dcccae
--- /dev/null
+++ b/WebAPI/Models/UserPower.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace WebAPI.Models
+{
+ public class UserPower
+ {
+ public string hgnbm { get; set; }
+ public string hid { get; set; }
+ public string AuthorityHID { get; set; }
+ public string AuthorityID { get; set; }
+ public string gnms { get; set; }
+ }
+
+}
\ No newline at end of file
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index 2c57ce7..ef9998a 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -474,6 +474,7 @@
<Compile Include="Models\Gy_WorkPayType.cs" />
<Compile Include="Models\QC_POStockInCheckBillSub.cs" />
<Compile Include="Models\QC_POStockInCheckBill.cs" />
+ <Compile Include="Models\UserPower.cs" />
<Compile Include="Models\Xt_DataDictionary_Proc.cs" />
<Compile Include="Models\Xt_DataDictionary_View.cs" />
<Compile Include="Models\Xt_DataDictionary_Table.cs" />
--
Gitblit v1.9.1