diff --git a/ssjygl-xsx-common/pom.xml b/ssjygl-xsx-common/pom.xml
index dd1d5cc..09c3fe4 100644
--- a/ssjygl-xsx-common/pom.xml
+++ b/ssjygl-xsx-common/pom.xml
@@ -138,6 +138,12 @@
4.5.3
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 2.8.3
+
+
\ No newline at end of file
diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/common/oss/OSSKit.java b/ssjygl-xsx-common/src/main/java/com/cowr/common/oss/OSSKit.java
new file mode 100644
index 0000000..0415280
--- /dev/null
+++ b/ssjygl-xsx-common/src/main/java/com/cowr/common/oss/OSSKit.java
@@ -0,0 +1,87 @@
+package com.cowr.common.oss;
+
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.model.ObjectMetadata;
+import com.jfinal.kit.StrKit;
+import com.jfinal.log.Log;
+
+import java.io.File;
+import java.net.URLEncoder;
+
+public class OSSKit {
+ private static Log log = Log.getLog(OSSKit.class);
+ private static OSSClient _ossClient;
+ private static String bucketName;
+
+ public static OSSClient getCli() {
+ return OSSKit._ossClient;
+ }
+
+ public static void setCli(OSSClient cli, String bucketName) {
+ OSSKit._ossClient = cli;
+ OSSKit.bucketName = bucketName;
+ }
+
+ public static boolean putObject(String key, File file) throws Exception {
+ if (_ossClient == null) {
+ log.error("没有初始化 OSSMgrClient");
+ return false;
+ }
+
+ if (!StrKit.notBlank(key) || file == null || !file.exists() || file.isDirectory()) {
+ return false;
+ }
+
+ long st = System.currentTimeMillis();
+
+ ObjectMetadata meta = new ObjectMetadata();
+ meta.setContentDisposition("attachment; filename=" + URLEncoder.encode(file.getName(), "UTF-8"));
+
+ _ossClient.putObject(bucketName, key, file, meta);
+
+ log.debug("oss put time: " + (System.currentTimeMillis() - st) + ", file size: " + file.length());
+
+ return true;
+ }
+
+
+ public static boolean delObject(String key) throws Exception {
+ if (_ossClient == null) {
+ log.error("没有初始化 OSSMgrClient");
+ return false;
+ }
+
+ if (_ossClient.doesObjectExist(bucketName, key)) {
+ _ossClient.deleteObject(bucketName, key);
+ }
+
+ return true;
+ }
+
+// public static void main(String[] args) {
+// new OSSPlugin("oss-cn-shenzhen.aliyuncs.com", "hsjygl").start();
+// ObjectListing list = OSSKit.getCli().listObjects(new ListObjectsRequest("hsjygl").withMaxKeys(1000).withPrefix("file"));
+//
+// List arr = list.getObjectSummaries();
+//
+// while (arr.size() > 999){
+// System.out.println("继续删除:" + arr.size());
+//
+// for(OSSObjectSummary obj : arr){
+// if(obj.getSize() == 0){
+// continue;
+// }
+//
+// if( obj.getLastModified().getTime() < System.currentTimeMillis() - 4 * 60 * 60 * 1000 ){
+// System.out.println(obj.getKey() + " " + obj.getLastModified() + " " + obj.getSize());
+// OSSKit.getCli().deleteObject("hsjygl", obj.getKey());
+// }
+// }
+//
+// arr = list.getObjectSummaries();
+// }
+//
+//
+//// System.out.println(list);
+// }
+}
diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/common/oss/OSSPlugin.java b/ssjygl-xsx-common/src/main/java/com/cowr/common/oss/OSSPlugin.java
new file mode 100644
index 0000000..c6e8058
--- /dev/null
+++ b/ssjygl-xsx-common/src/main/java/com/cowr/common/oss/OSSPlugin.java
@@ -0,0 +1,46 @@
+package com.cowr.common.oss;
+
+import com.aliyun.oss.OSSClient;
+import com.jfinal.plugin.IPlugin;
+
+public class OSSPlugin implements IPlugin {
+ private OSSClient _ossClient;
+ public static OSSPlugin cli;
+
+ private String endpoint;
+ private static String accessKeyId = "LTAIqQ3TXBgNGBWi";
+ private static String accessKeySecret = "CGbPXdfX4xca3uaN2cOmTzjsG4jd6O";
+ private String bucketName;
+
+ public OSSPlugin(String endpoint, String bucketName) {
+ this.endpoint = endpoint;
+ this.bucketName = bucketName;
+ }
+
+ @Override
+ public boolean start() {
+ try {
+ this._ossClient = new OSSClient(this.endpoint, this.accessKeyId, this.accessKeySecret);
+
+ if (!this._ossClient.doesBucketExist(this.bucketName)) {
+ this._ossClient.createBucket(this.bucketName);
+ }
+
+ OSSKit.setCli(this._ossClient, bucketName);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ @Override
+ public boolean stop() {
+ if (this._ossClient != null) {
+ this._ossClient.shutdown();
+ }
+
+ return true;
+ }
+}
diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/jobs/SyncJob.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/jobs/SyncJob.java
index 787471b..c6833f8 100644
--- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/jobs/SyncJob.java
+++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/jobs/SyncJob.java
@@ -1,5 +1,6 @@
package com.cowr.local.ssjygl.jobs;
+import com.cowr.local.ssjygl.ossfilelog.OssfileLogService;
import com.cowr.local.ssjygl.synctask.SyncTaskService;
import com.jfinal.log.Log;
import org.quartz.Job;
@@ -14,5 +15,11 @@ public class SyncJob implements Job {
}catch (Exception e){
log.error(e.getMessage(), e);
}
+
+ try {
+ OssfileLogService.me.checkUploadStatus();
+ }catch (Exception e){
+ log.error(e.getMessage(), e);
+ }
}
}
diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java
index a25cb1a..4783c65 100644
--- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java
+++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java
@@ -3,6 +3,7 @@ package com.cowr.local.ssjygl.main;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.wall.WallFilter;
import com.cowr.common.ctrl.HomeController;
+import com.cowr.common.oss.OSSPlugin;
import com.cowr.ssjygl.actioncmdlog.ActionCmdLogController;
import com.cowr.local.ssjygl.authlicense.AuthLicenseController;
import com.cowr.local.ssjygl.authlicense.AuthLicenseSyncService;
@@ -272,6 +273,8 @@ public class Config extends JFinalConfig {
0
));
}
+
+ me.add(new OSSPlugin(configprop.get("endpoint"), configprop.get("bucketName")));
}
@Override
diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/ossfilelog/OssfileLogService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/ossfilelog/OssfileLogService.java
new file mode 100644
index 0000000..eea704d
--- /dev/null
+++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/ossfilelog/OssfileLogService.java
@@ -0,0 +1,52 @@
+package com.cowr.local.ssjygl.ossfilelog;
+
+import com.cowr.common.oss.OSSKit;
+import com.cowr.model.OssfileLog;
+import com.jfinal.kit.StrKit;
+import com.jfinal.log.Log;
+import com.jfinal.plugin.activerecord.Db;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class OssfileLogService {
+ private static Log log = Log.getLog(OssfileLogService.class);
+ public static OssfileLogService me = new OssfileLogService();
+
+ public void save(String transport_id, String osskey, String absolutepath){
+ OssfileLog ossfile = new OssfileLog();
+ ossfile.setId(StrKit.getRandomUUID());
+ ossfile.setTransportId(transport_id);
+ ossfile.setOsskey(osskey);
+ ossfile.setAbsolutepath(absolutepath);
+ ossfile.setCreateTime(new Date());
+ ossfile.setState(0);
+
+ ossfile.save();
+ }
+
+ public void checkUploadStatus(){
+ List logs = OssfileLog.dao.find("select * from ossfile_log t where t.state = 0 limit 10");
+ List ups = new ArrayList<>();
+
+ log.debug("上传 %s 张图片到 oss", logs.size());
+
+ for(OssfileLog ossfile : logs){
+ try {
+ if(OSSKit.putObject(ossfile.getOsskey(), new File(ossfile.getAbsolutepath()))){
+ ossfile.setState(1);
+
+ ups.add(ossfile);
+ }
+ }catch (Exception e){
+ log.error(e.getMessage(), e);
+ }
+ }
+
+ if(!ups.isEmpty()){
+ Db.batchUpdate(ups, ups.size());
+ }
+ }
+}
diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java
index 5b9dce9..06e6202 100644
--- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java
+++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java
@@ -10,6 +10,7 @@ import com.cowr.local.ssjygl.devicectrl.common.Const;
import com.cowr.local.ssjygl.main.CliCacheData;
import com.cowr.local.ssjygl.main.Config;
import com.cowr.local.ssjygl.order.LocalOrderService;
+import com.cowr.local.ssjygl.ossfilelog.OssfileLogService;
import com.cowr.local.ssjygl.synctask.SyncTaskService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
import com.cowr.model.*;
@@ -264,6 +265,10 @@ public class TransportSyncService {
try {
boolean ret = transport.save() && SyncTaskService.me.save(new SyncTask().addSaveData(transport));
+ if(ret){
+ OssfileLogService.me.save(transport.getId(), transport.getFirstPic(), file.getAbsolutePath());
+ }
+
return ret;
} catch (Exception e) {
return false;
@@ -314,6 +319,10 @@ public class TransportSyncService {
try {
boolean ret = transport.update() && SyncTaskService.me.save(new SyncTask().addUpdateData(transport));
+ if(ret){
+ OssfileLogService.me.save(transport.getId(), transport.getSecondPic(), file.getAbsolutePath());
+ }
+
return ret;
} catch (Exception e) {
return false;
@@ -374,6 +383,10 @@ public class TransportSyncService {
try {
boolean ret = finalTransport.save() && SyncTaskService.me.save(new SyncTask().addSaveData(finalTransport));
+ if(ret){
+ OssfileLogService.me.save(finalTransport.getId(), finalTransport.getFirstPic(), file.getAbsolutePath());
+ }
+
return ret;
} catch (Exception e) {
return false;
@@ -398,6 +411,10 @@ public class TransportSyncService {
try {
boolean ret = finalTransport1.update() && SyncTaskService.me.save(new SyncTask().addUpdateData(finalTransport1));
+ if(ret){
+ OssfileLogService.me.save(finalTransport1.getId(), finalTransport1.getSecondPic(), file.getAbsolutePath());
+ }
+
return ret;
} catch (Exception e) {
return false;
diff --git a/ssjygl-xsx-local/src/main/resources/dev/config.properties b/ssjygl-xsx-local/src/main/resources/dev/config.properties
index b339445..3363f00 100644
--- a/ssjygl-xsx-local/src/main/resources/dev/config.properties
+++ b/ssjygl-xsx-local/src/main/resources/dev/config.properties
@@ -1,5 +1,10 @@
devMode=true
+
+endpoint=oss-cn-shenzhen-internal.aliyuncs.com
+#正式、测试的附件,都存入正式的 oss 中
+bucketName=ssjygl-xsx-static
+
#本地服务 和 云端服务 socket 通信
socketserver.enable=true
#socketserver.host=120.77.59.235
diff --git a/ssjygl-xsx-local/src/main/resources/prod/config.properties b/ssjygl-xsx-local/src/main/resources/prod/config.properties
index 469dbd8..d59b5eb 100644
--- a/ssjygl-xsx-local/src/main/resources/prod/config.properties
+++ b/ssjygl-xsx-local/src/main/resources/prod/config.properties
@@ -1,5 +1,10 @@
devMode=true
+
+endpoint=oss-cn-shenzhen.aliyuncs.com
+#正式、测试的附件,都存入正式的 oss 中
+bucketName=ssjygl-xsx-static
+
#本地服务 和 云端服务 socket 通信
socketserver.enable=true
socketserver.host=47.112.109.118