You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
4.6 KiB
147 lines
4.6 KiB
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
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;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[AllowAnonymous]
|
|
[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;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="profileAppService"></param>
|
|
/// <param name="tokenService"></param>
|
|
/// <param name="userMenuAppService"></param>
|
|
/// <param name="userWorkGroupAppService"></param>
|
|
public AccountController(IProfileAppService profileAppService
|
|
, ITokenService tokenService
|
|
, IUserMenuAppService userMenuAppService
|
|
, IUserWorkGroupAppService userWorkGroupAppService
|
|
)
|
|
{
|
|
_profileAppService = profileAppService;
|
|
_tokenService = tokenService;
|
|
_userMenuAppService = userMenuAppService;
|
|
_userWorkGroupAppService = userWorkGroupAppService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 登录
|
|
/// </summary>
|
|
/// <param name="userLoginInput"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("login")]
|
|
public virtual async Task<BaererToken> LoginAsync(UserLoginInput userLoginInput)
|
|
{
|
|
|
|
var token = await _tokenService.GetTokenAsync(userLoginInput.Username, userLoginInput.Password).ConfigureAwait(false);
|
|
return token;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 个人配置
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("profile")]
|
|
public virtual async Task<ProfileDto> GetProfileAsync()
|
|
{
|
|
return await _profileAppService.GetAsync().ConfigureAwait(false);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改个人配置
|
|
/// </summary>
|
|
/// <param name="dto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("profile")]
|
|
public virtual async Task<ProfileDto> UpdateProfileAsync(UpdateProfileDto dto)
|
|
{
|
|
return await _profileAppService.UpdateAsync(dto).ConfigureAwait(false);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改密码
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("change-password")]
|
|
public virtual async Task ChangePasswordAsync(ChangePasswordInput input)
|
|
{
|
|
await _profileAppService.ChangePasswordAsync(input).ConfigureAwait(false);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 菜单
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("menus")]
|
|
public virtual async Task<List<PdaMenuGroupDto>> GetMenusAsync()
|
|
{
|
|
var userId = CurrentUser.Id;
|
|
var pdaMenuGroupDtos = new List<PdaMenuGroupDto>();//返回给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<PdaMenuDto>();
|
|
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();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 工作组
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("workgroups")]
|
|
public virtual async Task<List<string>> GetWorkGroupsAsync()
|
|
{
|
|
|
|
var userWorkGroupDtos =
|
|
await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
|
|
|
|
return userWorkGroupDtos;
|
|
}
|
|
}
|
|
|