Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
lmp_server
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lmp
lmp_server
Commits
f060228d
Commit
f060228d
authored
Apr 11, 2024
by
linpeiqin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加删除逻辑
parent
c305e352
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
88 additions
and
44 deletions
+88
-44
DatasetManageController.java
...yice/webadmin/app/controller/DatasetManageController.java
+12
-0
DatasetVersionController.java
...ice/webadmin/app/controller/DatasetVersionController.java
+6
-26
DatasetVersionService.java
.../com/yice/webadmin/app/service/DatasetVersionService.java
+2
-0
DatasetVersionServiceImpl.java
.../webadmin/app/service/impl/DatasetVersionServiceImpl.java
+68
-18
No files found.
application-webadmin/src/main/java/com/yice/webadmin/app/controller/DatasetManageController.java
View file @
f060228d
...
...
@@ -16,6 +16,7 @@ import com.yice.webadmin.app.dto.DatasetVersionDto;
import
com.yice.webadmin.app.model.DatasetManage
;
import
com.yice.webadmin.app.model.DatasetVersion
;
import
com.yice.webadmin.app.service.DatasetManageService
;
import
com.yice.webadmin.app.service.DatasetVersionService
;
import
com.yice.webadmin.app.vo.DatasetManageVo
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -38,6 +39,8 @@ public class DatasetManageController {
@Autowired
private
DatasetManageService
datasetManageService
;
@Autowired
private
DatasetVersionService
datasetVersionService
;
/**
* 新增数据集管理数据。
...
...
@@ -194,6 +197,15 @@ public class DatasetManageController {
errorMessage
=
"数据验证失败,当前 [对象] 并不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
DatasetVersion
deletedObject
=
new
DatasetVersion
();
deletedObject
.
setDatasetId
(
datasetId
);
List
<
DatasetVersion
>
datasetVersions
=
this
.
datasetVersionService
.
getDatasetVersionList
(
deletedObject
,
""
);
for
(
DatasetVersion
datasetVersion
:
datasetVersions
)
{
if
(
datasetVersion
.
getReleaseStatus
()
==
1
)
{
errorMessage
=
"存在已发布的子数据集版本,不允许删除!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
UNHANDLED_EXCEPTION
,
errorMessage
);
}
}
if
(!
datasetManageService
.
remove
(
datasetId
))
{
errorMessage
=
"数据操作失败,删除的对象不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/controller/DatasetVersionController.java
View file @
f060228d
...
...
@@ -278,43 +278,23 @@ public class DatasetVersionController {
String
errorMessage
;
// 验证关联Id的数据合法性
DatasetVersion
originalDatasetVersion
=
datasetVersionService
.
getById
(
versionId
);
if
(
originalDatasetVersion
.
getReleaseStatus
()
==
1
)
{
errorMessage
=
"数据集已发布的状态不允许删除!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
if
(
originalDatasetVersion
==
null
)
{
// NOTE: 修改下面方括号中的话述
errorMessage
=
"数据验证失败,当前 [对象] 并不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
if
(!
datasetVersionService
.
remove
(
versionId
))
{
if
(!
datasetVersionService
.
remove
(
originalDatasetVersion
.
getVersionId
()
))
{
errorMessage
=
"数据操作失败,删除的对象不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
try
{
this
.
updateJsonFile
(
pythonConfig
.
getDatasetFileBaseDir
()
+
pythonConfig
.
getDatasetInfo
(),
originalDatasetVersion
.
getVersionName
());
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
//删除文件路径
FileUtil
.
del
(
originalDatasetVersion
.
getFileUrl
());
//删除数据集
datasetDataService
.
delete
(
versionId
);
return
ResponseResult
.
success
();
}
private
void
updateJsonFile
(
String
filePath
,
String
keyToRemove
)
throws
IOException
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
enable
(
SerializationFeature
.
INDENT_OUTPUT
);
File
jsonFile
=
new
File
(
filePath
);
// 读取JSON文件
JsonNode
rootNode
=
objectMapper
.
readTree
(
jsonFile
);
// 删除指定键的对象
if
(
rootNode
.
isObject
())
{
ObjectNode
objectNode
=
(
ObjectNode
)
rootNode
;
objectNode
.
remove
(
keyToRemove
);
}
else
{
log
.
error
(
"Root node is not an object."
);
}
// 将更新后的JSON写回文件
objectMapper
.
writeValue
(
jsonFile
,
rootNode
);
}
@PostMapping
(
value
=
"/detail"
)
public
ResponseResult
<
MyPageData
<
String
>>
detail
(
@MyRequestBody
Long
versionId
,
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/service/DatasetVersionService.java
View file @
f060228d
...
...
@@ -99,4 +99,6 @@ public interface DatasetVersionService extends IBaseService<DatasetVersion, Long
* @return 查询结果集。
*/
List
<
DatasetVersion
>
getDatasetVersionListWithRelation
(
DatasetVersion
filter
,
DatasetDetail
datasetDetailFilter
,
String
orderBy
);
/* boolean remove(DatasetVersion originalDatasetVersion);*/
}
application-webadmin/src/main/java/com/yice/webadmin/app/service/impl/DatasetVersionServiceImpl.java
View file @
f060228d
...
...
@@ -12,8 +12,10 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import
com.github.pagehelper.Page
;
import
com.yice.common.core.base.dao.BaseDaoMapper
;
import
com.yice.common.core.base.service.BaseService
;
import
com.yice.common.core.constant.ErrorCodeEnum
;
import
com.yice.common.core.object.CallResult
;
import
com.yice.common.core.object.MyRelationParam
;
import
com.yice.common.core.object.ResponseResult
;
import
com.yice.common.core.util.MyModelUtil
;
import
com.yice.common.sequence.wrapper.IdGeneratorWrapper
;
import
com.yice.webadmin.app.config.PythonConfig
;
...
...
@@ -24,7 +26,6 @@ import com.yice.webadmin.app.model.DatasetDetail;
import
com.yice.webadmin.app.model.DatasetManage
;
import
com.yice.webadmin.app.model.DatasetVersion
;
import
com.yice.webadmin.app.service.DatasetDataService
;
import
com.yice.webadmin.app.service.DatasetDetailService
;
import
com.yice.webadmin.app.service.DatasetManageService
;
import
com.yice.webadmin.app.service.DatasetVersionService
;
import
com.yice.webadmin.app.util.Sha1Util
;
...
...
@@ -58,8 +59,6 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
@Autowired
private
DatasetManageService
datasetManageService
;
@Autowired
private
DatasetDetailService
datasetDetailService
;
@Autowired
private
IdGeneratorWrapper
idGenerator
;
@Autowired
private
PythonConfig
pythonConfig
;
...
...
@@ -112,6 +111,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
/**
* 添加数据对象
*
* @param datasetVersion 保存对象
*/
private
void
insertDatasetVersion
(
DatasetVersion
datasetVersion
)
{
...
...
@@ -120,9 +120,9 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
this
.
buildDefaultValue
(
datasetVersion
);
//进行存储、写入以及更新配置等操作
DatasetVersion
dataset
=
dealWithWriteAndSave
(
datasetVersion
.
getDatasetId
(),
datasetVersion
.
getHisVersion
(),
datasetVersion
.
getVersionId
(),
datasetVersion
.
getHisVersion
(),
datasetVersion
.
getVersionId
(),
datasetVersion
.
getVersionName
());
if
(
null
!=
dataset
)
{
if
(
null
!=
dataset
)
{
datasetVersion
.
setDataVolume
(
dataset
.
getDataVolume
());
datasetVersion
.
setFileUrl
(
dataset
.
getFileUrl
());
datasetVersion
.
setInputStatus
(
dataset
.
getInputStatus
());
...
...
@@ -136,9 +136,10 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
/**
* 进行存储、写入以及更新配置等操作
* @param datasetId 数据集标识
* @param hisVersion 历史标识
* @param versionId 版本标识
*
* @param datasetId 数据集标识
* @param hisVersion 历史标识
* @param versionId 版本标识
* @param datasetName 数据集名称
*/
private
DatasetVersion
dealWithWriteAndSave
(
Long
datasetId
,
Integer
hisVersion
,
...
...
@@ -171,6 +172,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
/**
* 存储到python数据集中并进行更新操作
*
* @param versionName 版本名称
* @throws IOException 异常操作
*/
...
...
@@ -196,6 +198,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
/**
* 截取最后一个斜杠后的部分
*
* @param fileName 文件名称
* @return 返回截取后的字符串
*/
...
...
@@ -209,14 +212,15 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
/**
* 文件目录进行复制并写入到Mongodb数据库中
* @param fullName 新文件名称
* @param versionId 版本标识
*
* @param fullName 新文件名称
* @param versionId 版本标识
* @param originFileName 原始文件名
* @return 字节编码
*/
private
byte
[]
writeAndSaveFileDetail
(
String
fullName
,
String
originFileName
,
Long
versionId
)
throws
IOException
{
private
byte
[]
writeAndSaveFileDetail
(
String
fullName
,
String
originFileName
,
Long
versionId
)
throws
IOException
{
byte
[]
bytes
=
null
;
try
{
try
{
bytes
=
readFileToBytes
(
originFileName
);
Path
path
=
Paths
.
get
(
fullName
);
// 如果没有files文件夹,则创建
...
...
@@ -226,7 +230,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
// 文件写入指定路径
Files
.
write
(
path
,
bytes
);
// 写入到mongodb中
writeDatasetFile
(
bytes
,
fullName
,
versionId
);
writeDatasetFile
(
bytes
,
fullName
,
versionId
);
}
catch
(
IOException
e
)
{
log
.
error
(
"Failed to write imported file ["
+
fullName
+
" ]."
,
e
);
throw
e
;
...
...
@@ -236,6 +240,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
/**
* 读取地址内容并转成bytes数据
*
* @param filePath 文件地址
* @return byte数组
* @throws IOException 异常
...
...
@@ -250,9 +255,10 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
/**
* 写入到mongodb中
* @param bytes 字节
*
* @param bytes 字节
* @param originalFilename 导入文件名称
* @param versionId 版本标识
* @param versionId
版本标识
*/
@Override
public
void
writeDatasetFile
(
byte
[]
bytes
,
String
originalFilename
,
Long
versionId
)
{
...
...
@@ -263,7 +269,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
datasetDataService
.
delete
(
versionId
);
//保存到mongodb中
datasetDataService
.
save
(
new
DatasetData
(
null
,
versionId
,
result
,
new
Date
(),
null
));
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
log
.
error
(
"Failed to write mongodb database ["
+
originalFilename
+
" ]."
,
ex
);
}
}
...
...
@@ -301,7 +307,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
/**
* 更新数据对象。
*
* @param datasetVersion
更新的对象。
* @param datasetVersion 更新的对象。
* @return 成功返回true,否则false。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -322,10 +328,29 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
if
(
datasetVersionMapper
.
deleteById
(
versionId
)
==
0
)
{
return
false
;
}
datasetDetailService
.
removeByVersionId
(
versionId
);
//删除数据集
datasetDataService
.
delete
(
versionId
);
// datasetDetailService.removeByVersionId(versionId);
return
true
;
}
private
void
updateDatasetInfoFile
(
String
filePath
,
String
keyToRemove
)
throws
IOException
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
enable
(
SerializationFeature
.
INDENT_OUTPUT
);
File
jsonFile
=
new
File
(
filePath
);
// 读取JSON文件
JsonNode
rootNode
=
objectMapper
.
readTree
(
jsonFile
);
// 删除指定键的对象
if
(
rootNode
.
isObject
())
{
ObjectNode
objectNode
=
(
ObjectNode
)
rootNode
;
objectNode
.
remove
(
keyToRemove
);
}
else
{
log
.
error
(
"Root node is not an object."
);
}
// 将更新后的JSON写回文件
objectMapper
.
writeValue
(
jsonFile
,
rootNode
);
}
/**
* 当前服务的支持表为从表,根据主表的关联Id,删除一对多的从表数据。
*
...
...
@@ -337,6 +362,12 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
public
int
removeByDatasetId
(
Long
datasetId
)
{
DatasetVersion
deletedObject
=
new
DatasetVersion
();
deletedObject
.
setDatasetId
(
datasetId
);
List
<
DatasetVersion
>
datasetVersions
=
this
.
getDatasetVersionList
(
deletedObject
,
""
);
for
(
DatasetVersion
datasetVersion
:
datasetVersions
)
{
if
(
datasetVersion
.
getReleaseStatus
()
==
0
)
{
datasetDataService
.
delete
(
datasetVersion
.
getVersionId
());
}
}
return
datasetVersionMapper
.
delete
(
new
QueryWrapper
<>(
deletedObject
));
}
...
...
@@ -374,6 +405,25 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
return
resultList
;
}
/* @Override
@Transactional(rollbackFor = Exception.class)
public boolean remove(DatasetVersion originalDatasetVersion) {
Long versionId = originalDatasetVersion.getVersionId();
try {
this.updateDatasetInfoFile(pythonConfig.getDatasetFileBaseDir() + pythonConfig.getDatasetInfo(),originalDatasetVersion.getVersionName());
} catch (IOException e) {
throw new RuntimeException(e);
}
//删除文件路径
FileUtil.del(originalDatasetVersion.getFileUrl());
//删除数据集
datasetDataService.delete(versionId);
if (datasetVersionMapper.deleteById(versionId) == 0) {
return false;
}
return true;
}*/
/**
* 根据最新对象和原有对象的数据对比,判断关联的字典数据和多对一主表数据是否都是合法数据。
*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment