List of usage examples for org.hibernate.criterion DetachedCriteria createAlias
public DetachedCriteria createAlias(String associationPath, String alias)
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; }