Spring Boot实现文章分类和文章标签
 发布时间 
 阅读量: 
 阅读量 
实现文章分类和文章标签
环境
以下是按照要求进行的同义改写
以下是对原文内容逐一进行同义改写的详细过程
博客功能
删除
    //修改BlogController
    
    @GetMapping("{id}/delete")
    public String delete(@PathVariable Long id){
    blogService.deleteById(id);
    return "redirect:/admin/blogs";
    }
            //修改IBlogService
    
    void deleteById(Long id);
            //修改BlogServiceImpl
    
    @Override
    public void deleteById(Long id) {
    blogDao.deleteById(id);
    }
        新增
    //修改BlogController
    
    @GetMapping("input")
    public String input(Model model){
    model.addAttribute("blog",new Blog());				
    model.addAttribute("types",typeService.listType());	
    model.addAttribute("tags",tagService.listType());	
    return "admin/blogs-input";
    }
    
    @RequestMapping("add")
    public String add(Blog blog, HttpSession session){
    User user = (User) session.getAttribute("user");
    blog.setUser(user);
    String tagIds = blog.getTagIds();
    List<Tag> tagList=tagService.getTagByIds(tagIds);
    blog.setTags(tagList);
    if(blog.getId()==null){
        blogService.add(blog);
    }else {
        blogService.update(blog);
    }
            //修改IBlogService
    
    void add(Blog blog);
            //修改BlogServiceImpl
    
    @Override
    public void add(Blog blog) {
    blog.setCreateTime(new Date());
    blog.setUpdateTime(new Date());
    blogDao.save(blog);
    }
    
    public void initTags(Long id) {
    //3,4,5
    List<Tag> tags = this.getTags();
    StringBuffer ids=new StringBuffer();
    if(!tags.isEmpty()){
        Boolean flag=false;
        for(Tag t:tags){
            if(flag){
                ids.append(t.getId());
                flag=true;
            }else {
                ids.append(",");
                ids.append(t.getId());
            }
        }
        this.setTagIds(ids.toString());
    }
    }
            //修改TypeService
    List<Type> listType();
            //修改TypeServiceImpl
    @Override
    public List<Type> listType() {
    return typeDao.findAll();
    }
        修改
    //修改BlogController
     @RequestMapping("{id}/toUpdate")
     public String toUpdate(@PathVariable Long id,Model model){
     Blog blog=blogService.getBlog(id);
     blog.initTags(id);
     model.addAttribute("blog",blog);
     model.addAttribute("types",typeService.listType());
     model.addAttribute("tags",tagService.listType());
     return  "admin/blogs-input";
     }
            //修改IBlogService
    void update(Blog blog);
            //修改BlogServiceImpl
    @Override
    public void update(Blog blog) {
    Blog one = blogDao.getOne(blog.getId());
    BeanUtils.copyProperties(one,blog);
    one.setUpdateTime(new Date());
    blogDao.save(one);
    }
            //修改TagService
    
    List<Tag> getTagByIds(String tagIds);
            //修改TagServiceImpl
    @Override
    public List<Tag> getTagByIds(String tagIds) {
    //3,4,5
    List<Long> ids=new ArrayList<>();
    if(tagIds !=null && tagIds != ""){
        String[] s = tagIds.split(",");
        for(int i=0;i<s.length;i++){
            if(!StringUtils.isEmpty(s[i])){
                ids.add(new Long(s[i]));
            }
        }
    }
        分类
    //完善BlogController的add方法
    
    @RequestMapping("add")
    public String add(Blog blog, HttpSession session){
    User user = (User) session.getAttribute("user");
    blog.setUser(user);
    String tagIds = blog.getTagIds();
    List<Tag> tagList=tagService.getTagByIds(tagIds);
    blog.setTags(tagList);
    if(blog.getId()==null){
        blogService.add(blog);
    }else {
        blogService.update(blog);
    }
    return "redirect:/admin/blogs";
    }
        搜索
    //修改BlogController
    @RequestMapping("search")
    public String search(@PageableDefault(size = 5,sort = {"updataTime"},direction = Sort.Direction.DESC) Pageable pageable,
                     BlogQuery BlogQuery,Model model){
    Page<Blog> page=blogService.listBlog(Pageable,BlogQuery);
    model.addAttribute("page",page);
    return "admin/blog::blogList";
    }
            //修改IBlogService
    Blog getBlog(Long id);
            //修改BlogServiceImpl
    @Override
    public Blog getBlog(Long id) {
        return blogDao.getOne(id);
    }
            //修改BlogService
    Page<Blog> listBlog(Pageable pageable, BlogQuery blogQuery);
            //修改BlogServiceImpl
     @Override
     public Page<Blog> listBlog(Pageable pageable, BlogQuery blogQuery) {
     Specification<Blog> specification=new Specification<Blog>() {
         @Override
         public Predicate toPredicate(Root<Blog> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
             List<Predicate> predicates=new ArrayList<>();
             if(!StringUtils.isEmpty(blogQuery.getTitle())){
                 predicates.add(criteriaBuilder.like(root.<String>get("title"),"%"+blogQuery.getTitle()+"%"));
             }
             if(blogQuery.getTypeId()!=null){
                 predicates.add(criteriaBuilder.equal(root.<Type>get("type").get("id"),blogQuery.getTypeId()));
             }
             if(blogQuery.getRecommend()){
                 predicates.add(criteriaBuilder.equal(root.<Boolean>get("recommend"),blogQuery.getRecommend()));
             }
             criteriaQuery.where(predicates.toArray(new Predicate[predicates.size()]));
             return null;
         }
     };
     return blogDao.findAll(specification, pageable);
     }
            //创建IndexController
    @Controller
    public class IndexController {
    
    @Autowired
    private IBlogService blogService;
    
    @Autowired
    private ITypeService typeService;
    
    @Autowired
    private ITagService tagService;
    
    @RequestMapping("/")
    public String index(@PageableDefault(size = 5,sort = {"updateTime"},direction = Sort.Direction.DESC)Pageable pageable,
                        Model model){
        Page<Blog> page = blogService.listBlog(pageable);
        List<Type> types=typeService.listTypeTop(6);
        List<Tag> tags=tagService.listTypeTop(6);
        List<Blog> blogs=blogService.listRecommendBlogTop(3);
        model.addAttribute("page",page);
        model.addAttribute("types",types);
        model.addAttribute("tags",tags);
        model.addAttribute("recommendBlogs",blogs);
        return "index";
    }
    }
            //修改ITypeService
    List<Tag> listTypeTop(int i);
            //修改TypeDao
     @Query("select t from Type t")
     List<Type> findTop(Pageable pageable);
            //修改BlogDao
    @Query("select b from Blog b where b.recommend
    List<Blog> findTop(Pageable pageable);
        全部评论 (0)
 还没有任何评论哟~ 
