VueWebApi/Tools/SeachEncode.cs
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VueWebApi.Models;
namespace VueWebApi.Tools
{
@@ -80,7 +81,9 @@
                                else
                                {
                                    mes.code = "300";
                                    mes.count = 0;
                                    mes.Message = "失败!";
                                    mes.data = null;
                                }
                                break;
                            case "年月":
@@ -125,7 +128,9 @@
                                else
                                {
                                    mes.code = "300";
                                    mes.count = 0;
                                    mes.Message = "失败!";
                                    mes.data = null;
                                }
                                break;
                            case "年":
@@ -168,7 +173,9 @@
                                else
                                {
                                    mes.code = "300";
                                    mes.count = 0;
                                    mes.Message = "失败!";
                                    mes.data = null;
                                }
                                break;
@@ -222,7 +229,9 @@
                                else
                                {
                                    mes.code = "300";
                                    mes.count = 0;
                                    mes.Message = "失败!";
                                    mes.data = null;
                                }
                                break;
                            case "年月":
@@ -267,7 +276,9 @@
                                else
                                {
                                    mes.code = "300";
                                    mes.count = 0;
                                    mes.Message = "失败!";
                                    mes.data = null;
                                }
                                break;
                            case "年":
@@ -310,7 +321,9 @@
                                else
                                {
                                    mes.code = "300";
                                    mes.count = 0;
                                    mes.Message = "失败!";
                                    mes.data = null;
                                }
                                break;
                            default:
@@ -321,16 +334,170 @@
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "未设置编码规则,生成编码失败!";
                    mes.data = null;
                }             
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region [根据角色编码查询功能菜单]
        /// <summary>
        /// 根据角色编码查询功能菜单
        /// </summary>
        /// <param name="rolecode"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static List<TreeDM> RightLocation(string rolecode,string type)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<TreeDM> list = new List<TreeDM>();
            switch (type)
            {
                case "PC":  //PC
                    //第一层
                    sql = @"select distinct A.parent_id from TRight A
                        inner join  TRoleRightRelation B on A.right_code=B.right_code
                        where B.role_code=@rolecode and A.Type='PC' ";
                    dynamicParams.Add("@rolecode", rolecode);
                    dynamicParams.Add("@type", type);
                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
                    TreeDM cmp = new TreeDM();
                    if (data1.Rows.Count > 0)
                    {
                        cmp.code = "PC";
                        cmp.name = "PC";
                        cmp.flag = "Y";
                    }
                    else
                    {
                        cmp.code = "PC";
                        cmp.name = "PC";
                        cmp.flag = "N";
                    }
                    cmp.children = new List<TreeDMOne>();
                    //第二层
                    sql = @"select A.right_code,A.right_name,(case when C.parent_id is null then 'N' else 'Y' end) flag
                                 from TRight A
                                 left join (
                                  select distinct A.parent_id from TRight A
                                  inner join  TRoleRightRelation B on A.right_code=B.right_code where B.role_code=@rolecode
                                 ) C on A.right_code=C.parent_id
                                 where A.Type=@type and A.parent_id='0'";
                    dynamicParams.Add("@rolecode", rolecode);
                    dynamicParams.Add("@type", type);
                    var data2 = DapperHelper.selectdata(sql, dynamicParams);
                    for (int i = 0; i < data2.Rows.Count; i++)
                    {
                        TreeDMOne cmp1 = new TreeDMOne();
                        cmp1.code = data2.Rows[i]["RIGHT_CODE"].ToString();
                        cmp1.name = data2.Rows[i]["RIGHT_NAME"].ToString();
                        cmp1.flag = data2.Rows[i]["FLAG"].ToString();
                        cmp.children.Add(cmp1);
                        cmp1.children = new List<TreeDMTwo>();
                        //第三层
                        sql = @"select A.right_code,A.right_name,(case when C.right_code is null then 'N' else 'Y' end) flag
                                     from TRight A
                                     left join (
                                      select  B.right_code from TRight A
                                      inner join  TRoleRightRelation B on A.right_code=B.right_code where A.parent_id=@right_code and B.role_code=@rolecode
                                     ) C on A.right_code=C.right_code
                                     where A.parent_id=@right_code";
                        dynamicParams.Add("@right_code", data2.Rows[i]["RIGHT_CODE"].ToString());
                        dynamicParams.Add("@rolecode", rolecode);
                        var data3 = DapperHelper.selectdata(sql, dynamicParams);
                        for (int j = 0; j < data3.Rows.Count; j++)
                        {
                            TreeDMTwo cmp2 = new TreeDMTwo();
                            cmp2.code = data3.Rows[j]["RIGHT_CODE"].ToString();
                            cmp2.name = data3.Rows[j]["RIGHT_NAME"].ToString();
                            cmp2.flag = data3.Rows[j]["FLAG"].ToString();
                            cmp1.children.Add(cmp2);
                        }
                    }
                    list.Add(cmp);
                    break;
                case "APP":  //APP
                             //第一层
                    sql = @"select distinct A.parent_id from TRight A
                        inner join  TRoleRightRelation B on A.right_code=B.right_code
                        where B.role_code=@rolecode and A.Type='APP' ";
                    dynamicParams.Add("@rolecode", rolecode);
                    dynamicParams.Add("@type", type);
                    var date1 = DapperHelper.selectdata(sql, dynamicParams);
                    TreeDM cmt = new TreeDM();
                    if (date1.Rows.Count > 0)
                    {
                        cmt.code = "APP";
                        cmt.name = "APP";
                        cmt.flag = "Y";
                    }
                    else
                    {
                        cmt.code = "APP";
                        cmt.name = "APP";
                        cmt.flag = "N";
                    }
                    cmt.children = new List<TreeDMOne>();
                    //第二层
                    sql = @"select A.right_code,A.right_name,(case when C.parent_id is null then 'N' else 'Y' end) flag
                                 from TRight A
                                 left join (
                                  select distinct A.parent_id from TRight A
                                  inner join  TRoleRightRelation B on A.right_code=B.right_code where B.role_code=@rolecode
                                 ) C on A.right_code=C.parent_id
                                 where A.Type=@type and A.parent_id='0'";
                    dynamicParams.Add("@rolecode", rolecode);
                    dynamicParams.Add("@type", type);
                    var date2 = DapperHelper.selectdata(sql, dynamicParams);
                    for (int i = 0; i < date2.Rows.Count; i++)
                    {
                        TreeDMOne cmt1 = new TreeDMOne();
                        cmt1.code = date2.Rows[i]["RIGHT_CODE"].ToString();
                        cmt1.name = date2.Rows[i]["RIGHT_NAME"].ToString();
                        cmt1.flag = date2.Rows[i]["FLAG"].ToString();
                        cmt.children.Add(cmt1);
                        cmt1.children = new List<TreeDMTwo>();
                        //第三层
                        sql = @"select A.right_code,A.right_name,(case when C.right_code is null then 'N' else 'Y' end) flag
                                     from TRight A
                                     left join (
                                      select  B.right_code from TRight A
                                      inner join  TRoleRightRelation B on A.right_code=B.right_code where A.parent_id=@right_code and B.role_code=@rolecode
                                     ) C on A.right_code=C.right_code
                                     where A.parent_id=@right_code";
                        dynamicParams.Add("@right_code", date2.Rows[i]["RIGHT_CODE"].ToString());
                        dynamicParams.Add("@rolecode", rolecode);
                        var date3 = DapperHelper.selectdata(sql, dynamicParams);
                        for (int j = 0; j < date3.Rows.Count; j++)
                        {
                            TreeDMTwo cmt2 = new TreeDMTwo();
                            cmt2.code = date3.Rows[j]["RIGHT_CODE"].ToString();
                            cmt2.name = date3.Rows[j]["RIGHT_NAME"].ToString();
                            cmt2.flag = date3.Rows[j]["FLAG"].ToString();
                            cmt1.children.Add(cmt2);
                        }
                    }
                    list.Add(cmt);
                    break;
                default:
                    break;
            }
            return list;
        }
        #endregion
    }
}