tangzy
2021-08-21 8dda58f0c652dbe6a8307eedd431957acb1ec960
1.ftp
5 files renamed
1 files modified
1 files added
191 ■■■■ changed files
src/main/java/org/springblade/modules/FTP/FtpMain.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/FtpUploadFile.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/FtpUtil.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/MysqlCenlint.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/OutJson.java 4 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/monitor.java 117 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/information/controller/InformationController.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/FtpMain.java
File was renamed from src/main/java/org/springblade/common/utils/FtpMain.java
@@ -1,4 +1,4 @@
package org.springblade.common.utils;
package org.springblade.modules.FTP;
import java.io.FileNotFoundException;
src/main/java/org/springblade/modules/FTP/FtpUploadFile.java
File was renamed from src/main/java/org/springblade/common/utils/FtpUploadFile.java
@@ -1,4 +1,4 @@
package org.springblade.common.utils;
package org.springblade.modules.FTP;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
src/main/java/org/springblade/modules/FTP/FtpUtil.java
File was renamed from src/main/java/org/springblade/common/utils/FtpUtil.java
@@ -1,4 +1,4 @@
package org.springblade.common.utils;
package org.springblade.modules.FTP;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -11,13 +11,16 @@
/**
 * ftp工具类
 *
 * @author lijj
 */
