using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using MilliSim.Common.Dtos; using MilliSim.Common.Models; using MilliSim.Services; namespace MilliSim.Controllers; [ApiController] [Route("api/users")] [Authorize] public class UsersController : ControllerBase { private readonly IUserService _userService; public UsersController(IUserService userService) { _userService = userService; } /// /// 用户列表 /// [HttpGet] [Authorize(Policy = "Staff")] public async Task>> GetUsers([FromQuery] UserQueryRequest request) { return await _userService.GetUsersAsync(request); } /// /// 用户详情 /// [HttpGet("{id:long}")] [Authorize(Policy = "Staff")] public async Task> GetUserById(long id) { return await _userService.GetUserByIdAsync(id); } /// /// 创建用户 /// [HttpPost] [Authorize(Policy = "Staff")] public async Task> CreateUser([FromBody] CreateUserRequest request) { return await _userService.CreateUserAsync(request); } /// /// 更新用户 /// [HttpPost("{id:long}")] [Authorize(Policy = "Staff")] public async Task> UpdateUser(long id, [FromBody] UpdateUserRequest request) { return await _userService.UpdateUserAsync(id, request); } /// /// 删除用户(软删除) /// [HttpPost("{id:long}/delete")] [Authorize(Policy = "Admin")] public async Task DeleteUser(long id) { return await _userService.DeleteUserAsync(id); } /// /// 重置密码 /// [HttpPost("{id:long}/reset-password")] [Authorize(Policy = "Staff")] public async Task ResetPassword(long id) { return await _userService.ResetPasswordAsync(id); } /// /// 切换用户状态 /// [HttpPost("{id:long}/toggle-status")] [Authorize(Policy = "Admin")] public async Task ToggleStatus(long id) { return await _userService.ToggleStatusAsync(id); } }