feat():添加缓存,修改远程的调用无权限bug

master
Saisai Liu 2024-05-14 22:14:03 +08:00
parent de495030a9
commit c6dab25cad
18 changed files with 289 additions and 79 deletions

View File

@ -22,7 +22,7 @@
<!-- MuYu Common Security -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-security</artifactId>
<artifactId>muyu-common-redis</artifactId>
</dependency>
</dependencies>

View File

@ -0,0 +1,45 @@
package com.muyu.cache.abs;
import com.alibaba.fastjson2.JSON;
import com.muyu.cache.redis.Cache;
import com.muyu.common.redis.service.RedisService;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
/**
* @ClassName CacheAbs
* @Description
* @Author SaiSai.Liu
* @Date 2024/5/14 17:05
*/
public abstract class CacheAbs<K,V> implements Cache<K> {
@Resource
private RedisService redisService;
/**
* key
* @param key
* @return
*/
protected abstract V get(K key);
/**
*
* @param k
* @param v
*/
void put(K k, V v) {
String key = enCode(k);
redisService.setCacheObject(key, JSON.toJSONString(v));
}
/**
*
* @param k
*/
void remove(K k){
redisService.deleteObject(enCode(k));
};
}

View File

@ -0,0 +1,18 @@
package com.muyu.cache.redis;
/**
* @ClassName Cache
* @Description
* @Author SaiSai.Liu
* @Date 2024/5/10 19:01
*/
public interface Cache<K> {
String preKey(K key);
String enCode(K key);
String unCode(String string);
}

View File

@ -1,20 +0,0 @@
package com.muyu.cache.redis;
/**
* @ClassName RedisCache
* @Description
* @Author SaiSai.Liu
* @Date 2024/5/10 19:01
*/
public interface RedisCache<K,V,T> {
K getKey(T t);
V get(K key);
void put(K k ,V v);
void remove(K k);
}

View File

