//获取动态条件的集合
List<Long> list = new ArrayList<Long>();
Long sysUserId = currentUser.getSysUserId();
if (sysUserId != null) {
SysUser sysUser = sysUserRepository.findOne(sysUserId);
if (sysUser != null) {
String groupItemIds = sysUser.groupItemIds();
if (groupItemIds != null && !groupItemIds.isEmpty()) {
String[] str = StringUtils.split(groupItemIds,",");
for (String s : str) {
if (s != null && !s.isEmpty() && s != "") {
list.add(Long.valueOf(s));
}
}
}
}
}
//封装Specification查询条件
Specification<Goods> spec = (root, query, cb) -> {
List<Predicate> predicates = new ArrayList<Predicate>(); List<Predicate> preList = new ArrayList<Predicate>();
if (list != null && list.size()>0) {
preList.add(root.<Long>get("groupItemId").in(list));
}
if (sysUserId != null) {
Predicate predicate = cb.equal(root.get(Goods_.crtUserId), sysUserId);
preList.add(predicate);
}
Predicate p = cb.or(preList.toArray(new Predicate[preList.size()]));
predicates.add(p);
if (!predicates.isEmpty()) {
return cb.and(predicates.toArray(new Predicate[0]));
} else {
return null;
}
}; Page<Goods> pageresult = goodsRepository.findAll(spec, pageable);

最新文章

  1. EXT5 时间框控制(开始时间不能大于结束时间)
  2. Singleton
  3. Linux命令集合
  4. x86和x64的区别
  5. Unity代码设置shader属性
  6. JS根据服务器时间倒计时
  7. HTML标签语义对照表
  8. UVA 11078 Open Credit System(扫描 维护最大值)
  9. cocos2dx lua调用C++类.
  10. Angular筛选功能
  11. 学习ASP.NET Core Razor 编程系列十三——文件上传功能(一)
  12. 从SQL注入到内网漫游
  13. consul配置和使用
  14. topcoder srm 692 div1 -23
  15. (转载)WinformGDI+入门级实例——扫雷游戏(附源码)
  16. FTP上传下载类
  17. python关于时间的计算,time模块
  18. java8 write file 写文件
  19. 一个php日志类
  20. mongoexport

热门文章

  1. sqlachemy 原生sql输出
  2. [hdu6432]Problem G. Cyclic
  3. 【BestCoder #48】
  4. GYM - 101147 A.The game of Osho
  5. 冒泡排序 [组合数学+dp]
  6. 51nod 1040 最大公约数之和 | 数论
  7. 洛谷 P3302 [SDOI2013]森林 解题报告
  8. transform perspective的层级问题
  9. 【ZBH选讲&#183;拍照】
  10. shell脚本——项目1