From 1d08efbbdf6cabd2633d9293be25b531b543e8d1 Mon Sep 17 00:00:00 2001 From: jiangjiazhi Date: Mon, 16 May 2016 14:53:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A4=BE=E5=8C=BA=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/biz/param/CommunityQuery.java | 7 +++++++ .../biz/service/CommunityConfigService.java | 12 ++++++++++-- .../common/dao/operator/MongoCondition.java | 22 ++++++++++++++++++++++ .../platform/common/dao/operator/MongoOper.java | 3 ++- .../web/controller/CommunityConfigController.java | 2 +- 5 files changed, 42 insertions(+), 4 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/param/CommunityQuery.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/param/CommunityQuery.java index eaf525b..7ef8a13 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/param/CommunityQuery.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/param/CommunityQuery.java @@ -8,8 +8,15 @@ import com.lyms.platform.common.dao.BaseQuery; public class CommunityQuery extends BaseQuery { private String keyword; private String id; + private String orgAreaId; + public String getOrgAreaId() { + return orgAreaId; + } + public void setOrgAreaId(String orgAreaId) { + this.orgAreaId = orgAreaId; + } public String getId() { return id; diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CommunityConfigService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CommunityConfigService.java index f052b56..2a53f4e 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CommunityConfigService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CommunityConfigService.java @@ -12,6 +12,7 @@ import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import javax.swing.plaf.synth.Region; +import java.util.ArrayList; import java.util.List; /** @@ -49,8 +50,15 @@ public class CommunityConfigService { mongoCondition = mongoCondition.orCondition(new MongoCondition[]{new MongoCondition("name", communityQuery.getKeyword(), MongoOper.LIKE), new MongoCondition("gxxq", communityQuery.getKeyword(), MongoOper.LIKE)}); } mongoCondition.and("yn", YnEnums.YES.getId(), MongoOper.IS); - if(null != communityQuery.getId() ) { - mongoCondition = mongoCondition.andCondition(new MongoCondition("areas", communityQuery.getId(), MongoOper.IS)); + if(null != communityQuery.getId() ||null!=communityQuery.getOrgAreaId()) { + List list = new ArrayList<>(); + if(null!=communityQuery.getOrgAreaId()){ + list.add(communityQuery.getOrgAreaId()); + } + if(null!=communityQuery.getId()){ + list.add(communityQuery.getId()); + } + mongoCondition = mongoCondition.andCondition(new MongoCondition("areas", list, MongoOper.ALL)); } MongoQuery mongoQuery = mongoCondition.toMongoQuery(); diff --git a/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoCondition.java b/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoCondition.java index 87ba088..c33f3a6 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoCondition.java +++ b/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoCondition.java @@ -2,6 +2,8 @@ package com.lyms.platform.common.dao.operator; import org.springframework.data.mongodb.core.query.Criteria; +import java.util.Collection; + /** * 封装mongo 条件属性的操作 对于模糊查询的时候 obj为一个正则表达式 如: * @@ -79,6 +81,20 @@ public class MongoCondition { return this; } + public MongoCondition all(Collection o,String key) { + if (criteria == null) { + criteria = Criteria.where(key); + set(MongoOper.ALL, o, criteria); + } else { + Criteria criteria1 = criteria.and(key); + set(MongoOper.ALL, o, criteria1); + criteria = criteria1; + } + + return this; + } + + /** * Query query = new Query(Criteria.where("b").elemMatch( Criteria.where("startDate").gte(date) .and("endDate").lte(date) ); * @@ -171,6 +187,12 @@ public class MongoCondition { criteria.lt(obj); } else if (MongoOper.NE == oper) { criteria.ne(obj); + }else if(MongoOper.ALL==oper){ + if(obj instanceof Collection){ + criteria.all((Collection)obj); + }else{ + criteria.all(obj); + } } } diff --git a/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoOper.java b/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoOper.java index c3ce1db..ff0edad 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoOper.java +++ b/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoOper.java @@ -19,5 +19,6 @@ public enum MongoOper { //不等于 NE, //模糊 - LIKE; + LIKE, + ALL; } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CommunityConfigController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CommunityConfigController.java index 67159dc..a5a1f09 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CommunityConfigController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CommunityConfigController.java @@ -103,7 +103,7 @@ public class CommunityConfigController extends BaseController { String areaId = autoMatchFacade.match(loginState.getId()); List communityConfigList; if (null != areaId) { - communityQuery.setId(areaId); + communityQuery.setOrgAreaId(areaId); } communityConfigList = communityConfigService.queryCommunity(communityQuery); List basicConfigs = null; -- 1.8.3.1