diff --git a/src/app_router.rs b/src/app_router.rs index f04a3d5..4ac5469 100644 --- a/src/app_router.rs +++ b/src/app_router.rs @@ -149,7 +149,7 @@ pub async fn home_page( let uv_read = ctx.unique_visitor.read().await; let mut level: HashMap = HashMap::new(); - let mut rank_vec: Vec<(i64, NaiveDateTime)> = Vec::new(); + let mut rank_vec: Vec<(i64, NaiveDateTime, i64)> = Vec::new(); for k in ctx.id2member.keys() { let uv = uv_read @@ -161,12 +161,15 @@ pub async fn home_page( .unwrap_or(&(0, NaiveDateTime::from_timestamp(0, 0))) .to_owned(); if uv.0 > 0 || rv.0 > 0 { - rank_vec.push((k.to_owned(), rv.1)); + rank_vec.push((k.to_owned(), rv.1, uv.0)); level.insert(k.to_owned(), ctx.get_tend_from_uv_and_rv(uv.0, rv.0).await); } } - rank_vec.sort_by(|a, b| b.1.cmp(&a.1)); + rank_vec.sort_by(|a, b| match b.1.cmp(&a.1) { + std::cmp::Ordering::Equal => b.2.cmp(&a.2), + _ => b.1.cmp(&a.1), + }); let mut membership = Vec::new(); for v in rank_vec { diff --git a/src/statistics_model.rs b/src/statistics_model.rs index 0f23c96..f11cdec 100644 --- a/src/statistics_model.rs +++ b/src/statistics_model.rs @@ -98,7 +98,8 @@ impl Statistics { )) .filter(created_at.between(start, end)) .group_by(membership_id) - .order(sql::("s_referrer DESC")) + .order_by(sql::("s_referrer DESC")) + .then_order_by(sql::("s_unique_visitor DESC")) .load::<(i64, NaiveDateTime, i64, i64)>(&mut conn); let updated_at_list = statistics diff --git a/templates/index.html b/templates/index.html index bf42ca9..4c690d0 100644 --- a/templates/index.html +++ b/templates/index.html @@ -81,7 +81,7 @@

即将移除

- +
编号ID 站点 UV

独立访客

@@ -99,7 +99,7 @@

即将移除

- {{ loop.index }} + {{ r.membership.id }} diff --git a/templates/rank.html b/templates/rank.html index e6600bd..2276cc2 100644 --- a/templates/rank.html +++ b/templates/rank.html @@ -49,7 +49,7 @@

即将移除

- +
编号ID 站点 UV

独立访客

@@ -67,7 +67,7 @@

即将移除

- {{ loop.index }} + {{ r.membership.id }}