提交 7dbf3108 编写于 作者: O o2sword

内容管理文档查询速度优化

上级 a89a65fe
......@@ -2,6 +2,7 @@ package com.x.cms.assemble.control.jaxrs.document;
import com.google.gson.JsonElement;
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;
......@@ -11,6 +12,7 @@ import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ListTools;
import com.x.cms.core.entity.Document;
import com.x.cms.core.express.tools.filter.QueryFilter;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
......@@ -47,7 +49,7 @@ public class ActionQueryListWithFilterPaging extends BaseAction {
}
if( StringUtils.isEmpty( wi.getOrderField() )) {
wi.setOrderField( "createTime" );
wi.setOrderField( "publishTime" );
}
if( StringUtils.isEmpty( wi.getOrderType() )) {
......@@ -84,7 +86,7 @@ public class ActionQueryListWithFilterPaging extends BaseAction {
}
}
if (check) {
if (check && !BooleanUtils.isTrue(wi.getJustData())) {
// 从Review表中查询符合条件的对象总数
try {
if( isManager ) {
......@@ -172,7 +174,16 @@ public class ActionQueryListWithFilterPaging extends BaseAction {
}
public static class Wi extends WrapInDocumentFilter{
@FieldDescribe( "仅返回数据不查询总数,默认false" )
private Boolean justData;
public Boolean getJustData() {
return justData;
}
public void setJustData(Boolean justData) {
this.justData = justData;
}
}
public static class Wo extends WrapOutDocumentList {
......
......@@ -19,6 +19,7 @@ import com.x.cms.core.entity.Review;
import com.x.cms.core.entity.Review_;
import com.x.cms.core.express.tools.CriteriaBuilderTools;
import com.x.cms.core.express.tools.filter.QueryFilter;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import javax.persistence.EntityManager;
......@@ -38,41 +39,44 @@ public class ActionQueryListWithFilterPagingAdmin extends BaseAction {
ActionResult<List<Wo>> result = new ActionResult<>();
List<Wo> wos = new ArrayList<>();
Business business = new Business(null);
if(!business.isManager(effectivePerson)){
if (!business.isManager(effectivePerson)) {
result.setCount(0L);
result.setData(wos);
return result;
}
Wi wi = this.convertToWrapIn( jsonElement, Wi.class );
Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
if( StringUtils.isEmpty( wi.getDocumentType() )) {
wi.setDocumentType( "信息" );
if (StringUtils.isEmpty(wi.getDocumentType())) {
wi.setDocumentType("信息");
}
if( StringUtils.isEmpty( wi.getOrderField() )) {
wi.setOrderField( "createTime" );
if (StringUtils.isEmpty(wi.getOrderField())) {
wi.setOrderField("publishTime");
}
if( StringUtils.isEmpty( wi.getOrderType() )) {
wi.setOrderType( "DESC" );
if (StringUtils.isEmpty(wi.getOrderType())) {
wi.setOrderType("DESC");
}
if( ListTools.isEmpty( wi.getStatusList() )) {
if (ListTools.isEmpty(wi.getStatusList())) {
List<String> status = new ArrayList<>();
status.add( "published" );
wi.setStatusList( status );
status.add("published");
wi.setStatusList(status);
}
QueryFilter queryFilter = wi.getQueryFilter();
String personName = wi.getPerson();
if(StringUtils.isNotBlank(wi.getPerson())) {
if (StringUtils.isNotBlank(wi.getPerson())) {
personName = business.organization().person().get(wi.getPerson());
if(StringUtils.isBlank(personName)){
if (StringUtils.isBlank(personName)) {
personName = wi.getPerson();
}
}
Long total = documentQueryService.countWithCondition( personName, queryFilter, wi.getAuthor());
Long total = 0L;
if (!BooleanUtils.isTrue(wi.getJustData())){
total = documentQueryService.countWithCondition(personName, queryFilter, wi.getAuthor());
}
List<Document> searchResultList = documentQueryService.listPagingWithCondition( personName, wi.getOrderField(), wi.getOrderType(), queryFilter, page, size, wi.getAuthor());
Wo wo = null;
for( Document document : searchResultList ) {
......@@ -110,6 +114,9 @@ public class ActionQueryListWithFilterPagingAdmin extends BaseAction {
@FieldDescribe( "是否查询指定用户可编辑的文档,如果为true则person字段必填,默认为否" )
private Boolean isAuthor;
@FieldDescribe( "仅返回数据不查询总数,默认false" )
private Boolean justData;
public String getPerson() {
return person;
}
......@@ -125,6 +132,14 @@ public class ActionQueryListWithFilterPagingAdmin extends BaseAction {
public void setAuthor(Boolean author) {
isAuthor = author;
}
public Boolean getJustData() {
return justData;
}
public void setJustData(Boolean justData) {
this.justData = justData;
}
}
public static class Wo extends WrapOutDocumentList {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册