Commit 4ac1f264 by 段启岩

优化更新引用逻辑

parent 125f68a1
......@@ -16,6 +16,7 @@ import cn.meteor.beyondclouds.modules.tag.entity.Tag;
import cn.meteor.beyondclouds.modules.tag.service.ITagService;
import cn.meteor.beyondclouds.modules.topic.entity.Topic;
import cn.meteor.beyondclouds.modules.topic.entity.TopicReference;
import cn.meteor.beyondclouds.modules.topic.enums.TopicReferenceType;
import cn.meteor.beyondclouds.modules.topic.service.ITopicReferenceService;
import cn.meteor.beyondclouds.modules.topic.service.ITopicService;
import cn.meteor.beyondclouds.modules.user.entity.User;
......@@ -127,43 +128,8 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
blogExt.setContent(content);
blogExtService.save(blogExt);
//4.判断是否引用话题
if (!CollectionUtils.isEmpty(topicIds)) {
// 获取要引用的话题,不正确的话题ID会被自动过滤
List<Topic> topicList = topicService.listByIds(topicIds);
List<String> existsTopicIds = topicList.stream().map(Topic::getTopicId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTopicIds)) {
List<TopicReference> topicReferenceList = new ArrayList<>();
for (String topicId : existsTopicIds) {
TopicReference topicReference = new TopicReference();
topicReference.setTopicId(topicId);
topicReference.setReferencerId(blog.getBlogId());
topicReference.setReferencerType(0);
topicReferenceList.add(topicReference);
}
// 批量保存
topicReferenceService.saveBatch(topicReferenceList);
// 更新话题引用次数
existsTopicIds.forEach(topicId -> {
topicService.increaseReferenceCount(topicId, 1);
});
}
}
//5.判断是否引用标签
if (!CollectionUtils.isEmpty(tagIds)) {
List<String> existsTagIds = tagService.listByIds(tagIds).stream().map(Tag::getTagId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTagIds)) {
List<BlogTag> blogTagList = new ArrayList<>();
for (String tagId : existsTagIds) {
BlogTag blogTag = new BlogTag();
blogTag.setBlogId(blog.getBlogId());
blogTag.setTagId(tagId);
blogTagList.add(blogTag);
}
blogTagService.saveBatch(blogTagList);
}
}
//4.更新标签和话题的引用
updateTopicAndTagReference(topicIds, tagIds, blog.getBlogId(), false);
}
/**
......@@ -373,25 +339,45 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
blogExtService.update(blogExt,blogExtQueryWrapper);
}
//4.判断是否引用话题
//4.更新标签和话题的引用
updateTopicAndTagReference(topicIds, tagIds, blog.getBlogId(), true);
// 添加新话题引用
}
/**
* 更新博客里面对标签和话题的引用
* @param tagIds
* @param topicIds
* @param blogId
* @param deleteOld
*/
private void updateTopicAndTagReference(List<String> topicIds, List<String> tagIds, String blogId, boolean deleteOld) {
// 1.处理话题引用
if (!CollectionUtils.isEmpty(topicIds)) {
// 获取要引用的话题,不正确的话题ID会被自动过滤
List<Topic> topicList = topicService.listByIds(topicIds);
List<String> existsTopicIds = topicList.stream().map(Topic::getTopicId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTopicIds)) {
// 删除旧话题引用
QueryWrapper<TopicReference> topicReferenceQueryWrapper = new QueryWrapper<>();
topicReferenceQueryWrapper.eq("referencer_id", blog.getBlogId());
topicReferenceService.remove(topicReferenceQueryWrapper);
if (deleteOld) {
// 删除旧话题引用并更新话题的引用量
QueryWrapper<TopicReference> topicReferenceQueryWrapper = new QueryWrapper<>();
topicReferenceQueryWrapper.eq("referencer_id", blogId);
// 减少对应话题的引用数量
List<String> referencedTopicIds =
topicReferenceService.list(topicReferenceQueryWrapper).stream()
.map(TopicReference::getTopicId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(referencedTopicIds)) {
topicService.decreaseReferenceCountBatch(referencedTopicIds, 1);
}
topicReferenceService.remove(topicReferenceQueryWrapper);
}
List<TopicReference> topicReferenceList = new ArrayList<>();
for (String topicId : existsTopicIds) {
TopicReference topicReference = new TopicReference();
topicReference.setTopicId(topicId);
topicReference.setReferencerId(blog.getBlogId());
topicReference.setReferencerType(0);
topicReference.setReferencerId(blogId);
topicReference.setReferencerType(TopicReferenceType.BLOG_REFERENCE.getType());
topicReferenceList.add(topicReference);
}
// 批量保存
......@@ -403,29 +389,35 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
}
}
//5.判断是否引用标签
// 添加新标签
// 2.处理标签引用
if (!CollectionUtils.isEmpty(tagIds)) {
List<String> existsTagIds = tagService.listByIds(tagIds).stream().map(Tag::getTagId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTagIds)) {
// 删除旧标签
QueryWrapper<BlogTag> blogTagQueryWrapper = new QueryWrapper<>();
blogTagQueryWrapper.eq("blog_id", blog.getBlogId());
blogTagService.remove(blogTagQueryWrapper);
if (deleteOld) {
// 删除旧标签引用并更新标签的引用量
QueryWrapper<BlogTag> blogTagQueryWrapper = new QueryWrapper<>();
blogTagQueryWrapper.eq("blog_id", blogId);
// 减少对应话题的引用数量
List<String> referencedTagIds =
blogTagService.list(blogTagQueryWrapper).stream()
.map(BlogTag::getTagId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(referencedTagIds)) {
tagService.decreaseReferenceCountBatch(referencedTagIds, 1);
}
blogTagService.remove(blogTagQueryWrapper);
}
List<BlogTag> blogTagList = new ArrayList<>();
for (String tagId : existsTagIds) {
BlogTag blogTag = new BlogTag();
blogTag.setBlogId(blog.getBlogId());
blogTag.setBlogId(blogId);
blogTag.setTagId(tagId);
blogTagList.add(blogTag);
}
blogTagService.saveBatch(blogTagList);
}
}
}
@Override
......
......@@ -12,6 +12,7 @@ import cn.meteor.beyondclouds.modules.tag.entity.Tag;
import cn.meteor.beyondclouds.modules.tag.service.ITagService;
import cn.meteor.beyondclouds.modules.topic.entity.Topic;
import cn.meteor.beyondclouds.modules.topic.entity.TopicReference;
import cn.meteor.beyondclouds.modules.topic.enums.TopicReferenceType;
import cn.meteor.beyondclouds.modules.topic.service.ITopicReferenceService;
import cn.meteor.beyondclouds.modules.topic.service.ITopicService;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
......@@ -130,52 +131,8 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
questionExt.setQuestionDetail(questionDetail);
questionExtService.save(questionExt);
//5.判断是否引用话题
if (!CollectionUtils.isEmpty(topicIds)) {
// 获取要引用的话题,不正确的话题ID会被自动过滤
List<String> existsTopicIds = topicService.listByIds(topicIds).stream().map(Topic::getTopicId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTopicIds)) {
List<TopicReference> topicReferenceList = new ArrayList<>();
for (String topicId : existsTopicIds) {
TopicReference topicReference = new TopicReference();
topicReference.setTopicId(topicId);
topicReference.setReferencerId(question.getQuestionId());
topicReference.setReferencerType(2);
topicReferenceList.add(topicReference);
}
// 批量保存
topicReferenceService.saveBatch(topicReferenceList);
// 更新话题引用次数
existsTopicIds.forEach(topicId -> {
topicService.increaseReferenceCount(topicId, 1);
});
}
}
//5.判断是否引用标签
if (!CollectionUtils.isEmpty(tagIds)) {
List<String> existsTagIds = tagService.listByIds(tagIds).stream().filter(tag -> tag.getTagType() == 2).map(Tag::getTagId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTagIds)) {
List<QuestionTag> questionTagList = new ArrayList<>();
for (String tagId : existsTagIds) {
QuestionTag questionTag = new QuestionTag();
questionTag.setQuestionId(question.getQuestionId());
questionTag.setTagId(tagId);
questionTagList.add(questionTag);
}
questionTagService.saveBatch(questionTagList);
//更新标签引用次数
existsTagIds.forEach(tagId -> {
Tag tag = tagService.getById(tagId);
if (null != tag) {
tag.setReferenceCount(tag.getReferenceCount() + 1);
tagService.updateById(tag);
}
});
}
}
// 5.处理对话题和标签的引用
updateTopicAndTagReference(topicIds, tagIds, question.getQuestionId(), false);
}
@Transactional(rollbackFor = Exception.class)
......@@ -252,50 +209,8 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
questionExtService.update(updateWrapper);
}
//5.判断是否引用话题
if (!CollectionUtils.isEmpty(topicIds)) {
// 获取要引用的话题,不正确的话题ID会被自动过滤
List<String> existsTopicIds = topicService.listByIds(topicIds).stream().map(Topic::getTopicId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTopicIds)) {
// 删除旧话题引用
topicReferenceService.remove(QuestionUtils.getWrapper("referencer_id", question.getQuestionId()));
List<TopicReference> topicReferenceList = new ArrayList<>();
for (String topicId : existsTopicIds) {
TopicReference topicReference = new TopicReference();
topicReference.setTopicId(topicId);
topicReference.setReferencerId(question.getQuestionId());
topicReference.setReferencerType(2);
topicReferenceList.add(topicReference);
}
// 批量保存
topicReferenceService.saveBatch(topicReferenceList);
// 更新话题引用次数
existsTopicIds.forEach(topicId -> {
topicService.increaseReferenceCount(topicId, 1);
});
}
}
//5.判断是否引用标签
if (!CollectionUtils.isEmpty(tagIds)) {
List<String> existsTagIds = tagService.listByIds(tagIds).stream().filter(tag -> 2 == tag.getTagType()).map(Tag::getTagId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTagIds)) {
// 删除旧标签
questionTagService.remove(QuestionUtils.getWrapper("question_id", question.getQuestionId()));
List<QuestionTag> questionTagList = new ArrayList<>();
for (String tagId : existsTagIds) {
QuestionTag questionTag = new QuestionTag();
questionTag.setQuestionId(question.getQuestionId());
questionTag.setTagId(tagId);
questionTagList.add(questionTag);
}
questionTagService.saveBatch(questionTagList);
}
}
// 5.处理对话题和标签的引用
updateTopicAndTagReference(topicIds, tagIds, question.getQuestionId(), true);
}
@Override
......@@ -393,4 +308,83 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
questionQueryWrapper.orderByDesc("q.view_number");
return questionMapper.selectPageWithTags(page, questionQueryWrapper);
}
/**
* 更新问题里面对标签和话题的引用
* @param tagIds
* @param topicIds
* @param questionId
* @param deleteOld
*/
private void updateTopicAndTagReference(List<String> topicIds, List<String> tagIds, String questionId, boolean deleteOld) {
// 1.处理话题引用
if (!CollectionUtils.isEmpty(topicIds)) {
// 获取要引用的话题,不正确的话题ID会被自动过滤
List<Topic> topicList = topicService.listByIds(topicIds);
List<String> existsTopicIds = topicList.stream().map(Topic::getTopicId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTopicIds)) {
if (deleteOld) {
// 删除旧话题引用并更新话题的引用量
QueryWrapper<TopicReference> topicReferenceQueryWrapper = new QueryWrapper<>();
topicReferenceQueryWrapper.eq("referencer_id", questionId);
// 减少对应话题的引用数量
List<String> referencedTopicIds =
topicReferenceService.list(topicReferenceQueryWrapper).stream()
.map(TopicReference::getTopicId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(referencedTopicIds)) {
topicService.decreaseReferenceCountBatch(referencedTopicIds, 1);
}
topicReferenceService.remove(topicReferenceQueryWrapper);
}
// 创建引用列表
List<TopicReference> topicReferenceList = existsTopicIds.stream()
.map(topicId -> {
TopicReference topicReference = new TopicReference();
topicReference.setTopicId(topicId);
topicReference.setReferencerId(questionId);
topicReference.setReferencerType(TopicReferenceType.QUESTION_REFERENCE.getType());
return topicReference;
}).collect(Collectors.toList());
// 保存话题引用
topicReferenceService.saveBatch(topicReferenceList);
// 更新话题引用次数
topicService.increaseReferenceCountBatch(existsTopicIds, 1);
}
}
// 2.处理标签引用
if (!CollectionUtils.isEmpty(tagIds)) {
List<String> existsTagIds = tagService.listByIds(tagIds).stream().map(Tag::getTagId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existsTagIds)) {
if (deleteOld) {
// 删除旧标签引用并更新标签的引用量
QueryWrapper<QuestionTag> questionTagQueryWrapper = new QueryWrapper<>();
questionTagQueryWrapper.eq("question_id", questionId);
// 减少对应话题的引用数量
List<String> referencedTagIds =
questionTagService.list(questionTagQueryWrapper).stream()
.map(QuestionTag::getTagId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(referencedTagIds)) {
tagService.decreaseReferenceCountBatch(referencedTagIds, 1);
}
questionTagService.remove(questionTagQueryWrapper);
}
// 保存标签引用
List<QuestionTag> questionTagList = existsTagIds.stream()
.map(tagId -> {
QuestionTag questionTag = new QuestionTag();
questionTag.setQuestionId(questionId);
questionTag.setTagId(tagId);
return questionTag;
}).collect(Collectors.toList());
questionTagService.saveBatch(questionTagList);
// 更新标签引用次数
tagService.increaseReferenceCountBatch(existsTagIds, 1);
}
}
}
}
......@@ -5,6 +5,8 @@ import cn.meteor.beyondclouds.modules.tag.exception.TagServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
/**
* <p>
* 标签表 服务类
......@@ -49,4 +51,33 @@ public interface ITagService extends IService<Tag> {
* @return
*/
IPage<Tag> getHotPage(Integer pageNumber, Integer pageSize);
/**
* 增加标签引用次数
* @param tagId
* @param count
*/
void increaseReferenceCount(String tagId, int count);
/**
* 批量增加标签引用次数
* @param tagIds
* @param count
*/
void increaseReferenceCountBatch(Collection<String> tagIds, int count);
/**
* 减少标签引用次数
* @param tagId
* @param count
*/
void decreaseReferenceCount(String tagId, int count);
/**
* 批量减少标签引用次数
* @param tagIds
* @param count
*/
void decreaseReferenceCountBatch(Collection<String> tagIds, int count);
}
......@@ -5,14 +5,16 @@ import cn.meteor.beyondclouds.modules.tag.enums.TagErrorCode;
import cn.meteor.beyondclouds.modules.tag.exception.TagServiceException;
import cn.meteor.beyondclouds.modules.tag.mapper.TagMapper;
import cn.meteor.beyondclouds.modules.tag.service.ITagService;
import cn.meteor.beyondclouds.modules.topic.entity.Topic;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collection;
/**
* <p>
* 标签表 服务实现类
......@@ -87,4 +89,36 @@ public class TagServiceImpl extends ServiceImpl<TagMapper, Tag> implements ITagS
return page(page,tagHotQueryWrapper);
}
@Override
public void increaseReferenceCount(String tagId, int count) {
UpdateWrapper<Tag> tagUpdateWrapper = new UpdateWrapper<>();
tagUpdateWrapper.eq("tag_id", tagId);
tagUpdateWrapper.setSql("reference_count=reference_count + " + count);
update(tagUpdateWrapper);
}
@Override
public void increaseReferenceCountBatch(Collection<String> tagIds, int count) {
UpdateWrapper<Tag> tagUpdateWrapper = new UpdateWrapper<>();
tagUpdateWrapper.in("tag_id", tagIds);
tagUpdateWrapper.setSql("reference_count=reference_count + " + count);
update(tagUpdateWrapper);
}
@Override
public void decreaseReferenceCount(String tagId, int count) {
UpdateWrapper<Tag> tagUpdateWrapper = new UpdateWrapper<>();
tagUpdateWrapper.eq("tag_id", tagId);
tagUpdateWrapper.setSql("reference_count=reference_count - " + count);
update(tagUpdateWrapper);
}
@Override
public void decreaseReferenceCountBatch(Collection<String> tagIds, int count) {
UpdateWrapper<Tag> tagUpdateWrapper = new UpdateWrapper<>();
tagUpdateWrapper.in("tag_id", tagIds);
tagUpdateWrapper.setSql("reference_count=reference_count - " + count);
update(tagUpdateWrapper);
}
}
package cn.meteor.beyondclouds.modules.topic.enums;
import lombok.Getter;
/**
* 话题引用类型
* @author meteor
*/
@Getter
public enum TopicReferenceType {
BLOG_REFERENCE(0),
PROJECT_REFERENCE(1),
QUESTION_REFERENCE(2),
POST_REFERENCE(3)
;
private int type;
TopicReferenceType(int type) {
this.type = type;
}
}
package cn.meteor.beyondclouds.modules.topic.service;
import cn.meteor.beyondclouds.modules.tag.exception.TagServiceException;
import cn.meteor.beyondclouds.modules.topic.entity.Topic;
import cn.meteor.beyondclouds.modules.topic.exception.TopicServiceException;
import cn.meteor.beyondclouds.modules.user.entity.User;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
/**
* <p>
* 话题表 服务类
......@@ -90,6 +91,27 @@ public interface ITopicService extends IService<Topic> {
void increaseReferenceCount(String topicId, int count);
/**
* 批量增加话题引用次数
* @param topicIds
* @param count
*/
void increaseReferenceCountBatch(Collection<String> topicIds, int count);
/**
* 减少话题引用次数
* @param topicId
* @param count
*/
void decreaseReferenceCount(String topicId, int count);
/**
* 批量减少话题引用次数
* @param topicIds
* @param count
*/
void decreaseReferenceCountBatch(Collection<String> topicIds, int count);
/**
* 取消关注话题
* @param userId
* @param topicId
......
package cn.meteor.beyondclouds.modules.topic.service.impl;
import cn.meteor.beyondclouds.modules.tag.exception.TagServiceException;
import cn.meteor.beyondclouds.modules.topic.entity.Topic;
import cn.meteor.beyondclouds.modules.topic.entity.TopicFollow;
import cn.meteor.beyondclouds.modules.topic.enums.TopicErrorCode;
......@@ -11,12 +10,14 @@ import cn.meteor.beyondclouds.modules.topic.service.ITopicService;
import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
......@@ -195,11 +196,34 @@ public class TopicServiceImpl extends ServiceImpl<TopicMapper, Topic> implements
@Override
public void increaseReferenceCount(String topicId, int count) {
Topic topic = getById(topicId);
if (null != topic) {
topic.setReferenceCount(topic.getReferenceCount() + count);
updateById(topic);
}
UpdateWrapper<Topic> topicUpdateWrapper = new UpdateWrapper<>();
topicUpdateWrapper.eq("topic_id", topicId);
topicUpdateWrapper.setSql("reference_count=reference_count + " + count);
update(topicUpdateWrapper);
}
@Override
public void increaseReferenceCountBatch(Collection<String> topicIds, int count) {
UpdateWrapper<Topic> topicUpdateWrapper = new UpdateWrapper<>();
topicUpdateWrapper.in("topic_id", topicIds);
topicUpdateWrapper.setSql("reference_count=reference_count + " + count);
update(topicUpdateWrapper);
}
@Override
public void decreaseReferenceCount(String topicId, int count) {
UpdateWrapper<Topic> topicUpdateWrapper = new UpdateWrapper<>();
topicUpdateWrapper.eq("topic_id", topicId);
topicUpdateWrapper.setSql("reference_count=reference_count - " + count);
update(topicUpdateWrapper);
}
@Override
public void decreaseReferenceCountBatch(Collection<String> topicIds, int count) {
UpdateWrapper<Topic> topicUpdateWrapper = new UpdateWrapper<>();
topicUpdateWrapper.in("topic_id", topicIds);
topicUpdateWrapper.setSql("reference_count=reference_count - " + count);
update(topicUpdateWrapper);
}
@Override
......
package cn.meteor.beyondclouds.modules.tag.service.impl;
import cn.meteor.beyondclouds.modules.tag.service.ITagService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
import static org.junit.Assert.*;
@SpringBootTest
@RunWith(SpringRunner.class)
public class TagServiceImplTest {
@Autowired
private ITagService tagService;
@Test
public void increaseReferenceCount() {
tagService.increaseReferenceCount("0718c0c591eb6c957b9c8691e808538e", 2);
}
@Test
public void increaseReferenceCountBatch() {
tagService.increaseReferenceCountBatch(List.of("0718c0c591eb6c957b9c8691e808538e", "32eb229153d0f2b8919a1e0442e15146"), 2);
}
@Test
public void decreaseReferenceCount() {
tagService.decreaseReferenceCount("0718c0c591eb6c957b9c8691e808538e", 2);
}
@Test
public void decreaseReferenceCountBatch() {
tagService.decreaseReferenceCountBatch(List.of("0718c0c591eb6c957b9c8691e808538e", "32eb229153d0f2b8919a1e0442e15146"), 2);
}
}
\ No newline at end of file
package cn.meteor.beyondclouds.modules.topic.service.impl;
import cn.meteor.beyondclouds.modules.topic.service.ITopicService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
import static org.junit.Assert.*;
@SpringBootTest
@RunWith(SpringRunner.class)
public class TopicServiceImplTest {
@Autowired
private ITopicService topicService;
@Test
public void increaseReferenceCount() {
topicService.increaseReferenceCount("229d7edbbe76badb0937238dc168c329", 2);
}
@Test
public void increaseReferenceCountBatch() {
topicService.increaseReferenceCountBatch(List.of("229d7edbbe76badb0937238dc168c329", "32d0053d77e27fecbad5928c66ff617f"), 2);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment