ruwebframe 0.1.6

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation
use crate::rubase::rudto::RedisDto;
use crate::rubase::{BaseEntitySingle};
use crate::rucfg;
use crate::rulog::ru_log;
use redis::{Client, Commands, RedisResult};
use serde::{Deserialize, Serialize};
use crate::rubase::get_self::GetSelf;

pub trait TraitRedis {
    fn conn(&self) -> redis::RedisResult<Client>;
    fn set_key(&self, key: &str, value: &str) -> redis::RedisResult<()>;
    fn get_key(&self, key: &str) -> redis::RedisResult<String>;
    fn del_key(&self, key: &str) -> redis::RedisResult<String>;
}

#[derive(Debug,Serialize,Deserialize,Clone)]
pub struct RedisClient {
    redisDto: RedisDto,
    #[serde(skip)]
    client: Option<redis::Client>,
}


impl BaseEntitySingle for RedisClient {}
impl RedisClient {
    pub fn reopen(&self) -> RedisResult<Client> {
        // 1. 创建客户端并获取连接 let client = redis::Client::open("redis://123456@192.168.1.153:26379/")?;
        let client =
            redis::Client::open(self.redisDto.build_url()).expect("Failed to connect to Redis");
        //self.client = Some(client);
        Ok(client)
    }
}
impl GetSelf for RedisClient {}

impl RedisClient {
   pub fn new() -> Self {
        let config = rucfg::find_bean_ru_config().unwrap().read();
        ru_log::info2("redis:", config.redis.build_url().as_str());
        let client =
            redis::Client::open(config.redis.build_url()).expect("Failed to connect to Redis");
        Self {
            redisDto: config.redis,
            client: Some(client),
        }
    }
}
impl TraitRedis for RedisClient {
    fn conn(&self) -> redis::RedisResult<Client> {
        let client =
            redis::Client::open(self.redisDto.build_url()).expect("Failed to connect to Redis");
        //self.client = Some(client);
        Ok(client)
    }
    fn set_key(&self, key: &str, value: &str) -> redis::RedisResult<()> {
        let mut con = self.client.as_ref().unwrap().get_connection()?;

        // 2. 执行 SET 和 GET 命令
        let _: () = con.set(key, value)?;

        Ok(())
    }
    fn get_key(&self, key: &str) -> redis::RedisResult<String> {
        let mut con = self.client.as_ref().unwrap().get_connection()?;

        let result: String = con.get(key)?;

        println!("从 Redis 读取的值: {}", result);
        ru_log::info(result.to_string().as_str());
        Ok(result)
    }
    fn del_key(&self, key: &str) -> redis::RedisResult<String> {
        let mut con = self.client.as_ref().unwrap().get_connection()?;

        let result: String = con.del(key)?;

        Ok(result)
    }
}