Example usage for org.hibernate.criterion DetachedCriteria add

List of usage examples for org.hibernate.criterion DetachedCriteria add

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria add.

Prototype

public DetachedCriteria add(Criterion criterion) 

Source Link

Document

Add a restriction

Usage

From source file:com.green.modules.cms.service.ArticleService.java

License:Open Source License

@Transactional(readOnly = false)
public Page<Article> find(Page<Article> page, Article article, boolean isDataScopeFilter) {
    // ??6??//from   ww  w.ja va2s  .  c o  m
    Date updateExpiredWeightDate = (Date) CacheUtils.get("updateExpiredWeightDateByArticle");
    if (updateExpiredWeightDate == null
            || (updateExpiredWeightDate != null && updateExpiredWeightDate.getTime() < new Date().getTime())) {
        articleDao.updateExpiredWeight();
        CacheUtils.put("updateExpiredWeightDateByArticle", DateUtils.addHours(new Date(), 6));
    }
    DetachedCriteria dc = articleDao.createDetachedCriteria();
    dc.createAlias("category", "category");
    dc.createAlias("category.site", "category.site");
    if (article.getCategory() != null && StringUtils.isNotBlank(article.getCategory().getId())
            && !Category.isRoot(article.getCategory().getId())) {
        Category category = categoryDao.get(article.getCategory().getId());
        if (category != null) {
            dc.add(Restrictions.or(Restrictions.eq("category.id", category.getId()),
                    Restrictions.like("category.parentIds", "%," + category.getId() + ",%")));
            dc.add(Restrictions.eq("category.site.id", category.getSite().getId()));
            article.setCategory(category);
        } else {
            dc.add(Restrictions.eq("category.site.id", Site.getCurrentSiteId()));
        }
    } else {
        dc.add(Restrictions.eq("category.site.id", Site.getCurrentSiteId()));
    }
    if (StringUtils.isNotEmpty(article.getTitle())) {
        dc.add(Restrictions.like("title", "%" + article.getTitle() + "%"));
    }
    if (StringUtils.isNotEmpty(article.getPosid())) {
        dc.add(Restrictions.like("posid", "%," + article.getPosid() + ",%"));
    }
    if (StringUtils.isNotEmpty(article.getImage()) && Article.YES.equals(article.getImage())) {
        dc.add(Restrictions.and(Restrictions.isNotNull("image"), Restrictions.ne("image", "")));
    }
    if (article.getCreateBy() != null && StringUtils.isNotBlank(article.getCreateBy().getId())) {
        dc.add(Restrictions.eq("createBy.id", article.getCreateBy().getId()));
    }
    if (isDataScopeFilter) {
        dc.createAlias("category.office", "categoryOffice").createAlias("createBy", "createBy");
        dc.add(dataScopeFilter(UserUtils.getUser(), "categoryOffice", "createBy"));
    }
    dc.add(Restrictions.eq(Article.FIELD_DEL_FLAG, article.getDelFlag()));
    if (StringUtils.isBlank(page.getOrderBy())) {
        dc.addOrder(Order.desc("weight"));
        dc.addOrder(Order.desc("updateDate"));
    }
    return articleDao.find(page, dc);
}

From source file:com.green.modules.cms.service.CategoryService.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<Category> findByUser(boolean isCurrentSite, String module) {

    List<Category> list = (List<Category>) UserUtils.getCache(CACHE_CATEGORY_LIST);
    if (list == null) {
        User user = UserUtils.getUser();
        DetachedCriteria dc = categoryDao.createDetachedCriteria();
        dc.createAlias("office", "office").createAlias("createBy", "user");
        dc.add(dataScopeFilter(user, "office", "user"));
        //         dc.add(Restrictions.or(Restrictions.isNull("href"),Restrictions.eq("href", "")));
        dc.add(Restrictions.eq("delFlag", Category.DEL_FLAG_NORMAL));
        dc.addOrder(Order.asc("site.id")).addOrder(Order.asc("sort"));
        list = categoryDao.find(dc);/*www. j  av a  2  s .  co  m*/
        // 
        Set<String> parentIdSet = Sets.newHashSet();
        for (Category e : list) {
            if (e.getParent() != null && StringUtils.isNotBlank(e.getParent().getId())) {
                boolean isExistParent = false;
                for (Category e2 : list) {
                    if (e.getParent().getId().equals(e2.getId())) {
                        isExistParent = true;
                        break;
                    }
                }
                if (!isExistParent) {
                    parentIdSet.add(e.getParent().getId());
                }
            }
        }
        if (parentIdSet.size() > 0) {
            dc = categoryDao.createDetachedCriteria();
            dc.add(Restrictions.in("id", parentIdSet));
            dc.add(Restrictions.eq("delFlag", Category.DEL_FLAG_NORMAL));
            dc.addOrder(Order.asc("site.id")).addOrder(Order.asc("sort"));
            list.addAll(0, categoryDao.find(dc));
        }
        UserUtils.putCache(CACHE_CATEGORY_LIST, list);
    }

    if (isCurrentSite) {
        List<Category> categoryList = Lists.newArrayList();
        for (Category e : list) {
            if (Category.isRoot(e.getId()) || (e.getSite() != null && e.getSite().getId() != null
                    && e.getSite().getId().equals(Site.getCurrentSiteId()))) {
                if (StringUtils.isNotEmpty(module)) {
                    if (module.equals(e.getModule()) || "".equals(e.getModule())) {
                        categoryList.add(e);
                    }
                } else {
                    categoryList.add(e);
                }
            }
        }
        return categoryList;
    }
    return list;
}

From source file:com.green.modules.cms.service.CategoryService.java

License:Open Source License

public Page<Category> find(Page<Category> page, Category category) {
    DetachedCriteria dc = categoryDao.createDetachedCriteria();
    if (category.getSite() != null && StringUtils.isNotBlank(category.getSite().getId())) {
        dc.createAlias("site", "site");
        dc.add(Restrictions.eq("site.id", category.getSite().getId()));
    }/*from  www . ja  v a2s .c  o  m*/
    if (category.getParent() != null && StringUtils.isNotBlank(category.getParent().getId())) {
        dc.createAlias("parent", "parent");
        dc.add(Restrictions.eq("parent.id", category.getParent().getId()));
    }
    if (StringUtils.isNotBlank(category.getInMenu()) && Category.SHOW.equals(category.getInMenu())) {
        dc.add(Restrictions.eq("inMenu", category.getInMenu()));
    }
    dc.add(Restrictions.eq(Category.FIELD_DEL_FLAG, Category.DEL_FLAG_NORMAL));
    dc.addOrder(Order.asc("site.id")).addOrder(Order.asc("sort"));
    return categoryDao.find(page, dc);
    //      page.setSpringPage(categoryDao.findByParentId(category.getParent().getId(), page.getSpringPage()));
    //      return page;
}

From source file:com.green.modules.cms.service.CommentService.java

License:Open Source License

public Page<Comment> find(Page<Comment> page, Comment comment) {
    DetachedCriteria dc = commentDao.createDetachedCriteria();
    if (StringUtils.isNotBlank(comment.getContentId())) {
        dc.add(Restrictions.eq("contentId", comment.getContentId()));
    }//from   w ww  .j av  a  2 s  .c  o  m
    if (StringUtils.isNotEmpty(comment.getTitle())) {
        dc.add(Restrictions.like("title", "%" + comment.getTitle() + "%"));
    }
    dc.add(Restrictions.eq(Comment.FIELD_DEL_FLAG, comment.getDelFlag()));
    dc.addOrder(Order.desc("id"));
    return commentDao.find(page, dc);
}

From source file:com.green.modules.cms.service.GuestbookService.java

License:Open Source License

public Page<Guestbook> find(Page<Guestbook> page, Guestbook guestbook) {
    DetachedCriteria dc = guestbookDao.createDetachedCriteria();
    if (StringUtils.isNotEmpty(guestbook.getType())) {
        dc.add(Restrictions.eq("type", guestbook.getType()));
    }//from  ww  w .j a  v  a 2  s  .  c  o  m
    if (StringUtils.isNotEmpty(guestbook.getContent())) {
        dc.add(Restrictions.like("content", "%" + guestbook.getContent() + "%"));
    }
    dc.add(Restrictions.eq(Guestbook.FIELD_DEL_FLAG, guestbook.getDelFlag()));
    dc.addOrder(Order.desc("id"));
    return guestbookDao.find(page, dc);
}

From source file:com.green.modules.cms.service.LinkService.java

License:Open Source License

@Transactional(readOnly = false)
public Page<Link> find(Page<Link> page, Link link, boolean isDataScopeFilter) {
    // ??6??//w  w w  .  j a v a2s . co m
    Date updateExpiredWeightDate = (Date) CacheUtils.get("updateExpiredWeightDateByLink");
    if (updateExpiredWeightDate == null
            || (updateExpiredWeightDate != null && updateExpiredWeightDate.getTime() < new Date().getTime())) {
        linkDao.updateExpiredWeight();
        CacheUtils.put("updateExpiredWeightDateByLink", DateUtils.addHours(new Date(), 6));
    }
    DetachedCriteria dc = linkDao.createDetachedCriteria();
    dc.createAlias("category", "category");
    dc.createAlias("category.site", "category.site");
    if (link.getCategory() != null && StringUtils.isNotBlank(link.getCategory().getId())
            && !Category.isRoot(link.getCategory().getId())) {
        Category category = categoryDao.get(link.getCategory().getId());
        if (category != null) {
            dc.add(Restrictions.or(Restrictions.eq("category.id", category.getId()),
                    Restrictions.like("category.parentIds", "%," + category.getId() + ",%")));
            dc.add(Restrictions.eq("category.site.id", category.getSite().getId()));
            link.setCategory(category);
        } else {
            dc.add(Restrictions.eq("category.site.id", Site.getCurrentSiteId()));
        }
    } else {
        dc.add(Restrictions.eq("category.site.id", Site.getCurrentSiteId()));
    }
    if (StringUtils.isNotEmpty(link.getTitle())) {
        dc.add(Restrictions.like("title", "%" + link.getTitle() + "%"));
    }
    if (link.getCreateBy() != null && StringUtils.isNotBlank(link.getCreateBy().getId())) {
        dc.add(Restrictions.eq("createBy.id", link.getCreateBy().getId()));
    }
    if (isDataScopeFilter) {
        dc.createAlias("category.office", "categoryOffice").createAlias("createBy", "createBy");
        dc.add(dataScopeFilter(UserUtils.getUser(), "categoryOffice", "createBy"));
    }
    dc.add(Restrictions.eq(Link.FIELD_DEL_FLAG, link.getDelFlag()));
    dc.addOrder(Order.desc("weight"));
    dc.addOrder(Order.desc("updateDate"));
    return linkDao.find(page, dc);
}

From source file:com.green.modules.cms.service.SiteService.java

License:Open Source License

public Page<Site> find(Page<Site> page, Site site) {
    DetachedCriteria dc = siteDao.createDetachedCriteria();
    if (StringUtils.isNotEmpty(site.getName())) {
        dc.add(Restrictions.like("name", "%" + site.getName() + "%"));
    }//from   ww w . jav  a 2s  .c  o m
    dc.add(Restrictions.eq(Site.FIELD_DEL_FLAG, site.getDelFlag()));
    //dc.addOrder(Order.asc("id"));
    return siteDao.find(page, dc);
}

From source file:com.green.modules.sys.service.DictService.java

License:Open Source License

public Page<Dict> find(Page<Dict> page, Dict dict) {
    // MyBatis /*from   www.j  av  a  2  s .c  o m*/
    //      dict.setPage(page);
    //      page.setList(myBatisDictDao.find(dict));
    //      return page;
    // Hibernate 
    DetachedCriteria dc = dictDao.createDetachedCriteria();
    if (StringUtils.isNotEmpty(dict.getType())) {
        dc.add(Restrictions.eq("type", dict.getType()));
    }
    if (StringUtils.isNotEmpty(dict.getDescription())) {
        dc.add(Restrictions.like("description", "%" + dict.getDescription() + "%"));
    }
    dc.add(Restrictions.eq(Dict.FIELD_DEL_FLAG, Dict.DEL_FLAG_NORMAL));
    dc.addOrder(Order.asc("type")).addOrder(Order.asc("sort")).addOrder(Order.desc("id"));
    return dictDao.find(page, dc);
}

