初始化
Some checks failed
CI/CD Pipeline / 测试 (18.x) (push) Has been cancelled
CI/CD Pipeline / 测试 (20.x) (push) Has been cancelled
CI/CD Pipeline / 安全检查 (push) Has been cancelled
CI/CD Pipeline / 部署 (push) Has been cancelled
CI/CD Pipeline / 通知 (push) Has been cancelled

This commit is contained in:
2025-11-03 19:47:36 +08:00
parent 7a04b85667
commit f25b0307db
454 changed files with 37064 additions and 4544 deletions

View File

@@ -68,87 +68,32 @@ public class TestController : ControllerBase
}
[HttpGet("categories")]
public async Task<IActionResult> GetCategories()
{
try
public async Task<IActionResult> GetCategories()
{
var categories = new List<object>();
using var connection = new MySql.Data.MySqlClient.MySqlConnection(
"Server=localhost;Database=HardwarePerformance;User=root;Password=123456;");
await connection.OpenAsync();
using var cmd = new MySql.Data.MySqlClient.MySqlCommand("SELECT * FROM Categories", connection);
using var reader = await cmd.ExecuteReaderAsync();
while (await reader.ReadAsync())
try
{
categories.Add(new
{
Id = reader.GetInt32("Id"),
Name = reader.GetString("Name"),
Description = reader.IsDBNull("Description") ? null : reader.GetString("Description"),
CreatedAt = reader.GetDateTime("CreatedAt")
});
var categories = await _context.GetCategoriesAsync();
return Ok(new { success = true, data = categories });
}
return Ok(categories);
}
catch (Exception ex)
{
_logger.LogError(ex, "获取类别列表时发生错误");
return StatusCode(500, new
catch (Exception ex)
{
Message = $"获取类别列表时发生错误: {ex.Message}",
Timestamp = DateTime.Now
});
_logger.LogError(ex, "获取类别列表时发生错误");
return StatusCode(500, new { success = false, message = ex.Message });
}
}
}
[HttpGet("products")]
public async Task<IActionResult> GetProducts()
{
try
public async Task<IActionResult> GetProducts([FromQuery] int categoryId = 0, [FromQuery] int page = 1, [FromQuery] int pageSize = 10)
{
var products = new List<object>();
using var connection = new MySql.Data.MySqlClient.MySqlConnection(
"Server=localhost;Database=HardwarePerformance;User=root;Password=123456;");
await connection.OpenAsync();
using var cmd = new MySql.Data.MySqlClient.MySqlCommand(
@"SELECT p.*, c.Name as CategoryName
FROM Products p
LEFT JOIN Categories c ON p.CategoryId = c.Id", connection);
using var reader = await cmd.ExecuteReaderAsync();
while (await reader.ReadAsync())
try
{
products.Add(new
{
Id = reader.GetInt32("Id"),
Name = reader.GetString("Name"),
Model = reader.IsDBNull("Model") ? null : reader.GetString("Model"),
Manufacturer = reader.IsDBNull("Manufacturer") ? null : reader.GetString("Manufacturer"),
ImageUrl = reader.IsDBNull("ImageUrl") ? null : reader.GetString("ImageUrl"),
ReleaseDate = reader.IsDBNull("ReleaseDate") ? (DateTime?)null : reader.GetDateTime("ReleaseDate"),
CategoryId = reader.IsDBNull("CategoryId") ? (int?)null : reader.GetInt32("CategoryId"),
CategoryName = reader.IsDBNull("CategoryName") ? null : reader.GetString("CategoryName"),
CurrentRank = reader.IsDBNull("CurrentRank") ? (int?)null : reader.GetInt32("CurrentRank"),
CreatedAt = reader.GetDateTime("CreatedAt")
});
var products = await _context.GetProductsAsync(categoryId, page, pageSize);
return Ok(new { success = true, data = products });
}
return Ok(products);
}
catch (Exception ex)
{
_logger.LogError(ex, "获取产品列表时发生错误");
return StatusCode(500, new
catch (Exception ex)
{
Message = $"获取产品列表时发生错误: {ex.Message}",
Timestamp = DateTime.Now
});
_logger.LogError(ex, "获取产品列表时发生错误");
return StatusCode(500, new { success = false, message = ex.Message });
}
}
}
}