增加获取已删除数据的选项

This commit is contained in:
禾几海
2020-07-23 23:08:03 +08:00
parent 43a5e2ab2f
commit 6c3645ba15
6 changed files with 55 additions and 41 deletions

File diff suppressed because one or more lines are too long

View File

@@ -3,6 +3,7 @@ package cn.celess.blog.controller;
import cn.celess.blog.enmu.ResponseEnum; import cn.celess.blog.enmu.ResponseEnum;
import cn.celess.blog.entity.Response; import cn.celess.blog.entity.Response;
import cn.celess.blog.entity.model.ArticleModel; import cn.celess.blog.entity.model.ArticleModel;
import cn.celess.blog.entity.model.PageData;
import cn.celess.blog.entity.request.ArticleReq; import cn.celess.blog.entity.request.ArticleReq;
import cn.celess.blog.service.ArticleService; import cn.celess.blog.service.ArticleService;
import cn.celess.blog.util.RedisUserUtil; import cn.celess.blog.util.RedisUserUtil;
@@ -11,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author : xiaohai * @author : xiaohai
@@ -110,8 +113,9 @@ public class ArticleController {
*/ */
@GetMapping("/admin/articles") @GetMapping("/admin/articles")
public Response adminArticles(@RequestParam(name = "page", defaultValue = "1") int page, public Response adminArticles(@RequestParam(name = "page", defaultValue = "1") int page,
@RequestParam(name = "count", defaultValue = "10") int count) { @RequestParam(name = "count", defaultValue = "10") int count,
return Response.success(articleService.adminArticles(count, page)); @RequestParam(name = "deleted", defaultValue = "false") boolean deleted) {
return Response.success(articleService.adminArticles(count, page, deleted));
} }
/** /**

View File

@@ -52,7 +52,7 @@ public interface ArticleService {
* @param page 数据页 * @param page 数据页
* @return 分页数据 * @return 分页数据
*/ */
PageData<ArticleModel> adminArticles(int count, int page); PageData<ArticleModel> adminArticles(int count, int page, boolean deleted);
/** /**
* 获取文章状态为开放的文章 * 获取文章状态为开放的文章

View File

@@ -22,10 +22,12 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import sun.security.krb5.internal.PAData;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
@@ -273,21 +275,24 @@ public class ArticleServiceImpl implements ArticleService {
/** /**
* @param count 数目 * @param count 数目
* @param page 页面 默认减1 * @param page 页面
* @return PageInfo * @return PageInfo
*/ */
@Override @Override
public PageData<ArticleModel> adminArticles(int count, int page) { public PageData<ArticleModel> adminArticles(int count, int page, boolean deleted) {
PageHelper.startPage(page, count, "articleId desc");
List<Article> articleList = articleMapper.findAll(); List<Article> articleList = articleMapper.findAll();
PageData<ArticleModel> pageData = new PageData<ArticleModel>(new PageInfo<Article>(articleList));
List<ArticleModel> articleModelList = new ArrayList<>(); PageData<ArticleModel> pageData = new PageData<>(null, 0, count, page);
articleList.forEach(article -> { List<Article> collect = articleList.stream().filter(article -> article.isDeleted() == deleted).collect(Collectors.toList());
ArticleModel articleModel = ModalTrans.article(article); pageData.setTotal(collect.size());
articleModel.setMdContent(null); List<ArticleModel> articleModels = collect.stream()
articleModelList.add(articleModel); .peek(article -> article.setMdContent(null))
}); .map(ModalTrans::article)
pageData.setList(articleModelList); .skip((page - 1) * count)
.limit(count)
.collect(Collectors.toList());
pageData.setList(articleModels);
return pageData; return pageData;
} }

View File

@@ -154,7 +154,7 @@
<select id="findAll" resultMap="articleViewResultMap"> <select id="findAll" resultMap="articleViewResultMap">
select * select *
from articleView from articleView
where isDelete = false order by articleId desc
</select> </select>

View File

@@ -272,29 +272,34 @@ public class ArticleControllerTest extends BaseTest {
getMockData("/admin/articles?page=1&count=10", userLogin()).andDo(result -> getMockData("/admin/articles?page=1&count=10", userLogin()).andDo(result ->
assertEquals(PERMISSION_ERROR.getCode(), mapper.readValue(result.getResponse().getContentAsString(), Response.class).getCode()) assertEquals(PERMISSION_ERROR.getCode(), mapper.readValue(result.getResponse().getContentAsString(), Response.class).getCode())
); );
// admin权限登陆 for (int i = 0; i < 2; i++) {
getMockData("/admin/articles?page=1&count=10", adminLogin()).andDo(result -> { // admin权限登陆
Response<PageData<ArticleModel>> response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference<Response<PageData<ArticleModel>>>(){}); int finalI = i;
assertEquals(SUCCESS.getCode(), response.getCode()); getMockData("/admin/articles?page=1&count=10&deleted=" + (i == 1), adminLogin()).andDo(result -> {
assertNotNull(response.getResult()); Response<PageData<ArticleModel>> response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference<Response<PageData<ArticleModel>>>() {
// 判断pageInfo是否包装完全 });
PageData<ArticleModel> pageData = response.getResult(); assertEquals(SUCCESS.getCode(), response.getCode());
assertNotEquals(0, pageData.getTotal()); assertNotNull(response.getResult());
assertEquals(1, pageData.getPageNum()); // 判断pageInfo是否包装完全
assertEquals(10, pageData.getPageSize()); PageData<ArticleModel> pageData = response.getResult();
// 内容完整 assertNotEquals(0, pageData.getTotal());
for (ArticleModel a : pageData.getList()) { assertEquals(1, pageData.getPageNum());
assertNotNull(a.getTitle()); assertEquals(10, pageData.getPageSize());
assertNotNull(a.getId()); // 内容完整
assertNotNull(a.getOriginal()); for (ArticleModel a : pageData.getList()) {
assertNotNull(a.getPublishDateFormat()); assertNotNull(a.getTitle());
assertNotNull(a.getOpen()); assertNotNull(a.getId());
assertNotNull(a.getReadingNumber()); assertNotNull(a.getOriginal());
assertNotNull(a.getLikeCount()); assertNotNull(a.getPublishDateFormat());
assertNotNull(a.getDislikeCount()); assertNotNull(a.getOpen());
assertNull(a.getMdContent()); assertNotNull(a.getReadingNumber());
} assertNotNull(a.getLikeCount());
}); assertNotNull(a.getDislikeCount());
assertEquals((finalI == 1),a.isDeleted());
assertNull(a.getMdContent());
}
});
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }