Example usage for org.hibernate.criterion DetachedCriteria createAlias

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

Introduction

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

Prototype

public DetachedCriteria createAlias(String associationPath, String alias) 

Source Link

Document

Creates an association path alias within this DetachedCriteria.

Usage

From source file:com.glaf.base.utils.HibernateUtil.java

License:Apache License

/**
 * /*from w  w w. j av  a  2  s .  co  m*/
 * @param map
 * @param forClass
 * @return
 */
public static DetachedCriteria getCriteria(Map<String, String> map, Class<?> forClass) {
    DetachedCriteria detachedCriteria = DetachedCriteria.forClass(forClass);
    Set<String> params = map.keySet();
    // boolean createAliased = false;
    if (params != null) {
        Map<String, String> aliasMap = new java.util.HashMap<String, String>();// ??
        int aliasNum = 0;// ???
        Iterator<String> it = params.iterator();
        while (it.hasNext()) {
            String key = (String) it.next();
            String value = map.get(key) == null ? null : map.get(key).toString();
            value = value == null ? value : value.trim();
            if (key.startsWith(QUERY_PREFIX) && value != null && value.trim().length() > 0) {
                // ??
                String name = key.substring(QUERY_PREFIX.length());
                // ?? "="
                String op = "eq";
                if (name.indexOf("_") != -1) {
                    int pos = name.lastIndexOf("_");
                    op = name.substring(pos + 1);
                    name = name.substring(0, pos);
                }

                if ("me".equals(op)) { //  ?????
                    String maintAlias = detachedCriteria.getAlias();
                    // ? string 
                    detachedCriteria.add(Restrictions.sqlRestriction(maintAlias + "_." + name + "=" + value));

                } else if ("zns".equals(op)) { // 
                    // ? string 
                    detachedCriteria.add(Restrictions.sqlRestriction(" 1 = 2 "));

                } else if ("mn".equals(op)) { //  ?????
                    String maintAlias = detachedCriteria.getAlias();
                    // ? string 
                    detachedCriteria.add(Restrictions.sqlRestriction(maintAlias + "_." + name + " is NULL "));

                } else if ("mnn".equals(op)) { //  ?????
                    String maintAlias = detachedCriteria.getAlias();
                    // ? string 
                    detachedCriteria
                            .add(Restrictions.sqlRestriction(maintAlias + "_." + name + " is not NULL "));

                } else if ("md".equals(op)) { //  ?????
                    String maintAlias = detachedCriteria.getAlias();
                    // ? string 
                    detachedCriteria.add(Restrictions.sqlRestriction(maintAlias + "_." + name + "=?",
                            DateUtils.toDate(value), StandardBasicTypes.DATE));

                } else if ("mis".equals(op)) { // in( ?_select )
                    String maintAlias = detachedCriteria.getAlias();
                    // ? string 
                    detachedCriteria.add(
                            Restrictions.sqlRestriction(maintAlias + "_." + name + " in (" + value + ") "));
                } else if ("xd".equals(op)) { //  . date
                    // ? string 
                    int pos = name.lastIndexOf(".");
                    String alias = name.substring(0, pos);
                    name = name.substring(pos + 1);
                    if (aliasMap.get(alias) == null) {
                        detachedCriteria.createAlias(alias, alias);
                        aliasNum++;
                        aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                    }
                    detachedCriteria.add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "=? ",
                            DateUtils.toDate(value), StandardBasicTypes.DATE));
                } else if ("xs".equals(op)) { //  . String
                    // ? string 
                    int pos = name.lastIndexOf(".");
                    String alias = name.substring(0, pos);
                    name = name.substring(pos + 1);
                    if (aliasMap.get(alias) == null) {
                        detachedCriteria.createAlias(alias, alias);
                        aliasNum++;
                        aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                    }
                    detachedCriteria
                            .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "='" + value + "' "));
                } else if ("xe".equals(op)) { //  .  
                    if (!value.equals("") && Integer.parseInt(value) > 0) {
                        int pos = name.lastIndexOf(".");
                        String alias = name.substring(0, pos);
                        name = name.substring(pos + 1);
                        if (aliasMap.get(alias) == null) {
                            detachedCriteria.createAlias(alias, alias);
                            aliasNum++;
                            aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                        }
                        detachedCriteria
                                .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "=" + value));
                    }
                } else if ("ixe".equals(op)) { //  .  
                    if (!value.equals("") && Integer.parseInt(value) >= 0) {
                        int pos = name.lastIndexOf(".");
                        String alias = name.substring(0, pos);
                        name = name.substring(pos + 1);
                        if (aliasMap.get(alias) == null) {
                            detachedCriteria.createAlias(alias, alias);
                            aliasNum++;
                            aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                        }
                        detachedCriteria
                                .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "=" + value));
                    }
                } else if ("xel".equals(op)) { //  .  
                    if (!value.equals("") && Long.parseLong(value) != -1) {
                        int pos = name.lastIndexOf(".");
                        String alias = name.substring(0, pos);
                        name = name.substring(pos + 1);
                        if (aliasMap.get(alias) == null) {
                            detachedCriteria.createAlias(alias, alias);
                            aliasNum++;
                            aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                        }
                        detachedCriteria
                                .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "=" + value));
                    }
                } else if ("xne".equals(op)) { //  .  
                    if (!value.equals("") && Integer.parseInt(value) != -1) {
                        int pos = name.lastIndexOf(".");
                        String alias = name.substring(0, pos);
                        name = name.substring(pos + 1);
                        if (aliasMap.get(alias) == null) {
                            detachedCriteria.createAlias(alias, alias);
                            aliasNum++;
                            aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                        }
                        detachedCriteria
                                .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "<>" + value));
                    }
                } else if ("xi".equals(op)) { //  . in () String
                    int pos = name.lastIndexOf(".");
                    String alias = name.substring(0, pos);
                    name = name.substring(pos + 1);
                    if (aliasMap.get(alias) == null) {
                        detachedCriteria.createAlias(alias, alias);
                        aliasNum++;
                        aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                    }
                    // ? string 
                    detachedCriteria.add(
                            Restrictions.sqlRestriction(aliasMap.get(alias) + name + " in (" + value + ") "));
                } else if ("xl".equals(op)) { //  like . String
                    int pos = name.lastIndexOf(".");
                    String alias = name.substring(0, pos);
                    name = name.substring(pos + 1);
                    if (aliasMap.get(alias) == null) {
                        detachedCriteria.createAlias(alias, alias);
                        aliasNum++;
                        aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                    }
                    detachedCriteria.add(Restrictions
                            .sqlRestriction(aliasMap.get(alias) + name + " like '%" + value + "%'"));
                } else if (op.startsWith("xdate")) { // Date
                    String dateOp = "=";
                    if ("xdatelt".equals(op)) {
                        dateOp = "<";
                    } else if ("xdategt".equals(op)) {
                        dateOp = ">";
                    } else if ("xdatele".equals(op)) {
                        dateOp = "<=";
                    } else if ("xdatege".equals(op)) {
                        dateOp = ">=";
                    }
                    int pos = name.lastIndexOf(".");
                    String alias = name.substring(0, pos);
                    name = name.substring(pos + 1);
                    if (aliasMap.get(alias) == null) {
                        detachedCriteria.createAlias(alias, alias);
                        aliasNum++;
                        aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                    }
                    detachedCriteria.add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + dateOp + "?",
                            DateUtils.toDate(value), StandardBasicTypes.DATE));
                } else if (op.startsWith("date")) { // Date
                    String dateOp = "=";
                    if ("datelt".equals(op)) {
                        dateOp = "<";
                    } else if ("dategt".equals(op)) {
                        dateOp = ">";
                    } else if ("datele".equals(op)) {
                        dateOp = "<=";
                    } else if ("datege".equals(op)) {
                        dateOp = ">=";
                    }
                    detachedCriteria.add(Restrictions.sqlRestriction(name + dateOp + "?",
                            DateUtils.toDate(value), StandardBasicTypes.DATE));
                } /*
                  * else if(op.equals("double")){ //Double String doubleOp
                  * = "="; if("double".equals(op)){ } }
                  */else if ("like".equals(op)) { // like
                    detachedCriteria.add(Restrictions.like(name, "%" + value + "%"));
                } else if ("es".equals(op)) {
                    // if(Integer.parseInt(value) != -1){
                    detachedCriteria
                            .add(Restrictions.sqlRestriction(name + " = ? ", value, StandardBasicTypes.STRING));
                    // }
                } else if ("ex".equals(op)) { // =int
                    if (Integer.parseInt(value) != -1) {
                        detachedCriteria.add(Restrictions.eq(name, new Integer(value)));
                    }
                } else if ("el".equals(op)) { // =long
                    if (Long.parseLong(value) != -1) {
                        detachedCriteria.add(Restrictions.eq(name, new Long(value)));
                    }
                } else if ("ed".equals(op)) { // =double
                    if (Double.parseDouble(value) != -1) {
                        detachedCriteria.add(Restrictions.eq(name, new Double(value)));
                    }
                } else if ("nei".equals(op)) { // <>int
                    if (Integer.parseInt(value) != -1) {
                        detachedCriteria.add(Restrictions.ne(name, new Integer(value)));
                    }
                } else if ("nel".equals(op)) { // <>long
                    if (Long.parseLong(value) != -1) {
                        detachedCriteria.add(Restrictions.ne(name, new Long(value)));
                    }
                } else if ("in".equals(op)) { // in ()
                    if (!"".trim().equals(value)) {
                        String maintAlias = detachedCriteria.getAlias();
                        detachedCriteria.add(
                                Restrictions.sqlRestriction(maintAlias + "_." + name + " in (" + value + ") "));
                        // detachedCriteria.add(Restrictions
                        // .sqlRestriction(name + " in (" + value
                        // + ") "));
                    }
                } else if ("nin".equals(op)) { // not in ()
                    if (!"".trim().equals(value)) {
                        String maintAlias = detachedCriteria.getAlias();
                        detachedCriteria.add(Restrictions
                                .sqlRestriction(maintAlias + "_." + name + " not in (" + value + ") "));
                        // detachedCriteria.add(Restrictions
                        // .sqlRestriction(name + " not in (" + value
                        // + ") "));
                    }
                } else {
                    detachedCriteria.add(Restrictions.eq(name, value));
                }
            } else if (key.startsWith(ORDER_PREFIX)) {
                // ????? //order__asc(desc) ? hidden 
                String name = key.substring(ORDER_PREFIX.length());

                int pos = name.lastIndexOf(".");
                if (pos != -1) {
                    String alias = name.substring(0, pos);
                    if (aliasMap.get(alias) == null) {
                        detachedCriteria.createAlias(alias, alias);
                        aliasNum++;
                        aliasMap.put(alias, getNewAliasName(alias, aliasNum));
                    }
                }

                if (value.trim().equalsIgnoreCase("asc")) {
                    detachedCriteria.addOrder(Order.asc(name));
                } else {
                    detachedCriteria.addOrder(Order.desc(name));
                }
            }
        }
        map.putAll(aliasMap);
    }

    return detachedCriteria;
}

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   w  w w  . j ava2 s. c  om
    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);//from   w w w.j  a  va 2  s .  c  o  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()));
    }// w w  w  .jav 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.LinkService.java

