Service层修改 单元测试

This commit is contained in:
禾几海
2020-05-25 22:44:18 +08:00
parent d19e5b6286
commit 030aaaca25
10 changed files with 71 additions and 169 deletions

View File

@@ -38,16 +38,6 @@ public class TagController {
return ResponseUtil.success(tagService.update(id, name));
}
@GetMapping("/tag/id/{id}")
public Response retrieveOneById(@PathVariable("id") long id) {
return ResponseUtil.success(tagService.retrieveOneById(id));
}
@GetMapping("/tag/name/{name}")
public Response retrieveOneByName(@PathVariable("name") String name) {
return ResponseUtil.success(tagService.retrieveOneByName(name));
}
@GetMapping("/tags")
public Response getPage(@RequestParam(required = false, defaultValue = "10", value = "count") int count,
@RequestParam(required = false, defaultValue = "1", value = "page") int page) {
@@ -61,7 +51,7 @@ public class TagController {
for (TagModel t : all) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", t.getName());
jsonObject.put("size", t.getArticles() == null ? 0 : t.getArticles().size());
jsonObject.put("size", t.getArticles().size());
nameAndCount.add(jsonObject);
}
return ResponseUtil.success(nameAndCount);

View File

@@ -20,5 +20,5 @@ public class CategoryModel {
private String name;
private List<Article> articles;
private List<ArticleModel> articles;
}

View File

@@ -1,11 +1,9 @@
package cn.celess.blog.entity.model;
import cn.celess.blog.entity.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
@@ -21,21 +19,6 @@ public class TagModel {
private String name;
private List<Integer> articles;
private List<ArticleModel> articles;
public TagModel(Tag tag) {
this.id = tag.getId();
this.name = tag.getName();
if (tag.getArticles() == null || tag.getArticles().length() == 0) {
articles = null;
} else {
articles = new ArrayList<>();
for (String s : tag.getArticles().split(",")) {
if ("".equals(s)) {
return;
}
articles.add(Integer.parseInt(s));
}
}
}
}

View File

@@ -11,7 +11,7 @@ public class ArticleReq {
private Long id;
private String title;
private String mdContent;
private String tags;
private String[] tags;
private Boolean type;
private String url;
private String category;

View File

@@ -1,6 +1,7 @@
package cn.celess.blog.service;
import cn.celess.blog.entity.Tag;
import cn.celess.blog.entity.model.PageData;
import cn.celess.blog.entity.model.TagModel;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
@@ -21,15 +22,6 @@ public interface TagService {
*/
TagModel create(String name);
/**
* 新增数据
*
* @param tag tag对象
* @return 新增后的数据
*/
TagModel create(Tag tag);
/**
* 删除数据
*
@@ -47,23 +39,6 @@ public interface TagService {
*/
TagModel update(Long id, String name);
/**
* 查询单个标签信息
*
* @param tagId id
* @return 标签的数据
*/
TagModel retrieveOneById(long tagId);
/**
* 通过name查询标签的信息
*
* @param name tag的名称
* @return 标签数据
*/
TagModel retrieveOneByName(String name);
/**
* 分页获取标签数据
*
@@ -71,7 +46,7 @@ public interface TagService {
* @param page 数据页
* @return 分页数据
*/
PageInfo<TagModel> retrievePage(int page, int count);
PageData<TagModel> retrievePage(int page, int count);
/**
* 获取全部标签数据

View File

@@ -121,7 +121,7 @@ public class ArticleServiceImpl implements ArticleService {
Article articleFromDb = articleMapper.findArticleById(article.getId());
ArticleModel articleModel = ModalTrans.article(articleFromDb);
articleModel.setPreArticle(ModalTrans.article(articleMapper.getPreArticle(article.getId())));
articleModel.setPreArticle(ModalTrans.article(articleMapper.getPreArticle(article.getId()), true));
return articleModel;
}
@@ -281,8 +281,7 @@ public class ArticleServiceImpl implements ArticleService {
PageData<ArticleModel> pageData = new PageData<ArticleModel>(new PageInfo<Article>(articleList));
List<ArticleModel> articleModelList = new ArrayList<>();
articleList.forEach(article -> {
ArticleModel articleModel = ModalTrans.article(article);
articleModel.setMdContent(null);
ArticleModel articleModel = ModalTrans.article(article, true);
articleModelList.add(articleModel);
});
pageData.setList(articleModelList);
@@ -298,10 +297,8 @@ public class ArticleServiceImpl implements ArticleService {
List<ArticleModel> articleModelList = new ArrayList<>();
articleList.forEach(article -> {
ArticleModel model = ModalTrans.article(article);
ArticleModel model = ModalTrans.article(article, true);
setPreAndNextArticle(model);
model.setOpen(null);
model.setMdContent(null);
articleModelList.add(model);
});
@@ -321,10 +318,8 @@ public class ArticleServiceImpl implements ArticleService {
List<ArticleModel> modelList = new ArrayList<>();
open.forEach(article -> {
ArticleModel model = ModalTrans.article(article);
model.setMdContent(null);
ArticleModel model = ModalTrans.article(article, true);
model.setTags(null);
model.setOpen(null);
setPreAndNextArticle(model);
});
return new PageData<ArticleModel>(new PageInfo<Article>(open), modelList);
@@ -340,9 +335,7 @@ public class ArticleServiceImpl implements ArticleService {
List<ArticleTag> articleByTag = articleTagMapper.findArticleByTagAndOpen(tag.getId());
List<ArticleModel> modelList = new ArrayList<>();
articleByTag.forEach(articleTag -> {
ArticleModel model = ModalTrans.article(articleTag.getArticle());
model.setMdContent(null);
model.setOpen(null);
ArticleModel model = ModalTrans.article(articleTag.getArticle(), true);
});
return new PageData<ArticleModel>(new PageInfo<ArticleTag>(articleByTag), modelList);
}
@@ -351,7 +344,7 @@ public class ArticleServiceImpl implements ArticleService {
if (articleModel == null) {
return;
}
articleModel.setPreArticle(ModalTrans.article(articleMapper.getPreArticle(articleModel.getId())));
articleModel.setNextArticle(ModalTrans.article(articleMapper.getNextArticle(articleModel.getId())));
articleModel.setPreArticle(ModalTrans.article(articleMapper.getPreArticle(articleModel.getId()), true));
articleModel.setNextArticle(ModalTrans.article(articleMapper.getNextArticle(articleModel.getId()), true));
}
}

View File

@@ -2,16 +2,23 @@ package cn.celess.blog.service.serviceimpl;
import cn.celess.blog.enmu.ResponseEnum;
import cn.celess.blog.entity.Article;
import cn.celess.blog.entity.ArticleTag;
import cn.celess.blog.entity.Tag;
import cn.celess.blog.entity.TagCategory;
import cn.celess.blog.entity.model.ArticleModel;
import cn.celess.blog.entity.model.PageData;
import cn.celess.blog.entity.model.TagModel;
import cn.celess.blog.exception.MyException;
import cn.celess.blog.mapper.ArticleMapper;
import cn.celess.blog.mapper.ArticleTagMapper;
import cn.celess.blog.mapper.TagMapper;
import cn.celess.blog.service.TagService;
import cn.celess.blog.util.ModalTrans;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
@@ -29,6 +36,8 @@ public class TagServiceImpl implements TagService {
HttpServletRequest request;
@Autowired
ArticleMapper articleMapper;
@Autowired
ArticleTagMapper articleTagMapper;
@Override
public TagModel create(String name) {
@@ -39,40 +48,19 @@ public class TagServiceImpl implements TagService {
Tag tag = new Tag();
tag.setName(name);
tagMapper.insert(tag);
return new TagModel(tag);
}
@Override
public TagModel create(Tag tag) {
if (tag == null) {
throw new MyException(ResponseEnum.PARAMETERS_ERROR);
}
tagMapper.insert(tag);
return new TagModel(tag);
return ModalTrans.tag(tag);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delete(long tagId) {
Tag tag = tagMapper.findTagById(tagId);
if (tag == null) {
throw new MyException(ResponseEnum.TAG_NOT_EXIST);
}
if (tag.getArticles() == null) {
return tagMapper.delete(tagId) == 1;
}
String[] articleArray = tag.getArticles().split(",");
for (int i = 0; i < articleArray.length; i++) {
if (articleArray[i] == null || "".equals(articleArray[i])) {
continue;
}
long articleID = Long.parseLong(articleArray[i]);
Article article = articleMapper.findArticleById(articleID);
if (article == null) {
continue;
}
article.setTagsId(article.getTagsId().replace(tagId + ",", ""));
articleMapper.update(article);
}
List<ArticleTag> articleByTag = articleTagMapper.findArticleByTag(tagId);
// 删除文章
articleByTag.forEach(articleTag -> articleMapper.delete(articleTag.getArticle().getId()));
return tagMapper.delete(tagId) == 1;
}
@@ -82,47 +70,33 @@ public class TagServiceImpl implements TagService {
if (id == null) {
throw new MyException(ResponseEnum.PARAMETERS_ERROR.getCode(), "缺少ID");
}
Tag tagFromDB = tagMapper.findTagById(id);
tagFromDB.setName(name);
tagMapper.update(tagFromDB);
return new TagModel(tagFromDB);
Tag tag = tagMapper.findTagById(id);
tag.setName(name);
tagMapper.update(tag);
return ModalTrans.tag(tag);
}
@Override
public TagModel retrieveOneById(long tagId) {
Tag tag = tagMapper.findTagById(tagId);
if (tag == null) {
throw new MyException(ResponseEnum.TAG_NOT_EXIST);
}
return new TagModel(tag);
}
@Override
public TagModel retrieveOneByName(String name) {
Tag tag = tagMapper.findTagByName(name);
if (tag == null) {
throw new MyException(ResponseEnum.TAG_NOT_EXIST);
}
return new TagModel(tag);
}
@Override
public PageInfo<TagModel> retrievePage(int page, int count) {
public PageData<TagModel> retrievePage(int page, int count) {
PageHelper.startPage(page, count);
List<Tag> tagList = tagMapper.findAll();
PageInfo pageInfo = new PageInfo(tagList);
List<TagModel> list = new ArrayList<>();
tagList.forEach(e -> list.add(new TagModel(e)));
pageInfo.setList(list);
return pageInfo;
List<TagModel> modelList = new ArrayList<>();
tagList.forEach(tag -> modelList.add(ModalTrans.tag(tag)));
return new PageData<TagModel>(new PageInfo<Tag>(tagList), modelList);
}
@Override
public List<TagModel> findAll() {
List<TagModel> list = new ArrayList<>();
tagMapper.findAll().forEach(e -> list.add(new TagModel(e)));
tagMapper.findAll().forEach(e -> {
TagModel model = ModalTrans.tag(e);
List<ArticleTag> articleByTagAndOpen = articleTagMapper.findArticleByTagAndOpen(e.getId());
List<ArticleModel> articleModelList = new ArrayList<>();
articleByTagAndOpen.forEach(articleTag -> articleModelList.add(ModalTrans.article(articleTag.getArticle(), true)));
model.setArticles(articleModelList);
list.add(model);
});
return list;
}
}

View File

@@ -2,9 +2,11 @@ package cn.celess.blog.util;
import cn.celess.blog.entity.Article;
import cn.celess.blog.entity.Category;
import cn.celess.blog.entity.Tag;
import cn.celess.blog.entity.User;
import cn.celess.blog.entity.model.ArticleModel;
import cn.celess.blog.entity.model.CategoryModel;
import cn.celess.blog.entity.model.TagModel;
import cn.celess.blog.entity.model.UserModel;
import org.springframework.beans.BeanUtils;
@@ -30,6 +32,17 @@ public class ModalTrans {
}
public static ArticleModel article(Article article, boolean noMdContent) {
ArticleModel article1 = article(article);
if (!noMdContent) {
return article1;
}
article1.setMdContent(null);
article1.setOpen(null);
return article1;
}
public static UserModel user(User user) {
UserModel userModel = new UserModel();
BeanUtils.copyProperties(user, userModel);
@@ -41,4 +54,11 @@ public class ModalTrans {
BeanUtils.copyProperties(category, model);
return model;
}
public static TagModel tag(Tag tag) {
TagModel model = new TagModel();
BeanUtils.copyProperties(tag, model);
return model;
}
}