• (免费分享)基于springboot论坛bbs系统


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

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

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

     前台截图:

     

     

     

     

     

     

     

    后台截图:

     

     

     

     

     

    1. package com.qxczh.admin.service.impl;
    2. import com.qxczh.admin.service.PermissionService;
    3. import com.qxczh.admin.service.RoleService;
    4. import com.qxczh.common.base.BaseServiceImpl;
    5. import com.qxczh.common.dao.AdminUserDao;
    6. import com.qxczh.common.dao.PermissionDao;
    7. import com.qxczh.common.entity.AdminUser;
    8. import com.qxczh.common.entity.Permission;
    9. import org.springframework.beans.factory.annotation.Autowired;
    10. import org.springframework.data.domain.Page;
    11. import org.springframework.data.domain.PageRequest;
    12. import org.springframework.data.domain.Sort;
    13. import org.springframework.stereotype.Service;
    14. import org.springframework.transaction.annotation.Transactional;
    15. import java.util.ArrayList;
    16. import java.util.Comparator;
    17. import java.util.List;
    18. import java.util.Set;
    19. import java.util.stream.Collectors;
    20. @Service
    21. @Transactional
    22. public class PermissionServiceImpl extends BaseServiceImpl implements PermissionService {
    23. @Autowired
    24. private RoleService roleService;
    25. @Autowired
    26. private AdminUserDao adminUserDao;
    27. @Override
    28. public List loadUserPermission(Integer id) {
    29. List perlist = new ArrayList<>();
    30. AdminUser user = adminUserDao.findOne(id);
    31. if (user.getRoles().size() > 0) {
    32. user.getRoles().stream()
    33. .filter(role -> role.getPermissions().size() > 0)
    34. .forEach(role -> {
    35. perlist.addAll(role.getPermissions().stream().filter(p -> p.getParentid() > 0).collect(Collectors.toList()));
    36. });
    37. }
    38. return perlist;
    39. }
    40. @Override
    41. public List loadUserPermissionByType(Integer id, Integer type) {
    42. List perlist = new ArrayList<>();
    43. AdminUser user = adminUserDao.findOne(id);
    44. if (user.getRoles().size() > 0) {
    45. user.getRoles().stream()
    46. .filter(role -> role.getPermissions().size() > 0)
    47. .forEach(role -> {
    48. perlist.addAll(role.getPermissions().stream().filter(p ->p.getParentid() > 0 && p.getType() == type)
    49. .sorted(Comparator.comparing(Permission::getSort))
    50. .collect(Collectors.toList()));
    51. });
    52. }
    53. return perlist;
    54. }
    55. @Override
    56. public List findPermissionsAndSelected(Integer id) {
    57. Set permissions = roleService.findOne(id).getPermissions();
    58. List all = repository.findAll();
    59. for (Permission p: all) {
    60. if (permissions.contains(p)) p.setChecked("true");
    61. else p.setChecked("false");
    62. }
    63. return all;
    64. }
    65. @Override
    66. public Page findByPage(int pageNo, int length) {
    67. Sort.Order order = new Sort.Order(Sort.Direction.ASC, "sort");
    68. Sort sort = new Sort(order);
    69. PageRequest pageRequest = new PageRequest(pageNo, length,sort);
    70. Page page = repository.findAll(pageRequest);
    71. return page;
    72. }
    73. }

     

    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 implements 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;
        }
    }
    
  • 相关阅读:
    WPF DataGrid开箱即用支持全部勾选的DataGridCheckBoxColumn
    代码随想录算法训练营19期第50天
    判断线程池任务执行完成的方式
    面试官:Redis如何实现持久化的、主从哨兵又是什么?
    maven重新加载后Target bytecode version总是变回1.8
    Java基于springboot公务员招考务信息发布平台#计算机毕业设计
    20_ue4进阶末日生存游戏开发[AI基础框架搭建]
    如何在 R 中执行幂回归
    【入门篇】1.5 redis 客户端Jedis和Lettuce对比详解
    【Vant2】Tab标签页组件自动跳转的坑
  • 原文地址:https://blog.csdn.net/weixin_42899150/article/details/127895954