用户积分变动记录

数据库操作

// src/db/pointer_log.rs

pub async fn list_all<'a>(c: impl PgExecutor<'a>, user_id: &'a str) -> Result<Vec<Model>> {
    let mut q = QueryBuilder::new(
        r#"SELECT id, user_id, dateline, pointer_amount, before_pointer, after_pointer, "note" FROM pointer_logs WHERE user_id="#,
    );
    q.push_bind(user_id)
        .push(" ORDER BY id DESC")
        .push(" LIMIT 50");
    q.build_query_as().fetch_all(c).await
}

Handler

// src/handler/api/user.rs

pub async fn pointer_log(
    State(state): State<ArcAppState>,
    auth: mid::Auth,
) -> Result<resp::JsonResp<Vec<model::pointer_log::PointerLog>>> {
    let user = auth.get_user()?;

    let data = db::pointer_log::list_all(&*state.pool, &user.id).await?;
    Ok(resp::Resp::success(data).to_json())
}
  • 获取当前登录用户
  • 从数据库中查找该用户积分变动记录
  • loadData():从 API 接口中获取数据
  • useEffect():组件加载后,调用 loadData()
要查看完整内容,请先登录