调整数据库字段,优化部分接口 #1
@@ -42,21 +42,6 @@ public class Article {
|
|||||||
|
|
||||||
private Date updateDate = null;
|
private Date updateDate = null;
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
private Long categoryId;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
private String tagsId;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
private Long authorId;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
private Long preArticleId;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
private Long nextArticleId;
|
|
||||||
|
|
||||||
private Long readingNumber;
|
private Long readingNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,4 +58,6 @@ public class Article {
|
|||||||
private Integer dislikeCount;
|
private Integer dislikeCount;
|
||||||
|
|
||||||
private User user;
|
private User user;
|
||||||
|
|
||||||
|
private boolean deleted = false;
|
||||||
}
|
}
|
||||||
|
|||||||
27
src/main/java/cn/celess/blog/entity/ArticleTag.java
Normal file
27
src/main/java/cn/celess/blog/entity/ArticleTag.java
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package cn.celess.blog.entity;
|
||||||
|
|
||||||
|
import com.sun.xml.internal.ws.policy.EffectiveAlternativeSelector;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: 小海
|
||||||
|
* @Date: 2020-05-24 14:52
|
||||||
|
* @Desc:
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ArticleTag {
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private Article article;
|
||||||
|
|
||||||
|
private TagCategory tag;
|
||||||
|
|
||||||
|
public ArticleTag(Article article, TagCategory tag) {
|
||||||
|
this.article = article;
|
||||||
|
this.tag = tag;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,15 +21,6 @@ public interface ArticleMapper {
|
|||||||
|
|
||||||
int update(Article a);
|
int update(Article a);
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
int updateNextArticleId(long targetArticleID, long nextArticleID);
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
int updatePreArticleId(long targetArticleID, long preArticleID);
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
long getLastestArticleId();
|
|
||||||
|
|
||||||
Article getLastestArticle();
|
Article getLastestArticle();
|
||||||
|
|
||||||
Article findArticleById(long id);
|
Article findArticleById(long id);
|
||||||
@@ -38,7 +29,7 @@ public interface ArticleMapper {
|
|||||||
|
|
||||||
boolean isDeletedById(long id);
|
boolean isDeletedById(long id);
|
||||||
|
|
||||||
List<Article> findAllByAuthorId(long authorID);
|
List<Article> findAllByAuthorId(long authorId);
|
||||||
|
|
||||||
List<Article> findAllByOpen(boolean isOpen);
|
List<Article> findAllByOpen(boolean isOpen);
|
||||||
|
|
||||||
@@ -48,15 +39,6 @@ public interface ArticleMapper {
|
|||||||
|
|
||||||
List<Article> findAll();
|
List<Article> findAll();
|
||||||
|
|
||||||
Article getSimpleInfo(long id);
|
|
||||||
|
|
||||||
List<Article> getSimpleInfoByCategory(long categoryId);
|
|
||||||
|
|
||||||
List<Article> getSimpleInfoByTag(List<String> idList);
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
int setReadingNumber(long number, long id);
|
|
||||||
|
|
||||||
int updateReadingNumber(long id);
|
int updateReadingNumber(long id);
|
||||||
|
|
||||||
long count();
|
long count();
|
||||||
|
|||||||
31
src/main/java/cn/celess/blog/mapper/ArticleTagMapper.java
Normal file
31
src/main/java/cn/celess/blog/mapper/ArticleTagMapper.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package cn.celess.blog.mapper;
|
||||||
|
|
||||||
|
import cn.celess.blog.entity.ArticleTag;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: 小海
|
||||||
|
* @Date: 2020-05-24 14:21
|
||||||
|
* @Desc:
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
@Repository
|
||||||
|
public interface ArticleTagMapper {
|
||||||
|
|
||||||
|
int insert(ArticleTag articleTag);
|
||||||
|
|
||||||
|
int update(ArticleTag articleTag);
|
||||||
|
|
||||||
|
ArticleTag findOneById(Long id);
|
||||||
|
|
||||||
|
int deleteById(Long id);
|
||||||
|
|
||||||
|
int deleteByArticleId(Long articleId);
|
||||||
|
|
||||||
|
List<ArticleTag> findAllByArticleId(Long articleId);
|
||||||
|
|
||||||
|
int deleteMultiById(List<ArticleTag> articleTags);
|
||||||
|
}
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
<select id="findAllByAuthorId" resultMap="articleViewResultMap">
|
<select id="findAllByAuthorId" resultMap="articleViewResultMap">
|
||||||
select *
|
select *
|
||||||
from articleView
|
from articleView
|
||||||
where authorId = #{authorID}
|
where authorId = #{authorId}
|
||||||
and isDelete = false
|
and isDelete = false
|
||||||
order by articleId desc
|
order by articleId desc
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ public class ArticleMapperTest extends BaseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void insert() {
|
public void insert() {
|
||||||
|
|
||||||
Article article = generateArticle().getArticle();
|
Article article = generateArticle().getArticle();
|
||||||
assertNotNull(article.getId());
|
assertNotNull(article.getId());
|
||||||
}
|
}
|
||||||
@@ -33,8 +32,6 @@ public class ArticleMapperTest extends BaseTest {
|
|||||||
assertFalse(articleMapper.isDeletedById(article.getId()));
|
assertFalse(articleMapper.isDeletedById(article.getId()));
|
||||||
assertEquals(1, articleMapper.delete(article.getId()));
|
assertEquals(1, articleMapper.delete(article.getId()));
|
||||||
assertTrue(articleMapper.isDeletedById(article.getId()));
|
assertTrue(articleMapper.isDeletedById(article.getId()));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -88,7 +85,6 @@ public class ArticleMapperTest extends BaseTest {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateReadCount() {
|
public void updateReadCount() {
|
||||||
Article article = generateArticle().getArticle();
|
Article article = generateArticle().getArticle();
|
||||||
@@ -99,7 +95,6 @@ public class ArticleMapperTest extends BaseTest {
|
|||||||
assertEquals(Long.valueOf(1), articleById.getReadingNumber());
|
assertEquals(Long.valueOf(1), articleById.getReadingNumber());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getLastestArticle() {
|
public void getLastestArticle() {
|
||||||
Article article = generateArticle().getArticle();
|
Article article = generateArticle().getArticle();
|
||||||
@@ -110,6 +105,73 @@ public class ArticleMapperTest extends BaseTest {
|
|||||||
assertNotEquals(0, lastestArticle.getTags().size());
|
assertNotEquals(0, lastestArticle.getTags().size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findArticleById() {
|
||||||
|
Article article = generateArticle().getArticle();
|
||||||
|
Article articleById = articleMapper.findArticleById(article.getId());
|
||||||
|
assertNotNull(articleById);
|
||||||
|
assertEquals(article.getId(), articleById.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void existsByTitle() {
|
||||||
|
Article article = generateArticle().getArticle();
|
||||||
|
assertTrue(articleMapper.existsByTitle(article.getTitle()));
|
||||||
|
assertFalse(articleMapper.existsByTitle(UUID.randomUUID().toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isDeletedById() {
|
||||||
|
Article article = generateArticle().getArticle();
|
||||||
|
assertFalse(articleMapper.isDeletedById(article.getId()));
|
||||||
|
articleMapper.delete(article.getId());
|
||||||
|
assertTrue(articleMapper.isDeletedById(article.getId()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findAllByAuthorId() {
|
||||||
|
List<Article> allByAuthorId = articleMapper.findAllByAuthorId(1);
|
||||||
|
assertNotEquals(0, allByAuthorId.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findAllByOpen() {
|
||||||
|
List<Article> allByOpen = articleMapper.findAllByOpen(true);
|
||||||
|
assertNotEquals(0, allByOpen);
|
||||||
|
|
||||||
|
Article article = generateArticle().getArticle();
|
||||||
|
article.setOpen(false);
|
||||||
|
|
||||||
|
articleMapper.update(article);
|
||||||
|
|
||||||
|
List<Article> privateArticles = articleMapper.findAllByOpen(false);
|
||||||
|
assertTrue(privateArticles.size() > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getTitleById() {
|
||||||
|
Article article = generateArticle().getArticle();
|
||||||
|
|
||||||
|
assertEquals(article.getTitle(), articleMapper.getTitleById(article.getId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findAllByCategoryId() {
|
||||||
|
List<Article> allByCategoryId = articleMapper.findAllByCategoryId(1);
|
||||||
|
assertNotEquals(0, allByCategoryId.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findAll() {
|
||||||
|
List<Article> allByCategoryId = articleMapper.findAll();
|
||||||
|
assertNotEquals(0, allByCategoryId.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void count() {
|
||||||
|
assertNotEquals(0, articleMapper.count());
|
||||||
|
}
|
||||||
|
|
||||||
private ArticleTag generateArticle() {
|
private ArticleTag generateArticle() {
|
||||||
String randomText = UUID.randomUUID().toString();
|
String randomText = UUID.randomUUID().toString();
|
||||||
@@ -122,7 +184,7 @@ public class ArticleMapperTest extends BaseTest {
|
|||||||
article.setMdContent("# unity test for article");
|
article.setMdContent("# unity test for article");
|
||||||
article.setSummary("unity test for article");
|
article.setSummary("unity test for article");
|
||||||
|
|
||||||
Tag tag = tagMapper.findTagByName("随笔");
|
Tag tag = tagMapper.findTagByName("随笔");
|
||||||
User user = new User();
|
User user = new User();
|
||||||
user.setId(1L);
|
user.setId(1L);
|
||||||
article.setUser(user);
|
article.setUser(user);
|
||||||
@@ -137,4 +199,5 @@ public class ArticleMapperTest extends BaseTest {
|
|||||||
|
|
||||||
return articleTag;
|
return articleTag;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
126
src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java
Normal file
126
src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
package cn.celess.blog.mapper;
|
||||||
|
|
||||||
|
import cn.celess.blog.BaseTest;
|
||||||
|
import cn.celess.blog.entity.*;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
public class ArticleTagMapperTest extends BaseTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
ArticleMapper articleMapper;
|
||||||
|
@Autowired
|
||||||
|
ArticleTagMapper articleTagMapper;
|
||||||
|
@Autowired
|
||||||
|
TagMapper tagMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void insert() {
|
||||||
|
ArticleTag articleTag = generateArticle();
|
||||||
|
assertNotNull(articleTag);
|
||||||
|
assertNotNull(articleTag.getArticle());
|
||||||
|
assertNotNull(articleTag.getTag());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void update() {
|
||||||
|
Tag tag = tagMapper.findTagByName("电影");
|
||||||
|
ArticleTag articleTag = generateArticle();
|
||||||
|
articleTag.setTag(tag);
|
||||||
|
|
||||||
|
articleTagMapper.update(articleTag);
|
||||||
|
|
||||||
|
ArticleTag oneById = articleTagMapper.findOneById(articleTag.getId());
|
||||||
|
assertEquals(articleTag.getArticle().getId(), oneById.getArticle().getId());
|
||||||
|
assertEquals(articleTag.getArticle().getTitle(), oneById.getArticle().getTitle());
|
||||||
|
assertEquals(articleTag.getTag().getName(), oneById.getTag().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void deleteById() {
|
||||||
|
ArticleTag articleTag = generateArticle();
|
||||||
|
|
||||||
|
articleTagMapper.deleteById(articleTag.getId());
|
||||||
|
|
||||||
|
ArticleTag oneById = articleTagMapper.findOneById(articleTag.getId());
|
||||||
|
assertNull(oneById);
|
||||||
|
|
||||||
|
articleTagMapper.insert(articleTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void deleteByArticleId() {
|
||||||
|
ArticleTag articleTag = generateArticle();
|
||||||
|
int i = articleTagMapper.deleteByArticleId(articleTag.getArticle().getId());
|
||||||
|
assertNotEquals(0, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findAllByArticleId() {
|
||||||
|
ArticleTag articleTag = generateArticle();
|
||||||
|
List<ArticleTag> allByArticleId = articleTagMapper.findAllByArticleId(articleTag.getArticle().getId());
|
||||||
|
assertEquals(1, allByArticleId.size());
|
||||||
|
|
||||||
|
List<ArticleTag> list = articleTagMapper.findAllByArticleId(5L);
|
||||||
|
assertEquals(2, list.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void deleteMultiById() {
|
||||||
|
ArticleTag articleTag = new ArticleTag();
|
||||||
|
Article article = new Article();
|
||||||
|
article.setId(-1L);
|
||||||
|
Tag tag = new Tag();
|
||||||
|
tag.setId(1L);
|
||||||
|
articleTag.setArticle(article);
|
||||||
|
articleTag.setTag(tag);
|
||||||
|
|
||||||
|
articleTagMapper.insert(articleTag);
|
||||||
|
articleTagMapper.insert(articleTag);
|
||||||
|
articleTagMapper.insert(articleTag);
|
||||||
|
articleTagMapper.insert(articleTag);
|
||||||
|
articleTagMapper.insert(articleTag);
|
||||||
|
articleTagMapper.insert(articleTag);
|
||||||
|
|
||||||
|
List<ArticleTag> allByArticleId = articleTagMapper.findAllByArticleId(-1L);
|
||||||
|
assertEquals(6, allByArticleId.size());
|
||||||
|
int lines = articleTagMapper.deleteMultiById(allByArticleId);
|
||||||
|
assertEquals(6, lines);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ArticleTag generateArticle() {
|
||||||
|
String randomText = UUID.randomUUID().toString();
|
||||||
|
|
||||||
|
Article article = new Article();
|
||||||
|
Category category = new Category();
|
||||||
|
category.setId(1L);
|
||||||
|
article.setCategory(category);
|
||||||
|
article.setTitle(" unity test for article " + randomText);
|
||||||
|
article.setMdContent("# unity test for article");
|
||||||
|
article.setSummary("unity test for article");
|
||||||
|
|
||||||
|
User user = new User();
|
||||||
|
user.setId(1L);
|
||||||
|
article.setUser(user);
|
||||||
|
article.setType(true);
|
||||||
|
|
||||||
|
articleMapper.insert(article);
|
||||||
|
|
||||||
|
ArticleTag articleTag = new ArticleTag();
|
||||||
|
Tag tag = tagMapper.findTagByName("随笔");
|
||||||
|
articleTag.setArticle(article);
|
||||||
|
articleTag.setTag(tag);
|
||||||
|
articleTagMapper.insert(articleTag);
|
||||||
|
|
||||||
|
return articleTag;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user