From 8b7ce95e1f486603247f5cae882c4595e351af21 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 23 四月 2024 17:04:56 +0800
Subject: [PATCH] 分布式web文件子系统增加下载web文件功能

---
 pms-parent/pms-web-file/src/main/java/com/dy/dyFile/files/FileCtrl.java            |    3 
 pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileSv.java   |   32 +++++
 pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java |  108 ++++++++++++++++++
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileVo.java            |    5 
 pms-parent/pms-global/src/main/resources/application-global.yml                    |   24 ++--
 pms-parent/pms-global/src/main/resources/mapper/OthFileMapper.xml                  |   32 ++++
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoOth/OthFile.java          |   59 +++++++--
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/global/WebFileCtrl.java       |   28 ++--
 /dev/null                                                                          |   18 ---
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileOperate.java       |    8 
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileRestVo.java        |    8 
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoOth/OthFileMapper.java     |    6 
 pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/dyFm/DyFileSvConf.java      |    6 
 13 files changed, 255 insertions(+), 82 deletions(-)

diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoOth/OthFileMapper.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoOth/OthFileMapper.java
index 3fbe311..156d80d 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoOth/OthFileMapper.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoOth/OthFileMapper.java
@@ -5,15 +5,15 @@
 
 @Mapper
 public interface OthFileMapper {
-    OthFile selectByPrimaryKey(Long id);
+    int deleteByPrimaryKey(Long id);
 
     int insert(OthFile record);
 
     int insertSelective(OthFile record);
 
+    OthFile selectByPrimaryKey(Long id);
+
     int updateByPrimaryKeySelective(OthFile record);
 
     int updateByPrimaryKey(OthFile record);
-
-    int deleteByPrimaryKey(Long id);
 }
\ No newline at end of file
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileOperate.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileOperate.java
index c9774c6..bde0f4e 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileOperate.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileOperate.java
@@ -124,10 +124,10 @@
 			rvo = this.restCreateFileName(fmUrl, fileExtName) ;
 			if(rvo != null){
 				String relativeFilePath = this.restSaveFile(fileCtrlRqMp, fileMethodMp, file, regionNum, json, rvo);
-				//log.info("瀛樺偍鏂囦欢鐢熸垚鏂囦欢璺緞锛�" + relativeFilePath);
-				if(relativeFilePath != null){
-					rvo.createFilePath(relativeFilePath, rvo.fileNameHash);
-				}
+				rvo.fileWebPath = relativeFilePath ;
+				//if(relativeFilePath != null){
+				//	rvo.createFilePath(relativeFilePath, rvo.fileNameHash);
+				//}
 			}
 		}
 		return rvo ;
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileRestVo.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileRestVo.java
index f25b474..88f3ba9 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileRestVo.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileRestVo.java
@@ -12,8 +12,8 @@
 	public String fileSysAbsolutePath; //鏂囦欢鍚嶇О鐨勫搱甯屽�煎搴旂殑鏂囦欢鏈�缁堝瓨鍌ㄧ粷瀵硅矾寰勪腑鐨勬牴鐩綍锛屽湪閰嶇疆鏂囦欢涓厤缃�
 	public String fileSysRelativePath; //鏂囦欢鍚嶇О鐨勫搱甯屽�煎搴旂殑鏂囦欢鏈�缁堝瓨鍌ㄧ浉瀵硅矾寰勭殑鐩綍锛屽湪閰嶇疆鏂囦欢涓厤缃�
 	public String fileSysRestUrl; //鏂囦欢鍚嶇О鐨勫搱甯屽�煎搴旂殑鏂囦欢绯荤粺鐨剅estful URL锛屽湪閰嶇疆鏂囦欢涓厤缃�
-	public String fileWebPath; //鏂囦欢鍚嶇О鐨勫搱甯屽�煎搴旂殑鏂囦欢绯荤粺鐨勪笅杞芥枃浠剁殑web path锛屽姩鎬佺敓鎴�
-	public String fileWebUrl; //鏂囦欢鍚嶇О鐨勫搱甯屽�煎搴旂殑鏂囦欢绯荤粺鐨勪笅杞芥枃浠剁殑web URL锛屽湪閰嶇疆鏂囦欢涓厤缃�
+	public String fileWebPath; //鏂囦欢鍚嶇О鐨勫搱甯屽�煎搴旂殑鏂囦欢绯荤粺鐨勬樉绀哄強涓嬭浇鏂囦欢鐨剋eb path锛屽姩鎬佺敓鎴�
+	public String fileWebUrl; //鏂囦欢鍚嶇О鐨勫搱甯屽�煎搴旂殑鏂囦欢绯荤粺鐨勬樉绀烘枃浠剁殑web URL锛屽湪閰嶇疆鏂囦欢涓厤缃�
 	public String fileWebDownloadUrl; //鏂囦欢鍚嶇О鐨勫搱甯屽�煎搴旂殑鏂囦欢绯荤粺鐨凙ction涓嬭浇鏂囦欢鐨剋eb URL锛屽湪閰嶇疆鏂囦欢涓厤缃�
 
 	public String toString(){
@@ -29,10 +29,10 @@
 	}
 
 	/**
+	 * 姝ゆ柟娉曚笉鐢ㄤ簡锛屽洜涓烘枃浠跺悕绉板悗闈㈠姞涓� 锛焗ashcode鍚庯紝涓嬭浇鏂囦欢绫讳腑灏嗘壘鍒颁笉鏂囦欢
 	 * 閲嶆柊鍒涘缓fileSysWebUrl
 	 * @param relativeFilePath
 	 * @param hashcode
-	 */
 	public void createFilePath(String relativeFilePath, Integer hashcode){
 		if(relativeFilePath != null){
 			if(relativeFilePath.indexOf("?") < 0){
@@ -40,5 +40,5 @@
 			}
 		}
 	}
-
+	*/
 }
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileVo.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileVo.java
index 45fcf4d..299eff3 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileVo.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/dyFile/FileVo.java
@@ -10,6 +10,7 @@
     public String extName ;//鏂囦欢鎵╁睍鍚�
     public String webPath ;//web鏂囦欢璁块棶璺緞
     public String webPathZip;//鐓х墖鏂囦欢缂╃暐鍥捐闂矾寰勶紝鍏朵粬绫诲瀷鏂囦欢姝ゅ睘鎬т负null
+    public String downloadPath;//web鏂囦欢涓嬭浇璺緞锛屽簲鐢ㄦ椂璺緞鍚庨潰鍔犱笂 ?id=[id]
 
     public FileVo(){}
 
@@ -18,12 +19,14 @@
                   String orgName,
                   String extName,
                   String webPath,
-                  String webPathZip){
+                  String webPathZip,
+                  String downloadPath){
         this.id = id ;
         this.hash = hash ;
         this.orgName = orgName ;
         this.extName = extName ;
         this.webPath = webPath ;
         this.webPathZip = webPathZip ;
+        this.downloadPath = downloadPath ;
     }
 }
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/global/WebFileCtrl.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/global/WebFileCtrl.java
index 7472b24..97470ab 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/global/WebFileCtrl.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/global/WebFileCtrl.java
@@ -9,7 +9,6 @@
 import com.dy.pmsGlobal.dyFile.FileRestVo;
 import com.dy.pmsGlobal.dyFile.FileVo;
 import com.dy.pmsGlobal.pojoOth.OthFile;
-import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -39,7 +38,7 @@
     @PostMapping("/upPhoto")
     @SsoPowerAop(power = "-1") //鐧诲綍涓庢潈闄愬悓鏃堕獙璇�
     //https://blog.zhengru.top/posts/33486.html#%E5%8D%95%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0
