Compare commits
1 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
2c50770204 |
1
pom.xml
1
pom.xml
|
|
@ -7,6 +7,7 @@
|
||||||
<groupId>cn.cloudowr</groupId>
|
<groupId>cn.cloudowr</groupId>
|
||||||
<artifactId>attach</artifactId>
|
<artifactId>attach</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<packaging>war</packaging>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|
|
||||||
|
|
@ -63,9 +63,9 @@ public class Config extends JFinalConfig{
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void afterJFinalStart() {
|
public void afterJFinalStart() {
|
||||||
MongoClientURI connectionString = new MongoClientURI("mongodb://root:CoWR1111@dds-wz9ceed1f19591041.mongodb.rds.aliyuncs.com:3717,dds-wz9ceed1f19591042.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-5320915");
|
MongoClientURI connectionString = new MongoClientURI("mongodb://root:CoWR1111@dds-wz9ceed1f19591041217-pub.mongodb.rds.aliyuncs.com:3717,dds-wz9ceed1f19591042677-pub.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-5320915");
|
||||||
MongoClient mongoClient = new MongoClient(connectionString);
|
MongoClient mongoClient = new MongoClient(connectionString);
|
||||||
mongoDatabase = mongoClient.getDatabase("gxhy");
|
mongoDatabase = mongoClient.getDatabase("dict");
|
||||||
|
|
||||||
String endpoint = "oss-cn-shenzhen.aliyuncs.com";
|
String endpoint = "oss-cn-shenzhen.aliyuncs.com";
|
||||||
String accessKeyId = "LTAI7tcTTMuROink";
|
String accessKeyId = "LTAI7tcTTMuROink";
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,217 @@
|
||||||
|
package cn.cloudowr.attach;
|
||||||
|
|
||||||
|
import cn.cloudowr.sdk.FastJSONUtil;
|
||||||
|
import cn.cloudowr.sdk.IdInterceptor;
|
||||||
|
import com.aliyun.oss.model.UploadFileRequest;
|
||||||
|
import com.aliyun.oss.model.UploadFileResult;
|
||||||
|
import com.jfinal.aop.Before;
|
||||||
|
import com.jfinal.upload.UploadFile;
|
||||||
|
import com.mongodb.client.MongoCollection;
|
||||||
|
import com.mongodb.client.MongoDatabase;
|
||||||
|
import com.mongodb.client.model.Filters;
|
||||||
|
import com.mongodb.client.model.UpdateOptions;
|
||||||
|
import com.mongodb.client.model.Updates;
|
||||||
|
import com.mongodb.client.result.DeleteResult;
|
||||||
|
import com.mongodb.client.result.UpdateResult;
|
||||||
|
import org.bson.Document;
|
||||||
|
import org.bson.conversions.Bson;
|
||||||
|
import org.bson.types.ObjectId;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by lyf66 on 2017/2/17.
|
||||||
|
*/
|
||||||
|
public class Controller extends com.jfinal.core.Controller {
|
||||||
|
public void ping() {
|
||||||
|
renderText("pong");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void upload() throws Throwable {
|
||||||
|
UploadFile file = getFile();
|
||||||
|
String json = getPara("json", null);
|
||||||
|
Document doc = null;
|
||||||
|
if (json != null) {
|
||||||
|
try {
|
||||||
|
doc = Document.parse(json);
|
||||||
|
} catch (Exception e) {
|
||||||
|
renderError(400);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (doc == null) {
|
||||||
|
doc = new Document();
|
||||||
|
}
|
||||||
|
|
||||||
|
String key = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
UploadFileRequest uploadFileRequest = new UploadFileRequest(Config.BukketName, key);
|
||||||
|
uploadFileRequest.setUploadFile(file.getUploadPath() + File.separator + file.getFileName());
|
||||||
|
uploadFileRequest.setTaskNum(5);
|
||||||
|
uploadFileRequest.setPartSize(1 * 1024 * 1024);
|
||||||
|
uploadFileRequest.setEnableCheckpoint(true);
|
||||||
|
UploadFileResult uploadFileResult = Config.getOssClient().uploadFile(uploadFileRequest);
|
||||||
|
uploadFileResult.getMultipartUploadResult();
|
||||||
|
|
||||||
|
MongoCollection<Document> collection = Config.getMongoDatabase().getCollection("attach");
|
||||||
|
doc.put("ossurl", Config.OssUrl + key);
|
||||||
|
doc.put("filename", file.getFileName());
|
||||||
|
collection.insertOne(doc);
|
||||||
|
|
||||||
|
file.getFile().delete();
|
||||||
|
|
||||||
|
// renderJson(doc.toJson());
|
||||||
|
renderJson(FastJSONUtil.bsonToJSON(doc));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void download() throws Throwable {
|
||||||
|
String id = getPara("id");
|
||||||
|
if (id == null || id.isEmpty()) {
|
||||||
|
renderError(404);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
MongoCollection<Document> collection = Config.getMongoDatabase().getCollection("attach");
|
||||||
|
Document doc = collection.find(Filters.eq("_id", new ObjectId(id))).first();
|
||||||
|
renderJson("url", doc.getString("ossurl"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void attach() {
|
||||||
|
Map<String, String[]> paraMap = getParaMap();
|
||||||
|
List<Bson> ops = new ArrayList<>();
|
||||||
|
|
||||||
|
paraMap.forEach((key, arr) -> {
|
||||||
|
if ("id".equals(key)) {
|
||||||
|
ops.add(Filters.eq("_id", new ObjectId(arr[0])));
|
||||||
|
} else {
|
||||||
|
ops.add(Filters.eq(key, arr[0]));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
MongoCollection<Document> collection = Config.getMongoDatabase().getCollection("attach");
|
||||||
|
List<Document> documents = new ArrayList<>();
|
||||||
|
collection.find(
|
||||||
|
Filters.and(ops)
|
||||||
|
).into(documents);
|
||||||
|
|
||||||
|
// List<String> json = new ArrayList<>();
|
||||||
|
// documents.forEach(doc -> {
|
||||||
|
// json.add(doc.toJson());
|
||||||
|
// });
|
||||||
|
// renderText(Arrays.toString(json.toArray()), ContentType.JSON);
|
||||||
|
renderJson(FastJSONUtil.bsonToJSON(documents));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void attachList() {
|
||||||
|
int pageNum = getParaToInt("pageNum", 0);
|
||||||
|
int pageSize = getParaToInt("pageSize", 20);
|
||||||
|
|
||||||
|
MongoCollection<Document> collection = getCollection();
|
||||||
|
List<Document> documents = new ArrayList<>();
|
||||||
|
collection.find().limit(pageSize).skip(pageNum * pageSize).into(documents);
|
||||||
|
|
||||||
|
// List<String> json = new ArrayList<>();
|
||||||
|
// documents.forEach(doc -> {
|
||||||
|
// json.add(doc.toJson());
|
||||||
|
// });
|
||||||
|
// renderText(Arrays.toString(json.toArray()), ContentType.JSON);
|
||||||
|
renderJson(FastJSONUtil.bsonToJSON(documents));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addAttach() {
|
||||||
|
Map<String, String[]> paraMap = getParaMap();
|
||||||
|
Document attach = new Document();
|
||||||
|
paraMap.forEach((key, arr) -> {
|
||||||
|
if (arr.length == 1) {
|
||||||
|
attach.put(key, arr[0]);
|
||||||
|
} else if (arr.length > 1) {
|
||||||
|
List<String> s = new ArrayList<>();
|
||||||
|
for (String s1 : arr) {
|
||||||
|
s.add(s1);
|
||||||
|
}
|
||||||
|
attach.put(key, s);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
getCollection().insertOne(attach);
|
||||||
|
// renderJson(attach.toJson());
|
||||||
|
renderJson(FastJSONUtil.bsonToJSON(attach));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Before(IdInterceptor.class)
|
||||||
|
public void updateAttach() {
|
||||||
|
String id = getPara("id");
|
||||||
|
String action = getPara("action");
|
||||||
|
String[] keysToUnset = getParaValues("keys");
|
||||||
|
List<Bson> ops = new ArrayList<>();
|
||||||
|
|
||||||
|
if ("unset".equals(action)) {
|
||||||
|
for (String key : keysToUnset) {
|
||||||
|
if (key.equals("id")) continue;
|
||||||
|
ops.add(Updates.unset(key));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Map<String, String[]> paraMap = getParaMap();
|
||||||
|
|
||||||
|
paraMap.forEach((key, arr) -> {
|
||||||
|
if (!"id".equals(key) && !"action".equals(key)) {
|
||||||
|
if (arr.length == 1) {
|
||||||
|
ops.add(Updates.set(key, arr[0]));
|
||||||
|
} else if (arr.length > 1) {
|
||||||
|
List<String> s = new ArrayList<>();
|
||||||
|
for (String s1 : arr) {
|
||||||
|
s.add(s1);
|
||||||
|
}
|
||||||
|
ops.add(Updates.set(key, s));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateResult result = getCollection().updateOne(
|
||||||
|
Filters.eq("_id", new ObjectId(id)),
|
||||||
|
Updates.combine(
|
||||||
|
ops
|
||||||
|
),
|
||||||
|
new UpdateOptions().upsert(true)
|
||||||
|
);
|
||||||
|
|
||||||
|
renderJson("result", result.getMatchedCount() >= 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Before(IdInterceptor.class)
|
||||||
|
public void deleteAttach() {
|
||||||
|
String id = getPara("id");
|
||||||
|
|
||||||
|
DeleteResult result = getCollection().deleteOne(
|
||||||
|
Filters.eq("_id", new ObjectId(id))
|
||||||
|
);
|
||||||
|
renderJson("result", result.getDeletedCount() == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private MongoCollection<Document> getCollection() {
|
||||||
|
MongoDatabase mongoDataBase = Config.getMongoDatabase();
|
||||||
|
MongoCollection<Document> collection = mongoDataBase.getCollection("attach");
|
||||||
|
return collection;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getPrefix(String filename) {
|
||||||
|
int lastIndexOf = filename.lastIndexOf(".");
|
||||||
|
if (lastIndexOf == -1) {
|
||||||
|
return filename;
|
||||||
|
} else {
|
||||||
|
return filename.substring(0, lastIndexOf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getSuffix(String filename) {
|
||||||
|
int lastIndexOf = filename.lastIndexOf(".");
|
||||||
|
if (lastIndexOf == -1) {
|
||||||
|
return "";
|
||||||
|
} else {
|
||||||
|
return filename.substring(lastIndexOf + 1, filename.length());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue