diff --git a/Src/Dlhis.ScheduledTask/CommonJobs/TempCreateUserJob.cs b/Src/Dlhis.ScheduledTask/CommonJobs/TempCreateUserJob.cs index 15093082..58db572e 100644 --- a/Src/Dlhis.ScheduledTask/CommonJobs/TempCreateUserJob.cs +++ b/Src/Dlhis.ScheduledTask/CommonJobs/TempCreateUserJob.cs @@ -1,6 +1,7 @@ using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Sys.Entities; using Kurisu.AspNetCore.Authentication.Options; +using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Entity; using Kurisu.SqlSugar.Services; using Microsoft.AspNetCore.Identity; @@ -32,57 +33,78 @@ namespace Dlhis.ScheduledTask.CommonJobs _dbContext.Client.QueryFilter.ClearAndBackup(); try { + var identityDbContext = _dbContext.ChangeDb("identity"); - var userNames = await identityDbContext.Queryable().Select(x => x.UserName).ToListAsync(); - var newUser = await _dbContext.Queryable() - .Where(x => !string.IsNullOrEmpty(x.Code)) - .Where(x => !userNames.Contains(x.Code)) - .Select(x => new - { - x.Code, - x.Factory, - x.Name, - }) - .ToListAsync(); + //HST0001 + var users = await identityDbContext.Queryable().Where(x => x.UserName != "HST0001") + .Where(x => x.Id > 21) + .ToListAsync(); - var httpClient = _httpClientFactory.CreateClient(); - httpClient.BaseAddress = new Uri(_identityServerOptions.Authority); + var gainfos = await _dbContext.Queryable().ToListAsync(); var hasher = new PasswordHasher(); - foreach (var item in newUser) + foreach (var user in users) { - var userName = item.Code; - var password = item.Code; - var factory = item.Factory; - - if (password.Length > 6) + var gainfo = gainfos.FirstOrDefault(x => x.Code == user.UserName); + if (gainfo != null && gainfo.IdNo.IsPresent()) { - password = string.Join("", password.TakeLast(6)); + var password = gainfo.IdNo.TakeLast(6).Join(""); + password = hasher.HashPassword(user, password); + user.PasswordHash = password; + await identityDbContext.UpdateAsync(user); } - else - { - password = password.PadLeft(6, '0'); - } - var user = new UserEntity - { - UserName = userName, - NormalizedUserName = userName.ToUpper(), - ConcurrencyStamp = Guid.NewGuid().ToString(), - SecurityStamp = Guid.NewGuid().ToString(), - }; - - password = hasher.HashPassword(user, password); - user.PasswordHash = password; - var id = (int)await identityDbContext.InsertReturnIdentityAsync(user); - - await identityDbContext.InsertAsync(new UserTenantEntity() { UserId = id, TenantCode = factory }); - await identityDbContext.InsertAsync(new List - { - new UserClaimEntity{ UserId = id , ClaimType ="preferred_username", ClaimValue = item.Name}, - new UserClaimEntity{ UserId = id , ClaimType ="jinko-code", ClaimValue = item.Code}, - }); } + + //var userNames = await identityDbContext.Queryable().Select(x => x.UserName).ToListAsync(); + //var newUser = await _dbContext.Queryable() + // .Where(x => !string.IsNullOrEmpty(x.Code)) + // .Where(x => !userNames.Contains(x.Code)) + // .Select(x => new + // { + // x.Code, + // x.Factory, + // x.Name, + // }) + // .ToListAsync(); + + //var httpClient = _httpClientFactory.CreateClient(); + //httpClient.BaseAddress = new Uri(_identityServerOptions.Authority); + + //var hasher = new PasswordHasher(); + //foreach (var item in newUser) + //{ + // var userName = item.Code; + // var password = item.Code; + // var factory = item.Factory; + + // if (password.Length > 6) + // { + // password = string.Join("", password.TakeLast(6)); + // } + // else + // { + // password = password.PadLeft(6, '0'); + // } + // var user = new UserEntity + // { + // UserName = userName, + // NormalizedUserName = userName.ToUpper(), + // ConcurrencyStamp = Guid.NewGuid().ToString(), + // SecurityStamp = Guid.NewGuid().ToString(), + // }; + + // password = hasher.HashPassword(user, password); + // user.PasswordHash = password; + // var id = (int)await identityDbContext.InsertReturnIdentityAsync(user); + + // await identityDbContext.InsertAsync(new UserTenantEntity() { UserId = id, TenantCode = factory }); + // await identityDbContext.InsertAsync(new List + // { + // new UserClaimEntity{ UserId = id , ClaimType ="preferred_username", ClaimValue = item.Name}, + // new UserClaimEntity{ UserId = id , ClaimType ="jinko-code", ClaimValue = item.Code}, + // }); + //} } catch (Exception ex) {