//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; //using Microsoft.Extensions.Options; //namespace Dlhis.ScheduledTask.CommonJobs //{ // public class TempCreateUserJob // { // private readonly IDbContext _dbContext; // private readonly ILogger _logger; // private readonly IdentityServerOptions _identityServerOptions; // private readonly IHttpClientFactory _httpClientFactory; // public TempCreateUserJob( // IDbContext dbContext, // ILogger logger, // IOptions options, // IHttpClientFactory httpClientFactory) // { // _dbContext = dbContext; // _logger = logger; // _httpClientFactory = httpClientFactory; // _identityServerOptions = options.Value; // } // public async Task RunAsync() // { // _dbContext.Client.QueryFilter.ClearAndBackup(); // try // { // //var identityDbContext = _dbContext.ChangeDb("identity"); // ////HST0001 // //var users = await identityDbContext.Queryable().Where(x => x.UserName != "HST0001") // // .Where(x => x.Id > 21) // // .ToListAsync(); // //var gainfos = await _dbContext.Queryable().ToListAsync(); // //var hasher = new PasswordHasher(); // //foreach (var user in users) // //{ // // var gainfo = gainfos.FirstOrDefault(x => x.Code == user.UserName); // // if (gainfo != null && gainfo.IdNo.IsPresent()) // // { // // var password = gainfo.IdNo.TakeLast(6).Join(""); // // password = hasher.HashPassword(user, password); // // user.PasswordHash = password; // // await identityDbContext.UpdateAsync(user); // // } // //} // //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) // { // _logger.LogError(ex, "创建用户失败:{message}", ex.Message); // } // finally // { // _dbContext.Client.QueryFilter.Restore(); // } // } // } //}