From a2ac1bcb3b57d36fe0c97cfae538c76d82b69699 Mon Sep 17 00:00:00 2001 From: SikongJueluo Date: Sat, 16 Aug 2025 15:55:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=AF=94=E7=89=B9?= =?UTF-8?q?=E6=B5=81=E4=B8=8B=E8=BD=BD=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/Controllers/ExamController.cs | 5 +---- server/src/Controllers/JtagController.cs | 2 +- server/src/Controllers/ResourceController.cs | 10 +++++----- server/src/Database/ResourceManager.cs | 10 +++++----- src/components/UploadCard.vue | 12 ++++++------ 5 files changed, 18 insertions(+), 21 deletions(-) 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(