using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Account; using Volo.Abp.AspNetCore.Mvc; using Win_in.Sfs.Auth.Application.Contracts; using Win_in.Sfs.Wms.Pda.Authenticaitons; using Win_in.Sfs.Wms.Pda.Models; using PdaMenuDto = Win_in.Sfs.Wms.Pda.Models.PdaMenuDto; using PdaMenuGroupDto = Win_in.Sfs.Wms.Pda.Models.PdaMenuGroupDto; namespace Win_in.Sfs.Wms.Pda.Controllers.Accounts; /// /// /// [ApiController] [Route($"{PdaHostConst.ROOT_ROUTE}account")] public class AccountController : AbpController { private readonly IProfileAppService _profileAppService; private readonly ITokenService _tokenService; private readonly IUserMenuAppService _userMenuAppService; private readonly IUserWorkGroupAppService _userWorkGroupAppService; /// /// /// /// /// /// /// public AccountController(IProfileAppService profileAppService , ITokenService tokenService , IUserMenuAppService userMenuAppService , IUserWorkGroupAppService userWorkGroupAppService ) { _profileAppService = profileAppService; _tokenService = tokenService; _userMenuAppService = userMenuAppService; _userWorkGroupAppService = userWorkGroupAppService; } /// /// 登录 /// /// /// [HttpPost("login")] public virtual async Task LoginAsync(UserLoginInput userLoginInput) { var token = await _tokenService.GetTokenAsync(userLoginInput.Username, userLoginInput.Password).ConfigureAwait(false); return token; } /// /// 个人配置 /// /// [HttpGet("profile")] public virtual async Task GetProfileAsync() { return await _profileAppService.GetAsync().ConfigureAwait(false); } /// /// 修改个人配置 /// /// /// [HttpPost("profile")] public virtual async Task UpdateProfileAsync(UpdateProfileDto dto) { return await _profileAppService.UpdateAsync(dto).ConfigureAwait(false); } /// /// 修改密码 /// /// /// [HttpPost("change-password")] public virtual async Task ChangePasswordAsync(ChangePasswordInput input) { await _profileAppService.ChangePasswordAsync(input).ConfigureAwait(false); } /// /// 菜单 /// /// [HttpGet("menus")] public virtual async Task> GetMenusAsync() { var userId = CurrentUser.Id; var pdaMenuGroupDtos = new List();//返回给pda的菜单 已排序 var menusOfUser = await _userMenuAppService.GetPdaMenusOfUserAsync(userId).ConfigureAwait(false); var menuGroups = menusOfUser.GroupBy(p => p.GroupName); foreach (var menuGroup in menuGroups) { var pdaMenuDtos = new List(); var groupSort = 0; var groupTitle = ""; foreach (var menuDto in menuGroup.OrderBy(p => p.Sort)) { var pdaMenuDto = new PdaMenuDto { name = menuDto.Name, path = menuDto.Route, url = menuDto.Icon, countUrl = menuDto.CountUrl }; groupSort = menuDto.GroupSort; groupTitle = menuDto.GroupName; pdaMenuDtos.Add(pdaMenuDto); } pdaMenuGroupDtos.Add(new PdaMenuGroupDto { groupSort = groupSort, title = groupTitle, list = pdaMenuDtos }); } return pdaMenuGroupDtos.OrderBy(p => p.groupSort).ToList(); } /// /// 工作组 /// /// [HttpGet("workgroups")] public virtual async Task> GetWorkGroupsAsync() { var userWorkGroupDtos = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false); return userWorkGroupDtos; } }