From 4566a255edffe93cca71eb74e28debd30c87917b Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 23 May 2022 08:23:47 +0800
Subject: [PATCH] 用户新增修改
---
src/main/java/org/springblade/modules/quartz/listener/SchedulerListener.java | 8 +-
src/main/java/org/springblade/modules/FTP/FtpMain.java | 131 ++++++++++++++++++++++++++------
src/main/java/org/springblade/modules/FTP/Monitor.java | 20 ++--
src/main/java/org/springblade/modules/system/controller/UserController.java | 21 ++++
src/main/resources/application.yml | 1
src/main/java/org/springblade/modules/quartz/task/Task.java | 8 +
6 files changed, 148 insertions(+), 41 deletions(-)
diff --git a/src/main/java/org/springblade/modules/FTP/FtpMain.java b/src/main/java/org/springblade/modules/FTP/FtpMain.java
index a7378cc..76852cb 100644
--- a/src/main/java/org/springblade/modules/FTP/FtpMain.java
+++ b/src/main/java/org/springblade/modules/FTP/FtpMain.java
@@ -1,38 +1,121 @@
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.FTPFile;
+import org.apache.commons.net.ftp.FTPReply;
+
import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+
+import static org.springblade.common.config.FtpConfig.*;
+import static org.springblade.common.config.FtpConfig.ftpPath;
public class FtpMain {
public static void main(String[] args) throws FileNotFoundException {
- //ftp服务器IP地址
- String ftpHost = "192.168.0.105";
- //ftp服务器端口
- int ftpPort = 21;
- //ftp服务器用户名
- String ftpUserName = "yly";
- //ftp服务器密码
- String ftpPassword = "Yly@123";
- //ftp服务器路径
- String ftpPath = "";
- //本地路径
- String localPath = "D:\\anbao";
- //文件名
- String fileName = "sql.json";
+ while (true){
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ readFile();
+ }
+ }
+ public static boolean readFile() {
+ FTPClient ftp = new FTPClient();
+ System.out.println("ftp 创建客户端");
+ try {
+ //设置超时时间
+// ftp.setConnectTimeout(3000);
+ //连接
+ ftp.connect(ftpHost, ftpPort);
+ System.out.println("ftp 连接成功!");
+ // 登陆
+ ftp.login(ftpUserNameIn, ftpPasswordIn);
+ // 检验登陆操作的返回码是否正确
+ if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
+ ftp.disconnect();
+ return false;
+ }
- //下载
- //将ftp根目录下的文件下载至E盘
- //FtpUtil.downloadFtpFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpPath, localPath, fileName);
+ ftp.enterLocalActiveMode();
- //上传
- //将E盘的文件上传至ftp根目录
- //FileInputStream in=new FileInputStream(new File("D:\\" + fileName));
- //FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", "/", fileName, in);
+ // 设置文件类型为二进制,与ASCII有区别
+ ftp.setFileType(FTP.BINARY_FILE_TYPE);
- //删除
- //删除ftp根目录下的文件
- //FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", "fz.py");
+ // 设置编码格式
+ ftp.setControlEncoding("GBK");
+ // 检验文件是否存在
+ ftp.changeWorkingDirectory(ftpPath);
+ // Use passive mode as default
+ ftp.enterLocalPassiveMode();
+
+ FTPFile[] files = ftp.listFiles();
+ if (files.length==0){
+ return false;
+ }
+ else {
+ for (FTPFile file : files) {
+ String fileName = file.getName();
+ InputStream is = ftp.retrieveFileStream(new String(fileName.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
+ if (null == is) {
+ return false;
+ } else {
+ String substring1 = fileName.substring(0, 4);
+ if (substring1.equals("nsql")) {
+ //把文件下载到本地
+ FtpUtil.downloadFtpFile(ftpHost, ftpUserNameIn, ftpPasswordIn, ftpPort, ftpPath, localPath, fileName);
+ //
+ String s = OutJson.TestJson(fileName);
+ //sql语句
+ String sql = OutJson.stringReplace(s);
+ String[] split = sql.split(";");//以逗号分割
+ for (String sqls : split) {
+ //判断是否是新增,删除,修改
+ String substring = sqls.substring(0, 2);
+ //新增
+ if (substring.equals("in")) {
+ //运行sql语句
+ MysqlCenlint.inster(sqls);
+ }
+ //修改
+ else if (substring.equals("up")) {
+ MysqlCenlint.update(sqls);
+ }
+ //删除
+ else {
+ MysqlCenlint.delete(sqls);
+ }
+ }
+ //删除本地服务器文件
+ MysqlCenlint.deletess(fileName);
+ //删除 ftp 服务器文件
+ FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserNameIn, ftpPasswordIn, ftpPath, fileName);
+ }
+ //关闭流
+ is.close();
+ ftp.completePendingCommand();
+ }
+ return true;
+ }
+ }
+ } catch (Exception e) {
+ System.out.println("ftp连接失败");
+ e.printStackTrace();
+ } finally {
+ if (ftp.isConnected()) {
+ try {
+ ftp.disconnect();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return false;
}
}
diff --git a/src/main/java/org/springblade/modules/FTP/Monitor.java b/src/main/java/org/springblade/modules/FTP/Monitor.java
index 513e91f..7105194 100644
--- a/src/main/java/org/springblade/modules/FTP/Monitor.java
+++ b/src/main/java/org/springblade/modules/FTP/Monitor.java
@@ -31,7 +31,7 @@
* @return
*/
public static Result isFTPFileExist(String uuid) {
- System.out.println("uuid = " + uuid);
+// System.out.println("uuid = " + uuid);
//创建 ftp 对象
FTPClient ftp = new FTPClient();
boolean flag = false;
@@ -57,26 +57,26 @@
ftp.setControlEncoding("GBK");
// 检验文件是否存在
boolean ftpFile = ftp.changeWorkingDirectory(ftpPath);
- System.out.println("检验文件是否存在 = " + ftpFile);
+// System.out.println("检验文件是否存在 = " + ftpFile);
// Use passive mode as default
ftp.enterLocalPassiveMode();
FTPFile[] files = ftp.listFiles();
- System.out.println("files = " + files);
- System.out.println("开始读取内网回传消息");
+// System.out.println("files = " + files);
+// System.out.println("开始读取内网回传消息");
if (files.length==0){
- System.out.println("未读取到文件");
+// System.out.println("未读取到文件");
return new Result(400,null,"未读取到文件",null);
} else {
- System.out.println("-----有读取到文件--------");
+// System.out.println("-----有读取到文件--------");
for (FTPFile file : files){
String fileName = file.getName();
- System.out.println("fileName = " + fileName);
+// System.out.println("fileName = " + fileName);
InputStream is = ftp.retrieveFileStream(new String(fileName.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
String substring1 = fileName.substring(0, 1);
- System.out.println("substring1 = " + substring1);
+// System.out.println("substring1 = " + substring1);
if (substring1.equals("n")){
- System.out.println("-------接收到内网回传的文件: " + substring1);
+ System.out.println("-------接收到内网回传的文件: " + fileName);
//把文件下载到本地
FtpUtil.downloadFtpFile(ftpHost, ftpUserNameIn, ftpPasswordIn, ftpPort, ftpPath, localPath, fileName);
// 解析数据
@@ -290,6 +290,8 @@
public static boolean isFTPFileExist() {
FTPClient ftp = new FTPClient();
try {
+ //设置超时时间
+ ftp.setConnectTimeout(2000);
//连接
ftp.connect(ftpHost, ftpPort);
// 登陆
diff --git a/src/main/java/org/springblade/modules/quartz/listener/SchedulerListener.java b/src/main/java/org/springblade/modules/quartz/listener/SchedulerListener.java
index 0458027..dd80987 100644
--- a/src/main/java/org/springblade/modules/quartz/listener/SchedulerListener.java
+++ b/src/main/java/org/springblade/modules/quartz/listener/SchedulerListener.java
@@ -30,12 +30,12 @@
public void scheduledJobListener(ScheduleEvent event){
//获取事件对象
ScheduledJob scheduledJob = event.getScheduledJob();
- System.out.println("开始执行任务......");
- scheduledJob.setActiveTime(new Date());
- scheduledJobService.updateById(scheduledJob);
+// System.out.println("开始执行任务......");
+// scheduledJob.setActiveTime(new Date());
+// scheduledJobService.updateById(scheduledJob);
//开始执行任务
SpringBeanTaskUtil.invokeMethod(scheduledJob);
- System.out.println("任务执行结束......");
+// System.out.println("任务执行结束......");
}
}
diff --git a/src/main/java/org/springblade/modules/quartz/task/Task.java b/src/main/java/org/springblade/modules/quartz/task/Task.java
index b1e4028..4f11f69 100644
--- a/src/main/java/org/springblade/modules/quartz/task/Task.java
+++ b/src/main/java/org/springblade/modules/quartz/task/Task.java
@@ -62,9 +62,15 @@
// @Scheduled(cron = "*/30 * * * * ?")
public boolean readFile() {
FTPClient ftp = new FTPClient();
+ System.out.println("ftp 创建客户端");
try {
+ //设置传输超时时间为60秒
+ ftp.setDataTimeout(60000);
+ //连接超时为60秒
+ ftp.setConnectTimeout(60000);
//连接
ftp.connect(ftpHost, ftpPort);
+ System.out.println("ftp 连接成功!");
// 登陆
ftp.login(ftpUserNameIn, ftpPasswordIn);
// 检验登陆操作的返回码是否正确
@@ -140,7 +146,7 @@
System.out.println("ftp连接失败");
e.printStackTrace();
} finally {
- if (ftp != null) {
+ if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException e) {
diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index 93bc529..d188787 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -1624,7 +1624,7 @@
//调用ftp获取返回数据
while (true){
System.out.println("用户新增开始接收消息......................");
- Thread.sleep(6000);
+ Thread.sleep(1000);
//调用ftp获取返回数据
result = Monitor.isFTPFileExist(uuid);
//如果返回true,就退处
@@ -1643,8 +1643,8 @@
}else{
//计数
count++;
- //如果超过10s 没有读取到,则退出
- if (count == 10) {
+ //如果超过60s 没有读取到,则退出
+ if (count == 60) {
break;
}
}
@@ -1860,4 +1860,19 @@
public R getNotUpdatePwdInfo() {
return R.data(userService.getNotUpdatePwdInfo());
}
+
+ /**
+ * 用户手动离职(用户数据未同步成功的)
+ * @param user
+ * @return
+ */
+ @GetMapping("/leave")
+ public void leave(User user){
+ user.setStatus(2);
+ String s1 =
+ "update blade_user set status = " + "'" + user.getStatus() + "'"
+ + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "'"
+ + " " + "where cardid = " + "'" + user.getCardid() + "'";
+ myAsyncService.FTP(s1);
+ }
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 6b5fc2b..486aeab 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -215,6 +215,7 @@
- /recordk/save
- /recordk/details
- /blade-user/detail
+ - /blade-user/leave
- /userVip/getUserVipInfo
- /simulateExamRecord/getSimulateExamRecordInfo
- /simulateExamRecord/pauseExam
--
Gitblit v1.9.3