/**
* 分页 查询成员列表
* @param params
* @param queryInfo
* @return
*/
public PartialCollection list(Map<String, String> params,QueryInfo queryInfo) {
String groupId=params.get("groupId");
String isAuth=params.get("isAuth");
String isInstall=params.get("isInstall");
String nameOrMdn=params.get("nameOrMdn");
String contactsId=params.get("contactsId");
String spId="";//params.get("spId");
String isAll=params.get("isAll");
MongoQuery query = createMongoQuery(MONGO_CONTACTS_COLLECTION);
BasicDBObject conds = new BasicDBObject();
conds.put("contactsId", contactsId);
if(StringUtil.isNullOrEmpty(spId)){
spId=getSpId();
}
conds.put("spId",spId);
conds.put("status", Constants.CONTACTS_MEMBER_STATUS_NORMAL);
BasicDBObject listMatch=new BasicDBObject();
if(StringUtil.isNotNullOrEmpty(groupId)){
if(Constants.CONTACTS_UNGROUPED_ID.equals(groupId)){//未分组 特殊处理
conds.put("status", Constants.CONTACTS_MEMBER_STATUS_NORMAL);
listMatch.put(QueryOperators.ELEM_MATCH, new BasicDBObject("id",groupId));
query.addAll(new BasicDBObject("groupList", listMatch));
}else{
conds.put("status", Constants.CONTACTS_MEMBER_STATUS_NORMAL);
List<String> gIdList = new ArrayList<String>();
if(Constants.YES.equals(isAll)){
List<Map<String,String>> gList = getGroupChildren(groupId,"3");
if(gList!=null){
for (Map<String,String> group : gList) {
gIdList.add(group.get("id"));
}
}
}else{
gIdList.add(groupId);
}
listMatch.put(QueryOperators.ELEM_MATCH, new BasicDBObject("id", new BasicDBObject(QueryOperators.IN,gIdList)));
query.addAll(new BasicDBObject("groupList", listMatch));
}
}
;
if(StringUtil.isNotNullOrEmpty(isAuth)){
if(Constants.YXT_NOT_AUTH.equals(isAuth)){
BasicDBObject queryObject = new BasicDBObject().append(
QueryOperators.OR,
new BasicDBObject[] { new BasicDBObject("yxtMap", new BasicDBObject(QueryOperators.EXISTS,false)),
new BasicDBObject("yxtMap.isAuth", isAuth)});
query.addAll(queryObject);
}else{
conds.put("yxtMap.isAuth",isAuth);
}
}
if(StringUtil.isNotNullOrEmpty(isInstall)){
if(Constants.YXT_NOT_INSTALL.equals(isInstall)){
conds.append(QueryOperators.OR,
new BasicDBObject[] { new BasicDBObject("yxtMap", new BasicDBObject(QueryOperators.EXISTS,false)),
new BasicDBObject("yxtMap.isInstall", isInstall)});
}else{
conds.put("yxtMap.isInstall",isInstall);
}
}
if(StringUtil.isNotNullOrEmpty(nameOrMdn)){
BasicDBObject queryObject = new BasicDBObject()
.append(QueryOperators.OR, new BasicDBObject[] { new BasicDBObject("name", getLikeBsonObj(nameOrMdn)), new BasicDBObject("mdn", nameOrMdn) });
query.addAll(queryObject);
}
query.addAll(conds);
query.setQueryInfo(queryInfo);
query.sort(new BasicDBObject());
logger.info("list member conds info"+query.getCondsObject().toString());
return query.listPartial();
}
mogodb or like array,map select
最新推荐文章于 2023-12-24 21:24:52 发布