public class FtpUtil {
    private final static Log logger = LogFactory.getLog(FtpUtil.class);
    /** 本地字符编码 */
    /**
     * 本地字符编码
     */
    private static String LOCAL_CHARSET = "GBK";
    // FTP协议里面,规定文件名编码为iso-8859-1
@@ -26,18 +29,10 @@
    /**
     * 获取FTPClient对象
     *
     * @param ftpHost
     *            FTP主机服务器
     *
     * @param ftpPassword
     *            FTP 登录密码
     *
     * @param ftpUserName
     *            FTP登录用户名
     *
     * @param ftpPort
     *            FTP端口 默认为21
     *
     * @param ftpHost     FTP主机服务器
     * @param ftpPassword FTP 登录密码
     * @param ftpUserName FTP登录用户名
     * @param ftpPort     FTP端口 默认为21
     * @return
     */
    public static FTPClient getFTPClient(String ftpHost, int ftpPort, String ftpUserName, String ftpPassword) {
@@ -65,19 +60,13 @@
    /**
     * 从FTP服务器下载文件
     *
     * @param ftpHost FTP IP地址
     *
     * @param ftpHost     FTP IP地址
     * @param ftpUserName FTP 用户名
     *
     * @param ftpPassword FTP用户名密码
     *
     * @param ftpPort FTP端口
     *
     * @param ftpPath FTP服务器中文件所在路径 格式: ftptest/aa
     *
     * @param localPath 下载到本地的位置 格式:H:/download
     *
     * @param fileName 文件名称
     * @param ftpPort     FTP端口
     * @param ftpPath     FTP服务器中文件所在路径 格式: ftptest/aa
     * @param localPath   下载到本地的位置 格式:H:/download
     * @param fileName    文件名称
     */
    public static void downloadFtpFile(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort,
                                       String ftpPath, String localPath, String fileName) {
@@ -101,16 +90,16 @@
            InputStream retrieveFileStream = ftpClient.retrieveFileStream(fileNameTemp);
            // 第一种方式下载文件(推荐)
              //File localFile = new File(localPath + File.separatorChar + fileName);
              //OutputStream os = new FileOutputStream(localFile);
              //ftpClient.retrieveFile(fileName, os); os.close();
            //File localFile = new File(localPath + File.separatorChar + fileName);
            //OutputStream os = new FileOutputStream(localFile);
            //ftpClient.retrieveFile(fileName, os); os.close();
            // 第二种方式下载:将输入流转成字节,再生成文件,这种方式方便将字节数组直接返回给前台jsp页面
            byte[] input2byte = input2byte(retrieveFileStream);
            byte2File(input2byte, localPath, fileName);
            if(null != retrieveFileStream){
            if (null != retrieveFileStream) {
                retrieveFileStream.close();
            }
        } catch (FileNotFoundException e) {
@@ -181,7 +170,7 @@
                return result;
            }
            if(null != input){
            if (null != input) {
                input.close();
            }
@@ -293,4 +282,5 @@
            }
        }
    }
}
src/main/java/org/springblade/modules/FTP/MysqlCenlint.java
File was renamed from src/main/java/org/springblade/common/utils/MysqlCenlint.java
@@ -1,4 +1,4 @@
package org.springblade.common.utils;
package org.springblade.modules.FTP;
import java.io.File;
src/main/java/org/springblade/modules/FTP/OutJson.java
File was renamed from src/main/java/org/springblade/common/utils/OutJson.java
@@ -1,4 +1,4 @@
package org.springblade.common.utils;
package org.springblade.modules.FTP;
import java.io.*;
@@ -135,7 +135,6 @@
        }
        return result.toString();
    }
    /**
     * 删除文件
     * @param str
@@ -185,5 +184,4 @@
        }
        return  localStrBulider.toString();
    }
}
src/main/java/org/springblade/modules/FTP/monitor.java
New file
@@ -0,0 +1,117 @@
package org.springblade.modules.FTP;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.io.InputStream;
@Component
public class monitor {
    //ftp服务器IP地址
    private static String ftpHost = "192.168.0.105";
    //ftp服务器端口
    private static int ftpPort = 21;
    //ftp服务器用户名
    private static String ftpUserName = "yly";
    //ftp服务器密码
    private static String ftpPassword = "Yly@123";
    //ftp服务器路径
    private static String ftpPath = "anbao/sql.json";
    @Scheduled(cron = "*/5 * * * * ?")
    public static boolean isFTPFileExist() {
        FTPClient ftp = new FTPClient();
        try {
            // 连接ftp服务器
            ftp.connect(ftpHost, ftpPort);
            // 登陆
            ftp.login(ftpUserName, ftpPassword);
            // 检验登陆操作的返回码是否正确
            if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
                ftp.disconnect();
                return false;
            }
            ftp.enterLocalActiveMode();
            // 设置文件类型为二进制,与ASCII有区别
            ftp.setFileType(FTP.BINARY_FILE_TYPE);
            // 设置编码格式
            ftp.setControlEncoding("GBK");
            // 提取绝对地址的目录以及文件名
            ftpPath = ftpPath.replace("ftp://" + ftpHost + ":" + ftpPort + "/", "");
            String dir = ftpPath.substring(0, ftpPath.lastIndexOf("/"));
            String file = ftpPath.substring(ftpPath.lastIndexOf("/") + 1);
            // 进入文件所在目录,注意编码格式,以能够正确识别中文目录
            ftp.changeWorkingDirectory(new String(dir.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
            // 检验文件是否存在
            InputStream is = ftp.retrieveFileStream(new String(file.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
            if (is == null || ftp.getReplyCode() == FTPReply.FILE_UNAVAILABLE) {
                System.out.println(false);
                return false;
            }
            if (is != null) {
                System.out.println(true);
                is.close();
                ftp.completePendingCommand();
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (ftp != null) {
                try {
                    ftp.disconnect();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return false;
    }
}
src/main/java/org/springblade/modules/information/controller/InformationController.java
@@ -24,39 +24,27 @@
import org.springblade.common.cache.DictCache;
import org.springblade.common.enums.DictEnum;
import org.springblade.common.utils.FtpUtil;
import org.springblade.common.utils.MysqlCenlint;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.desk.entity.Notice;
import org.springblade.modules.desk.vo.NoticeVO;
import org.springblade.modules.desk.wrapper.NoticeWrapper;
import org.springblade.modules.jurisdiction.service.JurisdictionService;
import org.springblade.modules.jurisdiction.vo.JurisdictionVO;
import org.springblade.modules.member.service.IMemberService;
import org.springblade.modules.shareholder.service.IShareholderService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IUserDeptService;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.information.entity.Information;
import org.springblade.modules.information.vo.InformationVO;
import org.springblade.modules.information.service.IInformationService;
import org.springblade.core.boot.ctrl.BladeController;
import springfox.documentation.annotations.ApiIgnore;
import java.sql.*;
import java.sql.DriverManager; //需要这个jar包 mysql-connector-java-5.1.49.jar
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.io.*;
import java.util.*;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;