using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; 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); var ttt = user.PasswordHash; var t=await _userManager.ResetPasswordAsync(user, input.CurrentPassword, input.NewPassword); } }