mogodb or like array,map select

    /**
     * 分页 查询成员列表
     * @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();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值