源码获取:关注文末gongzhonghao,输入010领取下载链接

开发工具IDEA ,数据库mysql5.7

技术:springboot+jpa+shiro+redis+layui

前台截图:

后台截图:

package com.qxczh.admin.service.impl;import com.qxczh.admin.service.PermissionService;
import com.qxczh.admin.service.RoleService;
import com.qxczh.common.base.BaseServiceImpl;
import com.qxczh.common.dao.AdminUserDao;
import com.qxczh.common.dao.PermissionDao;
import com.qxczh.common.entity.AdminUser;
import com.qxczh.common.entity.Permission;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;@Service
@Transactional
public class PermissionServiceImpl extends BaseServiceImpl<PermissionDao, Permission> implements PermissionService {@Autowiredprivate RoleService roleService;@Autowiredprivate AdminUserDao adminUserDao;@Overridepublic List<Permission> loadUserPermission(Integer id) {List<Permission> perlist = new ArrayList<>();AdminUser user = adminUserDao.findOne(id);if (user.getRoles().size() > 0) {user.getRoles().stream().filter(role -> role.getPermissions().size() > 0).forEach(role -> {perlist.addAll(role.getPermissions().stream().filter(p -> p.getParentid() > 0).collect(Collectors.toList()));});}return perlist;}@Overridepublic List<Permission> loadUserPermissionByType(Integer id, Integer type) {List<Permission> perlist = new ArrayList<>();AdminUser user = adminUserDao.findOne(id);if (user.getRoles().size() > 0) {user.getRoles().stream().filter(role -> role.getPermissions().size() > 0).forEach(role -> {perlist.addAll(role.getPermissions().stream().filter(p ->p.getParentid() > 0 && p.getType() == type).sorted(Comparator.comparing(Permission::getSort)).collect(Collectors.toList()));});}return perlist;}@Overridepublic List<Permission> findPermissionsAndSelected(Integer id) {Set<Permission> permissions = roleService.findOne(id).getPermissions();List<Permission> all = repository.findAll();for (Permission p: all) {if (permissions.contains(p)) p.setChecked("true");else p.setChecked("false");}return all;}@Overridepublic Page<Permission> findByPage(int pageNo, int length) {Sort.Order order = new Sort.Order(Sort.Direction.ASC, "sort");Sort sort = new Sort(order);PageRequest pageRequest = new PageRequest(pageNo, length,sort);Page<Permission> page = repository.findAll(pageRequest);return page;}}
package com.qxczh.admin.service.impl;import com.qxczh.admin.service.ReplyService;
import com.qxczh.common.base.BaseServiceImpl;
import com.qxczh.common.dao.ReplyDao;
import com.qxczh.common.entity.Posts;
import com.qxczh.common.entity.Reply;
import com.qxczh.common.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;import javax.persistence.criteria.*;
import java.util.ArrayList;@Service
public class ReplyServiceImpl extends BaseServiceImpl<ReplyDao,Reply> implements ReplyService {@Overridepublic Page<Reply> findByPage(Reply reply, int pageNo, int length) {PageRequest pageable = new PageRequest(pageNo, length);Specification<Posts> specification = new Specification<Posts>(){@Overridepublic Predicate toPredicate(Root<Posts> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {Path<Integer> $id = root.get("id");Path<String> $content = root.get("content");Path<User> $user = root.get("user");ArrayList<Predicate> list = new ArrayList<>();if (reply.getId()!=null) list.add(criteriaBuilder.equal($id,reply.getId()));if (reply.getContent()!=null) list.add(criteriaBuilder.like($content,"%" + reply.getContent() + "%"));if (reply.getUser()!=null) list.add(criteriaBuilder.equal($user,reply.getUser()));Predicate predicate = criteriaBuilder.and(list.toArray(new Predicate[list.size()]));return predicate;}};Page<Reply> page = repository.findAll(specification, pageable);return page;}
}

(免费分享)基于springboot论坛bbs系统相关推荐

  1. (免费分享)基于springboot,vue公司财务系统

