| | |
| | | using System.Net; |
| | | using WIDESEAWCS_Core.Caches; |
| | | using WIDESEA_ISerialPortRepository; |
| | | using Microsoft.AspNetCore.Http; |
| | | using SqlSugar; |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | using Microsoft.AspNetCore.Builder; |
| | | using WIDESEAWCS_DTO.SerialPort; |
| | | |
| | | namespace WIDESEAWCS_SystemServices |
| | | { |
| | |
| | | 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; |
| | | _menuService = menuService; |
| | | _RoleRepository = roleRepository; |
| | | _RoleRepository= roleRepository; |
| | | _RoleRepository = roleRepository; |
| | | _loginHistoryRepository = loginHistoryRepository; |
| | | |
| | | _putakeRepository = putakeRepository; |
| | | } |
| | | |
| | | public WebResponseContent Login(LoginInfo loginInfo) |
| | |
| | | #endregion |
| | | |
| | | UserInfo user = BaseDal.GetUserInfo(loginInfo.UserName, loginInfo.Password); |
| | | var disbled = BaseDal.QueryFirst(x => x.UserName == loginInfo.UserName);//æ ¹æ®è¿ä¸ªç¨æ·åæ¥æ¥çç¨æ· |
| | | if (user != null) |
| | | { |
| | | object obj = _menuService.GetMenuActionList(user.RoleId); |
| | |
| | | if (!list.Any()) |
| | | { |
| | | return WebResponseContent.Instance.Error("æ ç»å½æé"); |
| | | } |
| | | if (disbled.Enable != 1) |
| | | { |
| | | return WebResponseContent.Instance.Error("ä½ çè´¦å·å·²è¢«ç¦ç¨ï¼è¯·è系管çå"); |
| | | } |
| | | |
| | | string token = JwtHelper.IssueJwt(new TokenModelJwt() |
| | |
| | | var loghis = new Dt_LoginHistory |
| | | { |
| | | Account = user.UserName, |
| | | TrurName=user.UserTrueName, |
| | | Createdate=DateTime.Now |
| | | |
| | | |
| | | TrurName = user.UserTrueName, |
| | | CreateDate = DateTime.Now |
| | | |
| | | }; |
| | | |
| | | |
| | | |
| | | _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, RoleId=user.RoleId }); |
| | | } |
| | | else |
| | | { |
| | |
| | | if (newPwd.Length < 6) return WebResponseContent.Instance.Error("å¯ç ä¸è½å°äº6ä½"); |
| | | |
| | | int userId = App.User.UserId; |
| | | |
| | | string userCurrentPwd = BaseDal.QueryFirst(x => x.User_Id == userId, s => s.UserPwd); |
| | | |
| | | string _oldPwd = oldPwd.EncryptDES(AppSecret.User); |
| | |
| | | nameof(Sys_User.LastModifyPwdDate), |
| | | nameof(Sys_User.UserPwd) |
| | | }); |
| | | |
| | | content = WebResponseContent.Instance.OK("å¯ç ä¿®æ¹æå"); |
| | | //content = WebResponseContent.Instance.OK("å¯ç ä¿®æ¹æå"); |
| | | content = WebResponseContent.Instance.OK("å¯ç ä¿®æ¹æå", userId); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | content = WebResponseContent.Instance.Error("æå¡å¨äºç¹é®é¢,请ç¨ååè¯"); |
| | | } |
| | | return content; |
| | | |
| | | } |
| | | |
| | | public WebResponseContent GetUerType() |
| | |
| | | { |
| | | |
| | | |
| | | return new WebResponseContent { Status = false, Message="失败"+ex }; |
| | | 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 }; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å¾çæä»¶å |
| | | /// </summary> |
| | | /// <param name="files"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent SaveFiles(IFormCollection files) |
| | | { |
| | | if (files == null || files.Files.Count == 0) |
| | | return new WebResponseContent { Status = false, Message = "请ä¸ä¼ æä»¶" }; |
| | | |
| | | // 1. ç¡®ä¿åå¨ç®å½åå¨ |
| | | string baseDirectory = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "image"); |
| | | if (!Directory.Exists(baseDirectory)) |
| | | Directory.CreateDirectory(baseDirectory); |
| | | |
| | | try |
| | | { |
| | | var file = files.Files[0]; // åªå¤ç第ä¸ä¸ªæä»¶ |
| | | string fileName = file.FileName; // ç´æ¥ä½¿ç¨å端çæä»¶å |
| | | |
| | | string fullFilePath = Path.Combine(baseDirectory, fileName); |
| | | |
| | | // 2. ä¿åæä»¶ï¼å¦æåå¨ï¼åè¦çï¼ |
| | | using (var stream = new FileStream(fullFilePath, FileMode.Create)) |
| | | { |
| | | file.CopyTo(stream); |
| | | } |
| | | |
| | | // 3. è¿åæä»¶å |
| | | return new WebResponseContent { Status = true, Message = "æä»¶ä¸ä¼ æå", Data = fileName }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "ä¸ä¼ æä»¶å¤±è´¥ï¼" + ex.Message }; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°å¯ç |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="oldPwd"></param> |
| | | /// <param name="newPwd"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent UpdatePwd(int id, string oldPwd, string newPwd) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | oldPwd = oldPwd?.Trim(); |
| | | newPwd = newPwd?.Trim(); |
| | | |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(oldPwd)) return content.Error("æ§å¯ç ä¸è½ä¸ºç©º"); |
| | | if (string.IsNullOrEmpty(newPwd)) return content.Error("æ°å¯ç ä¸è½ä¸ºç©º"); |
| | | if (newPwd.Length < 6) return content.Error("å¯ç ä¸è½å°äº6ä½"); |
| | | |
| | | // è·åç¨æ·å½åå¯ç |
| | | string userCurrentPwd = BaseDal.QueryFirst(x => x.User_Id == id, s => s.UserPwd) ?? ""; |
| | | |
| | | if (string.IsNullOrEmpty(userCurrentPwd)) return content.Error("ç¨æ·ä¸å卿å¯ç æªè®¾ç½®"); |
| | | |
| | | //// è¿è¡å¯ç å å¯å¯¹æ¯ |
| | | //string _oldPwd = oldPwd.EncryptDES(AppSecret.User); |
| | | //if (_oldPwd != userCurrentPwd) return content.Error("æ§å¯ç 䏿£ç¡®"); |
| | | |
| | | // çææ°å¯ç å å¯å¼ |
| | | string _newPwd = newPwd.EncryptDES(AppSecret.User); |
| | | if (userCurrentPwd == _newPwd) return content.Error("æ°å¯ç ä¸è½ä¸æ§å¯ç ç¸å"); |
| | | |
| | | // æ´æ°å¯ç |
| | | bool isUpdated = BaseDal.UpdateData(new Sys_User |
| | | { |
| | | User_Id = id, |
| | | UserPwd = _newPwd, |
| | | LastModifyPwdDate = DateTime.Now |
| | | }, new List<string> |
| | | { |
| | | nameof(Sys_User.LastModifyPwdDate), |
| | | nameof(Sys_User.UserPwd) |
| | | }); |
| | | |
| | | if (!isUpdated) |
| | | { |
| | | return content.Error("å¯ç ä¿®æ¹å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | } |
| | | |
| | | return content.OK("å¯ç ä¿®æ¹æå", id); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine($"ä¿®æ¹å¯ç å¼å¸¸: {ex.Message}"); |
| | | return content.Error($"æå¡å¨é误: {ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent Upuserbase(UserDTO userDTO) |
| | | { |
| | | try |
| | | { |
| | | var user = BaseDal.QueryData(x => x.User_Id == userDTO.id).FirstOrDefault(); |
| | | if (user==null) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "没æ¾å°è¯¥ç¨æ·" }; |
| | | } |
| | | user.UserTrueName = userDTO.usertruename; |
| | | user.PhoneNo = userDTO.phone; |
| | | user.HeadImageUrl = userDTO.files; |
| | | BaseDal.UpdateData(user); // ç¡®ä¿æ´æ°å°æ°æ®åº |
| | | return new WebResponseContent { Status = true, Data = user }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | return new WebResponseContent { Status = false ,Message="失败ï¼"+ex}; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |