diff --git a/src/main/java/cn/cloudowr/attach/Config.java b/src/main/java/cn/cloudowr/attach/Config.java index e7f0cc6..178318c 100644 --- a/src/main/java/cn/cloudowr/attach/Config.java +++ b/src/main/java/cn/cloudowr/attach/Config.java @@ -1,7 +1,7 @@ package cn.cloudowr.attach; -import cn.cloudowr.sdk.JQueryParameterFilter; import cn.cloudowr.sdk.jfinal.ErrorInterceptor; +import cn.cloudowr.sdk.jfinal.JQueryParameterFilter; import com.aliyun.oss.OSSClient; import com.jfinal.config.*; import com.jfinal.template.Engine; diff --git a/src/main/java/cn/cloudowr/attach/Controller.java b/src/main/java/cn/cloudowr/attach/Controller.java deleted file mode 100644 index ae49033..0000000 --- a/src/main/java/cn/cloudowr/attach/Controller.java +++ /dev/null @@ -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 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 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 paraMap = getParaMap(); - List 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 collection = Config.getMongoDatabase().getCollection("attach"); - List documents = new ArrayList<>(); - collection.find( - Filters.and(ops) - ).into(documents); - -// List 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 collection = getCollection(); - List documents = new ArrayList<>(); - collection.find().limit(pageSize).skip(pageNum * pageSize).into(documents); - -// List 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 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 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 ops = new ArrayList<>(); - - if ("unset".equals(action)) { - for (String key : keysToUnset) { - if (key.equals("id")) continue; - ops.add(Updates.unset(key)); - } - } else { - Map 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 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 getCollection() { - MongoDatabase mongoDataBase = Config.getMongoDatabase(); - MongoCollection 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()); - } - } -}