源码获取:关注文末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
implements PermissionService { - @Autowired
- private RoleService roleService;
-
- @Autowired
- private AdminUserDao adminUserDao;
-
-
- @Override
- public List
loadUserPermission(Integer id) { - List
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;
- }
-
- @Override
- public List
loadUserPermissionByType(Integer id, Integer type) { - List
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;
- }
-
- @Override
- public List
findPermissionsAndSelected(Integer id) { - Set
permissions = roleService.findOne(id).getPermissions(); - List
all = repository.findAll(); - for (Permission p: all) {
- if (permissions.contains(p)) p.setChecked("true");
- else p.setChecked("false");
- }
- return all;
- }
-
- @Override
- public Page
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
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 BaseServiceImplimplements ReplyService { @Override public Page findByPage(Reply reply, int pageNo, int length) { PageRequest pageable = new PageRequest(pageNo, length); Specification specification = new Specification (){ @Override public Predicate toPredicate(Root root, CriteriaQuery> criteriaQuery, CriteriaBuilder criteriaBuilder) { Path $id = root.get("id"); Path $content = root.get("content"); Path $user = root.get("user"); ArrayList 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 page = repository.findAll(specification, pageable); return page; } }