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

master
Saisai Liu 2024-05-15 22:33:56 +08:00
parent c6dab25cad
commit d50fb93778
43 changed files with 301 additions and 123 deletions

View File

@ -1,11 +1,9 @@
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;
import java.util.List;
/**
* @ClassName CacheAbs
@ -13,33 +11,53 @@ import javax.annotation.Resource;
* @Author SaiSai.Liu
* @Date 2024/5/14 17:05
*/
public abstract class CacheAbs<K,V> implements Cache<K> {
@Resource
public abstract class CacheAbs<K, V extends List<?>> implements Cache<K> {
private RedisService redisService;
public RedisService getRedisService() {
return redisService;
}
public CacheAbs(RedisService redisService) {
this.redisService = redisService;
}
/**
* key
*
* @param key
* @return
*/
protected abstract V get(K key);
public List<V> get(K key) {
List<V> v = redisService.getCacheList(String.valueOf(key));
if (v != null) {
return v;
}
return null;
}
/**
*
*
* @param k
* @param v
*/
void put(K k, V v) {
public void put(K k, V v) {
String key = enCode(k);
redisService.setCacheObject(key, JSON.toJSONString(v));
redisService.setCacheList(key, v);
}
/**
*
*
* @param k
*/
void remove(K k){
redisService.deleteObject(enCode(k));
};
void remove(K k) {
redisService.deleteObject(enCode(k));
}
;
}

View File

@ -9,7 +9,7 @@ package com.muyu.cache.redis;
public interface Cache<K> {
String preKey(K key);
String preKey();
String enCode(K key);

View File

@ -58,7 +58,7 @@ public class IpUtils {
ip = request.getRemoteAddr();
}
return "0:0:0:0:0:0:0:1".equals(ip) ? "43.142.100.73" : getMultistageReverseProxyIp(ip);
return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : getMultistageReverseProxyIp(ip);
}
/**
@ -70,7 +70,7 @@ public class IpUtils {
*/
public static boolean internalIp (String ip) {
byte[] addr = textToNumericFormatV4(ip);
return internalIp(addr) || "43.142.100.73".equals(ip);
return internalIp(addr) || "127.0.0.1".equals(ip);
}
/**
@ -197,7 +197,7 @@ public class IpUtils {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
}
return "43.142.100.73";
return "127.0.0.1";
}
/**

View File

@ -0,0 +1,26 @@
<?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-common</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-common-etl-scope</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>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,4 +1,4 @@
package com.muyu.etl.domain.scope.engine;
package com.muyu.scope.engine;
/**
* @Author: DongZeLiang

View File

@ -1,4 +1,4 @@
package com.muyu.etl.domain.scope.engine.action;
package com.muyu.scope.engine.action;
/**
* @Author: DongZeLiang

View File

@ -1,8 +1,8 @@
package com.muyu.etl.domain.scope.engine.custom;
package com.muyu.scope.engine.custom;
import com.muyu.etl.domain.scope.engine.action.ActionDiscard;
import com.muyu.etl.domain.scope.engine.scope.DataModelEngine;
import com.muyu.scope.engine.action.ActionDiscard;
import com.muyu.scope.engine.scope.DataModelEngine;
/**
* @Author: DongZeLiang

View File

@ -1,10 +1,10 @@
package com.muyu.etl.domain.scope.engine.scope;
package com.muyu.scope.engine.scope;
import com.muyu.etl.domain.scope.engine.Engine;
import com.muyu.etl.domain.scope.model.DataModel;
import com.muyu.etl.domain.scope.scope.DataModelContext;
import com.muyu.etl.domain.scope.scope.model.DataProcessModel;
import com.muyu.scope.engine.Engine;
import com.muyu.scope.model.DataModel;
import com.muyu.scope.scope.DataModelContext;
import com.muyu.scope.scope.model.DataProcessModel;
import lombok.Data;
/**

View File

@ -1,10 +1,10 @@
package com.muyu.etl.domain.scope.engine.scope;
package com.muyu.scope.engine.scope;
import com.muyu.etl.domain.scope.engine.Engine;
import com.muyu.etl.domain.scope.model.DataSetModel;
import com.muyu.etl.domain.scope.scope.DataSetContext;
import com.muyu.etl.domain.scope.scope.model.DataSetProcessModel;
import com.muyu.scope.engine.Engine;
import com.muyu.scope.model.DataSetModel;
import com.muyu.scope.scope.DataSetContext;
import com.muyu.scope.scope.model.DataSetProcessModel;
import lombok.Data;
/**

View File

@ -1,10 +1,10 @@
package com.muyu.etl.domain.scope.engine.scope;
package com.muyu.scope.engine.scope;
import com.muyu.etl.domain.scope.engine.Engine;
import com.muyu.etl.domain.scope.model.RecordModel;
import com.muyu.etl.domain.scope.scope.RecordContext;
import com.muyu.etl.domain.scope.scope.model.RecordProcessModel;
import com.muyu.scope.engine.Engine;
import com.muyu.scope.model.RecordModel;
import com.muyu.scope.scope.RecordContext;
import com.muyu.scope.scope.model.RecordProcessModel;
import lombok.Data;
/**

View File

@ -1,8 +1,7 @@
package com.muyu.etl.domain.scope.model;
package com.muyu.scope.model;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,7 +1,7 @@
package com.muyu.etl.domain.scope.scope;
package com.muyu.scope.scope;
import com.muyu.etl.domain.scope.scope.model.DataProcessModel;
import com.muyu.scope.scope.model.DataProcessModel;
/**
* @Author: Saisai.Liu

View File

@ -1,7 +1,7 @@
package com.muyu.etl.domain.scope.scope;
package com.muyu.scope.scope;
import com.muyu.etl.domain.scope.scope.model.DataSetProcessModel;
import com.muyu.scope.scope.model.DataSetProcessModel;
/**
* @Author: DongZeLiang

View File

@ -1,7 +1,7 @@
package com.muyu.etl.domain.scope.scope;
package com.muyu.scope.scope;
import com.muyu.etl.domain.scope.scope.model.RecordProcessModel;
import com.muyu.scope.scope.model.RecordProcessModel;
/**
* @Author: DongZeLiang

View File

@ -1,4 +1,4 @@
package com.muyu.etl.domain.scope.scope;
package com.muyu.scope.scope;
/**
* @Author: DongZeLiang

View File

@ -1,4 +1,4 @@
package com.muyu.etl.domain.scope.scope;
package com.muyu.scope.scope;
/**
* @Author: DongZeLiang

View File

@ -1,7 +1,7 @@
package com.muyu.etl.domain.scope.scope.model;
package com.muyu.scope.scope.model;
import com.muyu.etl.domain.scope.model.DataModel;
import com.muyu.scope.model.DataModel;
import lombok.Data;
/**

View File

@ -1,7 +1,7 @@
package com.muyu.etl.domain.scope.scope.model;
package com.muyu.scope.scope.model;
import com.muyu.etl.domain.scope.model.DataSetModel;
import com.muyu.scope.model.DataSetModel;
import lombok.Data;
/**

View File

@ -1,6 +1,6 @@
package com.muyu.etl.domain.scope.scope.model;
package com.muyu.scope.scope.model;
import com.muyu.etl.domain.scope.model.RecordModel;
import com.muyu.scope.model.RecordModel;
import lombok.Data;
/**

View File

@ -1,5 +1,6 @@
package com.muyu.common.redis.service;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.BoundSetOperations;
import org.springframework.data.redis.core.HashOperations;
@ -240,4 +241,19 @@ public class RedisService {
public Collection<String> keys(final String pattern) {
return redisTemplate.keys(pattern);
}
/**
*
* @param key
* @param t
* @param <V>
*/
public <V extends List<?>> void setCacheList(String key, T t) {
redisTemplate.opsForList().leftPush(String.valueOf(key),t);
}
public <T> long setCacheList(final String key, final T dataList) {
Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
return count == null ? 0 : count;
}
}

View File

@ -19,6 +19,7 @@
<module>muyu-common-datasource</module>
<module>muyu-common-system</module>
<module>muyu-common-cache</module>
<module>muyu-common-etl-scope</module>
</modules>
<artifactId>muyu-common</artifactId>

View File

@ -1,7 +1,9 @@
package com.muyu.cache;
import com.muyu.cache.abs.CacheAbs;
import com.muyu.common.redis.service.RedisService;
import com.muyu.etl.domain.BasicConfigInfo;
import org.springframework.stereotype.Component;
import java.util.List;
@ -11,21 +13,22 @@ import java.util.List;
* @Author SaiSai.Liu
* @Date 2024/5/14 21:03
*/
@Component
public class AssetCache extends CacheAbs<String, List<BasicConfigInfo>> {
@Override
protected List<BasicConfigInfo> get(String key) {
return null;
public AssetCache(RedisService redisService) {
super(redisService);
}
@Override
public String preKey(String key) {
return null;
public String preKey() {
return "etl-cache-";
}
@Override
public String enCode(String key) {
return "etl-cache:" + key;
return "etl-cache-" + key;
}
@Override

View File

@ -78,12 +78,6 @@
<artifactId>muyu-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log -->
<!-- <dependency>-->
<!-- <groupId>com.muyu</groupId>-->
<!-- <artifactId>muyu-common-log</artifactId>-->
<!-- </dependency>-->
<!-- MuYu Common Swagger -->
<dependency>
<groupId>com.muyu</groupId>
@ -96,7 +90,10 @@
<version>3.6.3</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-etl-cache</artifactId>
</dependency>
</dependencies>
<build>

View File

@ -1,9 +1,11 @@
package com.muyu.etl;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.muyu.cache.AssetCache;
import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.common.redis.service.RedisService;
import com.muyu.etl.domain.BasicConfigInfo;
import com.muyu.etl.util.factory.DruidUtilsFactory;
import com.muyu.etl.util.service.ConnectionPoolFactory;
@ -31,6 +33,8 @@ public class AssetClientRunner implements ApplicationRunner {
private RemoteAssetService remoteAssetService;
@Autowired
private ConnectionPoolFactory connectionPoolFactory;
@Autowired
private RedisService redisService;
@Override
public void run(ApplicationArguments args) throws ServletException {
@ -38,12 +42,17 @@ public class AssetClientRunner implements ApplicationRunner {
setIsTest("1");
}};
Result<TableDataInfo<BasicConfigInfo>> result = remoteAssetService.list(basicConfigInfoSel, SecurityConstants.INNER);
AssetCache assetCache = new AssetCache(redisService);
List<List<BasicConfigInfo>> basicConfigInfos = assetCache.get(assetCache.preKey()+"basic");
System.out.println(basicConfigInfos.get(0));
log.info("basicInfoList::{}",basicConfigInfos.get(0));
log.info("初始话内容为{}", result);
List<BasicConfigInfo> rows = result.getData().getRows();
if (rows.isEmpty()) throw new ServletException("初始化调用失败,无数据");
log.info(rows);
// List<BasicConfigInfo> rows = result.getData().getRows();
if (basicConfigInfos.get(0).isEmpty()) throw new ServletException("初始化调用失败,无数据");
// if (rows.isEmpty()) throw new ServletException("初始化调用失败,无数据");
// log.info(rows);
int a = 0;
for (BasicConfigInfo basicConfigInfo : rows) {
for (BasicConfigInfo basicConfigInfo : basicConfigInfos.get(0)) {
a++;
log.info("a:{}", a);
log.warn("接入信息:{}", basicConfigInfo);

View File

@ -31,6 +31,8 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.24</version>
</dependency>
<dependency>
@ -39,11 +41,5 @@
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-cache</artifactId>
</dependency>
</dependencies>
</project>

View File

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

View File

@ -109,6 +109,17 @@
<version>2.9.10</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-etl-cache</artifactId>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-etl-scope</artifactId>
<version>3.6.3</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -1,5 +1,7 @@
package com.muyu;
import com.muyu.cache.AssetCache;
import com.muyu.common.redis.service.RedisService;
import com.muyu.etl.domain.BasicConfigInfo;
import com.muyu.etl.service.BasicConfigInfoService;
import org.springframework.beans.factory.annotation.Autowired;
@ -20,11 +22,17 @@ public class EtlApplicationRunner implements ApplicationRunner {
@Autowired
private BasicConfigInfoService basicConfigInfoService;
@Autowired
private RedisService redisService;
@Override
public void run(ApplicationArguments args) throws Exception {
List<BasicConfigInfo> basicConfigInfos = basicConfigInfoService.selectBasicConfigInfoList(new BasicConfigInfo() {{
setIsTest("1");
}});
// AssetCache assetCache = new AssetCache();
AssetCache assetCache = new AssetCache(redisService);
assetCache.put("basic", basicConfigInfos);
}
}

View File

@ -43,9 +43,11 @@ public class BasicConfigInfoController extends BaseController {
/**
*
*/
// @RequiresPermissions("etl:info:list")
@RequiresPermissions("etl:info:list")
@PostMapping("/list")
public Result<TableDataInfo<BasicConfigInfo>> list(@RequestBody BasicConfigInfo basicConfigInfo) {
ThreadLocal<String> local = new ThreadLocal<>();
local.set("啊啊手动阀手动阀");
startPage();
List<BasicConfigInfo> list = basicConfigInfoService.selectBasicConfigInfoList(basicConfigInfo);
return getDataTable(list);

View File

@ -69,7 +69,6 @@ public class AssetImpowerServiceImpl extends ServiceImpl<AssetImpowerMapper, Ass
assetImpower.setCreateTime(DateUtils.getNowDate());
//创建一个部门容器和用户容器
List<SysDept> deptList = remoteUserService.list(new SysDept(), SecurityConstants.INNER).getData();
System.out.println(remoteUserService.list(new SysDept(), SecurityConstants.INNER));
//单表单个用户赋权
if (assetImpower.getTableId() != null && assetImpower.getUserId() != null) {
rows.add(assetImpower);

View File

@ -11,18 +11,15 @@ import com.muyu.etl.domain.Structure;
import com.muyu.etl.domain.TableInfo;
import com.muyu.etl.domain.req.TableInfoScopeReq;
import com.muyu.etl.domain.resp.BasicTableInfoResp;
import com.muyu.etl.domain.resp.StructureValueResp;
import com.muyu.etl.domain.resp.TableInfoStructureResp;
import com.muyu.etl.domain.resp.TableTreeResp;
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;
import com.muyu.etl.service.TableInfoService;
import com.muyu.scope.model.DataModel;
import com.muyu.scope.model.DataSetModel;
import com.muyu.scope.model.RecordModel;
import lombok.extern.log4j.Log4j2;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
@ -38,6 +35,8 @@ import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.stream.Collectors;
import static org.apache.ibatis.ognl.Ognl.setValue;
/**
* Service
*
@ -444,7 +443,7 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl<BasicConfigInfoMappe
*
* @return
*/
public List<DataSetModel> getList(TableInfoScopeReq tableInfoScopeReq, List<Structure> structureList, int last,int num) {
public List<DataSetModel> getList(TableInfoScopeReq tableInfoScopeReq, List<Structure> structureList, int last, int num) {
List<DataSetModel> list = new ArrayList<>();
BasicConfigInfo basicConfigInfo = this.selectBasicConfigInfoById(tableInfoScopeReq.getBasicId());
try {

View File

@ -102,6 +102,12 @@
<artifactId>classgraph</artifactId>
<version>4.1.7</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-etl-scope</artifactId>
<version>3.6.3</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -1,7 +1,8 @@
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;
import com.muyu.scope.engine.action.ActionDiscard;
import com.muyu.scope.engine.scope.DataModelEngine;
/**
* @Author: Saisai

View File

@ -21,10 +21,12 @@
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-etl-client</artifactId>
<version>3.6.3</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-ruleEngine-client</artifactId>
<version>3.6.3</version>
</dependency>
</dependencies>
</project>

View File

@ -20,14 +20,7 @@
<dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-etl-client</artifactId>
<version>3.6.3</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-ruleEngine-client</artifactId>
<version>3.6.3</version>
<artifactId>muyu-unit-common</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos -->
@ -85,11 +78,6 @@
<artifactId>muyu-common-log</artifactId>
</dependency>
<!-- MuYu Common Swagger -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-swagger</artifactId>
</dependency>
<!-- MuYu Common Swagger -->
<dependency>
<groupId>com.muyu</groupId>

View File

@ -0,0 +1,31 @@
package com.muyu.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.etl.domain.BasicConfigInfo;
import com.muyu.etl.domain.TableInfo;
import com.muyu.service.UnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @ClassName UnitController
* @Description
* @Author SaiSai.Liu
* @Date 2024/5/15 22:08
*/
@RestController
@RequestMapping("/unit/")
public class UnitController {
@Autowired
private UnitService unitService;
@PostMapping("/getTableInfo")
public Result<List<TableInfo>> getTableInfoList(@RequestBody BasicConfigInfo basicConfigInfo) {
return Result.success(unitService.getTableInfoList(basicConfigInfo));
}
}

View File

@ -0,0 +1,17 @@
package com.muyu.service;
import com.muyu.etl.domain.BasicConfigInfo;
import com.muyu.etl.domain.TableInfo;
import javax.servlet.ServletException;
import java.util.List;
/**
* @ClassName UnitService
* @Description
* @Author SaiSai.Liu
* @Date 2024/5/15 22:10
*/
public interface UnitService {
List<TableInfo> getTableInfoList(BasicConfigInfo basicConfigInfo) ;
}

View File

@ -0,0 +1,56 @@
package com.muyu.service.impl;
import com.muyu.etl.domain.BasicConfigInfo;
import com.muyu.etl.domain.TableInfo;
import com.muyu.etl.util.factory.DruidUtilsFactory;
import com.muyu.etl.util.service.ConnectionPoolFactory;
import com.muyu.service.UnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.ServletException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* @ClassName UnitServiceImpl
* @Description
* @Author SaiSai.Liu
* @Date 2024/5/15 22:10
*/
@Service
public class UnitServiceImpl implements UnitService {
@Autowired
private DruidUtilsFactory druidUtilsFactory;
private HashMap<String, BasicConfigInfo> basicConfigInfoHashMap = new HashMap<>();
@Override
public List<TableInfo> getTableInfoList(BasicConfigInfo basicConfigInfo) {
Connection connection = druidUtilsFactory.getConnection(basicConfigInfo);
if (connection == null) {
try {
throw new ServletException("获取连接失败");
} catch (ServletException e) {
throw new RuntimeException(e);
}
}
try {
DatabaseMetaData metaData = connection.getMetaData();
ResultSet tables = metaData.getTables(basicConfigInfo.getDatabaseName(), null,
"%", new String[]{"TABLE", "VIEW"});
ArrayList<TableInfo> tableInfos = new ArrayList<>();
while (tables.next()){
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return null;
}
}

14
pom.xml
View File

@ -213,6 +213,13 @@
<version>${muyu.version}</version>
</dependency>
<!-- 缓存 插件 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-cache</artifactId>
<version>${muyu.version}</version>
</dependency>
<!-- etl 数据处理插件-->
<dependency>
<groupId>com.muyu</groupId>
@ -234,6 +241,13 @@
<version>${muyu.version}</version>
</dependency>
<!-- 资产缓存模块 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-etl-cache</artifactId>
<version>${muyu.version}</version>
</dependency>
</dependencies>
</dependencyManagement>