Commit b6ca6eea authored by Liang Ding's avatar Liang Ding

Fix #12412

parent e5e95972
......@@ -32,6 +32,7 @@ import org.b3log.latke.servlet.renderer.JSONRenderer;
import org.b3log.latke.util.Requests;
import org.b3log.latke.util.Strings;
import org.b3log.solo.model.Article;
import org.b3log.solo.model.Common;
import org.b3log.solo.service.ArticleMgmtService;
import org.b3log.solo.service.ArticleQueryService;
import org.b3log.solo.service.UserQueryService;
......@@ -51,7 +52,7 @@ import java.util.stream.Collectors;
* Article console request processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.0.1, Mar 3, 2018
* @version 1.1.0.2, May 17, 2018
* @since 0.4.0
*/
@RequestProcessor
......@@ -301,7 +302,6 @@ public class ArticleConsole {
requestJSONObject.put(Article.ARTICLE_IS_PUBLISHED, published);
final JSONArray excludes = new JSONArray();
excludes.put(Article.ARTICLE_CONTENT);
excludes.put(Article.ARTICLE_UPDATE_DATE);
excludes.put(Article.ARTICLE_CREATE_DATE);
......@@ -311,8 +311,12 @@ public class ArticleConsole {
excludes.put(Article.ARTICLE_RANDOM_DOUBLE);
requestJSONObject.put(Keys.EXCLUDES, excludes);
final JSONObject result = articleQueryService.getArticles(requestJSONObject);
final String keyword = StringUtils.trim(request.getParameter("k"));
if (StringUtils.isNotBlank(keyword)) {
requestJSONObject.put(Common.KEYWORD, keyword);
}
final JSONObject result = articleQueryService.getArticles(requestJSONObject);
result.put(Keys.STATUS_CODE, true);
renderer.setJSONObject(result);
} catch (final Exception e) {
......
......@@ -15,6 +15,7 @@
*/
package org.b3log.solo.service;
import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
import org.b3log.latke.logging.Level;
......@@ -52,7 +53,7 @@ import static org.b3log.solo.model.Article.*;
* @author <a href="http://blog.sweelia.com">ArmstrongCN</a>
* @author <a href="http://zephyr.b3log.org">Zephyr</a>
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 1.3.2.0, Nov 24, 2017
* @version 1.3.2.1, May 17, 2018
* @since 0.3.5
*/
@Service
......@@ -570,6 +571,7 @@ public class ArticleQueryService {
* "paginationPageSize": 20,
* "paginationWindowSize": 10,
* "articleIsPublished": boolean,
* "keyword": "", // Optional search keyword
* "excludes": ["", ....], // Optional
* "enableArticleUpdateHint": bool // Optional
* see {@link Pagination} for more details
......@@ -613,14 +615,29 @@ public class ArticleQueryService {
} else {
query.addSort(ARTICLE_CREATE_DATE, SortDirection.DESCENDING);
}
query.setFilter(new PropertyFilter(ARTICLE_IS_PUBLISHED, FilterOperator.EQUAL, articleIsPublished));
int articleCount = statisticQueryService.getBlogArticleCount();
final String keyword = requestJSONObject.optString(Common.KEYWORD);
if (StringUtils.isBlank(keyword)) {
query.setFilter(new PropertyFilter(ARTICLE_IS_PUBLISHED, FilterOperator.EQUAL, articleIsPublished));
if (!articleIsPublished) {
articleCount -= statisticQueryService.getPublishedBlogArticleCount();
} else {
articleCount = statisticQueryService.getPublishedBlogArticleCount();
}
} else {
query.setFilter(CompositeFilterOperator.and(
new PropertyFilter(ARTICLE_IS_PUBLISHED, FilterOperator.EQUAL, articleIsPublished),
CompositeFilterOperator.or(
new PropertyFilter(ARTICLE_TITLE, FilterOperator.LIKE, "%" + keyword + "%"),
new PropertyFilter(ARTICLE_TAGS_REF, FilterOperator.LIKE, "%" + keyword + "%")
)
));
articleCount = pageSize;
}
final int pageCount = (int) Math.ceil((double) articleCount / (double) pageSize);
query.setPageCount(pageCount);
......
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