Skip to content

Commit ffbc063

Browse files
author
ljl
committed
spi-plugin:fix bs paginate add kind_codes.
1 parent 9a3403d commit ffbc063

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

basic/src/spi/dto/spi_bs_dto.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ pub struct SpiBsFilterReq {
106106
pub rel2: Option<RbumItemRelFilterReq>,
107107
pub private: Option<bool>,
108108
pub kind_code: Option<String>,
109+
pub kind_codes: Option<Vec<String>>,
109110
pub kind_id: Option<String>,
110111
pub domain_code: Option<String>,
111112
}

basic/src/spi/serv/spi_bs_serv.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,13 @@ impl RbumItemCrudOperation<spi_bs::ActiveModel, SpiBsAddReq, SpiBsModifyReq, Spi
182182
if let Some(kind_code) = &filter.kind_code {
183183
query.and_where(Expr::col((rbum_kind::Entity, rbum_domain::Column::Code)).eq(kind_code.to_string()));
184184
}
185+
if let Some(kind_codes) = &filter.kind_codes {
186+
if kind_codes.len() == 1 {
187+
query.and_where(Expr::col((rbum_kind::Entity, rbum_domain::Column::Code)).eq(kind_codes.first().unwrap().to_string()));
188+
} else if !kind_codes.is_empty() {
189+
query.and_where(Expr::col((rbum_kind::Entity, rbum_domain::Column::Code)).is_in(kind_codes));
190+
}
191+
}
185192
if let Some(kind_id) = &filter.kind_id {
186193
query.and_where(Expr::col((rbum_kind::Entity, rbum_domain::Column::Id)).eq(kind_id.to_string()));
187194
}

spi/spi-plugin/src/api/ci/plugin_ci_bs_api.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ impl PluginCiBsApi {
5757
name: Query<Option<String>>,
5858
kind_id: Query<Option<String>>,
5959
kind_code: Query<Option<String>>,
60+
kind_codes: Query<Option<String>>,
6061
app_tenant_id: Query<Option<String>>,
6162
page_number: Query<u32>,
6263
page_size: Query<u32>,
@@ -72,6 +73,11 @@ impl PluginCiBsApi {
7273
rel_item_id: Some(app_tenant_id),
7374
..Default::default()
7475
});
76+
let kind_codes: Option<Vec<String>> = if Some(kind_codes) = kind_codes.0 {
77+
Some(kind_codes.split(",").map(|kind_code| kind_code.to_string()).collect())
78+
} else {
79+
None
80+
};
7581
let result = SpiBsServ::paginate_items(
7682
&SpiBsFilterReq {
7783
basic: RbumBasicFilterReq {
@@ -81,6 +87,7 @@ impl PluginCiBsApi {
8187
},
8288
kind_id: kind_id.0,
8389
kind_code: kind_code.0,
90+
kind_codes: kind_codes.clone(),
8491
domain_code: Some(funs.module_code().to_string()),
8592
rel,
8693
..Default::default()

0 commit comments

Comments
 (0)