From ac12e04a58a6c04ab67080d754cf59dcd4973484 Mon Sep 17 00:00:00 2001 From: "liu.zixi" Date: Mon, 20 Oct 2025 10:34:44 +0800 Subject: [PATCH] =?UTF-8?q?DAT=E6=B5=8B=E8=AF=95=E9=85=8D=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boecase/properties/CaseAiProperties.java | 6 +++ .../impl/CaseKnowledgeServiceImpl.java | 39 ++++++++++++------- .../src/main/resources/application-test.yml | 1 + 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/properties/CaseAiProperties.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/properties/CaseAiProperties.java index 994cab18..f841c969 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/properties/CaseAiProperties.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/properties/CaseAiProperties.java @@ -37,6 +37,12 @@ public class CaseAiProperties { */ private String caseKnowledgeId; + /** + * 默认上传用户 + * 当获取不到当前登录用户信息时会取这个 + */ + private String defaultUploadUser; + /** * 文件上传是否使用回调接口 */ diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseKnowledgeServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseKnowledgeServiceImpl.java index 8616159e..c4e2b7a4 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseKnowledgeServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseKnowledgeServiceImpl.java @@ -6,6 +6,7 @@ import com.xboe.common.PageList; import com.xboe.common.utils.IDGenerator; import com.xboe.common.utils.StringUtil; import com.xboe.common.OrderCondition; +import com.xboe.core.CurrentUser; import com.xboe.core.orm.FieldFilters; import com.xboe.core.upload.XFileUploader; import com.xboe.enums.CaseDocumentLogCaseStatusEnum; @@ -37,8 +38,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.net.URLEncoder; @@ -202,11 +206,11 @@ public class CaseKnowledgeServiceImpl implements ICaseKnowledgeService { } else { // 接口调用失败 log.error("上传案例文档接口调用失败,第{}次尝试,status: {}, response: {}", attempt, statusCode, responseBody); + saveCaseDocumentLog(caseId, cases.getTitle(), CaseDocumentLogOptTypeEnum.CREATE.getCode(), uploadUrl, + requestBody.toJSONString(), responseBody, + CaseDocumentLogRunStatusEnum.COMPLETED.getCode(), CaseDocumentLogOptStatusEnum.SUCCESS.getCode(), CaseDocumentLogCaseStatusEnum.FAILED.getCode(), null); if (attempt == maxRetries) { // 最后一次尝试仍然失败 - saveCaseDocumentLog(caseId, cases.getTitle(), CaseDocumentLogOptTypeEnum.CREATE.getCode(), uploadUrl, - requestBody.toJSONString(), responseBody, - CaseDocumentLogRunStatusEnum.COMPLETED.getCode(), CaseDocumentLogOptStatusEnum.SUCCESS.getCode(), CaseDocumentLogCaseStatusEnum.FAILED.getCode(), null); return false; } // 继续下一次重试 @@ -215,12 +219,12 @@ public class CaseKnowledgeServiceImpl implements ICaseKnowledgeService { } catch (Exception e) { // 接口调用异常 log.error("上传案例文档接口调用异常,第{}次尝试", attempt, e); + saveCaseDocumentLog(caseId, cases.getTitle(), CaseDocumentLogOptTypeEnum.CREATE.getCode(), uploadUrl, + requestBody.toJSONString(), "接口调用异常: " + e.getMessage(), + CaseDocumentLogRunStatusEnum.COMPLETED.getCode(), CaseDocumentLogOptStatusEnum.FAILED.getCode(), CaseDocumentLogCaseStatusEnum.FAILED.getCode(), null); if (attempt == maxRetries) { // 最后一次尝试仍然异常 log.error("上传案例文档最终失败,已重试{}次", maxRetries); - saveCaseDocumentLog(caseId, cases.getTitle(), CaseDocumentLogOptTypeEnum.CREATE.getCode(), uploadUrl, - requestBody.toJSONString(), "接口调用异常: " + e.getMessage(), - CaseDocumentLogRunStatusEnum.COMPLETED.getCode(), CaseDocumentLogOptStatusEnum.FAILED.getCode(), CaseDocumentLogCaseStatusEnum.FAILED.getCode(), null); return false; } // 继续下一次重试 @@ -347,11 +351,11 @@ public class CaseKnowledgeServiceImpl implements ICaseKnowledgeService { } else { // 接口调用失败 log.error("删除案例文档接口调用失败,第{}次尝试,status: {}, response: {}", attempt, statusCode, responseBody); + saveCaseDocumentLog(caseId, cases.getTitle(), CaseDocumentLogOptTypeEnum.DELETE.getCode(), deleteUrl, + params, responseBody, + CaseDocumentLogRunStatusEnum.COMPLETED.getCode(), CaseDocumentLogOptStatusEnum.FAILED.getCode(), CaseDocumentLogCaseStatusEnum.FAILED.getCode(), null); if (attempt == maxRetries) { // 最后一次尝试仍然失败 - saveCaseDocumentLog(caseId, cases.getTitle(), CaseDocumentLogOptTypeEnum.DELETE.getCode(), deleteUrl, - params, responseBody, - CaseDocumentLogRunStatusEnum.COMPLETED.getCode(), CaseDocumentLogOptStatusEnum.FAILED.getCode(), CaseDocumentLogCaseStatusEnum.FAILED.getCode(), null); return false; } // 继续下一次重试 @@ -360,12 +364,12 @@ public class CaseKnowledgeServiceImpl implements ICaseKnowledgeService { } catch (Exception e) { // 接口调用异常 log.error("删除案例文档接口调用异常,第{}次尝试", attempt, e); + saveCaseDocumentLog(caseId, cases.getTitle(), CaseDocumentLogOptTypeEnum.DELETE.getCode(), deleteUrl, + params, "接口调用异常: " + e.getMessage(), + CaseDocumentLogRunStatusEnum.COMPLETED.getCode(), CaseDocumentLogOptStatusEnum.FAILED.getCode(), CaseDocumentLogCaseStatusEnum.FAILED.getCode(), null); if (attempt == maxRetries) { // 最后一次尝试仍然异常 log.error("删除案例文档最终失败,已重试{}次", maxRetries); - saveCaseDocumentLog(caseId, cases.getTitle(), CaseDocumentLogOptTypeEnum.DELETE.getCode(), deleteUrl, - params, "接口调用异常: " + e.getMessage(), - CaseDocumentLogRunStatusEnum.COMPLETED.getCode(), CaseDocumentLogOptStatusEnum.FAILED.getCode(), CaseDocumentLogCaseStatusEnum.FAILED.getCode(), null); return false; } // 继续下一次重试 @@ -708,9 +712,14 @@ public class CaseKnowledgeServiceImpl implements ICaseKnowledgeService { * 获取当前用户ID */ private String getCurrentUserId() { - // TODO: 实现获取当前登录用户ID的逻辑 - // 这里需要根据实际的用户认证系统来实现 - return "defaultUserId"; + try { + HttpServletRequest req = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + CurrentUser info = (CurrentUser)req.getAttribute("boe_request_current"); + return info.getCode(); + } catch (Exception e) { + // 这里需要根据实际的用户认证系统来实现 + return caseAiProperties.getCaseKnowledgeId(); + } } /** diff --git a/servers/boe-server-all/src/main/resources/application-test.yml b/servers/boe-server-all/src/main/resources/application-test.yml index fb053b64..18455842 100644 --- a/servers/boe-server-all/src/main/resources/application-test.yml +++ b/servers/boe-server-all/src/main/resources/application-test.yml @@ -124,6 +124,7 @@ xboe: - "00004409" alert-email-recipients: - liu.zixi@ebiz-digits.com + - lin.yuxian@ebiz-digits.com jasypt: encryptor: algorithm: PBEWithMD5AndDES