|
@@ -5,6 +5,7 @@ import com.mybatisflex.core.paginate.Page;
|
|
|
import com.mybatisflex.core.query.QueryWrapper;
|
|
|
import com.taais.biz.domain.Data;
|
|
|
import com.taais.biz.domain.bo.DataBo;
|
|
|
+import com.taais.biz.domain.vo.DataSelectVo;
|
|
|
import com.taais.biz.domain.vo.DataVo;
|
|
|
import com.taais.biz.mapper.DataMapper;
|
|
|
import com.taais.biz.service.IDataService;
|
|
@@ -18,8 +19,10 @@ import com.taais.common.core.utils.file.FileUtils;
|
|
|
import com.taais.common.core.utils.file.UnPackedUtil;
|
|
|
import com.taais.common.orm.core.page.PageQuery;
|
|
|
import com.taais.common.orm.core.service.impl.BaseServiceImpl;
|
|
|
+import com.taais.common.redis.utils.RedisUtils;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import net.lingala.zip4j.model.FileHeader;
|
|
|
+import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -33,7 +36,10 @@ import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
|
import java.nio.file.attribute.BasicFileAttributes;
|
|
|
import java.time.Instant;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
import static com.taais.biz.domain.table.DataTableDef.DATA;
|
|
@@ -46,6 +52,8 @@ import static com.taais.biz.domain.table.DataTableDef.DATA;
|
|
|
*/
|
|
|
@Service
|
|
|
public class DataServiceImpl extends BaseServiceImpl<DataMapper, Data> implements IDataService {
|
|
|
+
|
|
|
+ public static final String FORM_SELECTS_KEY = "taais:biz:demo:data:formSelect:";
|
|
|
private static final Logger log = LoggerFactory.getLogger(DataServiceImpl.class);
|
|
|
private static final String ZIP = ".zip";
|
|
|
private static final String RAR = ".rar";
|
|
@@ -62,33 +70,33 @@ public class DataServiceImpl extends BaseServiceImpl<DataMapper, Data> implement
|
|
|
private QueryWrapper buildQueryWrapper(DataBo dataBo) {
|
|
|
QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
|
|
|
queryWrapper.and(DATA.NAME.like
|
|
|
- (dataBo.getName()));
|
|
|
- queryWrapper.and(DATA.DATA_TYPE.eq
|
|
|
- (dataBo.getDataType()));
|
|
|
- queryWrapper.and(DATA.FILE_TYPE.eq
|
|
|
- (dataBo.getFileType()));
|
|
|
+ (dataBo.getName()));
|
|
|
+// queryWrapper.and(DATA.DATA_TYPE.eq
|
|
|
+// (dataBo.getDataType()));
|
|
|
+// queryWrapper.and(DATA.FILE_TYPE.eq
|
|
|
+// (dataBo.getFileType()));
|
|
|
queryWrapper.and(DATA.OBJECT_TYPE.eq
|
|
|
- (dataBo.getObjectType()));
|
|
|
+ (dataBo.getObjectType()));
|
|
|
queryWrapper.and(DATA.OBJECT_SUBTYPE.eq
|
|
|
- (dataBo.getObjectSubtype()));
|
|
|
+ (dataBo.getObjectSubtype()));
|
|
|
queryWrapper.and(DATA.BATCH_NUM.eq
|
|
|
- (dataBo.getBatchNum()));
|
|
|
+ (dataBo.getBatchNum()));
|
|
|
queryWrapper.and(DATA.SCENE.eq
|
|
|
- (dataBo.getScene()));
|
|
|
+ (dataBo.getScene()));
|
|
|
queryWrapper.and(DATA.DATA_SOURCE.eq
|
|
|
- (dataBo.getDataSource()));
|
|
|
+ (dataBo.getDataSource()));
|
|
|
queryWrapper.and(DATA.GATHER_TIME.eq
|
|
|
- (dataBo.getGatherTime()));
|
|
|
+ (dataBo.getGatherTime()));
|
|
|
queryWrapper.and(DATA.GATHER_SPOT.eq
|
|
|
- (dataBo.getGatherSpot()));
|
|
|
+ (dataBo.getGatherSpot()));
|
|
|
queryWrapper.and(DATA.URL.eq
|
|
|
- (dataBo.getUrl()));
|
|
|
+ (dataBo.getUrl()));
|
|
|
queryWrapper.and(DATA.LABELURL.eq
|
|
|
- (dataBo.getLabelurl()));
|
|
|
- queryWrapper.and(DATA.INCREMENT.eq
|
|
|
- (dataBo.getIncrement()));
|
|
|
+ (dataBo.getLabelurl()));
|
|
|
+// queryWrapper.and(DATA.INCREMENT.eq
|
|
|
+// (dataBo.getIncrement()));
|
|
|
queryWrapper.and(DATA.LABELED.eq
|
|
|
- (dataBo.getLabeled()));
|
|
|
+ (dataBo.getLabeled()));
|
|
|
|
|
|
return queryWrapper;
|
|
|
}
|
|
@@ -187,8 +195,8 @@ public class DataServiceImpl extends BaseServiceImpl<DataMapper, Data> implement
|
|
|
Path path = Paths.get(fileInfo.getAbsolutePath());
|
|
|
// 使用Files类的readAttributes方法获取文件的基本属性
|
|
|
BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
|
|
|
- // 获取文件的创建时间
|
|
|
- Instant creationTime = attrs.creationTime().toInstant();
|
|
|
+ // 获取文件的修改时间
|
|
|
+ Instant creationTime = attrs.lastModifiedTime().toInstant();
|
|
|
// 将Instant转换为Date
|
|
|
Date date = Date.from(creationTime);
|
|
|
//设置文件创建时间
|
|
@@ -278,10 +286,26 @@ public class DataServiceImpl extends BaseServiceImpl<DataMapper, Data> implement
|
|
|
@Override
|
|
|
public boolean insert(DataBo dataBo) {
|
|
|
Data data = MapstructUtils.convert(dataBo, Data.class);
|
|
|
-
|
|
|
+ //新增之后清除缓存
|
|
|
+ deleteFormSelectKey();
|
|
|
return this.save(data);//使用全局配置的雪花算法主键生成器生成ID值
|
|
|
}
|
|
|
|
|
|
+ private void deleteFormSelectKey() {
|
|
|
+// RedisUtils.deleteKeys(); 方法不知道为什么失效
|
|
|
+ String[] keys = {"increment",
|
|
|
+ "scene",
|
|
|
+ "data_source",
|
|
|
+ "object_type",
|
|
|
+ "batch_num",
|
|
|
+ "object_subtype",
|
|
|
+ "gather_spot"};
|
|
|
+ RedissonClient client = RedisUtils.getClient();
|
|
|
+ for (String key : keys) {
|
|
|
+ client.getBucket(FORM_SELECTS_KEY + key).delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 修改数据管理
|
|
|
*
|
|
@@ -293,8 +317,12 @@ public class DataServiceImpl extends BaseServiceImpl<DataMapper, Data> implement
|
|
|
Data data = MapstructUtils.convert(dataBo, Data.class);
|
|
|
if (ObjectUtil.isNotNull(data) && ObjectUtil.isNotNull(data.getId())) {
|
|
|
boolean updated = this.updateById(data);
|
|
|
+ //新增之后清除缓存
|
|
|
+ deleteFormSelectKey();
|
|
|
return updated;
|
|
|
}
|
|
|
+ //新增之后清除缓存
|
|
|
+ deleteFormSelectKey();
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -308,6 +336,8 @@ public class DataServiceImpl extends BaseServiceImpl<DataMapper, Data> implement
|
|
|
@Override
|
|
|
public boolean deleteByIds(Long[] ids) {
|
|
|
QueryWrapper queryWrapper = QueryWrapper.create().from(DATA).where(DATA.ID.in(Arrays.asList(ids)));
|
|
|
+ //新增之后清除缓存
|
|
|
+ deleteFormSelectKey();
|
|
|
return this.remove(queryWrapper);
|
|
|
}
|
|
|
|
|
@@ -316,4 +346,17 @@ public class DataServiceImpl extends BaseServiceImpl<DataMapper, Data> implement
|
|
|
return this.listByIds(ids);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<DataSelectVo> getFormSelects(String field) {
|
|
|
+ String cacheKey = FORM_SELECTS_KEY + field;
|
|
|
+ List<DataSelectVo> cacheList = RedisUtils.getCacheList(cacheKey);
|
|
|
+ if (cacheList == null || cacheList.isEmpty()) {
|
|
|
+ cacheList = dataMapper.getFormSelects(field);
|
|
|
+ RedisUtils.setCacheList(cacheKey, cacheList);
|
|
|
+// RedisUtils.expire(cacheKey, 60);
|
|
|
+ }
|
|
|
+ return cacheList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|