class SysConfigServiceImpl implements SysConfigService {

    @Resource
    private SysConfigMapper sysConfigMapper;

    @Override
    @Caching(evict = {
            @CacheEvict(cacheNames= ConfigCacheNames.SYS_CONFIG_OBJECT,key="#key"),
            @CacheEvict(cacheNames= ConfigCacheNames.SYS_CONFIG,key="#key")
    })
    public void updateValueByKey(String key, String value) {
//        sysConfigMapper.updateValueByKey(key, value);
    }

    @Override
    public void deleteBatch(Long[] ids) {
//        sysConfigMapper.deleteBatch(ids);
    }

    @Override
    @Cacheable(cacheNames = ConfigCacheNames.SYS_CONFIG, key = "#key")
    public String getValue(String key) {
        SysConfig config = sysConfigMapper.queryByKey(key);
        return config == null ? null : config.getParamValue();
    }

    @Override
    @Caching(evict = {
            @CacheEvict(cacheNames = ConfigCacheNames.SYS_CONFIG_OBJECT,key="#key"),
            @CacheEvict(cacheNames = ConfigCacheNames.SYS_CONFIG,key="#key")
    })
    public void removeSysConfig(String key) {
    }

    @Override
    @Caching(evict = {
            @CacheEvict(cacheNames = ConfigCacheNames.SYS_CONFIG_OBJECT,key="#sysConfig.paramKey"),
            @CacheEvict(cacheNames = ConfigCacheNames.SYS_CONFIG,key="#sysConfig.paramKey")
    })
    public void saveOrUpdateSysConfig(SysConfig sysConfig) {
        if (sysConfigMapper.countByKey(sysConfig.getParamKey()) > 0) {
            sysConfigMapper.update(sysConfig);
        }else{
            sysConfigMapper.save(sysConfig);
        }
    }

    @Override
    @Cacheable(cacheNames = ConfigCacheNames.SYS_CONFIG, key = "#key")
    public SysConfig getByKey(String key) {
        return sysConfigMapper.queryByKey(key);
    }


    @Override
    @Cacheable(cacheNames = ConfigCacheNames.SYS_CONFIG_OBJECT,key="#key")
    public <T> T  getSysConfigObject(String key, Class<T> clazz) {<FILL_FUNCTION_BODY>}
}

        String value = getValue(key);
        if (StrUtil.isBlank(value)) {
            return null;
        }

        if(Objects.equals(String.class,clazz)){
            return (T)value;
        }else{
            return Json.parseObject(value, clazz);
        }
    
<no_super_class>