    该系统是一个简单的公司财务管理系统,包含用户基本信息管理(员工管理,管理员管理),工资管理(员工工资管理,管理员工资管理),业务管理(员工业务管理,管理员业务管理),系统管理(系统留言公告,用户管理, ...

  2. (免费分享)springboot论坛bbs系统

    源码获取:关注文末gongzhonghao,输入010领取下载链接 开发工具:IDEA 数据库mysql5.7 技术:springboot+jpa+shiro+redis+layui 前台截图: 后台 ...

  3. (免费分享)基于ssm的BBS社区论坛系统带论文

    项目描述 前台部分: 1.用户注册登录模块 用户登录后,可以进行发帖回帖功能,在线签到功能,完善个人信息,添加好友,收藏贴子,评论帖子,点赞功能,记录功能(比如记录今天发生的事情)等等- 2.排行榜模 ...

  4. (免费分享)基于springboot医药进销存系统

    源码获取:关注文末gongzhonghao,输入014领取下载链接 开发工具:IDEA,数据库mysql 技术:springboot+mybatis 系统主要分两个角色,客户和员工 package c ...

  5. (免费分享)基于springboot,vue在线考试系统

    该项目是一个前后端分离,后端使用 SpringBoot,前端使用 VUE 和 Element-UI 组件库配合完成开发. 开发工具:IDEA,数据库:mysql5.7 源码获取:下方gongzhong ...

  6. (免费分享)基于springboot实习管理系统

    源码领取:关注下方gongzhonghao,输入002获取下载链接 项目介绍 本系统的用户可以分为三种:管理员.教师.学生.三种角色登录后会有不同菜单界面: 管理员主要功能:   信息管理     学 ...

  7. (免费分享)基于springboot校园实习管理系统

    项目介绍 本系统的用户可以分为三种:管理员.教师.学生.三种角色登录后会有不同菜单界面: 管理员主要功能: 信息管理 学生信息管理.教师信息管理.生产实习信息管理.顶岗实习信息管理: 生产实习 生产实 ...

  8. (免费分享)基于springboot健康运动-带论文

    源码获取:关注文末gongzhonghao,输入013领取下载链接 ​开发工具:IDEA, mysql5.7 技术:springboot+mybatis-plus 健康管理包括:健康体检.健康评估.健 ...

  9. 基于springboot小型命题系统毕业设计源码011508

    基于springboot小型命题系统  摘  要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于小型命题系统当然也不能排除在外,随着网络技术的不断成熟,带 ...

最新文章

  1. 2020卫星参数表大全_王者荣耀比较秀的名字 2020年比较骚气比较浪的王者荣耀名字大全...
  2. CSS入门之引用、选择器、属性(六分之三)
  3. 功能自动化测试工具列表大全
  4. 「CF622F」The Sum of the k-th Powers「拉格朗日插值」
  5. 基于线性表邻接矩阵结构的图的深度/广度优先搜索算法
  6. vim 底行命令模式下的全局命令 g(global)
  7. 为什么我不建议你使用Java序列化
  8. mysql 1016 145_Mysql中出现 errno:145的解决方法
  9. Xorg可以使用hot-plug了,不过配置很麻烦
  10. OLAP -- ODS 项目总结 -- BI 中的关键
  11. B - I Hate It(单点更新)(区间求最大值)
  12. php 汉字unico编码范围,汉字 Unicode 编码范围
  13. GPRS网络继电器(网络开关)介绍
  14. CSS——div垂直居中及div内文字垂直居中
  15. 64位驱动 hp630打印机_HP LaserJet1010 打印机驱动win7 64位
  16. 网络空间同样需要“天朗气清”
  17. Rabbitmq 安全账号管理方案
  18. mPaas苹果客户端离线包引入http的js白屏问题解决办法
  19. 漫画:什么是 “图”?
  20. extern与static

热门文章

  1. 【机器学习】EM 算法
  2. Shotgun/Shotgrid入门学习笔记一
  3. Ubuntu更改用户名
  4. {ret:100029,msg:client request's api name is not existed}
  5. 如何通过Apple ID找回弄丢的设备
  6. C语言进阶-高阶指针
  7. 雅可比行列式_二重积分换元法、雅可比行列式
  8. 项目 --- 《水晶报表》
  9. Mobius transform
  10. 计算机集中控制系统结构上和DCS基本一致,dcs集中控制系统