From source file:com.green.modules.sys.service.LogService.java

License:Open Source License

public Page<Log> find(Page<Log> page, Map<String, Object> paramMap) {
    DetachedCriteria dc = logDao.createDetachedCriteria();

    Long createById = StringUtils.toLong(paramMap.get("createById"));
    if (createById > 0) {
        dc.add(Restrictions.eq("createBy.id", createById));
    }//from  w w  w .jav  a 2  s. c om

    String requestUri = ObjectUtils.toString(paramMap.get("requestUri"));
    if (StringUtils.isNotBlank(requestUri)) {
        dc.add(Restrictions.like("requestUri", "%" + requestUri + "%"));
    }

    String exception = ObjectUtils.toString(paramMap.get("exception"));
    if (StringUtils.isNotBlank(exception)) {
        dc.add(Restrictions.eq("type", Log.TYPE_EXCEPTION));
    }

    Date beginDate = DateUtils.parseDate(paramMap.get("beginDate"));
    if (beginDate == null) {
        beginDate = DateUtils.setDays(new Date(), 1);
        paramMap.put("beginDate", DateUtils.formatDate(beginDate, "yyyy-MM-dd"));
    }
    Date endDate = DateUtils.parseDate(paramMap.get("endDate"));
    if (endDate == null) {
        endDate = DateUtils.addDays(DateUtils.addMonths(beginDate, 1), -1);
        paramMap.put("endDate", DateUtils.formatDate(endDate, "yyyy-MM-dd"));
    }
    dc.add(Restrictions.between("createDate", beginDate, endDate));

    dc.addOrder(Order.desc("id"));
    return logDao.find(page, dc);
}

From source file:com.green.modules.sys.service.SystemService.java

License:Open Source License

public Page<User> findUser(Page<User> page, User user) {
    DetachedCriteria dc = userDao.createDetachedCriteria();
    User currentUser = UserUtils.getUser();
    dc.createAlias("company", "company");
    if (user.getCompany() != null && StringUtils.isNotBlank(user.getCompany().getId())) {
        dc.add(Restrictions.or(Restrictions.eq("company.id", user.getCompany().getId()),
                Restrictions.like("company.parentIds", "%," + user.getCompany().getId() + ",%")));
    }//from ww  w.  ja v  a  2  s  .c  o m
    dc.createAlias("office", "office");
    if (user.getOffice() != null && StringUtils.isNotBlank(user.getOffice().getId())) {
        dc.add(Restrictions.or(Restrictions.eq("office.id", user.getOffice().getId()),
                Restrictions.like("office.parentIds", "%," + user.getOffice().getId() + ",%")));
    }
    // ????
    if (!currentUser.isAdmin()) {
        dc.add(Restrictions.ne("id", "1"));
    }
    dc.add(dataScopeFilter(currentUser, "office", ""));
    //System.out.println(dataScopeFilterString(currentUser, "office", ""));
    if (StringUtils.isNotEmpty(user.getLoginName())) {
        dc.add(Restrictions.like("loginName", "%" + user.getLoginName() + "%"));
    }
    if (StringUtils.isNotEmpty(user.getName())) {
        dc.add(Restrictions.like("name", "%" + user.getName() + "%"));
    }
    dc.add(Restrictions.eq(User.FIELD_DEL_FLAG, User.DEL_FLAG_NORMAL));
    if (!StringUtils.isNotEmpty(page.getOrderBy())) {
        dc.addOrder(Order.asc("company.code")).addOrder(Order.asc("office.code")).addOrder(Order.desc("name"));
    }
    return userDao.find(page, dc);
}