License:Open Source License

@Transactional(readOnly = false)
public Page<Link> find(Page<Link> page, Link link, boolean isDataScopeFilter) {
    // ??6??// ww w  .j ava 2  s .c o 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.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   w ww . ja  va  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);
}

From source file:com.green.modules.sys.utils.UserUtils.java

License:Open Source License

public static List<Role> getRoleList() {
    @SuppressWarnings("unchecked")
    List<Role> list = (List<Role>) getCache(CACHE_ROLE_LIST);
    if (list == null) {
        User user = getUser();/*from w  w  w .jav  a  2  s  . c  o  m*/
        DetachedCriteria dc = roleDao.createDetachedCriteria();
        dc.createAlias("office", "office");
        dc.createAlias("userList", "userList", JoinType.LEFT_OUTER_JOIN);
        dc.add(dataScopeFilter(user, "office", "userList"));
        dc.add(Restrictions.eq(Role.FIELD_DEL_FLAG, Role.DEL_FLAG_NORMAL));
        dc.addOrder(Order.asc("office.code")).addOrder(Order.asc("name"));
        list = roleDao.find(dc);
        putCache(CACHE_ROLE_LIST, list);
    }
    return list;
}

From source file:com.heimaide.server.service.sys.SystemService.java

License:Open Source License

