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