Browse Source

临时上传

zhangenzhi 2 years ago
parent
commit
f49db96024

+ 132 - 1
src/main/java/com/pavis/backend/slim/project/system/service/impl/SysKbServiceImpl.java

@@ -2,6 +2,7 @@ package com.pavis.backend.slim.project.system.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -9,6 +10,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.pavis.backend.slim.common.constant.Hodgepodge;
 import com.pavis.backend.slim.common.utils.SecurityUtils;
+import com.pavis.backend.slim.framework.config.MinioConfig;
 import com.pavis.backend.slim.project.system.domain.SysFile;
 import com.pavis.backend.slim.project.system.domain.SysKb;
 import com.pavis.backend.slim.project.system.domain.SysKbFile;
@@ -16,11 +18,26 @@ import com.pavis.backend.slim.project.system.domain.front.FileKey;
 import com.pavis.backend.slim.project.system.mapper.SysFileMapper;
 import com.pavis.backend.slim.project.system.mapper.SysKbFileMapper;
 import com.pavis.backend.slim.project.system.mapper.SysKbMapper;
+import com.pavis.backend.slim.project.system.service.SysFileService;
 import com.pavis.backend.slim.project.system.service.SysKbService;
+import io.minio.MinioClient;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StreamUtils;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.net.URL;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -43,6 +60,17 @@ public class SysKbServiceImpl extends ServiceImpl<SysKbMapper, SysKb> implements
     @Autowired
     private SysKbMapper sysKbMapper;
 
+    @Autowired
+    private SysFileService sysFileService;
+
+    @Autowired
+    private MinioConfig minioFileUtil;
+
+    @Value("${pavis.profile}")
+    private String urlLocal;
+    @Value("${minio.bucketName}")
+    private String bucketName;
+
     @Override
     public SysKb create(SysKb kb) {
         kb.setCreateBy(SecurityUtils.getUsername());
@@ -137,6 +165,109 @@ public class SysKbServiceImpl extends ServiceImpl<SysKbMapper, SysKb> implements
         }
         //删除知识库
         sysKbMapper.deleteById(kbId);
-
     }
+
+
+    // @Override
+    // public void previewFile(String fileId, HttpServletResponse response, HttpServletRequest request) throws Exception {
+    //     //根据fileId,获取文件详情
+    //     SysFile sysFile = sysFileMapper.selectById(fileId);
+    //     //从minio将要预览的文件下载到本地
+    //     MinioClient client = minioFileUtil.client();
+    //     minioFileUtil.downloadPath(urlLocal, bucketName, sysFile.getObjectKey(), sysFile.getName());
+    //     //预览文件
+    //     try {
+    //         log.info("开始预览");
+    //         // response.setCharacterEncoding("utf-8");
+    //         // response.setContentType("application/octet-stream");
+    //
+    //         // 读文件输入流
+    //         String filePath = urlLocal + sysFile.getName();
+    //         InputStream inputStream = new FileInputStream(filePath);
+    //
+    //         // 复制文件流
+    //         StreamUtils.copy(inputStream, response.getOutputStream());
+    //
+    //         // 关闭输入流
+    //         inputStream.close();
+    //
+    //         log.info("预览结束");
+    //     } catch (IOException e) {
+    //         e.printStackTrace();
+    //     }
+    // }
+
+
+    /**
+     * 保存修改后的文件
+     *
+     * @param response
+     * @param request
+     * @param name     修改文件的本地路径
+     */
+    // @Override
+    // public void saveFile(HttpServletResponse response, HttpServletRequest request, String name) {
+    //
+    //     try {
+    //         // 获得response信息
+    //         PrintWriter writer = response.getWriter();
+    //
+    //         // 获取数据文件信息
+    //         ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+    //         StreamUtils.copy(request.getInputStream(), byteArrayOutputStream);
+    //         String fileInfoStr = byteArrayOutputStream.toString();
+    //         byteArrayOutputStream.close();
+    //
+    //         if (fileInfoStr.isEmpty()) {
+    //             writer.write("request的输入流为空");
+    //             return;
+    //         }
+    //
+    //         System.out.println(fileInfoStr);
+    //
+    //         // 转化字符串对象转化为JSON对象
+    //         JSONObject fileInfoObj = JSON.parseObject(fileInfoStr);
+    //
+    //         // 获取编辑文件的状态
+    //
+    //         int status = (Integer) fileInfoObj.get("status");
+    //         int saved = 0;
+    //
+    //         // 关闭正在编辑的文档10秒钟后,会收到该消息
+    //         if (status == 2 || status == 3) {
+    //             // 获取文件数据
+    //             try {
+    //                 URL url = new URL((String) fileInfoObj.get("url"));
+    //                 java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();
+    //                 InputStream inputStream = connection.getInputStream();
+    //
+    //                 if (inputStream == null) {
+    //                     throw new Exception("Stream is null");
+    //                 }
+    //
+    //                 // 保存编辑后的数据
+    //                 String path = urlLocal + name;
+    //                 File file = new File(path);
+    //
+    //                 // 复制数据流
+    //                 FileOutputStream outputStream = new FileOutputStream(file);
+    //                 StreamUtils.copy(inputStream, outputStream);
+    //
+    //                 // 关闭数据资源
+    //                 outputStream.close();
+    //                 inputStream.close();
+    //                 connection.disconnect();
+    //             } catch (Exception ex) {
+    //                 saved = 1;
+    //                 ex.printStackTrace();
+    //             }
+    //             System.out.println("保存文件成功");
+    //         }
+    //
+    //
+    //         // writer.write("{\"error\":" + saved + "}");
+    //     } catch (IOException e) {
+    //         e.printStackTrace();
+    //     }
+    // }
 }

+ 31 - 27
src/main/resources/application-local.yml

@@ -3,26 +3,30 @@ server:
 # 通用配置
 pavis:
   # 需要换成自己开发环境本地的地址
-  profile: D:\privacy\pavis\uploadPath
+  profile: D:\privacy\pavis\uploadPath\
 #minio配置
 minio:
-#  #对象存储服务的URL
-#  url: http://localhost:9000/
-#  #Access key账户
-#  accessKey: minioadmin
-#  #Secret key密码
-#  secretKey: minioadmin
-#  bucketName: default
-#  #Access key账户
-#  accessKey: 2TlzVcrX1jH2oWhz
-#  #Secret key密码
-#  secretKey: ZfmZgtZO4g1L8iMmVB8DeARCSdyxzI8G
+  #  #对象存储服务的URL
+  #  url: http://localhost:9000/
+  #  #Access key账户
+  #  accessKey: minioadmin
+  #  #Secret key密码
+  #  secretKey: minioadmin
+  #  bucketName: default
+  #  #Access key账户
+  #  accessKey: 2TlzVcrX1jH2oWhz
+  #  #Secret key密码
+  #  secretKey: ZfmZgtZO4g1L8iMmVB8DeARCSdyxzI8G
 
-  url: http://192.168.1.170:9000/
+  url: http://192.168.1.141:9000/
+  #  #Access key账户
+  #  accessKey: upHc9rOpkgBknGOmR9jt
+  #  #Secret key密码
+  #  secretKey: UAlOMz7KeihAStEimUoFo8h13xmO9ITXFqWDEXFn
   #Access key账户
-  accessKey: upHc9rOpkgBknGOmR9jt
+  accessKey: yKE3hqPt6lDF84aoZNZn
   #Secret key密码
-  secretKey: UAlOMz7KeihAStEimUoFo8h13xmO9ITXFqWDEXFn
+  secretKey: YUMmEURKm1TsmUeJ9XpOpjS4zpCOFUTUt16uqUuH
   bucketName: default
 spring:
   datasource:
@@ -30,31 +34,31 @@ spring:
       primary: master #设置默认的数据源或者数据源组,默认值即为master
       strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
       datasource:
-#        master:
-#          url: jdbc:mysql://192.168.1.166:3306/slim
-#          username: root
-#          password: 123456
-#          driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
+        #        master:
+        #          url: jdbc:mysql://192.168.1.166:3306/slim
+        #          username: root
+        #          password: 123456
+        #          driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
         master:
-          url: jdbc:mysql://192.168.1.170:3310/slim
+          url: jdbc:mysql://192.168.1.141:3310/slim
           username: root
           password: Gky.i3g8,
           driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
         slave_1:
-          url: jdbc:mysql://192.168.1.170:3311/slim
+          url: jdbc:mysql://192.168.1.141:3311/slim
           username: root
           password: Gky.i3g8,
           driver-class-name: com.mysql.cj.jdbc.Driver
         slave_2:
-          url: jdbc:mysql://192.168.1.170:3312/slim
+          url: jdbc:mysql://192.168.1.141:3312/slim
           username: root
           password: Gky.i3g8,
           driver-class-name: com.mysql.cj.jdbc.Driver
   # redis 配置
   redis:
-#    # 地址
-    host: 192.168.1.170
-#    # 端口,默认为6379
+    #    # 地址
+    host: 192.168.1.141
+    #    # 端口,默认为6379
     port: 6379
 # feign 配置
 feign:
@@ -81,4 +85,4 @@ pagehelper:
   helperDialect: mysql
   reasonable: true
   supportMethodsArguments: true
-  params: count=countSql
+  params: count=countSql