diff --git a/server/src/Controllers/ExamController.cs b/server/src/Controllers/ExamController.cs
index f8c9590..eb69357 100644
--- a/server/src/Controllers/ExamController.cs
+++ b/server/src/Controllers/ExamController.cs
@@ -368,11 +368,8 @@ public class ExamController : ControllerBase
[ProducesResponseType(StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public IActionResult DeleteCommit(string commitId)
+ public IActionResult DeleteCommit(Guid commitId)
{
- if (!Guid.TryParse(commitId, out _))
- return BadRequest("提交记录ID格式不正确");
-
try
{
// 获取当前用户信息
diff --git a/server/src/Controllers/JtagController.cs b/server/src/Controllers/JtagController.cs
index bfd6d18..c8e071e 100644
--- a/server/src/Controllers/JtagController.cs
+++ b/server/src/Controllers/JtagController.cs
@@ -137,7 +137,7 @@ public class JtagController : ControllerBase
[ProducesResponseType(typeof(string), StatusCodes.Status400BadRequest)]
[ProducesResponseType(typeof(Exception), StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
- public IResult DownloadBitstream(string address, int port, string bitstreamId, CancellationToken cancelToken)
+ public IResult DownloadBitstream(string address, int port, Guid bitstreamId, CancellationToken cancelToken)
{
logger.Info($"User {User.Identity?.Name} initiating bitstream download to device {address}:{port} using bitstream ID: {bitstreamId}");
diff --git a/server/src/Controllers/ResourceController.cs b/server/src/Controllers/ResourceController.cs
index 03334a3..f394773 100644
--- a/server/src/Controllers/ResourceController.cs
+++ b/server/src/Controllers/ResourceController.cs
@@ -78,7 +78,7 @@ public class ResourceController : ControllerBase
var resourceInfo = new ResourceInfo(result.Value);
- logger.Info($"成功添加资源: {request.ResourceType}/{request.ResourcePurpose}/{file.FileName}");
+ logger.Info($"成功添加资源: {request.ResourceType}/{request.ResourcePurpose}/{file.FileName} ID: {resourceInfo.ID}");
return CreatedAtAction(nameof(GetResourceById), new { resourceId = resourceInfo.ID }, resourceInfo);
}
catch (Exception ex)
@@ -187,7 +187,7 @@ public class ResourceController : ControllerBase
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public IActionResult GetResourceById(string resourceId)
+ public IActionResult GetResourceById(Guid resourceId)
{
try
{
@@ -231,7 +231,7 @@ public class ResourceController : ControllerBase
[ProducesResponseType(StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public IActionResult DeleteResource(string resourceId)
+ public IActionResult DeleteResource(Guid resourceId)
{
try
{
@@ -293,7 +293,7 @@ public class ResourceInfo
///
/// 资源ID
///
- public string ID { get; set; } = string.Empty;
+ public Guid ID { get; set; }
///
/// 资源名称
@@ -327,7 +327,7 @@ public class ResourceInfo
public ResourceInfo(Resource resource)
{
- ID = resource.ID.ToString();
+ ID = resource.ID;
Name = resource.ResourceName;
Type = resource.ResourceType;
Purpose = resource.Purpose;
diff --git a/server/src/Database/ResourceManager.cs b/server/src/Database/ResourceManager.cs
index 323c17c..a510ae3 100644
--- a/server/src/Database/ResourceManager.cs
+++ b/server/src/Database/ResourceManager.cs
@@ -159,7 +159,7 @@ public class ResourceManager
var duplicateResource = _db.ResourceTable.Where(r => r.SHA256 == sha256).FirstOrDefault();
if (duplicateResource != null && duplicateResource.ResourceName == resourceName)
{
- logger.Info($"资源已存在: {resourceName}");
+ logger.Info($"资源已存在: {resourceName}, ID: {duplicateResource.ID}, UserID: {duplicateResource.UserID}");
return duplicateResource;
}
@@ -311,9 +311,9 @@ public class ResourceManager
///
/// 资源ID
/// 资源数据
- public Optional GetResourceById(string resourceId)
+ public Optional GetResourceById(Guid resourceId)
{
- var resource = _db.ResourceTable.Where(r => r.ID.ToString() == resourceId).FirstOrDefault();
+ var resource = _db.ResourceTable.Where(r => r.ID == resourceId).FirstOrDefault();
if (resource == null)
{
@@ -330,11 +330,11 @@ public class ResourceManager
///
/// 资源ID
/// 删除的记录数
- public Result DeleteResource(string resourceId)
+ public Result DeleteResource(Guid resourceId)
{
try
{
- var result = _db.ResourceTable.Where(r => r.ID.ToString() == resourceId).Delete();
+ var result = _db.ResourceTable.Where(r => r.ID == resourceId).Delete();
logger.Info($"资源已删除: {resourceId},删除记录数: {result}");
return new(result);
}
diff --git a/src/components/UploadCard.vue b/src/components/UploadCard.vue
index fe5348d..aeeb32a 100644
--- a/src/components/UploadCard.vue
+++ b/src/components/UploadCard.vue
@@ -95,7 +95,7 @@ import {
import { ProgressStatus } from "@/utils/signalR/server.Hubs";
import { useRequiredInjection } from "@/utils/Common";
import { useAlertStore } from "./Alert";
-import { ResourceClient } from "@/APIClient";
+import { ResourceClient, ResourcePurpose } from "@/APIClient";
interface Props {
maxMemory?: number;
@@ -118,7 +118,7 @@ const eqps = useEquipments();
const isUploading = ref(false);
const isDownloading = ref(false);
const isProgramming = ref(false);
-const availableBitstreams = ref<{ id: number; name: string }[]>([]);
+const availableBitstreams = ref<{ id: string; name: string }[]>([]);
// Progress
const downloadTaskId = ref("");
@@ -180,7 +180,7 @@ async function loadAvailableBitstreams() {
const resources = await resourceClient.getResourceList(
props.examId,
"bitstream",
- "template",
+ ResourcePurpose.Template,
);
availableBitstreams.value =
resources.map((r) => ({ id: r.id, name: r.name })) || [];
@@ -192,7 +192,7 @@ async function loadAvailableBitstreams() {
// 下载示例比特流
async function downloadExampleBitstream(bitstream: {
- id: number;
+ id: string;
name: string;
}) {
if (isDownloading.value) return;
@@ -229,7 +229,7 @@ async function downloadExampleBitstream(bitstream: {
// 直接烧录示例比特流
async function programExampleBitstream(bitstream: {
- id: number;
+ id: string;
name: string;
}) {
if (isProgramming.value) return;
@@ -275,7 +275,7 @@ async function handleClick(event: Event): Promise {
if (!checkFile(bitstream.value)) return;
isUploading.value = true;
- let uploadedBitstreamId: number | null = null;
+ let uploadedBitstreamId: string | null = null;
try {
console.log("开始上传比特流文件:", bitstream.value.name);
const bitstreamId = await eqps.jtagUploadBitstream(