| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- using QM.KJGH.MANAGE.IRepository.Users;
- using QM.KJGH.MANAGE.Model.Users;
- using QM.KJGH.Model;
- using QM.KJGH.Model.JCPT;
- using QM.KJGH.Model.KJGH;
- using QM.OrmSqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using WS;
- using WS.Orm;
- namespace QM.KJGH.MANAGE.Repository.Users
- {
- /// <summary>
- /// 菜单
- /// </summary>
- public class MenuRepository : SqlSugarRepository<SysMenu>, IMenuRepository
- {
- /// <summary>
- /// 分页查询
- /// </summary>
- /// <param name="input">查询条件</param>
- /// <returns></returns>
- public async Task<PageData> GetPage(MenuPage input)
- {
- var query = DbClient().Queryable<SysMenu>();
- query.WhereIF(!string.IsNullOrWhiteSpace(input.NAME_CH), t => t.NAME_CH.Contains(input.NAME_CH));
- query.WhereIF(input.TYPE != -1, t => t.TYPE == input.TYPE);
- query.Where(t => t.STATE == EnumBool.Yes);
- var page = await query.OrderBy(t => t.SORT).ToPageAsync(input.page, input.limit);
- return page;
- }
- /// <summary>
- /// 获取树
- /// </summary>
- /// <param name="type">菜单类型(-1:所有 0:后台 1:前端)</param>
- /// <returns></returns>
- public async Task<List<TreeList>> GetTree(int type = -1)
- {
- var query = DbClient().Queryable<SysMenu>();
- query.WhereIF(type != -1, t => t.TYPE == type);
- var list = await query.ToListAsync();
- List<TreeList> treeList = new List<TreeList>();
- //所有
- if(type == -1)
- {
- #region 前端
- var temp = new List<TreeList>();
- var root = list.Where(t => (string.IsNullOrWhiteSpace(t.PID) || t.PID == "000000") && t.TYPE == 1)
- .OrderBy(t => t.SORT);
- foreach (var item in root)
- {
- TreeList tree = new TreeList()
- {
- value = item.MID,
- label = item.NAME_CH,
- children = new List<TreeList>()
- };
- tree.children = MbTree(tree, list);
- temp.Add(tree);
- }
- treeList.Add(new TreeList()
- {
- value = "1",
- label = "前端",
- children = temp
- });
- #endregion
- #region 后台
- var temp0 = new List<TreeList>();
- var root0 = list.Where(t => (string.IsNullOrWhiteSpace(t.PID) || t.PID == "000000") && t.TYPE == 0)
- .OrderBy(t => t.SORT);
- foreach (var item in root0)
- {
- TreeList tree = new TreeList()
- {
- value = item.MID,
- label = item.NAME_CH,
- children = new List<TreeList>()
- };
- tree.children = MbTree(tree, list);
- temp0.Add(tree);
- }
- treeList.Add(new TreeList()
- {
- value = "0",
- label = "后台",
- children = temp0
- });
- #endregion
- }
- else
- {
- var root = list.Where(t => string.IsNullOrWhiteSpace(t.PID) || t.PID == "000000").OrderBy(t => t.SORT);
- foreach (var item in root)
- {
- TreeList tree = new TreeList()
- {
- value = item.MID,
- label = item.NAME_CH,
- children = new List<TreeList>()
- };
- tree.children = MbTree(tree, list);
- treeList.Add(tree);
- }
- }
- return treeList;
- }
- /// <summary>
- /// 模板树
- /// </summary>
- private List<TreeList> MbTree(TreeList tree, List<SysMenu> fzlist)
- {
- List<TreeList> list = new List<TreeList>();
- var fzs = fzlist.Where(t => t.PID == tree.value).OrderBy(t=>t.SORT);
- foreach (var item in fzs)
- {
- TreeList tre = new TreeList()
- {
- value = item.MID,
- label = item.NAME_CH,
- children = new List<TreeList>()
- };
- tre.children = MbTree(tre, fzlist);
- list.Add(tre);
- }
- return list;
- }
- }
- }
|