-    public BaseResponse<?> upPhoto(MultipartFile file, HttpServletRequest req) {
+    public BaseResponse<?> upPhoto(MultipartFile file) {
         try {
             if (file != null) {
                 String[] fileNameGrp = fileOp.splitFileName(file) ;
@@ -53,8 +52,8 @@
                                 fileNameGrp[1],
                                 null);
                         String fileMainName = fileOp.getFileMainName(frVo.fileName) ;
-                        Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath);
-                        FileVo fvo = new FileVo(id, frVo.fileNameHash, fileNameGrp[0], fileNameGrp[1], (frVo.getFileWebUrl() + frVo.getFileWebPath()), fileOp.getImgFileZipPath(frVo.getFileWebUrl() + frVo.getFileWebPath())) ;
+                        Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath, frVo.fileWebDownloadUrl);
+                        FileVo fvo = new FileVo(id, frVo.fileNameHash, fileNameGrp[0], fileNameGrp[1], (frVo.getFileWebUrl() + frVo.getFileWebPath()), fileOp.getImgFileZipPath(frVo.getFileWebUrl() + frVo.getFileWebPath()), frVo.fileWebDownloadUrl) ;
                         return  BaseResponseUtils.buildSuccess(fvo) ;
                     }else {
                         return BaseResponseUtils.buildError("鏈緱鍒颁笂浼犳枃浠剁殑鎵╁睍鍚�");
@@ -73,7 +72,7 @@
 
     @PostMapping("/upPhone")
     @SsoPowerAop(power = "-1")
-    public BaseResponse<?> upPhone(MultipartFile file, HttpServletRequest req) {
+    public BaseResponse<?> upPhone(MultipartFile file) {
         try {
             if (file != null) {
                 String[] fileNameGrp = fileOp.splitFileName(file) ;
@@ -87,8 +86,8 @@
                                 fileNameGrp[1],
                                 null);
                         String fileMainName = fileOp.getFileMainName(frVo.fileName) ;
-                        Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath);
-                        FileVo fvo = new FileVo(id, frVo.fileNameHash, fileNameGrp[0], fileNameGrp[1],frVo.getFileWebUrl() + frVo.getFileWebPath(), null) ;
+                        Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath, frVo.fileWebDownloadUrl);
+                        FileVo fvo = new FileVo(id, frVo.fileNameHash, fileNameGrp[0], fileNameGrp[1],frVo.getFileWebUrl() + frVo.getFileWebPath(), null, frVo.fileWebDownloadUrl) ;
                         return  BaseResponseUtils.buildSuccess(fvo) ;
                     }else {
                         return BaseResponseUtils.buildError("鏈緱鍒颁笂浼犳枃浠剁殑鎵╁睍鍚�");
@@ -109,7 +108,7 @@
 
     @PostMapping("/upVideo")
     @SsoPowerAop(power = "-1")
-    public BaseResponse<?> upVideo(MultipartFile file, HttpServletRequest req) {
+    public BaseResponse<?> upVideo(MultipartFile file) {
         try {
             if (file != null) {
                 String[] fileNameGrp = fileOp.splitFileName(file) ;
@@ -123,8 +122,8 @@
                                 fileNameGrp[1],
                                 null);
                         String fileMainName = fileOp.getFileMainName(frVo.fileName) ;
-                        Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath);
-                        FileVo fvo = new FileVo(id, frVo.fileNameHash, fileNameGrp[0], fileNameGrp[1],frVo.getFileWebUrl() + frVo.getFileWebPath(), null) ;
+                        Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath, frVo.fileWebDownloadUrl);
+                        FileVo fvo = new FileVo(id, frVo.fileNameHash, fileNameGrp[0], fileNameGrp[1],frVo.getFileWebUrl() + frVo.getFileWebPath(), null, frVo.fileWebDownloadUrl) ;
                         return  BaseResponseUtils.buildSuccess(fvo) ;
                     }else {
                         return BaseResponseUtils.buildError("鏈緱鍒颁笂浼犳枃浠剁殑鎵╁睍鍚�");
@@ -145,7 +144,7 @@
 
     @PostMapping("/upDocument")
     @SsoPowerAop(power = "-1")
-    public BaseResponse<?> upDocument(MultipartFile file, HttpServletRequest req) {
+    public BaseResponse<?> upDocument(MultipartFile file) {
         try {
             if (file != null) {
                 String[] fileNameGrp = fileOp.splitFileName(file) ;
@@ -159,8 +158,8 @@
                                 fileNameGrp[1],
                                 null);
                         String fileMainName = fileOp.getFileMainName(frVo.fileName) ;
-                        Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath);
-                        FileVo fvo = new FileVo(id, frVo.fileNameHash, fileNameGrp[0], fileNameGrp[1],frVo.getFileWebUrl() + frVo.getFileWebPath(), null) ;
+                        Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath, frVo.fileWebDownloadUrl);
+                        FileVo fvo = new FileVo(id, frVo.fileNameHash, fileNameGrp[0], fileNameGrp[1],frVo.getFileWebUrl() + frVo.getFileWebPath(), null, frVo.fileWebDownloadUrl) ;
                         return  BaseResponseUtils.buildSuccess(fvo) ;
                     }else {
                         return BaseResponseUtils.buildError("鏈緱鍒颁笂浼犳枃浠剁殑鎵╁睍鍚�");
@@ -187,13 +186,14 @@
      * @param filePath 鏂囦欢鏈嶅姟绔瓨鍌ㄧ浉瀵硅矾寰�
      * @return
      */
-    private Long saveFileInfo(String orgName, String extName, String newName, Integer hash, String filePath){
+    private Long saveFileInfo(String orgName, String extName, String newName, Integer hash, String filePath, String downloadPath){
         OthFile po = new OthFile() ;
         po.orgName = orgName ;
         po.extName = extName ;
         po.newName = newName ;
         po.hash = hash ;
         po.filePath = filePath ;
+        po.downloadPath = downloadPath ;
         return this.sv.save(po) ;
     }
 
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoOth/OthFile.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoOth/OthFile.java
index 8bc69f8..3abb84f 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoOth/OthFile.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoOth/OthFile.java
@@ -1,50 +1,77 @@
 package com.dy.pmsGlobal.pojoOth;
 
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.*;
 import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.*;
+
+import java.util.Date;
 
 /**
  * 涓婅浇鐨勬枃浠朵俊鎭�
  */
-//2024-04-12涓嬮潰TableName涓嶇敤閰嶇疆琛ㄥ悕绉帮紙value="BaUser"鎴栤�渂a_user鈥濓級
-//鍙閫氳繃椹煎嘲鍛藉悕娉曞垯绫诲悕涓庤〃鍚嶅搴旇捣鏉ュ氨鍙互浜嗭紝濡傛灉涓嶈兘瀵瑰簲璧锋潵锛岄渶瑕佹寚瀹氳〃鍚嶇О
-//渚嬪@TableName(value="TestUser" autoResultMap = true)
-@TableName(value="ba_role", autoResultMap = true)
+
+@TableName(value="Oth_file", autoResultMap = true)
 @Data
 @Builder
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
 public class OthFile implements BaseEntity {
+
+    public static final long serialVersionUID = 202404231631001L;
     /**
-    * 涓婚敭
+     * 涓婚敭
+     */
+    /* 濡傛灉涓嶆槑纭� type绫诲瀷锛孧P灏嗚嚜鍔ㄤ负鍏惰祴鍊硷紙闆姳ID锛�
+    IdType:
+    AUTO(0),  //鑷
+    NONE(1), //鏈缃富閿�
+    INPUT(2), //鎵嬪姩杈撳叆
+    ASSIGN_ID(3),  //榛樿鍏ㄥ眬鍞竴ID
+    ASSIGN_UUID(4), //鍏ㄥ眬鍞竴鐨� uuid
     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(value = "id", type = IdType.INPUT)
     public Long id;
 
     /**
-    * 鏂囦欢鍘熷悕绉�
-    */
+     * 鏂囦欢鍘熷悕绉�
+     */
     public String orgName;
 
     /**
-    * 鎵╁睍鍚�
-    */
+     * 鎵╁睍鍚�
+     */
     public String extName;
 
     /**
-    * 涓婁紶鏂囦欢鍚庣郴缁熻嚜鍔ㄧ粰鏂囦欢璧嬬殑鏂板悕绉�
-    */
+     * 涓婁紶鏂囦欢鍚庣郴缁熻嚜鍔ㄧ粰鏂囦欢璧嬬殑鏂板悕绉�
+     */
     public String newName;
 
     /**
-    * 鏂囦欢hash鍊�
-    */
+     * 鏂囦欢hash鍊�
+     */
     public Integer hash;
 
     /**
-    * 鏂囦欢鍦ㄦ湇鍔$瀛樺偍鐨勭浉瀵硅矾寰�
-    */
+     * 鏂囦欢鍦ㄦ湇鍔$瀛樺偍鐨勭浉瀵硅矾寰�
+     */
     public String filePath;
 
+    /**
+     * 鏂囦欢涓嬭浇璺緞
+     */
+    public String downloadPath;
+
+    /**
+     * 鏂囦欢涓婅浇鏃ユ湡
+     */
+    @TableField(value = "dt", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date dt;
+
 }
\ No newline at end of file
diff --git a/pms-parent/pms-global/src/main/resources/application-global.yml b/pms-parent/pms-global/src/main/resources/application-global.yml
index bf9e58b..2b98a32 100644
--- a/pms-parent/pms-global/src/main/resources/application-global.yml
+++ b/pms-parent/pms-global/src/main/resources/application-global.yml
@@ -108,7 +108,7 @@
             hashEnd: 5461
             restUrl: http://127.0.0.1:${pms.file1.webPort}/file #file鏄笂涓嬫枃
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/ #nginx鏈嶅姟璺緞
-            webDownloadUrl: http://127.0.0.1:${pms.file1.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file1.webPort}/file/download/down?id=
         sv2:
             id: dyFile2
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -117,7 +117,7 @@
             hashEnd: 10923
             restUrl: http://127.0.0.1:${pms.file2.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file2.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file2.webPort}/file/download/down?id=
         sv3:
             id: dyFile3
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -126,7 +126,7 @@
             hashEnd: 16385
             restUrl: http://127.0.0.1:${pms.file3.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file3.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file3.webPort}/file/download/down?id=
         sv4:
             id: dyFile4
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -135,7 +135,7 @@
             hashEnd: 21847
             restUrl: http://127.0.0.1:${pms.file4.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file4.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file4.webPort}/file/download/down?id=
         sv5:
             id: dyFile5
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -144,7 +144,7 @@
             hashEnd: 27309
             restUrl: http://127.0.0.1:${pms.file5.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file5.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file5.webPort}/file/download/down?id=
         sv6:
             id: dyFile6
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -153,7 +153,7 @@
             hashEnd: 32767
             restUrl: http://127.0.0.1:${pms.file6.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file6.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file6.webPort}/file/download/down?id=
         sv7:
             id: dyFile7
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -162,7 +162,7 @@
             hashEnd: 38229
             restUrl: http://127.0.0.1:${pms.file7.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file7.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file7.webPort}/file/download/down?id=
         sv8:
             id: dyFile8
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -171,7 +171,7 @@
             hashEnd: 43691
             restUrl: http://127.0.0.1:${pms.file8.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file8.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file8.webPort}/file/download/down?id=
         sv9:
             id: dyFile9
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -180,7 +180,7 @@
             hashEnd: 49153
             restUrl: http://127.0.0.1:${pms.file9.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file9.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file9.webPort}/file/download/down?id=
         sv10:
             id: dyFile10
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -189,7 +189,7 @@
             hashEnd: 54615
             restUrl: http://127.0.0.1:${pms.file10.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file10.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file10.webPort}/file/download/down?id=
         sv11:
             id: dyFile11
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -198,7 +198,7 @@
             hashEnd: 60077
             restUrl: http://127.0.0.1:${pms.file11.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file11.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file11.webPort}/file/download/down?id=
         sv12:
             id: dyFile12
             absolutePath: E:/java/nginx-1.24.0/html/webfiles/
@@ -207,4 +207,4 @@
             hashEnd: 65535
             restUrl: http://127.0.0.1:${pms.file12.webPort}/file
             webUrl: http://127.0.0.1:${pms.nginx.webPort}/webfiles/
-            webDownloadUrl: http://127.0.0.1:${pms.file12.webPort}/file/download/down
+            webDownloadUrl: http://127.0.0.1:${pms.file12.webPort}/file/download/down?id=
diff --git a/pms-parent/pms-global/src/main/resources/mapper/OthFileMapper.xml b/pms-parent/pms-global/src/main/resources/mapper/OthFileMapper.xml
index 2ce8b6c..79591c6 100644
--- a/pms-parent/pms-global/src/main/resources/mapper/OthFileMapper.xml
+++ b/pms-parent/pms-global/src/main/resources/mapper/OthFileMapper.xml
@@ -10,10 +10,12 @@
     <result column="new_name" property="newName" />
     <result column="hash" property="hash" />
     <result column="file_path" property="filePath" />
+    <result column="download_path" property="downloadPath" />
+    <result column="dt" property="dt" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, org_name, ext_name, new_name, hash, file_path
+    id, org_name, ext_name, new_name, hash, file_path, download_path, dt
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -29,8 +31,10 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pmsGlobal.pojoOth.OthFile">
     <!--@mbg.generated-->
-    insert into oth_file (id, org_name, ext_name, new_name, hash, file_path)
-    values (#{id}, #{orgName}, #{extName}, #{newName}, #{hash}, #{filePath})
+    insert into oth_file (id, org_name, ext_name, new_name, hash, file_path, download_path, 
+      dt)
+    values (#{id}, #{orgName}, #{extName}, #{newName}, #{hash}, #{filePath}, #{downloadPath}, 
+      #{dt})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pmsGlobal.pojoOth.OthFile">
     <!--@mbg.generated-->
@@ -54,6 +58,12 @@
       <if test="filePath != null">
         file_path,
       </if>
+      <if test="downloadPath != null">
+        download_path,
+      </if>
+      <if test="dt != null">
+        dt,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -73,6 +83,12 @@
       </if>
       <if test="filePath != null">
         #{filePath},
+      </if>
+      <if test="downloadPath != null">
+        #{downloadPath},
+      </if>
+      <if test="dt != null">
+        #{dt},
       </if>
     </trim>
   </insert>
@@ -95,6 +111,12 @@
       <if test="filePath != null">
         file_path = #{filePath},
       </if>
+      <if test="downloadPath != null">
+        download_path = #{downloadPath},
+      </if>
+      <if test="dt != null">
+        dt = #{dt},
+      </if>
     </set>
     where id = #{id}
   </update>
@@ -105,7 +127,9 @@
       ext_name = #{extName},
       new_name = #{newName},
       hash = #{hash},
-      file_path = #{filePath}
+      file_path = #{filePath},
+      download_path = #{downloadPath},
+      dt = #{dt}
     where id = #{id}
   </update>
 </mapper>
\ No newline at end of file
diff --git a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtr.java b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtr.java
deleted file mode 100644
index 912fead..0000000
--- a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtr.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.dy.dyFile.download;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * web鏂囦欢涓嬭浇
- */
-@Slf4j
-@RestController
-@RequestMapping(path="download")
-@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
-public class DownloadFileCtr {
-    public String down(){
-        return null ;
-    }
-}
diff --git a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java
new file mode 100644
index 0000000..57f5648
--- /dev/null
+++ b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java
@@ -0,0 +1,108 @@
+package com.dy.dyFile.download;
+
+import cn.hutool.http.server.HttpServerResponse;
+import com.dy.pmsGlobal.dyFile.FileOperate;
+import com.dy.pmsGlobal.dyFile.FileRestVo;
+import com.dy.pmsGlobal.pojoOth.OthFile;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.File;
+import java.io.FileInputStream;
+
+/**
+ * web鏂囦欢涓嬭浇
+ */
+@Slf4j
+@RestController
+@RequestMapping(path="download")
+@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
+public class DownloadFileCtrl {
+
+    @Autowired
+    private DownloadFileSv sv ;
+
+    @Autowired
+    private FileOperate fileOp ;
+
+    @Value("${dy.webFile.fmUrl}")
+    private String fmUrl ;
+
+
+    /**
+     * 閫氳繃web鏂囦欢鏁版嵁搴撳疄浣搃d涓嬭浇璇ユ枃浠�
+     * @param id
+     * @return
+     */
+    @GetMapping("/down")
+    public void down(String id, HttpServletRequest req, HttpServletResponse rep){
+        OthFile fPo = sv.selectById(id) ;
+        if(fPo != null){
+            FileRestVo frVo = fileOp.parseHashcode(fmUrl, fPo.hash) ;
+            if(frVo.fileSysAbsolutePath != null){
+                if(!frVo.fileSysAbsolutePath.endsWith("\\\\") && !frVo.fileSysAbsolutePath.endsWith("/") ){
+                    frVo.fileSysAbsolutePath = frVo.fileSysAbsolutePath + "/" ;
+                }
+            }
+            String filePath = frVo.fileSysAbsolutePath + fPo.filePath ;
+            File f = new File(filePath) ;
+            if(f.exists()){
+                String fileReName = fPo.orgName + "." + fPo.extName ;
+                try {
+                    fileReName = new String(fileReName.getBytes("UTF-8"), "ISO-8859-1");
+                } catch (Exception e) {
+                    fileReName = "file" ;
+                }
+                rep.addHeader("content-type", "application/octet-stream");
+                rep.addHeader("Content-Disposition", "attachment;fileName=" + fileReName);
+
+                ServletOutputStream out = null;
+                FileInputStream in = null ;
+                try {
+                    out = rep.getOutputStream() ;
+                } catch (Exception ee) {
+                    out = null ;
+                }finally{
+                    if(out != null){
+                        byte[] bs = new byte[1024] ;
+                        int len = -1 ;
+                        try {
+                            in = new FileInputStream(f);
+                            len = in.read(bs) ;
+                            while(len != -1){
+                                out.write(bs, 0, len);
+                                len = in.read(bs) ;
+                            }
+                        } catch (Exception eee) {
+                        } finally {
+                            if(out != null){
+                                try{
+                                    out.flush();
+                                    out.close();
+                                }catch(Exception e){
+                                }finally{
+                                    if(in != null){
+                                        try{
+                                            in.close();
+                                        }catch(Exception e){
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }else{
+            }
+        }else{
+        }
+    }
+}
diff --git a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileSv.java b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileSv.java
new file mode 100644
index 0000000..a19981e
--- /dev/null
+++ b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileSv.java
@@ -0,0 +1,32 @@
+package com.dy.dyFile.download;
+
+
+import com.dy.common.util.NumUtil;
+import com.dy.pmsGlobal.daoBa.BaUserMapper;
+import com.dy.pmsGlobal.daoOth.OthFileMapper;
+import com.dy.pmsGlobal.pojoOth.OthFile;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class DownloadFileSv {
+    @Autowired
+    private OthFileMapper dao;
+
+    /**
+     * 鐢↖D鏌ヨ
+     * @param id
+     * @return
+     */
+    public OthFile selectById(String id){
+        if(NumUtil.isPlusIntNumber(id)){
+            return dao.selectByPrimaryKey(Long.parseLong(id)) ;
+        }else{
+            return null ;
+        }
+    }
+
+}
diff --git a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/files/FileCtrl.java b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/files/FileCtrl.java
index 5e85b07..c41d614 100644
--- a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/files/FileCtrl.java
+++ b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/files/FileCtrl.java
@@ -13,7 +13,8 @@
 import java.io.InputStream;
 
 /**
- * web鏂囦欢涓婁紶
+ * web鏂囦欢涓婁紶, 鍐呴儴璋冪敤锛屽嵆鐢卞叾浠栧瓙妯″潡璋冪敤锛�
+ * 涓�鑸笉鐢卞墠绔郴缁熻皟鐢�
  */
 @Slf4j
 @RestController
diff --git a/pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/dyFm/DyFileSvConf.java b/pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/dyFm/DyFileSvConf.java
index 6e314ec..7b55078 100644
--- a/pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/dyFm/DyFileSvConf.java
+++ b/pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/dyFm/DyFileSvConf.java
@@ -101,12 +101,8 @@
 			}
 			if(this.webDownloadUrl == null || this.webDownloadUrl.trim().equals("")){
 				throw new Exception("鍑洪敊锛寃ebDownloadUrl涓虹┖浜嗭紒") ;
-			}else{
-				this.webDownloadUrl = this.webDownloadUrl.trim() ;
-				if(!this.webDownloadUrl.endsWith("/") && !this.webDownloadUrl.endsWith("\\")){
-					this.webDownloadUrl += "/" ;
-				}
 			}
+
 			if(this.hashStart == null){
 				throw new Exception("鍑洪敊锛宧ashStart涓虹┖浜嗭紒") ;
 			}else if(this.hashStart.intValue() < 0){

--
Gitblit v1.8.0