using System; using System.Threading.Tasks; using IdentityModel; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.Application.Services; using Volo.Abp.Identity; using Win_in.Sfs.Auth.Domain; using Win_in.Sfs.Auth.Users.Inputs; using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Win_in.Sfs.Auth.Users; [Route("/api/identity/users")] public class SfsUserAppService : ApplicationService, ISfsUserAppService { private readonly IIdentityUserRepository _userRepository; private readonly IProfileAppService _profileAppService; protected readonly IdentityUserManager _userManager; public SfsUserAppService( IIdentityUserRepository userRepository, IdentityUserManager userManager, IProfileAppService profileAppService) { _userManager = userManager; _profileAppService = profileAppService; _userRepository = userRepository; } [Authorize("AbpIdentity.Users")] [HttpPost("{id}/department-code")] public virtual async Task UpdateDepartmentCodeAsync(Guid id, string departmentCode) { var user = await _userRepository.GetAsync(id).ConfigureAwait(false); Check.NotNull(user, nameof(IdentityUser)); user.SetDepartmentCode(departmentCode); var result = await _userRepository.UpdateAsync(user).ConfigureAwait(false); var dto = ObjectMapper.Map(result); return dto; } [Authorize("AbpIdentity.Users")] [HttpPost("{id}/is-active")] public virtual async Task UpdateIsActiveAsync(Guid id, bool isActive) { var user = await _userRepository.GetAsync(id).ConfigureAwait(false); Check.NotNull(user, nameof(IdentityUser)); user.SetIsActive(isActive); var result = await _userRepository.UpdateAsync(user).ConfigureAwait(false); var dto = ObjectMapper.Map(result); return dto; } [AllowAnonymous] [HttpPost("updatebyname")] public virtual async Task UpdateByNmaeAsync(IdentityUserInputDto entity) { _ = new IdentityUserDto(); var user = await _userRepository.FindByNormalizedUserNameAsync(entity.UserName.ToUpper()).ConfigureAwait(false); IdentityUserDto userresult; if (user == null) { var inputuser = ObjectMapper.Map(entity); await _userManager.CreateAsync(inputuser, "123456", false).ConfigureAwait(false); userresult = ObjectMapper.Map(inputuser); } else { user.Name = entity.Name; user.SetDepartmentCode(entity.DepartmentCode); user.SetIsActive(entity.IsActive); user.LastModificationTime = DateTime.Now; await _userManager.UpdateAsync(user).ConfigureAwait(false); userresult = ObjectMapper.Map(user); } return userresult; } /// /// 修改密码 /// /// /// /// [HttpPost("change-password/{userId}")] public virtual async Task ChangePasswordAsync(Guid userId, ChangePasswordInput input) { var user = await _userManager.GetByIdAsync(userId).ConfigureAwait(false); _userManager.PasswordValidators.Clear(); var t=await _userManager.ChangePasswordAsync(user, input.CurrentPassword, input.NewPassword); } /// /// 重置密码 /// /// /// /// [HttpPost("reset-password/{userId}")] [AllowAnonymous] public virtual async Task ReSetPasswordAsync(Guid userId) { var user =await _userManager.GetByIdAsync(userId).ConfigureAwait(false); await _userManager.RemovePasswordAsync(user); _userManager.PasswordValidators.Clear(); await _userManager.AddPasswordAsync(user, "000000"); } }