pub async fn list(
State(state): State<ArcAppState>,
Query(frm): Query<form::subject::ListForAdmin>,
) -> Result<resp::JsonResp<model::subject::SubjectPaginate>> {
let handler_name = "admin/subject/list";
let p = get_pool(&state);
let subjects = model::subject::Subject::list(
&*p,
&model::subject::SubjectListFilter {
pq: model::subject::SubjectPaginateReq {
page: frm.pq.page(),
page_size: frm.pq.page_size(),
},
order: None,
is_del: frm.is_del(),
status: frm.status,
name: frm.name,
slug: frm.slug,
},
)
.await
.map_err(Error::from)
.map_err(log_error(handler_name))?;
Ok(resp::ok(subjects))
}
#[derive(Debug, Default, Deserialize, Serialize, sqlx::FromRow, Db)]
#[db(table = subjects, pk = id, del_field = is_del)]
pub struct Subject {
#[db(find)]
#[db(skip_update)]
pub id: String,
#[db(list_opt)]
#[db(list_opt_like)]
pub name: String,
#[db(find)]
#[db(exists)]
#[db(list_opt)]
#[db(list_opt_like)]
pub slug: String,
pub summary: String,
#[db(find_opt)]
#[db(list_opt)]
pub is_del: bool,
pub cover: String,
#[db(list_opt)]
pub status: Status,
pub price: Decimal,
pub pin: i32,
}
作为 Java 开发,看到这个 list 方法本能的想跳转过去看下这个 model::subject::Subject::list 方法的实现咋写的,但是跳转过去是宏? 那我咋知道最后是咋写的呢?
实在是懵逼~
![]() |
1
zizon 14 天前
你们 mybatis/spring 不最喜欢干这种事么?
|
![]() |
2
lait 14 天前
使用宏展开指令,就能看到最终的实现了,具体指令自己搜搜哈,不知道现在 VS Code 有相应的插件可以一键宏展开没有
|