refactor: 重构数据库相关操作
This commit is contained in:
@@ -17,38 +17,15 @@ namespace server.Controllers;
|
||||
public class DataController : ControllerBase
|
||||
{
|
||||
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
|
||||
private readonly Database.UserManager _userManager;
|
||||
|
||||
// 固定的实验板IP,端口,MAC地址
|
||||
private const string BOARD_IP = "169.254.109.0";
|
||||
|
||||
/// <summary>
|
||||
/// [TODO:description]
|
||||
/// </summary>
|
||||
public class UserInfo
|
||||
public DataController(Database.UserManager userManager)
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户的唯一标识符
|
||||
/// </summary>
|
||||
public Guid ID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户的名称
|
||||
/// </summary>
|
||||
public required string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户的电子邮箱
|
||||
/// </summary>
|
||||
public required string EMail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户关联的板卡ID
|
||||
/// </summary>
|
||||
public Guid BoardID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户绑定板子的过期时间
|
||||
/// </summary>
|
||||
public DateTime? BoardExpireTime { get; set; }
|
||||
_userManager = userManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -112,8 +89,7 @@ public class DataController : ControllerBase
|
||||
public IActionResult Login(string name, string password)
|
||||
{
|
||||
// 验证用户密码
|
||||
using var db = new Database.AppDataConnection();
|
||||
var ret = db.CheckUserPassword(name, password);
|
||||
var ret = _userManager.CheckUserPassword(name, password);
|
||||
if (!ret.IsSuccessful) return StatusCode(StatusCodes.Status500InternalServerError, "数据库操作失败");
|
||||
if (!ret.Value.HasValue) return BadRequest("用户名或密码错误");
|
||||
var user = ret.Value.Value;
|
||||
@@ -188,8 +164,7 @@ public class DataController : ControllerBase
|
||||
return Unauthorized("未找到用户名信息");
|
||||
|
||||
// Get User Info
|
||||
using var db = new Database.AppDataConnection();
|
||||
var ret = db.GetUserByName(userName);
|
||||
var ret = _userManager.GetUserByName(userName);
|
||||
if (!ret.IsSuccessful)
|
||||
return StatusCode(StatusCodes.Status500InternalServerError, "数据库操作失败");
|
||||
|
||||
@@ -236,8 +211,7 @@ public class DataController : ControllerBase
|
||||
|
||||
try
|
||||
{
|
||||
using var db = new Database.AppDataConnection();
|
||||
var ret = db.AddUser(name, email, password);
|
||||
var ret = _userManager.AddUser(name, email, password);
|
||||
return Ok(ret);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -265,15 +239,14 @@ public class DataController : ControllerBase
|
||||
if (string.IsNullOrEmpty(userName))
|
||||
return Unauthorized("未找到用户名信息");
|
||||
|
||||
using var db = new Database.AppDataConnection();
|
||||
var userRet = db.GetUserByName(userName);
|
||||
var userRet = _userManager.GetUserByName(userName);
|
||||
if (!userRet.IsSuccessful || !userRet.Value.HasValue)
|
||||
return BadRequest("用户不存在");
|
||||
|
||||
var user = userRet.Value.Value;
|
||||
var expireTime = DateTime.UtcNow.AddHours(durationHours);
|
||||
|
||||
var boardOpt = db.GetAvailableBoard(user.ID, expireTime);
|
||||
var boardOpt = _userManager.GetAvailableBoard(user.ID, expireTime);
|
||||
if (!boardOpt.HasValue)
|
||||
return NotFound("没有可用的实验板");
|
||||
|
||||
@@ -309,13 +282,12 @@ public class DataController : ControllerBase
|
||||
if (string.IsNullOrEmpty(userName))
|
||||
return Unauthorized("未找到用户名信息");
|
||||
|
||||
using var db = new Database.AppDataConnection();
|
||||
var userRet = db.GetUserByName(userName);
|
||||
var userRet = _userManager.GetUserByName(userName);
|
||||
if (!userRet.IsSuccessful || !userRet.Value.HasValue)
|
||||
return BadRequest("用户不存在");
|
||||
|
||||
var user = userRet.Value.Value;
|
||||
var result = db.UnbindUserFromBoard(user.ID);
|
||||
var result = _userManager.UnbindUserFromBoard(user.ID);
|
||||
return Ok(result > 0);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -338,8 +310,7 @@ public class DataController : ControllerBase
|
||||
{
|
||||
try
|
||||
{
|
||||
using var db = new Database.AppDataConnection();
|
||||
var ret = db.GetBoardByID(id);
|
||||
var ret = _userManager.GetBoardByID(id);
|
||||
if (!ret.IsSuccessful)
|
||||
return StatusCode(StatusCodes.Status500InternalServerError, "数据库操作失败");
|
||||
if (!ret.Value.HasValue)
|
||||
@@ -375,8 +346,7 @@ public class DataController : ControllerBase
|
||||
return BadRequest("板子名称不能为空");
|
||||
try
|
||||
{
|
||||
using var db = new Database.AppDataConnection();
|
||||
var ret = db.AddBoard(name);
|
||||
var ret = _userManager.AddBoard(name);
|
||||
return Ok(ret);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -402,8 +372,7 @@ public class DataController : ControllerBase
|
||||
|
||||
try
|
||||
{
|
||||
using var db = new Database.AppDataConnection();
|
||||
var ret = db.DeleteBoardByID(id);
|
||||
var ret = _userManager.DeleteBoardByID(id);
|
||||
return Ok(ret);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -425,8 +394,7 @@ public class DataController : ControllerBase
|
||||
{
|
||||
try
|
||||
{
|
||||
using var db = new Database.AppDataConnection();
|
||||
var boards = db.GetAllBoard();
|
||||
var boards = _userManager.GetAllBoard();
|
||||
return Ok(boards);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -453,8 +421,7 @@ public class DataController : ControllerBase
|
||||
return BadRequest("新名称不能为空");
|
||||
try
|
||||
{
|
||||
using var db = new Database.AppDataConnection();
|
||||
var result = db.UpdateBoardName(boardId, newName);
|
||||
var result = _userManager.UpdateBoardName(boardId, newName);
|
||||
return Ok(result);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -479,8 +446,7 @@ public class DataController : ControllerBase
|
||||
return BadRequest("板子Guid不能为空");
|
||||
try
|
||||
{
|
||||
using var db = new Database.AppDataConnection();
|
||||
var result = db.UpdateBoardStatus(boardId, newStatus);
|
||||
var result = _userManager.UpdateBoardStatus(boardId, newStatus);
|
||||
return Ok(result);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -489,4 +455,36 @@ public class DataController : ControllerBase
|
||||
return StatusCode(StatusCodes.Status500InternalServerError, "更新失败,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// [TODO:description]
|
||||
/// </summary>
|
||||
public class UserInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户的唯一标识符
|
||||
/// </summary>
|
||||
public Guid ID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户的名称
|
||||
/// </summary>
|
||||
public required string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户的电子邮箱
|
||||
/// </summary>
|
||||
public required string EMail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户关联的板卡ID
|
||||
/// </summary>
|
||||
public Guid BoardID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户绑定板子的过期时间
|
||||
/// </summary>
|
||||
public DateTime? BoardExpireTime { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user