@ -27,7 +27,7 @@ public class RedisService {
* @param key
* @param value
*/
public <T> void setCacheObject (final String key, final T value) {
public <T> void setCacheObject(final String key, final T value) {
redisTemplate.opsForValue().set(key, value);
}
@ -39,7 +39,7 @@ public class RedisService {
* @param timeout
* @param timeUnit
*/
public <T> void setCacheObject (final String key, final T value, final Long timeout, final TimeUnit timeUnit) {
public <T> void setCacheObject(final String key, final T value, final Long timeout, final TimeUnit timeUnit) {
redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
}
@ -48,10 +48,9 @@ public class RedisService {
*
* @param key Redis
* @param timeout
*
* @return true=false=
*/
public boolean expire (final String key, final long timeout) {
public boolean expire(final String key, final long timeout) {
return expire(key, timeout, TimeUnit.SECONDS);
}
@ -61,10 +60,9 @@ public class RedisService {
* @param key Redis
* @param timeout
* @param unit
*
* @return true=false=
*/
public boolean expire (final String key, final long timeout, final TimeUnit unit) {
public boolean expire(final String key, final long timeout, final TimeUnit unit) {
return redisTemplate.expire(key, timeout, unit);
}
@ -72,10 +70,9 @@ public class RedisService {
*
*
* @param key Redis
*
* @return
*/
public long getExpire (final String key) {
public long getExpire(final String key) {
return redisTemplate.getExpire(key);
}
@ -83,10 +80,9 @@ public class RedisService {
* key
*
* @param key
*
* @return true false
*/
public Boolean hasKey (String key) {
public Boolean hasKey(String key) {
return redisTemplate.hasKey(key);
}
@ -94,10 +90,9 @@ public class RedisService {
*
*
* @param key
*
* @return
*/
public <T> T getCacheObject (final String key) {
public <T> T getCacheObject(final String key) {
ValueOperations<String, T> operation = redisTemplate.opsForValue();
return operation.get(key);
}
@ -107,7 +102,7 @@ public class RedisService {
*
* @param key
*/
public boolean deleteObject (final String key) {
public boolean deleteObject(final String key) {
return redisTemplate.delete(key);
}
@ -115,10 +110,9 @@ public class RedisService {
*
*
* @param collection
*
* @return
*/
public boolean deleteObject (final Collection collection) {
public boolean deleteObject(final Collection collection) {
return redisTemplate.delete(collection) > 0;
}
@ -127,10 +121,9 @@ public class RedisService {
*
* @param key
* @param dataList List
*
* @return
*/
public <T> long setCacheList (final String key, final List<T> dataList) {
public <T> long setCacheList(final String key, final List<T> dataList) {
Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
return count == null ? 0 : count;
}
@ -139,10 +132,9 @@ public class RedisService {
* list
*
* @param key
*
* @return
*/
public <T> List<T> getCacheList (final String key) {
public <T> List<T> getCacheList(final String key) {
return redisTemplate.opsForList().range(key, 0, -1);
}
@ -151,10 +143,9 @@ public class RedisService {
*
* @param key
* @param dataSet
*
* @return
*/
public <T> BoundSetOperations<String, T> setCacheSet (final String key, final Set<T> dataSet) {
public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet) {
BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);
Iterator<T> it = dataSet.iterator();
while (it.hasNext()) {
@ -167,10 +158,9 @@ public class RedisService {
* set
*
* @param key
*
* @return
*/
public <T> Set<T> getCacheSet (final String key) {
public <T> Set<T> getCacheSet(final String key) {
return redisTemplate.opsForSet().members(key);
}
@ -180,7 +170,7 @@ public class RedisService {
* @param key
* @param dataMap
*/
public <T> void setCacheMap (final String key, final Map<String, T> dataMap) {
public <T> void setCacheMap(final String key, final Map<String, T> dataMap) {
if (dataMap != null) {
redisTemplate.opsForHash().putAll(key, dataMap);
}
@ -190,10 +180,9 @@ public class RedisService {
* Map
*
* @param key
*
* @return
*/
public <T> Map<String, T> getCacheMap (final String key) {
public <T> Map<String, T> getCacheMap(final String key) {
return redisTemplate.opsForHash().entries(key);
}
@ -204,7 +193,7 @@ public class RedisService {
* @param hKey Hash
* @param value
*/
public <T> void setCacheMapValue (final String key, final String hKey, final T value) {
public <T> void setCacheMapValue(final String key, final String hKey, final T value) {
redisTemplate.opsForHash().put(key, hKey, value);
}
@ -213,10 +202,9 @@ public class RedisService {
*
* @param key Redis
* @param hKey Hash
*
* @return Hash
*/
public <T> T getCacheMapValue (final String key, final String hKey) {
public <T> T getCacheMapValue(final String key, final String hKey) {
HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();
return opsForHash.get(key, hKey);
}
@ -226,10 +214,9 @@ public class RedisService {
*
* @param key Redis
* @param hKeys Hash
*
* @return Hash
*/
public <T> List<T> getMultiCacheMapValue (final String key, final Collection<Object> hKeys) {
public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys) {
return redisTemplate.opsForHash().multiGet(key, hKeys);
}
@ -238,10 +225,9 @@ public class RedisService {
*
* @param key Redis
* @param hKey Hash
*
* @return
*/
public boolean deleteCacheMapValue (final String key, final String hKey) {
public boolean deleteCacheMapValue(final String key, final String hKey) {
return redisTemplate.opsForHash().delete(key, hKey) > 0;
}
@ -249,10 +235,9 @@ public class RedisService {
*
*
* @param pattern
*
* @return
*/
public Collection<String> keys (final String pattern) {
public Collection<String> keys(final String pattern) {
return redisTemplate.keys(pattern);
}
}

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-etl</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-etl-cache</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-etl-common</artifactId>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-cache</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,35 @@
package com.muyu.cache;
import com.muyu.cache.abs.CacheAbs;
import com.muyu.etl.domain.BasicConfigInfo;
import java.util.List;
/**
* @ClassName AssetCache
* @Description
* @Author SaiSai.Liu
* @Date 2024/5/14 21:03
*/
public class AssetCache extends CacheAbs<String, List<BasicConfigInfo>> {
@Override
protected List<BasicConfigInfo> get(String key) {
return null;
}
@Override
public String preKey(String key) {
return null;
}
@Override
public String enCode(String key) {
return "etl-cache:" + key;
}
@Override
public String unCode(String string) {
return null;
}
}

View File

@ -22,19 +22,28 @@
<groupId>com.muyu</groupId>
<artifactId>muyu-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-security</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-cache</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,15 @@
//package com.muyu.etl.domain.cache;
//
////import com.muyu.etl.domain.BasicConfigInfo;
//
//import com.muyu.etl.domain.BasicConfigInfo;
//
///**
// * @ClassName AssetCache
// * @Description 描述
// * @Author SaiSai.Liu
// * @Date 2024/5/14 21:03
// */
//public class AssetCache extends CacheAbs<String, BasicConfigInfo>{
//}
////

View File

@ -3,6 +3,8 @@ package com.muyu.etl.domain.scope.model;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
*
@ -12,24 +14,25 @@ import java.io.Serializable;
* @Version: 1.0
*/
@Data
public class DataSetModel implements Serializable {
public class DataSetModel {
// [[DataModel,DataModel,DataModel],[DataModel,DataModel,DataModel]]
private RecordModel[] recordModelArr = null;
private List<RecordModel> recordModelArr = null;
private DataSetModel(int recordModelLength){
recordModelArr = new RecordModel[recordModelLength];
recordModelArr = new ArrayList<RecordModel>();
}
private DataSetModel(RecordModel[] recordModelArr){
recordModelArr = recordModelArr;
private DataSetModel(List<RecordModel> recordModelArr){
this.recordModelArr = recordModelArr;
}
public static DataSetModel build(int recordModelLength){
return new DataSetModel(recordModelLength);
}
public static DataSetModel build(RecordModel[] recordModelArr){
public static DataSetModel build(List<RecordModel> recordModelArr){
return new DataSetModel(recordModelArr);
}

View File

@ -1,5 +1,10 @@
package com.muyu.etl.domain.scope.model;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
*
* @Author: DongZeLiang
@ -7,23 +12,24 @@ package com.muyu.etl.domain.scope.model;
* @Description:
* @Version: 1.0
*/
@Data
public class RecordModel {
// [DataModel,DataModel,DataModel]
private List<DataModel> dataModelArr = null;
private RecordModel(int dataModelLength){
dataModelArr = new DataModel[dataModelLength];
}
private RecordModel(DataModel[] dataModelArr){
dataModelArr = dataModelArr;
dataModelArr = new ArrayList<>();
}
private DataModel[] dataModelArr = null;
private RecordModel(List<DataModel> dataModelArr){
this.dataModelArr = dataModelArr;
}
public static RecordModel build(int dataModelLength){
return new RecordModel(dataModelLength);
}
public static RecordModel build(DataModel[] dataModelArr){
public static RecordModel build(List<DataModel> dataModelArr){
return new RecordModel(dataModelArr);
}
}

View File

@ -4,7 +4,7 @@ package com.muyu.etl.domain.scope.scope;
import com.muyu.etl.domain.scope.scope.model.DataProcessModel;
/**
* @Author: DongZeLiang
* @Author: Saisai.Liu
* @date: 2024/4/29
* @Description:
* @Version: 1.0

View File

@ -0,0 +1,30 @@
package com.muyu;
import com.muyu.etl.domain.BasicConfigInfo;
import com.muyu.etl.service.BasicConfigInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @ClassName EtlApplicationRunner
* @Description
* @Author SaiSai.Liu
* @Date 2024/5/14 20:54
*/
@Component
public class EtlApplicationRunner implements ApplicationRunner {
@Autowired
private BasicConfigInfoService basicConfigInfoService;
@Override
public void run(ApplicationArguments args) throws Exception {
List<BasicConfigInfo> basicConfigInfos = basicConfigInfoService.selectBasicConfigInfoList(new BasicConfigInfo() {{
setIsTest("1");
}});
}
}

View File

@ -18,6 +18,7 @@ import com.muyu.etl.domain.scope.model.DataModel;
import com.muyu.etl.domain.scope.model.DataSetModel;
import com.muyu.etl.domain.scope.model.RecordModel;
import com.muyu.etl.domain.scope.scope.DataModelContext;
import com.muyu.etl.domain.scope.scope.model.RecordProcessModel;
import com.muyu.etl.mapper.BasicConfigInfoMapper;
import com.muyu.etl.service.BasicConfigInfoService;
import com.muyu.etl.service.StructureService;
@ -467,20 +468,15 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl<BasicConfigInfoMappe
setSourceType(structureList.get(finalI).getColumnType());
setSourceType(structureList.get(finalI).getJavaType());
}};
log.info("对象{}",dataModel);
dataModelList.add(dataModel);
}
// 记录模型
RecordModel recordModel = RecordModel.build(dataModelList.toArray(new DataModel[structureList.size()]));
RecordModel recordModel = RecordModel.build(dataModelList);
recordModelList.add(recordModel);
log.info("recordModelList数据{}", recordModelList);
}
// 页数据
DataSetModel build = DataSetModel.build(recordModelList.toArray(new RecordModel[num]));
DataSetModel build = DataSetModel.build(recordModelList);
list.add(build);
log.info("list数据{}", list);
}
} catch (SQLException e) {
throw new RuntimeException(e);

View File

@ -16,6 +16,7 @@
<module>muyu-etl-remote</module>
<module>muyu-etl-service</module>
<module>muyu-etl-client</module>
<module>muyu-etl-cache</module>
</modules>
<properties>

View File

@ -0,0 +1,21 @@
package com.muyu.engine.domain.test.custom;
import com.muyu.etl.domain.scope.engine.action.ActionDiscard;
import com.muyu.etl.domain.scope.engine.scope.DataModelEngine;
/**
* @Author: Saisai
* @date: 2024/4/5
* @Description: -DATARULE
* @Version: 1.0
*/
public class engine_custom_PhotoTest_DATARULE extends DataModelEngine {
@Override
public void execution () {
Object value = getValue();
if (value == null || "".equals(value) || "null".equals(value)) {
throw new ActionDiscard();
}
}
}

View File

@ -132,7 +132,7 @@ public class RuleEngineVersionServiceImpl extends ServiceImpl<RuleEngineVersionM
File file = new File("D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + path + "/" + fileName + ".java");
File fileMenu = new File("D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + path );
if (!file.exists()) {
//不存在创建
//不存在创建目录和文件
fileMenu.mkdirs();
file.createNewFile();
} else {
@ -165,6 +165,35 @@ public class RuleEngineVersionServiceImpl extends ServiceImpl<RuleEngineVersionM
}
/**
*
* @return
*/
public boolean testAssetEngine(String codeIng,Object obj){
String path = codeIng.substring(codeIng.indexOf("com"),codeIng.indexOf(";")).replaceAll("/.","/").trim();
String fileName = codeIng.substring(codeIng.indexOf("class")+6, codeIng.indexOf("{")).trim();
String name = path+"."+fileName;
String javaPackageName = name.replace(".",File.separator)+".java";
String javaAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + javaPackageName;
String jarAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/target/classes/com/muyu/engine/scope/test";
try {
Process process = Runtime.getRuntime().exec("javac -classpath "+ jarAbsolutePath + " " + javaAbsolutePath);
int i = process.waitFor();
//创建类加载器
ClassLoader classLoader = ReflectionUtils.class.getClassLoader();
Class<?> aClass = classLoader.loadClass(name);
Object o = aClass.newInstance();
Method[] methods = aClass.getMethods();
for (Method method : methods) {
method.invoke(0,obj);
}
} catch (Exception e) {
log.error("报错信息:{}",e.getMessage());
throw new RuntimeException(e);
}
return true;
}
/**
*
*
@ -178,8 +207,8 @@ public class RuleEngineVersionServiceImpl extends ServiceImpl<RuleEngineVersionM
String fileName = codeIng.substring(codeIng.indexOf("class") + 6, codeIng.indexOf("{")).trim();
String name = path + "." + fileName;
String javaPackageName = name.replace(".", File.separator) + ".java";
String javaAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-redis/src/main/java/" + javaPackageName;
String jarAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-redis/target/classes/com/muyu/engine/scope/test";
String javaAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + javaPackageName;
String jarAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/target/classes/com/muyu/engine/scope/test";
Process process = Runtime.getRuntime().exec("javac -classpath " + jarAbsolutePath + " " + javaAbsolutePath);
try {
int exitVal = process.waitFor();

View File

@ -185,6 +185,13 @@
<version>${muyu.version}</version>
</dependency>
<!-- 缓存 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-cache</artifactId>
<version>${muyu.version}</version>
</dependency>
<!-- 日志记录 -->
<dependency>
<groupId>com.muyu</groupId>