| | |
| | | using SqlSugar; |
| | | using ICacheService = WIDESEA_Core.Caches.ICacheService; |
| | | using HslCommunication.WebSocket; |
| | | using System.Drawing.Drawing2D; |
| | | using System.Linq; |
| | | using MailKit.Search; |
| | | using OrderByType = SqlSugar.OrderByType; |
| | | using System.Drawing.Printing; |
| | | using WIDESEA_Core.HostedService; |
| | | |
| | | namespace WIDESEA_SystemService |
| | |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly ICacheService _cacheService; |
| | | private readonly ISys_MenuService _menuService; |
| | | private readonly ISys_RoleService _roleService; |
| | | |
| | | public ISys_UserRepository Repository => BaseDal; |
| | | |
| | | public Sys_UserService(ISys_UserRepository repository, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, ISys_MenuService menuService) : base(repository) |
| | | public Sys_UserService(ISys_UserRepository repository, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, ISys_MenuService menuService, ISys_RoleService roleService) : base(repository) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _cacheService = cacheService; |
| | | _menuService = menuService; |
| | | _roleService = roleService; |
| | | } |
| | | |
| | | public WebResponseContent Login(LoginInfo loginInfo) |
| | |
| | | UserName = user.UserName, |
| | | TenantId = user.TenantId, |
| | | }); |
| | | App.User.UpdateToke(token, user.UserId); |
| | | |
| | | _cacheService.AddOrUpdate(user.UserId.ToString(), token); |
| | | if (PermissionDataHostService.UserRoles.FirstOrDefault(x => x.UserId == user.UserId) == null) |
| | | PermissionDataHostService.UserRoles.AddRange(PermissionDataHostService.GetUserRoles(Db, user.UserId)); |
| | | |
| | | content = WebResponseContent.Instance.OK(data: new { token, userName = user.UserName, img = user.HeadImageUrl, trueNmae = user.UserTrueName }); |
| | | content = WebResponseContent.Instance.OK(data: new { token, userName = user.UserName, img = user.HeadImageUrl, user.UserTrueName }); |
| | | } |
| | | else |
| | | { |
| | |
| | | }; |
| | | }; |
| | | return base.UpdateData(saveModel); |
| | | } |
| | | |
| | | public override PageGridData<Sys_User> GetPageData(PageDataOptions options) |
| | | { |
| | | int roleId = -1; |
| | | //æ å½¢èåä¼ æ¥è¯¢è§è²ä¸ææç¨æ· |
| | | if (options.Value != null) |
| | | { |
| | | roleId = options.Value.ObjToInt(); |
| | | } |
| | | |
| | | if (roleId <= 0) |
| | | { |
| | | if (App.User.IsHighestRole) return base.GetPageData(options); |
| | | roleId = App.User.RoleId; |
| | | } |
| | | int totalCount = 0; |
| | | List<int> roleIds = _roleService.GetAllChildrenRoleId(roleId).Where(x => x != roleId).ToList(); |
| | | ISugarQueryable<Sys_User> sugarQueryable = Db.Queryable<Sys_User>(); |
| | | ValidatePageOptions(options, TProperties, ref sugarQueryable); |
| | | |
| | | Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(TProperties); |
| | | List<OrderByModel> orderByModels = new List<OrderByModel>(); |
| | | foreach (var item in orderbyDic) |
| | | { |
| | | OrderByModel orderByModel = new OrderByModel() |
| | | { |
| | | FieldName = item.Key, |
| | | OrderByType = item.Value |
| | | }; |
| | | orderByModels.Add(orderByModel); |
| | | } |
| | | List<Sys_User> users = sugarQueryable.Where(x => roleIds.Contains(x.RoleId) || x.UserId == App.User.UserId).OrderBy(orderByModels).ToPageList(options.Page, options.Rows, ref totalCount); |
| | | return new PageGridData<Sys_User> { Rows = users, Total = totalCount }; |
| | | } |
| | | |
| | | public override WebResponseContent AddData(SaveModel saveModel) |
| | |
| | | } |
| | | return content; |
| | | } |
| | | public WebResponseContent ModifyUserPwd(string password, string userName) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | string message = ""; |
| | | password = password?.Trim(); |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(password)) return WebResponseContent.Instance.Error("å¯ç ä¸è½ä¸ºç©º"); |
| | | //è·åç¨æ· |
| | | Sys_User user = BaseDal.QueryFirst(x => x.UserName == userName); |
| | | if (user == null) return WebResponseContent.Instance.Error("ç¨æ·ä¸åå¨"); |
| | | user.UserPwd = password.EncryptDES(AppSecret.User); |
| | | BaseDal.UpdateData(user); |
| | | if (App.User.UserId == user.UserId) |
| | | { |
| | | string token = JwtHelper.IssueJwt(new TokenModelJwt() |
| | | { |
| | | UserId = user.UserId, |
| | | RoleId = user.RoleId, |
| | | UserName = user.UserName, |
| | | TenantId = user.TenantId, |
| | | }); |
| | | _cacheService.AddOrUpdate(user.UserId.ToString(), token); |
| | | } |
| | | return content.OK("æ´æ¹æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | message = ex.Message; |
| | | content.Error("æå¡å¨äºç¹é®é¢,请ç¨ååè¯"); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |