Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solo-1
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
solo-1
Commits
4ef4c8ea
Unverified
Commit
4ef4c8ea
authored
Sep 11, 2019
by
Liang Ding
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🎨
分类对象加入文章计数
parent
03744eaa
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
6 deletions
+29
-6
src/main/java/org/b3log/solo/model/Category.java
src/main/java/org/b3log/solo/model/Category.java
+6
-1
src/main/java/org/b3log/solo/repository/CategoryRepository.java
...in/java/org/b3log/solo/repository/CategoryRepository.java
+23
-5
No files found.
src/main/java/org/b3log/solo/model/Category.java
View file @
4ef4c8ea
...
...
@@ -21,7 +21,7 @@ package org.b3log.solo.model;
* This class defines all category model relevant keys.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.
1.0.0, Mar 30, 2017
* @version 1.
2.0.0, Sep 11, 2019
* @since 2.0.0
*/
public
final
class
Category
{
...
...
@@ -67,6 +67,11 @@ public final class Category {
*/
public
static
final
String
CATEGORY_T_TAGS
=
"categoryTags"
;
/**
* Key of category published article count.
*/
public
static
final
String
CATEGORY_T_PUBLISHED_ARTICLE_COUNT
=
"categoryPublishedArticleCount"
;
/**
* Private constructor.
*/
...
...
src/main/java/org/b3log/solo/repository/CategoryRepository.java
View file @
4ef4c8ea
...
...
@@ -18,22 +18,21 @@
package
org
.
b3log
.
solo
.
repository
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.ioc.BeanManager
;
import
org.b3log.latke.repository.*
;
import
org.b3log.latke.repository.annotation.Repository
;
import
org.b3log.solo.model.Article
;
import
org.b3log.solo.model.Category
;
import
org.b3log.solo.model.Tag
;
import
org.json.JSONArray
;
import
org.json.JSONObject
;
import
java.text.Collator
;
import
java.util.Collections
;
import
java.util.List
;
/**
* Category repository.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.2.0.
2, Sep 30, 2018
* @version 1.2.0.
3, Sep 11, 2019
* @since 2.0.0
*/
@Repository
...
...
@@ -176,7 +175,26 @@ public class CategoryRepository extends AbstractRepository {
final
Query
query
=
new
Query
().
addSort
(
Category
.
CATEGORY_ORDER
,
SortDirection
.
ASCENDING
).
setPage
(
1
,
num
).
setPageCount
(
1
);
final
List
<
JSONObject
>
ret
=
getList
(
query
);
Collections
.
sort
(
ret
,
(
o1
,
o2
)
->
Collator
.
getInstance
(
java
.
util
.
Locale
.
CHINA
).
compare
(
o1
.
optString
(
Tag
.
TAG_TITLE
),
o2
.
optString
(
Tag
.
TAG_TITLE
)));
final
BeanManager
beanManager
=
BeanManager
.
getInstance
();
final
ArticleRepository
articleRepository
=
beanManager
.
getReference
(
ArticleRepository
.
class
);
final
TagArticleRepository
tagArticleRepository
=
beanManager
.
getReference
(
TagArticleRepository
.
class
);
final
CategoryTagRepository
categoryTagRepository
=
beanManager
.
getReference
(
CategoryTagRepository
.
class
);
for
(
final
JSONObject
category
:
ret
)
{
final
String
categoryId
=
category
.
optString
(
Keys
.
OBJECT_ID
);
final
StringBuilder
queryCount
=
new
StringBuilder
(
"SELECT count(DISTINCT(b3_solo_article.oId)) as C FROM "
);
final
StringBuilder
queryStr
=
new
StringBuilder
(
articleRepository
.
getName
()
+
" AS b3_solo_article,"
).
append
(
tagArticleRepository
.
getName
()
+
" AS b3_solo_tag_article"
).
append
(
" WHERE b3_solo_article.oId=b3_solo_tag_article.article_oId "
).
append
(
" AND b3_solo_article."
).
append
(
Article
.
ARTICLE_STATUS
).
append
(
"="
).
append
(
Article
.
ARTICLE_STATUS_C_PUBLISHED
).
append
(
" AND "
).
append
(
"b3_solo_tag_article.tag_oId"
).
append
(
" IN ("
).
append
(
"SELECT tag_oId FROM "
).
append
(
categoryTagRepository
.
getName
()
+
" AS b3_solo_category_tag WHERE b3_solo_category_tag.category_oId = "
).
append
(
categoryId
).
append
(
")"
);
final
List
<
JSONObject
>
articlesCountResult
=
select
(
queryCount
.
append
(
queryStr
.
toString
()).
toString
());
final
int
articleCount
=
articlesCountResult
==
null
?
0
:
articlesCountResult
.
get
(
0
).
optInt
(
"C"
);
category
.
put
(
Category
.
CATEGORY_T_PUBLISHED_ARTICLE_COUNT
,
articleCount
);
}
return
ret
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment