2025-04-01 13:41:50 +08:00

103 lines
3.2 KiB
C#

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<SysUserInfo>(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<MenuInfo> 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<SysUserInfo>(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);
}
}
}