Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit897c901

Browse files
committed
edit by_map method check
1 parentbedbee7 commit897c901

File tree

5 files changed

+94
-101
lines changed

5 files changed

+94
-101
lines changed

‎src/crud.rs

Lines changed: 93 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,11 @@ macro_rules! impl_insert {
108108
"insert can not insert empty array tables!",
109109
));
110110
}
111-
#[$crate::snake_name($table)]
112-
fn snake_name(){}
113111
letmut table_name = $table_name.to_string();
114-
if table_name.is_empty(){
115-
table_name = snake_name();
112+
if table_name.is_empty(){
113+
#[$crate::snake_name($table)]
114+
fn snake_name(){}
115+
table_name = snake_name();
116116
}
117117
letmut result = $crate::rbdc::db::ExecResult{
118118
rows_affected:0,
@@ -176,8 +176,12 @@ macro_rules! impl_select {
176176
};
177177
($table:ty{},$table_name:expr) =>{
178178
$crate::impl_select!($table{select_all() =>""},$table_name);
179-
$crate::impl_select!($table{select_by_map(condition: rbs::Value) ->Vec =>
180-
"trim end=' where ':
179+
impl $table{
180+
pubasyncfn select_by_map(executor:&dyn $crate::executor::Executor, condition: rbs::Value) -> std::result::Result<Vec<$table>, $crate::rbdc::Error>{
181+
use rbatis::crud_traits::ValueOperatorSql;
182+
#[$crate::py_sql(
183+
"`select * from ${table_name} `
184+
trim end=' where ':
181185
` where `
182186
trim ' and ': for key,item in condition:
183187
if !item.is_array():
@@ -187,8 +191,28 @@ macro_rules! impl_select {
187191
trim ',': for _,item_array in item:
188192
#{item_array},
189193
`)`
190-
"
191-
},$table_name);
194+
")]
195+
asyncfn select_by_map(
196+
executor:&dyn $crate::executor::Executor,
197+
table_name:String,
198+
condition:&rbs::Value
199+
) -> std::result::Result<Vec<$table>, $crate::rbdc::Error>{
200+
for(_,v) in condition{
201+
if v.is_array() && v.is_empty(){
202+
returnOk(vec![]);
203+
}
204+
}
205+
impled!()
206+
}
207+
letmut table_name = $table_name.to_string();
208+
if table_name.is_empty(){
209+
#[$crate::snake_name($table)]
210+
fn snake_name(){}
211+
table_name = snake_name();
212+
}
213+
select_by_map(executor, table_name,&condition).await
214+
}
215+
}
192216
};
193217
($table:ty{$fn_name:ident $(< $($gkey:ident:$gtype:path $(,)?)* >)?($($param_key:ident:$param_type:ty $(,)?)*) => $sql:expr}$(,$table_name:expr)?) =>{
194218
$crate::impl_select!($table{$fn_name$(<$($gkey:$gtype,)*>)?($($param_key:$param_type,)*) ->Vec => $sql}$(,$table_name)?);
@@ -204,9 +228,9 @@ macro_rules! impl_select {
204228
letmut table_column ="*".to_string();
205229
letmut table_name =String::new();
206230
$(table_name = $table_name.to_string();)?
207-
#[$crate::snake_name($table)]
208-
fn snake_name(){}
209231
if table_name.is_empty(){
232+
#[$crate::snake_name($table)]
233+
fn snake_name(){}
210234
table_name = snake_name();
211235
}
212236
$fn_name(executor,&table_column,&table_name,$($param_key,)*).await
@@ -240,19 +264,52 @@ macro_rules! impl_update {
240264
);
241265
};
242266
($table:ty{},$table_name:expr) =>{
243-
$crate::impl_update!($table{update_by_map(condition:rbs::Value) =>
244-
"trim end=' where ':
245-
` where `
246-
trim ' and ': for key,item in condition:
267+
impl $table{
268+
pubasyncfn update_by_map(
269+
executor:&dyn $crate::executor::Executor,
270+
table:&$table,
271+
condition: rbs::Value
272+
) -> std::result::Result<$crate::rbdc::db::ExecResult, $crate::rbdc::Error>{
273+
use rbatis::crud_traits::ValueOperatorSql;
274+
#[$crate::py_sql(
275+
"`update ${table_name}`
276+
set collection='table',skips='id':
277+
trim end=' where ':
278+
` where `
279+
trim ' and ': for key,item in condition:
247280
if !item.is_array():
248281
` and ${key.operator_sql()}#{item}`
249282
if item.is_array():
250283
` and ${key} in (`
251284
trim ',': for _,item_array in item:
252285
#{item_array},
253286
`)`
254-
"
255-
},$table_name);
287+
"
288+
)]
289+
asyncfn update_by_map(
290+
executor:&dyn $crate::executor::Executor,
291+
table_name:String,
292+
table:&rbs::Value,
293+
condition:&rbs::Value
294+
) -> std::result::Result<$crate::rbdc::db::ExecResult, $crate::rbdc::Error>{
295+
for(_,v) in condition{
296+
if v.is_array() && v.is_empty(){
297+
returnOk($crate::rbdc::db::ExecResult::default());
298+
}
299+
}
300+
impled!()
301+
}
302+
letmut table_name = $table_name.to_string();
303+
if table_name.is_empty(){
304+
#[$crate::snake_name($table)]
305+
fn snake_name(){}
306+
table_name = snake_name();
307+
}
308+
let table = rbs::value!(table);
309+
update_by_map(executor, table_name,&table,&condition).await
310+
}
311+
}
312+
256313
};
257314
($table:ty{$fn_name:ident($($param_key:ident:$param_type:ty$(,)?)*) => $sql_where:expr}$(,$table_name:expr)?) =>{
258315
impl $table{
@@ -276,9 +333,9 @@ macro_rules! impl_update {
276333
}
277334
letmut table_name =String::new();
278335
$(table_name = $table_name.to_string();)?
279-
#[$crate::snake_name($table)]
280-
fn snake_name(){}
281336
if table_name.is_empty(){
337+
#[$crate::snake_name($table)]
338+
fn snake_name(){}
282339
table_name = snake_name();
283340
}
284341
let table = rbs::value!(table);
@@ -313,19 +370,6 @@ macro_rules! impl_delete {
313370
);
314371
};
315372
($table:ty{},$table_name:expr) =>{
316-
// $crate::impl_delete!($table{ delete_by_map(condition:rbs::Value) =>
317-
// "trim end=' where ':
318-
// ` where `
319-
// trim ' and ': for key,item in condition:
320-
// if !item.is_array():
321-
// ` and ${key.operator_sql()}#{item}`
322-
// if item.is_array():
323-
// ` and ${key} in (`
324-
// trim ',': for _,item_array in item:
325-
// #{item_array},
326-
// `)`
327-
// "
328-
// },$table_name);
329373
impl $table{
330374
pubasyncfn delete_by_map(executor:&dyn $crate::executor::Executor, condition: rbs::Value) -> std::result::Result<$crate::rbdc::db::ExecResult, $crate::rbdc::Error>{
331375
use rbatis::crud_traits::ValueOperatorSql;
@@ -341,21 +385,25 @@ macro_rules! impl_delete {
341385
#{item_array},
342386
`)`
343387
")]
344-
asyncfndelete_by_map_inner(
388+
asyncfndelete_by_map(
345389
executor:&dyn $crate::executor::Executor,
346390
table_name:String,
347-
condition: rbs::Value
391+
condition:&rbs::Value
348392
) -> std::result::Result<$crate::rbdc::db::ExecResult, $crate::rbdc::Error>{
393+
for(_,v) in condition{
394+
if v.is_array() && v.is_empty(){
395+
returnOk($crate::rbdc::db::ExecResult::default());
396+
}
397+
}
349398
impled!()
350399
}
351-
352400
letmut table_name = $table_name.to_string();
353-
#[$crate::snake_name($table)]
354-
fnsnake_name(){}
355-
if table_name.is_empty(){
356-
table_name = snake_name();
401+
if table_name.is_empty(){
402+
#[$crate::snake_name($table)]
403+
fn snake_name(){}
404+
table_name = snake_name();
357405
}
358-
delete_by_map_inner(executor, table_name, condition).await
406+
delete_by_map(executor, table_name,&condition).await
359407
}
360408
}
361409
};
@@ -379,9 +427,9 @@ macro_rules! impl_delete {
379427
}
380428
letmut table_name =String::new();
381429
$(table_name = $table_name.to_string();)?
382-
#[$crate::snake_name($table)]
383-
fn snake_name(){}
384430
if table_name.is_empty(){
431+
#[$crate::snake_name($table)]
432+
fn snake_name(){}
385433
table_name = snake_name();
386434
}
387435
$fn_name(executor, table_name, $($param_key,)*).await
@@ -421,11 +469,12 @@ macro_rules! impl_select_page {
421469
) -> std::result::Result<$crate::plugin::Page::<$table>, $crate::rbdc::Error>{
422470
letmut table_column ="*".to_string();
423471
letmut table_name =String::new();
472+
letmut table_name =String::new();
424473
$(table_name = $table_name.to_string();)?
425-
#[$crate::snake_name($table)]
426-
fn snake_name(){}
427474
if table_name.is_empty(){
428-
table_name = snake_name();
475+
#[$crate::snake_name($table)]
476+
fn snake_name(){}
477+
table_name = snake_name();
429478
}
430479
$crate::pysql_select_page!($fn_name(
431480
table_column:&str,

‎src/plugin/intercept/intercept_check.rs

Lines changed: 0 additions & 47 deletions
This file was deleted.

‎src/plugin/intercept/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
pubmod intercept_check;
21
pubmod intercept_log;
32
pubmod intercept_page;
43

‎src/rbatis.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ use std::ops::Deref;
1414
use std::sync::{Arc,OnceLock};
1515
use std::time::Duration;
1616
usecrate::intercept::Intercept;
17-
usecrate::intercept::intercept_check::CheckIntercept;
1817
usecrate::intercept::intercept_log::LogInterceptor;
1918
usecrate::intercept::intercept_page::PageIntercept;
2019

@@ -47,7 +46,6 @@ impl RBatis {
4746
//default use LogInterceptor
4847
rb.intercepts.push(Arc::new(PageIntercept::new()));
4948
rb.intercepts.push(Arc::new(LogInterceptor::new(LevelFilter::Debug)));
50-
rb.intercepts.push(Arc::new(CheckIntercept::new()));
5149
rb
5250
}
5351

‎tests/crud_test.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -810,13 +810,7 @@ mod test {
810810
)
811811
.await
812812
.unwrap();
813-
let(sql, args) = queue.pop().unwrap();
814-
println!("{}", sql);
815-
assert_eq!(
816-
sql.trim(),
817-
"select * from mock_table where ids in ()"
818-
);
819-
assert_eq!(args, vec![]);
813+
assert_eq!(r, vec![]);
820814
};
821815
block_on(f);
822816
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp