gxhy
parent
6506e2f25a
commit
8f03fe9fb4
|
|
@ -1,7 +1,7 @@
|
||||||
package cn.cloudowr.attach;
|
package cn.cloudowr.attach;
|
||||||
|
|
||||||
import cn.cloudowr.sdk.JQueryParameterFilter;
|
|
||||||
import cn.cloudowr.sdk.jfinal.ErrorInterceptor;
|
import cn.cloudowr.sdk.jfinal.ErrorInterceptor;
|
||||||
|
import cn.cloudowr.sdk.jfinal.JQueryParameterFilter;
|
||||||
import com.aliyun.oss.OSSClient;
|
import com.aliyun.oss.OSSClient;
|
||||||
import com.jfinal.config.*;
|
import com.jfinal.config.*;
|
||||||
import com.jfinal.template.Engine;
|
import com.jfinal.template.Engine;
|
||||||
|
|
|
||||||
|
|
@ -1,217 +0,0 @@
|
||||||
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