服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-06-25 da29bb9d46597a0df26173f5cde72f37f9f9d392
Tiger.Business/SYS/Biz.SYS_MENU.cs
@@ -55,7 +55,9 @@
                                    CURRENTACTIVEMENU=f.CURRENTACTIVEMENU,
                                    SHOW=f.SHOW,
                                    IGNOREKEEPALIVE=f.IGNOREKEEPALIVE,
                                    IGNOREAUTH = f.IGNOREAUTH
                                    IGNOREAUTH = f.IGNOREAUTH,
                                    BUTTON_TYPE = f.BUTTON_TYPE,
                                    DO_METHOD = f.DO_METHOD,
                                });
            var items = await query.Distinct().ToListAsync();
            List<SYS_MENU> entities = items.OrderBy(x => x.SEQ_NO).ToList().FindAll(t => t.PFUNC_CODE == rootCode); //"23858079-7241-4e64-b0cf-eb5dbe84a9d6"
@@ -75,6 +77,7 @@
                menuItem.meta.menuCode = item.FUNC_CODE;
                menuItem.btnType = item.BUTTON_TYPE;
                menuItem.meta.btnType = item.BUTTON_TYPE;
                menuItem.meta.doMethod = item.DO_METHOD;
                if (!string.IsNullOrEmpty(item.IGNOREKEEPALIVE))
                {
                    menuItem.meta.ignoreKeepAlive = item.IGNOREKEEPALIVE == "0" ? true : false;
@@ -96,6 +99,8 @@
                menuItem.show = item.SHOW;
                menuItem.menuName = item.FUNC_NAME;
                menuItem.status = item.IS_USE;
                menuItem.btnType = item.BUTTON_TYPE;
                menuItem.doMethod = item.DO_METHOD;
                menuItem.children = new();
                GetMenuItem(items.ToList(), item.FUNC_CODE, ref menuItem);
                data.Add(menuItem);
@@ -116,70 +121,65 @@
            SYS_MENU func = null;
            if (!string.IsNullOrEmpty(menuName))
            {
                func = Biz.Db.Queryable<SYS_MENU>().Where(x=>x.FUNC_NAME == menuName).First();
                func = Biz.Db.Queryable<SYS_MENU>().Where(x => x.FUNC_NAME == menuName).First();
            }
            string rootCode = func == null ? "0" : func.FUNC_CODE;
            var items = await Biz.Db.Queryable<SYS_MENU>()
                .WhereIF(!string.IsNullOrEmpty(status),q=>q.IS_USE == status)
                .OrderBy(x => x.SEQ_NO)
                .Distinct().ToListAsync();
            //没有查询的时候
            if (func == null)
            List<SYS_MENU> entities = items.OrderBy(x => x.SEQ_NO).ToList().FindAll(t => t.PFUNC_CODE == rootCode);
            foreach (var item in entities)
            {
                List<SYS_MENU> entities = items.OrderBy(x => x.SEQ_NO).ToList().FindAll(t => t.PFUNC_CODE == "0");
                foreach (var item in entities)
                MenuItem menuItem = new();
                menuItem.id = item.ID;
                menuItem.func_code = item.FUNC_CODE;
                menuItem.path = (item.PATH ?? "").StartsWith("/dashboard") ? "/dashboard" : $"{item.PATH}";
                menuItem.name = item.FUNC_NAME;
                menuItem.component = (item.PATH == null || item.PATH == "#") ? "LAYOUT" : item.COMPONENT;
                menuItem.meta = new();
                menuItem.meta.icon = item.ICON_URL;  // item.ICON_URL;
                menuItem.meta.orderNo = item.SEQ_NO;
                menuItem.meta.title = item.FUNC_NAME;
                menuItem.meta.menuId = item.ID;
                menuItem.meta.menuCode = item.FUNC_CODE;
                menuItem.meta.btnType = item.BUTTON_TYPE;
                menuItem.meta.doMethod = item.DO_METHOD;
                if (!string.IsNullOrEmpty(item.IGNOREKEEPALIVE))
                {
                    MenuItem menuItem = new();
                    menuItem.id = item.ID;
                    menuItem.func_code = item.FUNC_CODE;
                    menuItem.path = (item.PATH ?? "").StartsWith("/dashboard") ? "/dashboard" : $"{item.PATH}";
                    menuItem.name = item.FUNC_NAME;
                    menuItem.component = (item.PATH == null || item.PATH == "#") ? "LAYOUT" : item.COMPONENT;
                    menuItem.meta = new();
                    menuItem.meta.icon = item.ICON_URL;  // item.ICON_URL;
                    menuItem.meta.orderNo = item.SEQ_NO;
                    menuItem.meta.title = item.FUNC_NAME;
                    menuItem.meta.menuId = item.ID;
                    menuItem.meta.menuCode = item.FUNC_CODE;
                    menuItem.meta.btnType = item.BUTTON_TYPE;
                    if (!string.IsNullOrEmpty(item.IGNOREKEEPALIVE))
                    {
                        menuItem.meta.ignoreKeepAlive = item.IGNOREKEEPALIVE == "0" ? true : false;
                    }
                    if (!string.IsNullOrEmpty(item.CURRENTACTIVEMENU))
                    {
                        menuItem.meta.currentActiveMenu = item.CURRENTACTIVEMENU;
                    }
                    if (!string.IsNullOrEmpty(item.SHOW))
                    {
                        menuItem.meta.hideMenu = item.SHOW == "1" ? true : false;
                        menuItem.meta.showMenu = item.SHOW == "0" ? true : false;
                    }
                    if (!string.IsNullOrEmpty(item.IGNOREAUTH))
                    {
                        menuItem.meta.ignoreAuth = item.IGNOREAUTH == "Y";
                    }
                    menuItem.keepalive = item.IGNOREKEEPALIVE;
                    menuItem.show = item.SHOW;
                    menuItem.menuName = item.FUNC_NAME;
                    menuItem.createTime = item.CREATE_TIME;
                    menuItem.status = item.IS_USE;
                    menuItem.icon = menuItem.meta.icon;
                    menuItem.func_type = item.FUNC_TYPE;
                    menuItem.btnType = item.BUTTON_TYPE;
                    menuItem.parentMenu = item.PFUNC_CODE;
                    menuItem.orderNo= item.SEQ_NO;
                    menuItem.children = new();
                    GetMenuItem(items, item.FUNC_CODE, ref menuItem);
                    data.Add(menuItem);
                    menuItem.meta.ignoreKeepAlive = item.IGNOREKEEPALIVE == "0" ? true : false;
                }
            }
            //有查询条件的时候
            else {
                if (!string.IsNullOrEmpty(item.CURRENTACTIVEMENU))
                {
                    menuItem.meta.currentActiveMenu = item.CURRENTACTIVEMENU;
                }
                if (!string.IsNullOrEmpty(item.SHOW))
                {
                    menuItem.meta.hideMenu = item.SHOW == "1" ? true : false;
                    menuItem.meta.showMenu = item.SHOW == "0" ? true : false;
                }
                if (!string.IsNullOrEmpty(item.IGNOREAUTH))
                {
                    menuItem.meta.ignoreAuth = item.IGNOREAUTH == "Y";
                }
                menuItem.keepalive = item.IGNOREKEEPALIVE;
                menuItem.show = item.SHOW;
                menuItem.menuName = item.FUNC_NAME;
                menuItem.createTime = item.CREATE_TIME;
                menuItem.status = item.IS_USE;
                menuItem.icon = menuItem.meta.icon;
                menuItem.func_type = item.FUNC_TYPE;
                menuItem.btnType = item.BUTTON_TYPE;
                menuItem.doMethod = item.DO_METHOD;
                menuItem.parentMenu = item.PFUNC_CODE;
                menuItem.orderNo = item.SEQ_NO;
                menuItem.children = null;
                GetMenuItem(items, item.FUNC_CODE, ref menuItem);
                data.Add(menuItem);
            }
            //转换Json时,去除值为null的属性
            var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
            var jsonSetting = new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore };
            var json = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSetting);
            return json;
        }