public Page<User> findUser(Page<User> page, User user) {
    User currentUser = UserUtils.getUser();
    DetachedCriteria dc = userDao.createDetachedCriteria();

    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() + ",%")));
    }/*  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", ""));

    if (StringUtils.isNotEmpty(user.getLoginName())) {
        dc.add(Restrictions.like("loginName", "%" + user.getLoginName() + "%"));
    }
    if (StringUtils.isNotEmpty(user.getName())) {
        dc.add(Restrictions.like("name", "%" + user.getName() + "%"));
    }

    if (!currentUser.isAdmin()) {
        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);
}

From source file:com.hongqiang.shop.modules.cms.service.ArticleService.java

License:Open Source License

public Page<Article> find(Page<Article> page, Article article, boolean isDataScopeFilter) {
    // ??6??/*from  www.  j av  a  2s  .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 && article.getCategory().getId() != null
            && !Category.isRoot(article.getCategory().getId())) {
        Category category = categoryDao.findOne(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 && article.getCreateBy().getId() > 0) {
        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.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.hongqiang.shop.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);//  w w  w.j  av a  2  s.co  m
        // 
        Set<Long> parentIdSet = Sets.newHashSet();
        for (Category e : list) {
            if (e.getParent() != null && e.getParent().getId() != null) {
                boolean isExistParent = false;
                for (Category e2 : list) {
                    if (e.getParent().getId().longValue() == e2.getId().longValue()) {
                        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().longValue() == 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;
}