yanjinhui
2025-03-14 563ce4cedd764d3e53e9384197fc14e618d776d5
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/WIDESEAWCS_SystemServices/Sys_UserService.cs
@@ -22,8 +22,10 @@
        private readonly ISys_MenuService _menuService;
        private readonly ISys_RoleRepository _RoleRepository;
        private readonly ILoginHistoryRepository _loginHistoryRepository;
        private readonly IPutakeRepository _putakeRepository;
        public Sys_UserService(ISys_UserRepository repository, IUnitOfWorkManage unitOfWorkManage,
            ICacheService cacheService, ISys_MenuService menuService , ISys_RoleRepository roleRepository, ILoginHistoryRepository loginHistoryRepository) : base(repository)
            ICacheService cacheService, ISys_MenuService menuService , ISys_RoleRepository roleRepository, ILoginHistoryRepository loginHistoryRepository, IPutakeRepository putakeRepository) : base(repository)
        {
            _unitOfWorkManage = unitOfWorkManage;
            _cacheService = cacheService;
@@ -31,7 +33,7 @@
            _RoleRepository = roleRepository;
            _RoleRepository= roleRepository;
            _loginHistoryRepository = loginHistoryRepository;
            _putakeRepository = putakeRepository;
        }
        public WebResponseContent Login(LoginInfo loginInfo)
@@ -93,7 +95,7 @@
                    _cacheService.AddOrUpdate(user.UserId.ToString(), token);
                    _loginHistoryRepository.AddData(loghis);
                    content = WebResponseContent.Instance.OK(data: new { token, userName = user.UserTrueName, img = user.HeadImageUrl });
                    content = WebResponseContent.Instance.OK(data: new { token, userName = user.UserTrueName, img = user.HeadImageUrl,ID=user.UserId });
                }
                else
                {
@@ -237,5 +239,58 @@
                return new WebResponseContent { Status = false, Message="失败"+ex };
            }
        }
        public WebResponseContent PermissionView(int userId, string group)
        {
            try
            {
                // 1. èŽ·å–ç”¨æˆ·ä¿¡æ¯
                var user = BaseDal.QueryData(x => x.User_Id == userId).FirstOrDefault();
                var allTasks = _putakeRepository.QueryData();
                if (user == null)
                {
                    return new WebResponseContent { Status = false, Message = "用户不存在" };
                }
                string roleName = user.RoleName;
                // 2. åˆ¤æ–­æ˜¯å¦æ˜¯è¶…级管理员
                if (roleName.Contains("超级管理员"))
                {
                    // è¶…级管理员仍然要筛选指定 group
                    var adminTasks = allTasks.Where(x => x.Grouptype == group).ToList();
                    return new WebResponseContent { Status = true, Data = adminTasks, Message = "获取成功" };
                }
                // 3. ç¡®å®šæ™®é€šç”¨æˆ·è§’色匹配的任务类型
                List<string> allowedGroups = new List<string>();
                if (roleName.Contains("地沟")) allowedGroups.Add("地沟");//如果添加进数组中
                if (roleName.Contains("电气")) allowedGroups.Add("电气");
                if (roleName.Contains("机械")) allowedGroups.Add("机械");
                if (allowedGroups.Count == 0)
                {
                    return new WebResponseContent { Status = false, Message = "您无权限查看任务" };
                }
                // 4. æ™®é€šç”¨æˆ·åªèƒ½çœ‹è‡ªå·±æƒé™èŒƒå›´å†…的任务
                if (!allowedGroups.Contains(group))
                {
                    return new WebResponseContent { Status = false, Message = "您无权限查看该任务类别" };
                }
                var tasks = allTasks.Where(t => t.Grouptype == group).ToList();
                return new WebResponseContent { Status = true, Data = tasks, Message = "获取成功" };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = "错误: " + ex.Message };
            }
        }
    }
}