From 4cb586238c078799d91e4f22a662aa00fea24eef Mon Sep 17 00:00:00 2001
From: 6c <420680616@qq.com>
Date: 星期五, 17 十月 2025 17:27:45 +0800
Subject: [PATCH] 适配存储到数据库的文件; 不需要存储到数据库的,若是集群,那么同步到集群的其他节点; 若是失败,定时任务重试,至多3次
---
src/main/java/com/product/file/controller/FileManagerController.java | 75 ++++++++++++++++++++++++++++++++-----
1 files changed, 65 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/product/file/controller/FileManagerController.java b/src/main/java/com/product/file/controller/FileManagerController.java
index dadac21..d09ef13 100644
--- a/src/main/java/com/product/file/controller/FileManagerController.java
+++ b/src/main/java/com/product/file/controller/FileManagerController.java
@@ -274,7 +274,40 @@
return error(FileCode.UPLOAD_FILE_FAIL.getValue(), FileCode.UPLOAD_FILE_FAIL.getText());
}
}
-
+ /**
+ * 绉诲姩绔崌绾т笅杞藉畨瑁呮枃浠�
+ * 姝ゆ帴鍙i渶瑕佸姞鍏ョ櫧鍚嶅崟
+ *
+ * @return 缁撴灉
+ */
+ @RequestMapping(value = "/upgrade-download/{version}", method = RequestMethod.GET)
+ @ApiVersion(1)
+ public String getAppFileContents(@RequestParam("uuid") String uuid,HttpServletRequest request, HttpServletResponse response) {
+ try {
+ FieldSetEntity fse = null;
+ Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
+ RequestParameterEntity rpe = (RequestParameterEntity) bean;
+ if (null != rpe && null != rpe.getFormData()) {
+ fse = rpe.getFormData();
+ }
+ if (fse == null) {
+ fse=new FieldSetEntity();
+ fse.setTableName("product_sys_attachments");
+ fse.setValue("uuid",uuid);
+ fse.setValue("needOnlineView", 0);
+ SpringMVCContextHolder.getSystemLogger().error(FileCode.FORM_NODATA.getValue(), FileCode.FORM_NODATA.getText());
+// return this.error(FileCode.FORM_NODATA.getValue(), FileCode.FORM_NODATA.getText());
+ }
+ SpringMVCContextHolder.getSystemLogger().info("閫氳繃GET璇锋眰鑾峰彇闄勪欢鍐呭");
+ // 姝e紡浠g爜
+ fileManagerService.getFileContent(fse, response ,true);
+ return OK();
+ } catch (Exception e) {
+ SpringMVCContextHolder.getSystemLogger().error(e);
+ e.printStackTrace();
+ return error(FileCode.GET_FILE_CONTENT_FAIL.getValue(), FileCode.GET_FILE_CONTENT_FAIL.getText());
+ }
+ }
/**
* 涓嬭浇鏂囦欢鎴栬�呭湪绾块瑙�
*
@@ -285,17 +318,15 @@
public String getFileContents(HttpServletRequest request, HttpServletResponse response) {
try {
FieldSetEntity fse = null;
- String uuid = request.getParameter(CoreConst.UUID);
- String onlineView = request.getParameter(CmnConst.NEED_ONLINE_VIEW);
-
- if (StringUtils.isEmpty(uuid)) {
+ Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
+ RequestParameterEntity rpe = (RequestParameterEntity) bean;
+ if (null != rpe && null != rpe.getFormData()) {
+ fse = rpe.getFormData();
+ }
+ if (fse == null) {
SpringMVCContextHolder.getSystemLogger().error(FileCode.FORM_NODATA.getValue(), FileCode.FORM_NODATA.getText());
return this.error(FileCode.FORM_NODATA.getValue(), FileCode.FORM_NODATA.getText());
}
- fse = new FieldSetEntity();
- fse.setTableName(CmnConst.PRODUCT_SYS_ATTACHMENTS);
- fse.setValue(CoreConst.UUID, uuid);
- fse.setValue(CmnConst.NEED_ONLINE_VIEW, onlineView);
SpringMVCContextHolder.getSystemLogger().info("閫氳繃GET璇锋眰鑾峰彇闄勪欢鍐呭");
// 姝e紡浠g爜
fileManagerService.getFileContent(fse, response);
@@ -329,7 +360,7 @@
// 姝e紡浠g爜
fileManagerService.getFileContent(fse, response);
/*===test-start===*/
-// String tempPath = fse.getString("tempPath");
+// String tempPath = "";
// File file = new File(tempPath);
// OutputStream sos = new FileOutputStream(file);
// fileManagerService.getFileContent(fse, sos);
@@ -384,4 +415,28 @@
return error(FileCode.GET_FILE_CONTENT_FAIL.getValue(), FileCode.GET_FILE_CONTENT_FAIL.getText());
}
}
+
+ /**
+ * 闆嗙兢鏂囦欢鍚屾鏂规硶-鎺ユ敹
+ *
+ * @return 缁撴灉
+ */
+ @RequestMapping(value = "/cluster-file-sync/{version}", method = RequestMethod.POST)
+ @ApiVersion(1)
+ public String clusterFileSync(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
+ RequestParameterEntity rpe = (RequestParameterEntity) bean;
+ fileManagerService.clusterFileSyncAccept(rpe);
+ return OK();
+ } catch (BaseException e) {
+ SpringMVCContextHolder.getSystemLogger().error(e);
+ e.printStackTrace();
+ return error(e.getCode(), e.getMessage());
+ } catch (Exception e) {
+ SpringMVCContextHolder.getSystemLogger().error(e);
+ e.printStackTrace();
+ return error(FileCode.CLUSTER_FILE_SYNC_ACCEPT_FAIL.getValue(), FileCode.CLUSTER_FILE_SYNC_ACCEPT_FAIL.getText() + ":" + BaseUtil.getErrorInfo(e).substring(0, 500));
+ }
+ }
}
--
Gitblit v1.9.2