using langguanApi.Model;
using langguanApi.Model.Dto;
using langguanApi.Model.Dto.SystemConfigurationDto;
using langguanApi.Service;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace langguanApi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class UserController : ControllerBase
    {
        private UserService _userService;
        public UserController(UserService userService)
        {
            _userService = userService;
        }
        /// 
        /// 登陆
        /// 
        /// 
        /// 
        [HttpPost("login")]
        public async Task Login([FromBody] UserLogin user)
        {
            var result = await _userService.login(user.Username, user.Password);
            if (result != null)
            {
                return Ok(new ApiResult() { data = result });
            }
            else
            {
                return Ok(new ApiResult() { code = -1, msg = "用户名或密码错误" });
            }
        }
        /// 
        /// 注册
        /// 
        /// 
        /// 
        [HttpPost("Add")]
        public async Task Register([FromBody] UserAdd input)
        {
            var result = await _userService.AddUser(input);
            return Ok(result);
        }
        /// 
        /// get user list
        /// 
        /// 
        /// 
        [HttpGet("List")]
        public async Task List([FromQuery] reqpage input)
        {
            var result = await _userService.GetPage(input);
            return Ok(result);
        }
        #region  用户管理相关接口
        ///// 
        ///// 获取用户列表
        ///// 
        ///// 
        ///// 
        //[HttpGet("GetUserList")]
        //public async Task GetUserList([FromQuery] UserQueryDto input)
        //{
        //    var result = await _userService.GetUserList(input);
        //    return Ok(result);
        //}
        //根据用户Id获取用户信息
        /// 
        /// 根据用户Id获取用户信息
        /// 
        /// 
        /// 
        [HttpGet("GetUserById")]
        public async Task GetUserById(string userId)
        {
            var result = await _userService.GetUserById(userId);
            return Ok(result);
        }
        /// 
        /// 修改用户信息
        /// 
        /// 
        /// 
        [HttpPost("UpdateUser")]
        public async Task UpdateUser([FromBody] UserDto input)
        {
            var result = await _userService.UpdateUser(input);
            return Ok(result);
        }
        //删除用户
        /// 
        /// 删除用户
        /// 
        /// 
        /// 
        [HttpPost("DeleteUser")]
        public async Task DeleteUser(string userId)
        {
            var result = await _userService.DeleteUser(userId);
            return Ok(result);
        }
        #endregion
    }
}