Browse Source

Merge branch 'develop' of http://132.232.92.186:3000/XinXiBu/OA2023 into develop

jiangjc 10 months ago
parent
commit
b15fa86e3b

+ 10 - 19
OASystem/OASystem.Api/Controllers/AuthController.cs

@@ -63,14 +63,15 @@ namespace OASystem.API.Controllers
         [ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
         public async Task<IActionResult> LoginAsync(LoginDto dto)
         {
-            #region 校验用户信息 
-            var userData = _loginRep.Login(dto).Result;
-            if (userData.Code != 0)
+            if (string.IsNullOrWhiteSpace(dto.Number) || string.IsNullOrWhiteSpace(dto.Password))
             {
-                if (userData.Code != 0) { return Ok(JsonView(false, userData.Msg)); }
-                return Ok(JsonView(false, "暂无该员工信息!"));
+                return Ok(JsonView(false, "账号或密码不能为空!!"));
             }
 
+            #region 校验用户信息 
+            var userData = _loginRep.Login(dto).Result;
+            if (userData.Code != 0)  return Ok(JsonView(false, userData.Msg)); 
+
             #endregion
             Result authData = null;
             string uName = string.Empty;
@@ -271,22 +272,12 @@ namespace OASystem.API.Controllers
         public async Task<IActionResult> UpdateUserPassword(UpdateDto dto)
         {
             Result result = new Result();
-
+            var httpContext = HttpContext.User.Claims.FirstOrDefault(it => it.Type == ClaimTypes.Name)?.Value;
             Sys_Users sys_Users = _mapper.Map<Sys_Users>(dto);
-            var _UpdateState = await _loginRep.UpdateAsync(s => s.Id == dto.UserId, ss => sys_Users);
-            if (_UpdateState)
-            {
-                result.Code = 0;
-                result.Msg = "申请成功!人事主管审核后且信息部经理分配了登录账号,可登录OA!";
-            }
-            else
-            {
-                result.Code = -2;
-                result.Msg = "用户修改失败!";
-            }
-
+            var _view = await _loginRep.ChangePassword(dto.UserId,dto.Password);
+            if (_view.Code == 0) return Ok(JsonView(true,"操作成功!"));
 
-            return Ok(JsonView(result));
+            return Ok(JsonView(false, _view.Msg));
         }
 
         /// <summary>

+ 23 - 15
OASystem/OASystem.Api/Program.cs

@@ -26,6 +26,8 @@ using OASystem.API.OAMethodLib.SignalR.HubService;
 using OASystem.API.OAMethodLib.Auth;
 using OASystem.API.OAMethodLib.Hub.HubClients;
 using Microsoft.Extensions.Options;
+using Microsoft.AspNetCore.Identity;
+using static OpenAI.GPT3.ObjectModels.SharedModels.IOpenAiModels;
 
     var builder = WebApplication.CreateBuilder(args);
 var basePath = AppContext.BaseDirectory;
@@ -127,6 +129,26 @@ builder.Services.AddScoped(options =>
 });
 #endregion
 
+//#region Identity 配置
+//builder.Services.AddDataProtection();
+////不要用 AddIdentity , AddIdentity 是于MVC框架中的
+//builder.Services.AddIdentityCore<User>(opt =>
+//{
+//    opt.Password.RequireDigit = false; //数字
+//    opt.Password.RequireLowercase = false;//小写字母
+//    opt.Password.RequireNonAlphanumeric = false;//特殊符号 例如 ¥#@! 
+//    opt.Password.RequireUppercase = false; //大写字母
+//    opt.Password.RequiredLength = 6;//密码长度 6 
+//    opt.Password.RequiredUniqueChars = 1;//相同字符可以出现几次
+//    opt.Lockout.MaxFailedAccessAttempts = 5; //允许最多输入五次用户名/密码错误
+//    opt.Lockout.DefaultLockoutTimeSpan = new TimeSpan(0, 5, 0);//锁定五分钟
+//    opt.Tokens.PasswordResetTokenProvider = TokenOptions.DefaultEmailProvider; // 修改密码使用邮件【验证码模式】
+//    opt.Tokens.EmailConfirmationTokenProvider = TokenOptions.DefaultEmailProvider;  //// 
+//});
+//var idBuilder = new IdentityBuilder(typeof(User), typeof(UserRole), services);
+//idBuilder.AddEntityFrameworkStores<swapDbContext>().AddDefaultTokenProviders().AddRoleManager<RoleManager<UserRole>>().AddUserManager<UserManager<User>>();
+//#endregion
+
 #region 注入Swagger注释(启用)
 
 if (AppSettingsHelper.Get("UseSwagger").ToBool())
@@ -206,22 +228,8 @@ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                     return Task.CompletedTask;
                 }
             };
-
-            //options.Events = new JwtBearerEvents
-            //{
-            //    OnMessageReceived = context =>
-            //    {
-            //        // 当我们收到消息时,去获取请求中的access_token字段
-            //        var accessToken = context.Request.Query["access_token"];
-            //        // 如果没有就去头上找,找到了就放入我们context.token中
-            //        if (!string.IsNullOrEmpty(accessToken))
-            //        {
-            //            context.Token = accessToken;
-            //        }
-            //        return Task.CompletedTask;
-            //    }
-            //};
         });
+
 #endregion
 
 #region 初始化日志

+ 1 - 0
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -30,6 +30,7 @@ namespace OASystem.Domain.AutoMappers
         {
             #region Login
             CreateMap<LoginDto, Sys_Users>();
+            CreateMap<UpdateDto, Sys_Users>();
             #endregion
 
             #region Systen

+ 2 - 2
OASystem/OASystem.Domain/Dtos/UserDto/UpdateDto.cs

@@ -12,12 +12,12 @@ namespace OASystem.Domain.Dtos.UserDto
     public class UpdateDto
     {
         /// <summary>
-        /// 用户Id
+        /// 当前密码
         /// </summary>
         public int UserId { get; set; }
 
         /// <summary>
-        /// 修改后的密码
+        /// new 密码
         /// </summary>
         public string Password { get; set; }
     }

+ 27 - 0
OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs

@@ -204,5 +204,32 @@ namespace OASystem.Infrastructure.Repositories.Login
 
             return number;
         }
+    
+        public async Task<Result> ChangePassword(int userId,string password)
+        {
+            Result result = new Result() {Code = -1,Msg="操作失败!" };
+            if (userId < 1) {
+                result.Msg = "请输入有效的UserId参数";
+                return result;
+            }
+
+            if (string.IsNullOrWhiteSpace(password))
+            {
+                result.Msg = "请输入有效的password参数";
+                return result;
+            }
+
+            var change = await _sqlSugar.Updateable<Sys_Users>()
+                                        .SetColumns(it => it.Password ==  password)
+                                        .Where(it => it.Id == userId)
+                                        .ExecuteCommandAsync();
+            if (change >  0)
+            {
+                result.Code = 0;
+                result.Msg = "操作成功!";
+            }
+
+            return result;
+        }
     }
 }