From 181ae2efdf10d15653d2173f033c77608d950d1f Mon Sep 17 00:00:00 2001 From: o2sword <171715986@qq.com> Date: Fri, 23 Jul 2021 15:18:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E5=AE=B9=E7=AE=A1=E7=90=86=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=A0=B9=E6=8D=AE=E6=9D=A1=E4=BB=B6=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jaxrs/fileinfo/ActionFileUpload.java | 4 +- .../jaxrs/fileinfo/ActionListFilter.java | 116 ++++++++++++++++++ .../jaxrs/fileinfo/FileInfoAction.java | 18 +++ 3 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/ActionListFilter.java diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/ActionFileUpload.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/ActionFileUpload.java index 5774d56e26..10151600b3 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/ActionFileUpload.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/ActionFileUpload.java @@ -185,8 +185,8 @@ public class ActionFileUpload extends BaseAction { } else if("tif".equalsIgnoreCase( ext ) ){ type = "PICTURE"; } else if("bmp".equalsIgnoreCase( ext ) ){ type = "PICTURE"; } else if("gif".equalsIgnoreCase( ext ) ){ type = "PICTURE"; - } else if("xls".equalsIgnoreCase( ext ) ){ type = "EXCLE"; - } else if("xlsx".equalsIgnoreCase( ext ) ){ type = "EXCLE"; + } else if("xls".equalsIgnoreCase( ext ) ){ type = "EXCEL"; + } else if("xlsx".equalsIgnoreCase( ext ) ){ type = "EXCEL"; } else if("doc".equalsIgnoreCase( ext ) ){ type = "WORD"; } else if("docx".equalsIgnoreCase( ext ) ){ type = "WORD"; } else if("ppt".equalsIgnoreCase( ext ) ){ type = "PPT"; diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/ActionListFilter.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/ActionListFilter.java new file mode 100644 index 0000000000..74d4977af0 --- /dev/null +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/ActionListFilter.java @@ -0,0 +1,116 @@ +package com.x.cms.assemble.control.jaxrs.fileinfo; + +import com.google.gson.JsonElement; +import com.x.base.core.container.EntityManagerContainer; +import com.x.base.core.container.factory.EntityManagerContainerFactory; +import com.x.base.core.entity.JpaObject; +import com.x.base.core.project.annotation.FieldDescribe; +import com.x.base.core.project.bean.WrapCopier; +import com.x.base.core.project.bean.WrapCopierFactory; +import com.x.base.core.project.http.ActionResult; +import com.x.base.core.project.http.EffectivePerson; +import com.x.base.core.project.tools.StringTools; +import com.x.cms.assemble.control.jaxrs.commend.BaseAction; +import com.x.cms.core.entity.FileInfo; +import com.x.cms.core.entity.FileInfo_; +import org.apache.commons.lang3.StringUtils; + +import javax.persistence.EntityManager; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.List; + +class ActionListFilter extends BaseAction { + ActionResult> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + ActionResult> result = new ActionResult<>(); + Wi wi = this.convertToWrapIn(jsonElement, Wi.class); + EntityManager em = emc.get(FileInfo.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(FileInfo.class); + Root root = cq.from(FileInfo.class); + Predicate p = cb.conjunction(); + boolean flag = false; + if (StringUtils.isNotBlank(wi.getAppId())){ + flag = true; + p = cb.and(p, cb.equal(root.get(FileInfo_.appId), wi.getAppId())); + } + if (StringUtils.isNotBlank(wi.getCategoryId())){ + flag = true; + p = cb.and(p, cb.equal(root.get(FileInfo_.categoryId), wi.getCategoryId())); + } + if (StringUtils.isNotBlank(wi.getDocumentId())){ + flag = true; + p = cb.and(p, cb.equal(root.get(FileInfo_.documentId), wi.getDocumentId())); + } + if (StringUtils.isNotBlank(wi.getName())){ + flag = true; + String key = StringTools.escapeSqlLikeKey(wi.getName()); + p = cb.and(p, cb.like(root.get(FileInfo_.name), "%" + key + "%", StringTools.SQL_ESCAPE_CHAR)); + } + List wos = new ArrayList<>(); + if(flag) { + wos = emc.fetch(FileInfo.class, Wo.copier, p); + } + result.setData(wos); + result.setCount(Long.valueOf(wos.size())); + return result; + } + } + + public static class Wi { + + @FieldDescribe("文件名称") + private String name; + @FieldDescribe("文件所属应用ID") + private String appId; + @FieldDescribe("文件所属分类ID") + private String categoryId; + @FieldDescribe("文件所属文档ID") + private String documentId; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getCategoryId() { + return categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId; + } + + public String getDocumentId() { + return documentId; + } + + public void setDocumentId(String documentId) { + this.documentId = documentId; + } + } + + public static class Wo extends FileInfo { + + private static final long serialVersionUID = -5640556392454126453L; + + static WrapCopier copier = WrapCopierFactory.wo(FileInfo.class, Wo.class, + JpaObject.singularAttributeField(FileInfo.class, true, true), null); + + } +} diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/FileInfoAction.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/FileInfoAction.java index 2446f24b89..a8db629bdb 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/FileInfoAction.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/fileinfo/FileInfoAction.java @@ -372,4 +372,22 @@ public class FileInfoAction extends StandardJaxrsAction{ asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } + @JaxrsMethodDescribe(value = "根据条件查询附件.", action = ActionListFilter.class) + @POST + @Path("list/filter") + @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) + @Consumes(MediaType.APPLICATION_JSON) + public void listFilter(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, + JsonElement jsonElement) { + ActionResult> result = new ActionResult<>(); + EffectivePerson effectivePerson = this.effectivePerson(request); + try { + result = new ActionListFilter().execute(effectivePerson, jsonElement); + } catch (Exception e) { + logger.error(e, effectivePerson, request, jsonElement); + result.error(e); + } + asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); + } + } -- GitLab