@@ -211,6 +211,7 @@
                        func.SEQ_NO = (int)data.orderNo;
                        func.FUNC_TYPE = data.func_type;
                        func.BUTTON_TYPE = data.btnType;
                        func.DO_METHOD = data.doMethod;
                        func.COMPONENT = string.IsNullOrEmpty(data.component) && data.func_type == "0" ? "LAYOUT" : data.component;
                        func.IGNOREKEEPALIVE = data.keepalive;
                        func.SHOW = data.show;
@@ -227,6 +228,7 @@
                            FUNC_GROUP = "",
                            FUNC_TYPE = data.func_type,
                            BUTTON_TYPE = data.btnType,
                            DO_METHOD = data.doMethod,
                            PFUNC_CODE = data.parentMenu,
                            FUNC_CLASS = "BS",
                            PATH = data.path,
@@ -295,6 +297,7 @@
                    menuItem.meta.menuId = item.ID;
                    menuItem.meta.menuCode = item.FUNC_CODE;
                    menuItem.meta.btnType = item.BUTTON_TYPE;
                    menuItem.meta.doMethod = item.DO_METHOD;
                    if (!string.IsNullOrEmpty(item.IGNOREKEEPALIVE))
                    {
                        menuItem.meta.ignoreKeepAlive = item.IGNOREKEEPALIVE == "0" ? true : false;
@@ -315,15 +318,17 @@
                    menuItem.keepalive = item.IGNOREKEEPALIVE;
                    menuItem.show = item.SHOW;
                    menuItem.menuName = item.FUNC_NAME;
                    menuItem.createTime = item.CREATE_TIME;
                    menuItem.createTime = item.CREATE_TIME;
                    menuItem.icon = menuItem.meta.icon;
                    menuItem.func_type = item.FUNC_TYPE;
                    menuItem.btnType = item.BUTTON_TYPE;
                    menuItem.doMethod = item.DO_METHOD;
                    menuItem.parentMenu = item.PFUNC_CODE;
                    menuItem.orderNo = item.SEQ_NO;
                    menuItem.status = item.IS_USE;
                    menuItem.children = new();
                    menuItem.children = null;
                    GetMenuItem(data, item.FUNC_CODE, ref menuItem);
                    if (pMenuItem.children == null) { pMenuItem.children = new(); }
                    pMenuItem.children.Add(menuItem);
                }
            }