Ver código fonte

5.24 second commit

BophGuan 2 anos atrás
pai
commit
94a6ffbd0b

+ 26 - 0
blog-api/src/main/java/com/mszlu/blog/controller/ArticleController.java

@@ -0,0 +1,26 @@
+package com.mszlu.blog.controller;
+
+import com.mszlu.blog.service.ArticleService;
+import com.mszlu.blog.vo.Result;
+import com.mszlu.blog.vo.params.PageParams;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+//json数据进行交互
+@RestController
+@RequestMapping("articles")
+public class ArticleController {
+    @Autowired
+    private ArticleService articleService;
+    /**
+     * 首页 文章列表
+     * @param pageParams
+     * @return
+     */
+    @PostMapping
+    public Result listArticle(@RequestBody PageParams pageParams){
+        return articleService.listArticle(pageParams);
+    }
+}

+ 7 - 0
blog-api/src/main/java/com/mszlu/blog/dao/mapper/ArticleMapper.java

@@ -0,0 +1,7 @@
+package com.mszlu.blog.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mszlu.blog.dao.pojo.Article;
+
+public interface ArticleMapper extends BaseMapper<Article> {
+}

+ 8 - 0
blog-api/src/main/java/com/mszlu/blog/dao/mapper/SysUserMapper.java

@@ -0,0 +1,8 @@
+package com.mszlu.blog.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mszlu.blog.dao.pojo.SysUser;
+
+public interface SysUserMapper extends BaseMapper<SysUser> {
+
+}

+ 7 - 0
blog-api/src/main/java/com/mszlu/blog/dao/mapper/TagMapper.java

@@ -0,0 +1,7 @@
+package com.mszlu.blog.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mszlu.blog.dao.pojo.Tag;
+
+public interface TagMapper extends BaseMapper<Tag> {
+}

+ 13 - 0
blog-api/src/main/java/com/mszlu/blog/service/ArticleService.java

@@ -0,0 +1,13 @@
+package com.mszlu.blog.service;
+
+import com.mszlu.blog.vo.Result;
+import com.mszlu.blog.vo.params.PageParams;
+
+public interface ArticleService {
+    /**
+     * 分页查询 文章列表
+     * @param pageParams
+     * @return
+     */
+    Result listArticle(PageParams pageParams);
+}

+ 54 - 0
blog-api/src/main/java/com/mszlu/blog/service/impl/ArticleServiceImpl.java

@@ -0,0 +1,54 @@
+package com.mszlu.blog.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mszlu.blog.dao.mapper.ArticleMapper;
+import com.mszlu.blog.dao.pojo.Article;
+import com.mszlu.blog.service.ArticleService;
+import com.mszlu.blog.vo.ArticleVo;
+import com.mszlu.blog.vo.Result;
+import com.mszlu.blog.vo.params.PageParams;
+import org.joda.time.DateTime;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class ArticleServiceImpl implements ArticleService {
+    @Autowired
+    private ArticleMapper articleMapper;
+    @Override
+    public Result listArticle(PageParams pageParams) {
+        /**
+         * 1. 分页查询 article数据库表
+         */
+        Page<Article> page = new Page<>(pageParams.getPage(),pageParams.getPageSize());
+        LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();
+        //是否置顶进行排序
+        //queryWrapper.orderByDesc(Article::getWeight);
+        //order by create_date desc
+        queryWrapper.orderByDesc(Article::getWeight,Article::getCreateDate);
+        Page<Article> articlePage = articleMapper.selectPage(page, queryWrapper);
+        List<Article> records = articlePage.getRecords();
+        List<ArticleVo> articleVoList = copyList(records);
+        return Result.success(articleVoList);
+    }
+
+    private List<ArticleVo> copyList(List<Article> records) {
+        List<ArticleVo> articleVoList = new ArrayList<>();
+        for (Article record : records){
+            articleVoList.add(copy(record));
+        }
+        return null;
+    }
+
+    private ArticleVo copy(Article article){
+        ArticleVo articleVo = new ArticleVo();
+        BeanUtils.copyProperties(article,articleVo);
+        articleVo.setCreateDate(new DateTime(article.getCreateDate()).toString("yyyy-MM-dd HH:mm"));
+        return articleVo;
+    }
+}

+ 38 - 0
blog-api/src/main/java/com/mszlu/blog/vo/ArticleVo.java

@@ -0,0 +1,38 @@
+package com.mszlu.blog.vo;
+
+import com.mszlu.blog.dao.pojo.ArticleBody;
+import com.mszlu.blog.dao.pojo.Category;
+import com.mszlu.blog.dao.pojo.SysUser;
+import com.mszlu.blog.dao.pojo.Tag;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ArticleVo {
+
+    private Long id;
+
+    private String title;
+
+    private String summary;
+
+    private int commentCounts;
+
+    private int viewCounts;
+
+    private int weight;
+    /**
+     * 创建时间
+     */
+    private String createDate;
+
+    private String author;
+
+    //private ArticleBodyVo body;
+
+    private List<TagVo> tags;
+
+    //private List<CategoryVo> categorys;
+
+}

+ 25 - 0
blog-api/src/main/java/com/mszlu/blog/vo/Result.java

@@ -0,0 +1,25 @@
+package com.mszlu.blog.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class Result {
+
+    private boolean success;
+
+    private int code;
+
+    private String msg;
+
+    private Object date;
+
+    public static Result success(Object date){
+        return new Result(true,200,"success",date);
+    }
+
+    public static Result fail(int code,String msg){
+        return new Result(false,code,msg,null);
+    }
+}

+ 11 - 0
blog-api/src/main/java/com/mszlu/blog/vo/TagVo.java

@@ -0,0 +1,11 @@
+package com.mszlu.blog.vo;
+
+import lombok.Data;
+
+@Data
+public class TagVo {
+
+    private Long id;
+
+    private String tagName;
+}

+ 9 - 0
blog-api/src/main/java/com/mszlu/blog/vo/params/PageParams.java

@@ -0,0 +1,9 @@
+package com.mszlu.blog.vo.params;
+
+import lombok.Data;
+
+@Data
+public class PageParams {
+    private int page = 1;
+    private int pageSize = 10;
+}