Commit 9b3bea87 authored by Liang Ding's avatar Liang Ding

🐛 Fix #12880

parent e2a96625
...@@ -52,7 +52,7 @@ import static org.b3log.solo.model.Article.*; ...@@ -52,7 +52,7 @@ import static org.b3log.solo.model.Article.*;
* Article management service. * Article management service.
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.3.1.6, Aug 18, 2019 * @version 1.3.2.0, Sep 1, 2019
* @since 0.3.5 * @since 0.3.5
*/ */
@Service @Service
...@@ -117,6 +117,12 @@ public class ArticleMgmtService { ...@@ -117,6 +117,12 @@ public class ArticleMgmtService {
@Inject @Inject
private CommentRepository commentRepository; private CommentRepository commentRepository;
/**
* Category-tag repository.
*/
@Inject
private CategoryTagRepository categoryTagRepository;
/** /**
* Permalink query service. * Permalink query service.
*/ */
...@@ -810,19 +816,16 @@ public class ArticleMgmtService { ...@@ -810,19 +816,16 @@ public class ArticleMgmtService {
* @throws JSONException json exception * @throws JSONException json exception
* @throws RepositoryException repository exception * @throws RepositoryException repository exception
*/ */
private void removeTagArticleRelations(final String articleId, final String... tagIds) private void removeTagArticleRelations(final String articleId, final String... tagIds) throws JSONException, RepositoryException {
throws JSONException, RepositoryException {
final List<String> tagIdList = Arrays.asList(tagIds); final List<String> tagIdList = Arrays.asList(tagIds);
final List<JSONObject> tagArticleRelations = tagArticleRepository.getByArticleId(articleId); final List<JSONObject> tagArticleRelations = tagArticleRepository.getByArticleId(articleId);
for (int i = 0; i < tagArticleRelations.size(); i++) { for (int i = 0; i < tagArticleRelations.size(); i++) {
final JSONObject tagArticleRelation = tagArticleRelations.get(i); final JSONObject tagArticleRelation = tagArticleRelations.get(i);
String relationId; String relationId;
if (tagIdList.isEmpty()) { // Removes all if un-specified if (tagIdList.isEmpty()) { // Removes all if un-specified
relationId = tagArticleRelation.getString(Keys.OBJECT_ID); relationId = tagArticleRelation.getString(Keys.OBJECT_ID);
tagArticleRepository.remove(relationId); tagArticleRepository.remove(relationId);
} else { } else {
if (tagIdList.contains(tagArticleRelation.getString(Tag.TAG + "_" + Keys.OBJECT_ID))) { if (tagIdList.contains(tagArticleRelation.getString(Tag.TAG + "_" + Keys.OBJECT_ID))) {
relationId = tagArticleRelation.getString(Keys.OBJECT_ID); relationId = tagArticleRelation.getString(Keys.OBJECT_ID);
...@@ -833,6 +836,7 @@ public class ArticleMgmtService { ...@@ -833,6 +836,7 @@ public class ArticleMgmtService {
final String tagId = tagArticleRelation.optString(Tag.TAG + "_" + Keys.OBJECT_ID); final String tagId = tagArticleRelation.optString(Tag.TAG + "_" + Keys.OBJECT_ID);
final int articleCount = tagArticleRepository.getArticleCount(tagId); final int articleCount = tagArticleRepository.getArticleCount(tagId);
if (1 > articleCount) { if (1 > articleCount) {
categoryTagRepository.removeByTagId(tagId);
tagRepository.remove(tagId); tagRepository.remove(tagId);
} }
} }
......
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