chimes_rust/entity/
chimes_user_role_info.rs

1use rbatis::crud::{Skip, CRUD};
2use rbatis::crud_table;
3use rbatis::error::Error;
4use rbatis::rbatis::Rbatis;
5use serde_derive::{Deserialize, Serialize};
6/**
7 * Generate the file for chimes_user_role_info.rs,
8 */
9use std::fmt::Debug;
10
11#[crud_table(table_name:"chimes_users_roles"|table_columns:"user_id,role_id")]
12#[derive(Debug, Clone, Default, Deserialize, Serialize)]
13pub struct ChimesUserRoleInfo {
14    pub user_id: Option<i64>,
15    pub role_id: Option<i64>,
16}
17
18impl ChimesUserRoleInfo {
19    #[allow(dead_code)]
20    pub async fn from_id(rb: &Rbatis, role_id: &i64, user_id: &i64) -> Result<Option<Self>, Error> {
21        let wp = rb
22            .new_wrapper()
23            .eq("role_id", role_id)
24            .and()
25            .eq("user_id", user_id);
26        rb.fetch_by_wrapper::<Option<Self>>(wp).await
27    }
28
29    #[allow(dead_code)]
30    pub async fn save(&mut self, rb: &Rbatis) -> Result<u64, Error> {
31        match rb.save(self, &[]).await {
32            Ok(ds) => Ok(ds.rows_affected),
33            Err(err) => Err(err),
34        }
35    }
36
37    #[allow(dead_code)]
38    pub async fn update(&self, rb: &Rbatis) -> Result<u64, Error> {
39        let wp = rb
40            .new_wrapper()
41            .eq("role_id", self.role_id)
42            .and()
43            .eq("user_id", self.user_id);
44        rb.update_by_wrapper(
45            self,
46            wp,
47            &[Skip::Column("role_id"), Skip::Column("user_id")],
48        )
49        .await
50    }
51
52    #[allow(dead_code)]
53    pub async fn remove_role_ids(rb: &Rbatis, ids: &[i64]) -> Result<u64, Error> {
54        let wp = rb.new_wrapper().r#in("role_id", ids);
55        rb.remove_by_wrapper::<Self>(wp).await
56    }
57
58    #[allow(dead_code)]
59    pub async fn remove_batch(&self, rb: &Rbatis) -> Result<u64, Error> {
60        assert!(self.role_id.is_some() || self.user_id.is_some());
61        let wp = rb
62            .new_wrapper()
63            .r#if(self.user_id.clone().is_some(), |w| {
64                w.and().eq("user_id", self.user_id.unwrap())
65            })
66            .r#if(self.role_id.clone().is_some(), |w| {
67                w.and().eq("role_id", self.role_id.unwrap())
68            });
69        rb.remove_by_wrapper::<Self>(wp).await
70    }
71
72    #[allow(dead_code)]
73    pub async fn remove(&mut self, rb: &Rbatis) -> Result<u64, Error> {
74        let wp = rb
75            .new_wrapper()
76            .eq("role_id", self.role_id)
77            .and()
78            .eq("user_id", self.user_id);
79        rb.remove_by_wrapper::<Self>(wp).await
80    }
81
82    #[allow(dead_code)]
83    pub async fn query_list(&self, rb: &Rbatis) -> Result<Vec<Self>, Error> {
84        let wp = rb
85            .new_wrapper()
86            .r#if(self.user_id.clone().is_some(), |w| {
87                w.and().eq("user_id", self.user_id.unwrap())
88            })
89            .r#if(self.role_id.clone().is_some(), |w| {
90                w.and().eq("role_id", self.role_id.unwrap())
91            });
92        rb.fetch_list_by_wrapper::<Self>(wp).await
93    }
94
95    #[allow(dead_code)]
96    pub async fn query_all(rb: &Rbatis) -> Result<Vec<Self>, Error> {
97        let wp = rb.new_wrapper();
98        rb.fetch_list_by_wrapper::<Self>(wp).await
99    }
100}