ch
2021-11-21 552c3e5bf3bf0f78e3b3d971e0cae407bafbcaa2
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
    }
}