support sort by n_attention

This commit is contained in:
2023-05-05 22:06:19 +08:00
parent bbed041253
commit 01f56ea0a6
5 changed files with 16 additions and 2 deletions

View File

@@ -216,6 +216,7 @@ impl PostListCache {
1 => -p.last_comment_time.timestamp(),
2 => (-p.hot_score).into(),
3 => rand::thread_rng().gen_range(0..i64::MAX),
4 => (-p.n_attentions).into(),
_ => panic!("wrong mode"),
},
p.id,

View File

@@ -256,6 +256,10 @@ impl Post {
query = query.filter(posts::is_reported.eq(false));
}
if order_mode == 1 {
query = query.filter(posts::n_comments.gt(0));
}
if let Some(ri) = room_id {
query = query.filter(posts::room_id.eq(ri));
}
@@ -265,6 +269,7 @@ impl Post {
1 => query.order(posts::last_comment_time.desc()),
2 => query.order(posts::hot_score.desc()),
3 => query.order(RANDOM),
4 => query.order(posts::n_attentions.desc()),
_ => panic!("Wrong order mode!"),
};
@@ -351,7 +356,7 @@ impl Post {
pub async fn refresh_cache(&self, rconn: &RdsConn, is_new: bool) {
join!(
self.set_instance_cache(rconn),
future::join_all((if is_new { 0..4 } else { 1..4 }).map(|mode| async move {
future::join_all((if is_new { 0..5 } else { 1..5 }).map(|mode| async move {
PostListCache::init(None, mode, &rconn.clone())
.put(self)
.await;

View File

@@ -45,4 +45,8 @@ table! {
joinable!(comments -> posts (post_id));
allow_tables_to_appear_in_same_query!(comments, posts, users,);
allow_tables_to_appear_in_same_query!(
comments,
posts,
users,
);