From 563ce4cedd764d3e53e9384197fc14e618d776d5 Mon Sep 17 00:00:00 2001 From: yanjinhui <3306209981@qq.com> Date: 星期五, 14 三月 2025 17:44:23 +0800 Subject: [PATCH] 美型 --- 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_SystemServices/Sys_UserService.cs | 61 +++++++++++++++++++++++++++++- 1 files changed, 58 insertions(+), 3 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_SystemServices/Sys_UserService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_SystemServices/Sys_UserService.cs" index bfa5d7a..8871a36 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_SystemServices/Sys_UserService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/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 }; + } + } + } } -- Gitblit v1.9.3