源码获取:关注文末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 {@Autowiredprivate RoleService roleService;@Autowiredprivate AdminUserDao adminUserDao;@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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 {@Overridepublic Page findByPage(Reply reply, int pageNo, int length) {PageRequest pageable = new PageRequest(pageNo, length);Specification specification = new Specification (){@Overridepublic 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;} }