YL
2021-11-11 82694a18fbd90ca4b1bfefdd4945d388909c46a0
用户权限功能
4个文件已修改
1个文件已添加
147 ■■■■■ 已修改文件
WebAPI/Controllers/PublicPageMethodController.cs 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/WebAPIController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/ListModels.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/UserPower.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/PublicPageMethodController.cs
@@ -1,4 +1,5 @@
using 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
    }
}
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;
            }
WebAPI/ListModels.cs
@@ -1638,5 +1638,16 @@
            return list;
        }
        /// <summary>
        /// 用户权限的json
        /// </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;
        }
    }
WebAPI/Models/UserPower.cs
New file
@@ -0,0 +1,17 @@
using 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; }
    }
}
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" />