StandardPda/MES.Service/service/LoginService.cs
@@ -11,7 +11,12 @@
    public DataTable login(string name, string pwd)
    {
        var sql =
            string.Format(@"select * from SYS_USER where FCODE = '{0}'",
            string.Format(@"select A.*,B.ROLEIDS from SYS_USER A
                            left join (
                            SELECT LISTAGG(ROLEID, ',') WITHIN GROUP (ORDER BY ROLEID) AS ROLEIDS,userid
                            FROM SYS_USER_ROLE
                            GROUP BY userid
                            )B on b.USERID=a.FID where upper(FCODE)=upper('{0}')",
                name);
        var dataTable = SQLHelper.ExecuteQuery(sql);
        if (dataTable.Rows.Count <= 0) throw new Exception("用户不存在");
@@ -28,22 +33,57 @@
    {
        var sql = "";
        if ("PL017".Equals(name))
            sql = "select PAGE_VIEW,PATH,ICOIMG from  MES_SYS_PAGEVIEW";
        else
            sql = string.Format(@"select PAGE_VIEW,PATH,ICOIMG
                    from (select PAGE_VIEW,PATH,ICOIMG
                          from MES_SYS_GUP_USER a
                                   join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
                                   join SYS_USER_ROLE c on to_char(c.ROLEID) = a.ROLEID
                          where USERID = (select fid from SYS_USER where FCODE = '{0}')
                          union all
                          select PAGE_VIEW,PATH,ICOIMG
                          from MES_SYS_GUP_USER a
                                   join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
                          where a.ROLEID = (select FCODE from SYS_USER where FCODE = '{0}'))
                    group by PATH, PAGE_VIEW, ICOIMG", name);
        //    if ("PL017".Equals(name))
        //        sql = "select PAGE_VIEW,PATH,ICOIMG from  MES_SYS_PAGEVIEW";
        //    else
        //        sql = string.Format(@"select PAGE_VIEW,PATH,ICOIMG
        //                from (select PAGE_VIEW,PATH,ICOIMG
        //                      from MES_SYS_GUP_USER a
        //                               join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
        //                               join SYS_USER_ROLE c on to_char(c.ROLEID) = a.ROLEID
        //                      where USERID = (select fid from SYS_USER where FCODE = '{0}')
        //                      union all
        //                      select PAGE_VIEW,PATH,ICOIMG
        //                      from MES_SYS_GUP_USER a
        //                               join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
        //                      where a.ROLEID = (select FCODE from SYS_USER where FCODE = '{0}'))
        //                group by PATH, PAGE_VIEW, ICOIMG", name);
        //    return SQLHelper.ExecuteQuery(sql);
        //}
        if ("PL017".Equals(name))
        {
            // 超级管理员查询全部菜单,并按 SORT_NO 排序
            sql = @"
            select PAGE_VIEW, PATH, ICOIMG, SORT_NO
            from MES_SYS_PAGEVIEW
            order by SORT_NO asc";
        }
        else
        {
            // 普通用户的权限查询
            sql = string.Format(@"
            select PAGE_VIEW, PATH, ICOIMG, SORT_NO
            from (
                    select PAGE_VIEW, PATH, ICOIMG, SORT_NO
                    from MES_SYS_GUP_USER a
                             join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
                             join SYS_USER_ROLE c on to_char(c.ROLEID) = a.ROLEID
                    where USERID = (select fid from SYS_USER where FCODE = '{0}')
                    union all
                    select PAGE_VIEW, PATH, ICOIMG, SORT_NO
                    from MES_SYS_GUP_USER a
                             join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
                    where a.ROLEID = (select FCODE from SYS_USER where FCODE = '{0}')
            )
            group by PAGE_VIEW, PATH, ICOIMG, SORT_NO
            order by SORT_NO asc", name);
        }
        return SQLHelper.ExecuteQuery(sql);
    }