RolePermission.Bll/SMMENUTBService.cs

(开头部分) 9KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RolePermission.Model;
using RolePermission.IBLL;
using RolePermission.Model.SearchParam;
using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore;
using RolePermission.Common;
using RolePermission.IDAL;
using RolePermission.Model.Relationship;

namespace RolePermission.BLL
{
    public partial class SMMENUTBService : BaseService<SMMENUTB>, ISMMENUTBService
    {
        /// <summary>
        /// 多条件搜索角色信息
        /// </summary>
        /// <param name="menuParam">查询参数实体</param>
        /// <returns></returns>
        public IQueryable<SMMENUTB> LoadSearchEntities(MenuParam menuParam)
        {
            Expression<Func<SMMENUTB, bool>> whereLambda = PredicateBuilder.True<SMMENUTB>();
            int count = 0;
            IQueryable<SMMENUTB> queryData = null;
            if (!string.IsNullOrEmpty(menuParam.order) && !string.IsNullOrEmpty(menuParam.sort))
            {
                bool isAsc = menuParam.order == "asc" ? true : false;
                queryData = LoadPageEntities<SMMENUTB>(menuParam.page, menuParam.rows, out count, whereLambda, menuParam.sort, isAsc);
            }
            else
            {
                queryData = LoadPageEntities<SMMENUTB>(menuParam.page, menuParam.rows, out count, whereLambda, menuParam.sort, null);
            }
            menuParam.TotalCount = count;

            return queryData;
        }
        /// <summary>
        /// 根据PersonId获取已经启用的菜单
        /// </summary>
        /// <param name="personId">人员的Id</param>
        /// <returns>菜单拼接的字符串</returns>
        public string GetMenuByAccount(ref Account person)
        {
            int personId = person.USER_ID;
            var roleIds = this.GetCurrentDbSession.ISMUSERTBRepository.LoadEntities(x => x.USER_ID == personId).Include(c=>c.SMROLETB).FirstOrDefault().SMROLETB.Select(s => s.ROLE_ID).ToList();
            person.RoleIds = roleIds;
            List<SMMENUTB> menuNeed = GetCurrentDbSession.ISMMENUROLEFUNCTBRepository.LoadEntities(x => x.FUNC_ID == null && roleIds.Any(a => a == x.ROLEID)).Select(s => s.SMMENUTB).Distinct().OrderBy(o => o.SORT).ToList();
            person.MenuIds = menuNeed.Select(s => s.ID).ToList();

            StringBuilder strmenu2 = new StringBuilder();//拼接菜单的字符串
            int? lever = 0;//上一个菜单的层级
            int? current = 0;//当前菜单的层级

            foreach (SMMENUTB item in menuNeed)
            {
                current = item.MENULEVEL;//item.REMARK.Length / 4;//按照4位数字的编码格式
后面还有 163 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。