chimes_rust/entity/
chimes_attachment_ref_info.rs

1use chimes_utils::i64_from_str;
2use rbatis::crud::{CRUDMut, Skip, CRUD};
3use rbatis::crud_table;
4use rbatis::error::Error;
5use rbatis::executor::{RBatisTxExecutor, RbatisRef};
6use rbatis::rbatis::Rbatis;
7use rbatis::Page;
8use rbatis::PageRequest;
9use rbson::Bson;
10use serde_derive::{Deserialize, Serialize};
11/**
12 * Generate the file for chimes_attachment_ref_info.rs,
13 */
14use std::fmt::Debug;
15
16#[crud_table(table_name:"chimes_attachment_rel"|table_columns:"rel_id,attachment_id,business_name,business_id,modify_by,create_time,update_time")]
17#[derive(Debug, Clone, Default, Deserialize, Serialize)]
18pub struct ChimesAttachmentRefInfo {
19    #[serde(default)]
20    #[serde(deserialize_with = "i64_from_str")]
21    pub rel_id: Option<i64>,
22    #[serde(default)]
23    #[serde(deserialize_with = "i64_from_str")]
24    pub attachment_id: Option<i64>,
25    pub business_name: Option<String>,
26    #[serde(default)]
27    #[serde(deserialize_with = "i64_from_str")]
28    pub business_id: Option<i64>,
29    pub modify_by: Option<String>,
30    pub create_time: Option<rbatis::DateTimeNative>,
31    pub update_time: Option<rbatis::DateTimeNative>,
32}
33
34impl ChimesAttachmentRefInfo {
35    #[allow(dead_code)]
36    pub async fn from_id(rb: &Rbatis, rel_id: &i64) -> Result<Option<Self>, Error> {
37        let wp = rb.new_wrapper().eq("rel_id", rel_id);
38        rb.fetch_by_wrapper::<Option<Self>>(wp).await
39    }
40
41    #[allow(dead_code)]
42    pub async fn save(&mut self, rb: &mut RBatisTxExecutor<'_>) -> Result<u64, Error> {
43        match rb.save(self, &[Skip::Column("rel_id")]).await {
44            Ok(ds) => {
45                self.rel_id = ds.last_insert_id;
46                Ok(ds.rows_affected)
47            }
48            Err(err) => Err(err),
49        }
50    }
51
52    #[allow(dead_code)]
53    pub async fn update(&self, rb: &mut RBatisTxExecutor<'_>) -> Result<u64, Error> {
54        let wp = rb.get_rbatis().new_wrapper().eq("rel_id", self.rel_id);
55        rb.update_by_wrapper(self, wp, &[Skip::Column("rel_id")])
56            .await
57    }
58
59    #[allow(dead_code)]
60    pub async fn update_selective(&self, rb: &mut RBatisTxExecutor<'_>) -> Result<u64, Error> {
61        let wp = rb.get_rbatis().new_wrapper().eq("rel_id", self.rel_id);
62        rb.update_by_wrapper(self, wp, &[Skip::Value(Bson::Null)])
63            .await
64    }
65
66    #[allow(dead_code)]
67    pub async fn remove_batch(&self, rb: &mut RBatisTxExecutor<'_>) -> Result<u64, Error> {
68        let wp = rb
69            .get_rbatis()
70            .new_wrapper()
71            .r#if(self.rel_id.clone().is_some(), |w| {
72                w.and().eq("rel_id", self.rel_id.unwrap())
73            })
74            .r#if(self.attachment_id.clone().is_some(), |w| {
75                w.and().eq("attachment_id", self.attachment_id.unwrap())
76            })
77            .r#if(self.business_name.clone().is_some(), |w| {
78                w.and()
79                    .eq("business_name", self.business_name.clone().unwrap())
80            })
81            .r#if(self.business_id.clone().is_some(), |w| {
82                w.and().eq("business_id", self.business_id.unwrap())
83            })
84            .r#if(self.modify_by.clone().is_some(), |w| {
85                w.and().eq("modify_by", self.modify_by.clone().unwrap())
86            })
87            .r#if(self.create_time.clone().is_some(), |w| {
88                w.and().eq("create_time", self.create_time.unwrap())
89            })
90            .r#if(self.update_time.clone().is_some(), |w| {
91                w.and().eq("update_time", self.update_time.unwrap())
92            });
93        rb.remove_by_wrapper::<Self>(wp).await
94    }
95
96    #[allow(dead_code)]
97    pub async fn remove(&mut self, rb: &mut RBatisTxExecutor<'_>) -> Result<u64, Error> {
98        let wp = rb.get_rbatis().new_wrapper().eq("rel_id", self.rel_id);
99        rb.remove_by_wrapper::<Self>(wp).await
100    }
101
102    #[allow(dead_code)]
103    pub async fn remove_ids(rb: &mut RBatisTxExecutor<'_>, ids: &[i64]) -> Result<u64, Error> {
104        let wp = rb.get_rbatis().new_wrapper().r#in("rel_id", ids);
105        rb.remove_by_wrapper::<Self>(wp).await
106    }
107
108    #[allow(dead_code)]
109    pub async fn remove_attachment_ids(
110        rb: &mut RBatisTxExecutor<'_>,
111        ids: &[i64],
112    ) -> Result<u64, Error> {
113        let wp = rb.get_rbatis().new_wrapper().r#in("attachment_id", ids);
114        rb.remove_by_wrapper::<Self>(wp).await
115    }
116
117    #[allow(dead_code)]
118    pub async fn load_ids(rb: &Rbatis, ids: &[i64]) -> Result<Vec<Self>, Error> {
119        let wp = rb.new_wrapper().r#in("rel_id", ids);
120        rb.fetch_list_by_wrapper::<Self>(wp).await
121    }
122
123    #[allow(dead_code)]
124    pub async fn query_paged(&self, rb: &Rbatis, curr: u64, ps: u64) -> Result<Page<Self>, Error> {
125        let wp = rb
126            .new_wrapper()
127            .r#if(self.rel_id.clone().is_some(), |w| {
128                w.and().eq("rel_id", self.rel_id.unwrap())
129            })
130            .r#if(self.attachment_id.clone().is_some(), |w| {
131                w.and().eq("attachment_id", self.attachment_id.unwrap())
132            })
133            .r#if(self.business_name.clone().is_some(), |w| {
134                w.and()
135                    .eq("business_name", self.business_name.clone().unwrap())
136            })
137            .r#if(self.business_id.clone().is_some(), |w| {
138                w.and().eq("business_id", self.business_id.unwrap())
139            })
140            .r#if(self.modify_by.clone().is_some(), |w| {
141                w.and().eq("modify_by", self.modify_by.clone().unwrap())
142            })
143            .r#if(self.create_time.clone().is_some(), |w| {
144                w.and().eq("create_time", self.create_time.unwrap())
145            })
146            .r#if(self.update_time.clone().is_some(), |w| {
147                w.and().eq("update_time", self.update_time.unwrap())
148            });
149        rb.fetch_page_by_wrapper::<Self>(wp, &PageRequest::new(curr, ps))
150            .await
151    }
152
153    #[allow(dead_code)]
154    pub async fn query_list(&self, rb: &Rbatis) -> Result<Vec<Self>, Error> {
155        let wp = rb
156            .new_wrapper()
157            .r#if(self.rel_id.clone().is_some(), |w| {
158                w.and().eq("rel_id", self.rel_id.unwrap())
159            })
160            .r#if(self.attachment_id.clone().is_some(), |w| {
161                w.and().eq("attachment_id", self.attachment_id.unwrap())
162            })
163            .r#if(self.business_name.clone().is_some(), |w| {
164                w.and()
165                    .eq("business_name", self.business_name.clone().unwrap())
166            })
167            .r#if(self.business_id.clone().is_some(), |w| {
168                w.and().eq("business_id", self.business_id.unwrap())
169            })
170            .r#if(self.modify_by.clone().is_some(), |w| {
171                w.and().eq("modify_by", self.modify_by.clone().unwrap())
172            })
173            .r#if(self.create_time.clone().is_some(), |w| {
174                w.and().eq("create_time", self.create_time.unwrap())
175            })
176            .r#if(self.update_time.clone().is_some(), |w| {
177                w.and().eq("update_time", self.update_time.unwrap())
178            });
179        rb.fetch_list_by_wrapper::<Self>(wp).await
180    }
181
182    #[allow(dead_code)]
183    pub async fn query_all(rb: &Rbatis) -> Result<Vec<Self>, Error> {
184        let wp = rb.new_wrapper();
185        rb.fetch_list_by_wrapper::<Self>(wp).await
186    }
187}