using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Linq; using System.Text.Json; using RIZO.Server.IService; using RIZO.Server.IConfiguration; using RIZO.Server.Models; namespace RIZO.Server.Start.Controllers { //EFCoreContext [Route("api/[controller]")] [ApiController] public class UserController : Controller { ILoginService _loginService; IMenuService _menuService; IUserService _userService; IUtils _utils; public UserController(ILoginService loginService, IMenuService menuService, IUserService userService, IUtils utils) { _loginService = loginService; _menuService = menuService; _userService = userService; _utils = utils; } [HttpPost] [Route("login")] public IActionResult Login([FromForm] string username, [FromForm] string password) { // string pwd = _utils.GetMD5Str(_utils.GetMD5Str(password) + "|" + username); string pwd = password; var users = _loginService.Query(u => u.UserName == username && u.Password == pwd); if (users?.Count() > 0) { var userInfo = users.ToList(); SysUserInfo sysUserInfo = userInfo[0]; // 菜单 // 需要进行权限管理 // menu<->role_menu<->role<->role_user<->user List menus = _menuService.GetMenusByUserId(sysUserInfo.UserId); sysUserInfo.Menus = menus; return Ok(sysUserInfo); } else { return NoContent(); } } //[HttpGet] //[Route("test")] //public ActionResult Test([FromQuery] string userid, [FromQuery] string startdate, [FromQuery] string enddate) //{ // return Ok(); //} [HttpGet] [Route("all")] public IActionResult GetUsers() { return Ok(_userService.Query(u => true)); } //private string GetMd5Str(string inputStr) //{ // if (string.IsNullOrEmpty(inputStr)) return ""; // byte[] result = Encoding.Default.GetBytes(inputStr); //tbPass为输入密码的文本框 // MD5 md5 = new MD5CryptoServiceProvider(); // byte[] output = md5.ComputeHash(result); // return BitConverter.ToString(output).Replace("-", ""); //tbMd5pass为输出加密文本的文本框 //} [HttpGet("roles/{userId}")] public JsonResult GetRolesByUserId(int userId) { return Json(_userService.GetRolesByUserId(userId)); } [HttpPost] [Route("resetpwd")] public IActionResult ResetPassword([FromForm] IFormCollection form) { _userService.ResetPassword(int.Parse(form["userId"])); return Ok(); } [HttpPost] [Route("save")] public IActionResult UpdateUserInfo([FromBody] JsonElement data) { _userService.SaveUser(data.ToString()); return Ok(data); } } }