| | |
| | | using WIDESEA_Core.Authorization; |
| | | using SqlSugar; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.Authorization; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_Core.Helper; |
| | |
| | | using WIDESEA_ISystemService; |
| | | using WIDESEA_Model; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using System.Net; |
| | | using WIDESEA_Core.Caches; |
| | | 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 |
| | | { |
| | |
| | | |
| | | public WebResponseContent Login(LoginInfo loginInfo) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //BaseDal.QueryFirst(x => x.UserName == loginInfo.UserName); |
| | | |
| | | string msg = string.Empty; |
| | | |
| | | #region 临时使用 |
| | | try |
| | | { |
| | | loginInfo.Password = loginInfo.Password.EncryptDES(AppSecret.User); |
| | | } |
| | | catch |
| | | { |
| | | catch { } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | UserInfo user = BaseDal.QueryFirst(x => x.UserName == loginInfo.UserName && x.UserPwd == loginInfo.Password, x => new UserInfo { HeadImageUrl = x.HeadImageUrl, RoleId = x.RoleId, TenantId = x.TenantId, UserId = x.UserId, UserName = x.UserName, UserTrueName = x.UserTrueName }); |
| | | if (user != null) |
| | | { |
| | | object obj = _menuService.GetMenuActionList(user.RoleId); |
| | | if (obj is not IEnumerable<object> list) |
| | | var user = BaseDal.QueryFirst( |
| | | x => x.UserName == loginInfo.UserName && x.UserPwd == loginInfo.Password, |
| | | x => new UserInfo |
| | | { |
| | | return WebResponseContent.Instance.Error("无登录权限"); |
| | | } |
| | | if (!list.Any()) |
| | | { |
| | | return WebResponseContent.Instance.Error("无登录权限"); |
| | | } |
| | | |
| | | string token = JwtHelper.IssueJwt(new TokenModelJwt() |
| | | { |
| | | UserId = user.UserId, |
| | | RoleId = user.RoleId, |
| | | UserName = user.UserName, |
| | | TenantId = user.TenantId, |
| | | HeadImageUrl = x.HeadImageUrl, |
| | | RoleId = x.RoleId, |
| | | TenantId = x.TenantId, |
| | | UserId = x.UserId, |
| | | UserName = x.UserName, |
| | | UserTrueName = x.UserTrueName |
| | | }); |
| | | App.User.UpdateToke(token, user.UserId); |
| | | |
| | | //if (PermissionDataHostService.UserRoles.FirstOrDefault(x => x.UserId == user.UserId) == null) |
| | | // PermissionDataHostService.UserRoles.AddRange(PermissionDataHostService.GetUserRoles(Db, user.UserId)); |
| | | if (user == null) |
| | | return WebResponseContent.Instance.Error("账号或密码错误"); |
| | | |
| | | content = WebResponseContent.Instance.OK(data: new { token, userName = user.UserName, img = user.HeadImageUrl, user.UserTrueName }); |
| | | } |
| | | else |
| | | if (_menuService.GetMenuActionList(user.RoleId) is not IEnumerable<object> { } list || !list.Any()) |
| | | return WebResponseContent.Instance.Error("无登录权限"); |
| | | |
| | | var token = JwtHelper.IssueJwt(new TokenModelJwt |
| | | { |
| | | content = WebResponseContent.Instance.Error("账号或密码错误"); |
| | | } |
| | | UserId = user.UserId, |
| | | RoleId = user.RoleId, |
| | | UserName = user.UserName, |
| | | TenantId = user.TenantId, |
| | | }); |
| | | App.User.UpdateToke(token, user.UserId); |
| | | |
| | | return WebResponseContent.Instance.OK(data: new { token, userName = user.UserName, img = user.HeadImageUrl, user.UserTrueName }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | |
| | | return content; |
| | | } |
| | | |
| | | public override WebResponseContent UpdateData(SaveModel saveModel) |
| | |
| | | |
| | | public override PageGridData<Sys_User> GetPageData(PageDataOptions options) |
| | | { |
| | | int roleId = -1; |
| | | //树形菜单传查询角色下所有用户 |
| | | if (options.Value != null) |
| | | { |
| | | roleId = options.Value.ObjToInt(); |
| | | } |
| | | int roleId = options.Value?.ObjToInt() ?? -1; |
| | | |
| | | 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>(); |
| | | |
| | | var roleIds = _roleService.GetAllChildrenRoleId(roleId).Where(x => x != roleId).ToList(); |
| | | var sugarQueryable = Db.Queryable<Sys_User>(); |
| | | ValidatePageOptions(options, 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); |
| | | var orderByModels = options.GetPageDataSort(TProperties) |
| | | .Select(item => new OrderByModel { FieldName = item.Key, OrderByType = item.Value }) |
| | | .ToList(); |
| | | |
| | | int totalCount = 0; |
| | | var 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) |
| | | { |
| | | string pwd = "123456"; |
| | | string uesrName = saveModel.MainData[nameof(Sys_User.UserName).FirstLetterToLower()].ToString(); |
| | | saveModel.MainData[nameof(Sys_User.UserPwd).FirstLetterToLower()] = pwd.EncryptDES(AppSecret.User); |
| | | const string defaultPwd = "123456"; |
| | | string userName = saveModel.MainData[nameof(Sys_User.UserName).FirstLetterToLower()].ToString(); |
| | | saveModel.MainData[nameof(Sys_User.UserPwd).FirstLetterToLower()] = defaultPwd.EncryptDES(AppSecret.User); |
| | | |
| | | WebResponseContent content = base.AddData(saveModel); |
| | | if (content.Status) |
| | | { |
| | | return WebResponseContent.Instance.OK($"用户新建成功.帐号{uesrName}密码{pwd}"); |
| | | } |
| | | else |
| | | { |
| | | return content; |
| | | } |
| | | var content = base.AddData(saveModel); |
| | | return content.Status |
| | | ? WebResponseContent.Instance.OK($"用户新建成功.帐号{userName}密码{defaultPwd}") |
| | | : content; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// 修改密码 |
| | | /// </summary> |
| | | /// <param name="parameters"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent ModifyPwd(string oldPwd, string newPwd) |
| | | { |
| | | WebResponseContent content = WebResponseContent.Instance; |
| | | oldPwd = oldPwd?.Trim(); |
| | | newPwd = newPwd?.Trim(); |
| | | string message = ""; |
| | | try |
| | | { |
| | | oldPwd = oldPwd?.Trim(); |
| | | newPwd = newPwd?.Trim(); |
| | | |
| | | if (string.IsNullOrEmpty(oldPwd)) return WebResponseContent.Instance.Error("旧密码不能为空"); |
| | | if (string.IsNullOrEmpty(newPwd)) return WebResponseContent.Instance.Error("新密码不能为空"); |
| | | if (newPwd.Length < 6) return WebResponseContent.Instance.Error("密码不能少于6位"); |
| | |
| | | int userId = App.User.UserId; |
| | | string userCurrentPwd = BaseDal.QueryFirst(x => x.UserId == userId, s => s.UserPwd); |
| | | |
| | | string _oldPwd = oldPwd.EncryptDES(AppSecret.User); |
| | | if (_oldPwd != userCurrentPwd) return WebResponseContent.Instance.Error("旧密码不正确"); |
| | | string encryptedOldPwd = oldPwd.EncryptDES(AppSecret.User); |
| | | if (encryptedOldPwd != userCurrentPwd) return WebResponseContent.Instance.Error("旧密码不正确"); |
| | | |
| | | string _newPwd = newPwd.EncryptDES(AppSecret.User); |
| | | if (userCurrentPwd == _newPwd) return WebResponseContent.Instance.Error("新密码不能与旧密码相同"); |
| | | |
| | | string encryptedNewPwd = newPwd.EncryptDES(AppSecret.User); |
| | | if (userCurrentPwd == encryptedNewPwd) return WebResponseContent.Instance.Error("新密码不能与旧密码相同"); |
| | | |
| | | BaseDal.UpdateData(new Sys_User |
| | | { |
| | | UserId = userId, |
| | | UserPwd = _newPwd, |
| | | UserPwd = encryptedNewPwd, |
| | | LastModifyPwdDate = DateTime.Now |
| | | }, new List<string> |
| | | { |
| | | nameof(Sys_User.LastModifyPwdDate), |
| | | nameof(Sys_User.UserPwd) |
| | | }); |
| | | }, new List<string> { nameof(Sys_User.LastModifyPwdDate), nameof(Sys_User.UserPwd) }); |
| | | |
| | | content = WebResponseContent.Instance.OK("密码修改成功"); |
| | | return WebResponseContent.Instance.OK("密码修改成功"); |
| | | } |
| | | catch (Exception ex) |
| | | catch (Exception) |
| | | { |
| | | message = ex.Message; |
| | | content = WebResponseContent.Instance.Error("服务器了点问题,请稍后再试"); |
| | | return WebResponseContent.Instance.Error("服务器了点问题,请稍后再试"); |
| | | } |
| | | return content; |
| | | } |
| | | public WebResponseContent ModifyUserPwd(string password, string userName) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | string message = ""; |
| | | password = password?.Trim(); |
| | | try |
| | | { |
| | | password = password?.Trim(); |
| | | if (string.IsNullOrEmpty(password)) return WebResponseContent.Instance.Error("密码不能为空"); |
| | | //获取用户 |
| | | Sys_User user = BaseDal.QueryFirst(x => x.UserName == userName); |
| | | |
| | | var 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() |
| | | var token = JwtHelper.IssueJwt(new TokenModelJwt |
| | | { |
| | | UserId = user.UserId, |
| | | RoleId = user.RoleId, |
| | |
| | | }); |
| | | _cacheService.AddOrUpdate(user.UserId.ToString(), token); |
| | | } |
| | | return content.OK("更改成功"); |
| | | |
| | | return WebResponseContent.Instance.OK("更改成功"); |
| | | } |
| | | catch (Exception ex) |
| | | catch (Exception) |
| | | { |
| | | message = ex.Message; |
| | | content.Error("服务器了点问题,请稍后再试"); |
| | | return WebResponseContent.Instance.Error("服务器了点问题,请稍后再试"); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |