diff --git a/jeecg-boot-base-core/pom.xml b/jeecg-boot-base-core/pom.xml index 7a3c88b1..f885dca7 100644 --- a/jeecg-boot-base-core/pom.xml +++ b/jeecg-boot-base-core/pom.xml @@ -252,6 +252,11 @@ commons-fileupload commons-fileupload + + com.jcraft + jsch + 0.1.55 + \ No newline at end of file diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java index f2637533..ec3c0269 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java @@ -214,6 +214,7 @@ public interface CommonConstant { String UPLOAD_TYPE_LOCAL = "local"; String UPLOAD_TYPE_MINIO = "minio"; String UPLOAD_TYPE_OSS = "alioss"; + String UPLOAD_TYPE_SFTP = "sftp"; /** * 文档上传自定义桶名称 diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/sftp/SFTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SFTPUtil.java similarity index 54% rename from jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/sftp/SFTPUtil.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SFTPUtil.java index 258f2ec3..6c90132c 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/sftp/SFTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SFTPUtil.java @@ -1,31 +1,27 @@ -package org.jeecg.modules.zyk.utils.sftp; +package org.jeecg.common.util; import com.jcraft.jsch.*; -import java.io.*; - -import org.jeecg.common.util.CommonUtils; -import org.jeecg.modules.zyk.utils.text.StringUtils; +import org.jeecg.common.constant.SymbolConstant; +import org.jeecg.common.util.text.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.net.URLEncoder; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; -@Service public class SFTPUtil { - private long count = 3; - private long count1 = 0; - private long sleepTime = 300000;//5分钟 + private static long count = 3; + private static long count1 = 0; + private static long sleepTime = 300000;//5分钟 private static final Logger logger = LoggerFactory.getLogger(SFTPUtil.class); - @Autowired - private SftpConfig sftpConfig; - - public ChannelSftp connect(){ + public static ChannelSftp connect(SftpConfig sftpConfig){ ChannelSftp sftp = null; try { JSch jsch = new JSch(); @@ -52,7 +48,7 @@ public class SFTPUtil { } Thread.sleep(sleepTime); logger.info("重新连接...."); - connect(); + connect(sftpConfig); } catch (InterruptedException e1){ throw new RuntimeException(e1); } @@ -60,7 +56,38 @@ public class SFTPUtil { return sftp; } - private void mkdirs(String directory,ChannelSftp sftp) throws SftpException{ + public static Session getSession(SftpConfig sftpConfig){ + Session sshSession = null; + try { + JSch jsch = new JSch(); + sshSession = jsch.getSession(sftpConfig.getUsername(), sftpConfig.getHostname(), sftpConfig.getPort()); + logger.info("Session created ... host=" + sftpConfig.getHostname() + ";port=" + sftpConfig.getPort()+";UserName=" + sftpConfig.getUsername() + ";Password="+sftpConfig.getPassword()); +// jsch.addIdentity("e:/sftp_keys.ppk",""); + sshSession.setPassword(sftpConfig.getPassword()); + Properties sshConfig = new Properties(); + sshConfig.put("StrictHostKeyChecking", "no"); + sshSession.setConfig(sshConfig); + sshSession.setTimeout(sftpConfig.getTimeout()); + sshSession.connect(); + logger.info("Session connected ..."); + logger.info("Opening Channel ..."); + } catch (Exception e){ + try{ + count1 += 1; + if(count == count1){ + throw new RuntimeException(e); + } + Thread.sleep(sleepTime); + logger.info("重新连接...."); + getSession(sftpConfig); + } catch (InterruptedException e1){ + throw new RuntimeException(e1); + } + } + return sshSession; + } + + private static void mkdirs(String directory,ChannelSftp sftp) throws SftpException { String[] dics = directory.split("/"); for(int i=0;i< dics.length;i++){ try { @@ -86,15 +113,15 @@ public class SFTPUtil { * @param uploadFileName 要上传的文件名称(重新定义的文件名称) * @param */ - public Map upload(String directory, String uploadFilePath, String uploadFileName) { + public static Map upload(SftpConfig sftpConfig, String directory, String uploadFilePath, String uploadFileName) { Map map = new HashMap(); map.put("code","0"); map.put("msg","上传成功"); ChannelSftp sftp = null; try{ - sftp = connect(); + sftp = connect(sftpConfig); try { - directory = getDirectory(directory); + directory = getDirectory(sftpConfig.getUploadpath(),directory); sftp.cd(directory); } catch (SftpException e1) { try { @@ -131,6 +158,58 @@ public class SFTPUtil { return map; } + public static Map upload(SftpConfig sftpConfig, MultipartFile file, String directory) { + Map map = new HashMap(); + map.put("code","0"); + map.put("msg","上传成功"); + ChannelSftp sftp = null; + try{ + sftp = connect(sftpConfig); + try { + directory = getDirectory(sftpConfig.getUploadpath(), directory); + sftp.cd(directory); + } catch (SftpException e1) { + try { + mkdirs(directory,sftp); +// sftp.mkdir(directory); +// sftp.cd(directory); + } catch (SftpException e2) { + map.put("code","1"); + map.put("msg","ftp创建"+directory+"文件路径失败"); +// throw new RuntimeException("ftp创建文件路径失败" + directory); + } + } + String fileName = null; + // 获取文件名 + String orgName = file.getOriginalFilename(); + orgName = CommonUtils.getFileName(orgName); + if(orgName.indexOf(SymbolConstant.SPOT)!=-1){ + fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.lastIndexOf(".")); + }else{ + fileName = orgName+ "_" + System.currentTimeMillis(); + } + InputStream inputStream=null; + try { + sftp.put(file.getInputStream(), fileName); + map.put("data",directory.concat("/").concat(fileName)); + } catch (Exception e3) { + map.put("code","1"); + map.put("msg","上传文件异常:" + e3.getMessage()); +// throw new RuntimeException("sftp异常" + e3); + } finally { + closeStream(inputStream,null); + } + }catch (Exception e) { + map.put("code","1"); + map.put("msg","sftp异常:" + e.getMessage()); + }finally { + if(sftp!=null){ + disConnect(sftp); + } + } + return map; + } + /** * 下载文件 * @@ -138,13 +217,13 @@ public class SFTPUtil { * @param downloadFile 下载的文件 * @param saveFile 存在本地的路径 */ - public Map download(String directory, String downloadFile, String saveFile) { + public static Map download(SftpConfig sftpConfig, String directory, String downloadFile, String saveFile) { Map map = new HashMap(); map.put("code","0"); map.put("msg","删除成功"); ChannelSftp sftp = null; try{ - sftp = connect(); + sftp = connect(sftpConfig); OutputStream output = null; try { File localDirFile = new File(saveFile); @@ -189,14 +268,16 @@ public class SFTPUtil { /** * 网页下载文件 * @param response - * @param directory - * @param downloadFile + * @param downloadFilePath * @throws Exception */ - public void writeFileToRes(String directory, String downloadFile,HttpServletResponse response) throws Exception { + public static void writeFileToRes(SftpConfig sftpConfig, String downloadFilePath, HttpServletResponse response) throws Exception { + String[] df = getDirectoryAndFileName(downloadFilePath); + String directory = df[0]; + String downloadFile = df[1]; ChannelSftp sftp = null; try{ - sftp = connect(); + sftp = connect(sftpConfig); InputStream inputStream = null; ServletOutputStream outputStream=null; try { @@ -236,18 +317,140 @@ public class SFTPUtil { } } +// /** +// * 上传文件 +// * @param oldpath 原文件路径(文件路径+名称) +// * @param directory 目的文件路径 +// * @param newname 目的文件名称 +// * @param +// */ +// public static Map rename(SftpConfig sftpConfig, String oldpath, String directory, String newname) { +// Map map = new HashMap(); +// map.put("code","0"); +// map.put("msg","上传成功"); +// ChannelSftp sftp = null; +// try{ +// sftp = connect(sftpConfig); +// try { +// directory = getDirectory(sftpConfig.getUploadpath(),directory); +// sftp.cd(directory); +// } catch (SftpException e1) { +// try { +// mkdirs(directory,sftp); +// } catch (SftpException e2) { +// map.put("code","1"); +// map.put("msg","ftp创建"+directory+"文件路径失败"); +// } +// } +// try { +// String newpath = directory.concat(newname); +// sftp.rename(oldpath,newpath); +// } catch (SftpException e1) { +// map.put("code","1"); +// map.put("msg",e1.getMessage()); +//// throw new RuntimeException("ftp创建文件路径失败" + directory); +// } +// }catch (Exception e) { +// map.put("code","1"); +// map.put("msg","sftp异常:" + e.getMessage()); +// }finally { +// if(sftp!=null){ +// disConnect(sftp); +// } +// } +// return map; +// } + + /** + * 移动文件 + * @param oldpath 原文件路径(文件路径+名称) + * @param directory 目的文件路径 + * @param newname 目的文件名称 + * @param + */ + public static Map move(SftpConfig sftpConfig, String oldpath, String directory, String newname) { + Map map = new HashMap(); + map.put("code","0"); + map.put("msg","上传成功"); + ChannelSftp sftp = null; + try { + sftp = connect(sftpConfig); + try { + directory = getDirectory(sftpConfig.getUploadpath(), directory); + sftp.cd(directory); + } catch (SftpException e1) { + try { + mkdirs(directory, sftp); + } catch (SftpException e2) { + map.put("code", "1"); + map.put("msg", "ftp创建" + directory + "文件路径失败"); + } + } + Session session = null; + Channel channel = null; + try { + String oldfullpath = sftpConfig.getFullpath().concat(oldpath); + String newpath = directory.concat(newname); + String newfullpath = sftpConfig.getFullpath().concat(newpath); + String moveCommand = "mv " + oldfullpath + " " + newfullpath; // 移动文件的命令 + session = sftp.getSession(); + channel = session.openChannel("exec"); + ((ChannelExec) channel).setCommand(moveCommand); + channel.setInputStream(null); + ((ChannelExec) channel).setErrStream(System.err); + InputStream in = channel.getInputStream(); + channel.connect(); + byte[] tmp = new byte[1024]; + while (true) { + while (in.available() > 0) { + int i = in.read(tmp, 0, 1024); + if (i < 0) break; + } + if (channel.isClosed()) { + System.out.println("exit-status: " + channel.getExitStatus()); + break; + } + try { + Thread.sleep(1000); + } catch (Exception ee) { + } + } + channel.disconnect(); + session.disconnect(); + map.put("data",newpath); + } catch (Exception e1) { + map.put("code","1"); + map.put("msg",e1.getMessage()); +// throw new RuntimeException("ftp创建文件路径失败" + directory); + }finally { + if(channel!=null){ + channel.disconnect(); + } + } + } catch (Exception e) { + map.put("code","1"); + map.put("msg","sftp异常:" + e.getMessage()); + }finally { + if(sftp!=null){ + disConnect(sftp); + } + } + + return map; + } + /** * 删除文件 * @param directory 要删除文件所在目录 * @param deleteFile 要删除的文件 */ - public Map delete(String directory, String deleteFile) { + public static Map delete(SftpConfig sftpConfig, String directory, String deleteFile) { Map map = new HashMap(); map.put("code","0"); map.put("msg","删除成功"); ChannelSftp sftp = null; try{ - sftp = connect(); + sftp = connect(sftpConfig); directory = delDiagonalLines(directory); sftp.cd(directory); sftp.rm(deleteFile); @@ -262,16 +465,15 @@ public class SFTPUtil { return map; } - private String getDirectory(String directory){ - String rootPath = sftpConfig.getUploadpath(); - if(rootPath.endsWith("/")){ - return sftpConfig.getUploadpath() + directory; + private static String getDirectory(String uploadpath, String directory){ + if(uploadpath.endsWith("/")){ + return uploadpath + directory; }else{ - return sftpConfig.getUploadpath() +"/"+ directory; + return uploadpath +"/"+ directory; } } - private String delDiagonalLines(String directory){ + private static String delDiagonalLines(String directory){ if(directory.startsWith("/")){ directory = directory.substring(directory.indexOf("/")+1); delDiagonalLines(directory); @@ -282,7 +484,7 @@ public class SFTPUtil { /** * 断掉连接 */ - public void disConnect(ChannelSftp sftp) { + public static void disConnect(ChannelSftp sftp) { try { sftp.disconnect(); sftp.getSession().disconnect(); @@ -291,20 +493,11 @@ public class SFTPUtil { } } - public SFTPUtil(long count, long sleepTime) { - this.count = count; - this.sleepTime = sleepTime; - } - - public SFTPUtil() { - - } - /** * 关闭流 * @param outputStream */ - private void closeStream(InputStream inputStream,OutputStream outputStream) { + private static void closeStream(InputStream inputStream,OutputStream outputStream) { if (outputStream != null) { try { outputStream.close(); @@ -321,6 +514,15 @@ public class SFTPUtil { } } + public static String[] getDirectoryAndFileName(String fileName) { + String[] ss = new String[2]; + String path = fileName.substring(0,fileName.lastIndexOf("/")); + String name = fileName.substring(fileName.lastIndexOf("/")+1); + ss[0] = path; + ss[1] = name; + return ss; + } + /*****************以下为预留方法*******************/ // /** // * 下载远程文件夹下的所有文件 diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/sftp/SftpConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SftpConfig.java similarity index 80% rename from jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/sftp/SftpConfig.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SftpConfig.java index 1b7b3c9b..eb37295c 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/sftp/SftpConfig.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SftpConfig.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.zyk.utils.sftp; +package org.jeecg.common.util; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -14,14 +14,16 @@ public class SftpConfig { private String password; private Integer timeout; private String uploadpath; + private String fullpath; - public SftpConfig(String hostname,Integer port,String username,String password,Integer timeout,String uploadpath){ + public SftpConfig(String hostname,Integer port,String username,String password,Integer timeout,String uploadpath,String fullpath){ this.hostname = hostname; this.port = port; this.username = username; this.password = password; this.timeout = timeout; this.uploadpath = uploadpath; + this.fullpath = fullpath; } public SftpConfig(){} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/CharsetKit.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/CharsetKit.java similarity index 98% rename from jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/CharsetKit.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/CharsetKit.java index e9e7a284..bf32e7a0 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/CharsetKit.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/CharsetKit.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.zyk.utils.text; +package org.jeecg.common.util.text; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/Constants.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/Constants.java similarity index 98% rename from jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/Constants.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/Constants.java index 72b2c001..4b3499b2 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/Constants.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/Constants.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.zyk.utils.text; +package org.jeecg.common.util.text; /** * 通用常量信息 diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/Convert.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/Convert.java similarity index 99% rename from jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/Convert.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/Convert.java index 79a3f372..607bd230 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/Convert.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/Convert.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.zyk.utils.text; +package org.jeecg.common.util.text; import org.apache.commons.lang3.ArrayUtils; diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/StrFormatter.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/StrFormatter.java similarity index 98% rename from jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/StrFormatter.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/StrFormatter.java index 9fab78b1..50757147 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/StrFormatter.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/StrFormatter.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.zyk.utils.text; +package org.jeecg.common.util.text; /** * 字符串格式化 diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/StringUtils.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/StringUtils.java similarity index 98% rename from jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/StringUtils.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/StringUtils.java index 11421200..061e854f 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/utils/text/StringUtils.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/text/StringUtils.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.zyk.utils.text; +package org.jeecg.common.util.text; import org.springframework.util.AntPathMatcher; @@ -621,4 +621,11 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils } return sb.toString(); } + + public static String nullToEmpty(Object obj){ + if(obj == null){ + return ""; + } + return obj.toString(); + } } diff --git a/jeecg-module-main/pom.xml b/jeecg-module-main/pom.xml index a7cdf312..40174c51 100644 --- a/jeecg-module-main/pom.xml +++ b/jeecg-module-main/pom.xml @@ -80,11 +80,6 @@ hutool-http ${hutool.version} - - com.jcraft - jsch - 0.1.55 - diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/controller/ZykController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/controller/ZykController.java index 3fc44c85..00268a57 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/controller/ZykController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/controller/ZykController.java @@ -7,19 +7,12 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; -import org.jeecg.common.constant.CommonConstant; -import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.system.base.controller.JeecgController; -import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.zyk.entity.ZykInfo; import org.jeecg.modules.zyk.service.IZykService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.AntPathMatcher; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.HandlerMapping; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.util.Arrays; /** @@ -48,7 +41,6 @@ public class ZykController extends JeecgController { return Result.OK(pageList); } - @AutoLog(value = "资源库信息-添加") @ApiOperation(value="资源库信息-添加", notes="资源库信息-添加") @PostMapping(value = "/add") @@ -67,6 +59,7 @@ public class ZykController extends JeecgController { @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result edit(@RequestBody ZykInfo zykInfo) { String res = zykService.modifyInfo(zykInfo); +// Map res = zykService.saveToZyk(zykInfo); return Result.OK(res); } @@ -96,12 +89,12 @@ public class ZykController extends JeecgController { return Result.OK(res); } - /** - * 预览图片&下载文件 - * 请求地址:http://localhost:8080/common/static/{user/20190119/e1fe9925bc315c60addea1b98eb1cb1349547719_1547866868179.jpg} - * @param request - * @param response - */ +// /** +// * 预览图片&下载文件 +// * 请求地址:http://localhost:8080/common/static/{user/20190119/e1fe9925bc315c60addea1b98eb1cb1349547719_1547866868179.jpg} +// * @param request +// * @param response +// */ // @GetMapping(value = "/static/**") // public void view(HttpServletRequest request, HttpServletResponse response) { // // ISO-8859-1 ==> UTF-8 进行编码转换 @@ -159,35 +152,35 @@ public class ZykController extends JeecgController { // } // } // } - @GetMapping(value = "/static/**") - public void view(HttpServletRequest request, HttpServletResponse response) { - // ISO-8859-1 ==> UTF-8 进行编码转换 - String filePath = extractPathFromPattern(request); - if(oConvertUtils.isEmpty(filePath) || CommonConstant.STRING_NULL.equals(filePath)){ - return; - } - try { - filePath = filePath.replace("..", "").replace("../",""); - if (filePath.endsWith(SymbolConstant.COMMA)) { - filePath = filePath.substring(0, filePath.length() - 1); - } - zykService.downloadRes(filePath,response); - } catch (Exception e) { - log.error("预览文件失败" + e.getMessage()); - e.printStackTrace(); - } - } +// @GetMapping(value = "/static/**") +// public void view(HttpServletRequest request, HttpServletResponse response) { +// // ISO-8859-1 ==> UTF-8 进行编码转换 +// String filePath = extractPathFromPattern(request); +// if(oConvertUtils.isEmpty(filePath) || CommonConstant.STRING_NULL.equals(filePath)){ +// return; +// } +// try { +// filePath = filePath.replace("..", "").replace("../",""); +// if (filePath.endsWith(SymbolConstant.COMMA)) { +// filePath = filePath.substring(0, filePath.length() - 1); +// } +// zykService.downloadRes(filePath,response); +// } catch (Exception e) { +// log.error("预览文件失败" + e.getMessage()); +// e.printStackTrace(); +// } +// } - /** - * 把指定URL后的字符串全部截断当成参数 - * 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题 - * @param request - * @return - */ - private static String extractPathFromPattern(final HttpServletRequest request) { - String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); - String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); - return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path); - } +// /** +// * 把指定URL后的字符串全部截断当成参数 +// * 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题 +// * @param request +// * @return +// */ +// private static String extractPathFromPattern(final HttpServletRequest request) { +// String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); +// String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); +// return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path); +// } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/entity/ZykInfo.java b/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/entity/ZykInfo.java index bcee25f7..5fa26b30 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/entity/ZykInfo.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/entity/ZykInfo.java @@ -7,9 +7,11 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; +import java.util.List; @Data @ApiModel(value="zyk_info对象", description="资源库信息") @@ -55,6 +57,9 @@ public class ZykInfo implements Serializable { /**文件名称*/ @ApiModelProperty(value = "文件名称") private String fileName; + /**PDF文件名称*/ + @ApiModelProperty(value = "PDF文件名称") + private String pdfName; /**学号*/ @TableField(exist = false) private String xh; @@ -68,4 +73,19 @@ public class ZykInfo implements Serializable { @TableField(exist = false) private String section; + @TableField(exist = false) + private List xqxnList; + + @TableField(exist = false) + private List kkdwList; + + @TableField(exist = false) + private List kcmcList; + + @TableField(exist = false) + private List skjsList; + + @TableField(exist = false) + private List wjlxList; + } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/mapper/xml/ZykMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/mapper/xml/ZykMapper.xml index 5f966784..469048ce 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/mapper/xml/ZykMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/zyk/mapper/xml/ZykMapper.xml @@ -17,47 +17,30 @@ skjs, wjlx, file_name, - xh, - seq, + pdf_name, chapter, section from zyk_info a - + where xh is null AND create_by = #{params.createBy} - - AND biz_id = #{params.bizId} - - - AND biz_table = #{params.bizTable} - AND xqxn = #{params.xqxn} AND kkdw = #{params.kkdw} + + AND kcmc = #{params.kcmc} + AND skjs = #{params.skjs} AND wjlx = #{params.wjlx} - - AND xh = #{params.xh} - - - AND seq = #{params.seq} - - - AND chapter = #{params.chapter} - - - AND section = #{params.section} - - - order by create_time + order by xqxn asc,kkdw asc,kcmc asc,skjs asc,wjlx asc,create_time desc