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
39e57a66
Commit
39e57a66
authored
Mar 21, 2024
by
pengxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
还原代码以及新增数据接口。
parent
d009c5f7
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
1363 additions
and
54 deletions
+1363
-54
DatasetConstant.java
.../java/com/yice/webadmin/app/constant/DatasetConstant.java
+42
-2
MongoConstant.java
...in/java/com/yice/webadmin/app/constant/MongoConstant.java
+16
-0
DatasetDataController.java
...m/yice/webadmin/app/controller/DatasetDataController.java
+44
-24
DatasetManageController.java
...yice/webadmin/app/controller/DatasetManageController.java
+23
-0
DatasetOutputController.java
...yice/webadmin/app/controller/DatasetOutputController.java
+151
-0
DatasetVersionController.java
...ice/webadmin/app/controller/DatasetVersionController.java
+70
-7
DatasetManageMapper.java
...n/java/com/yice/webadmin/app/dao/DatasetManageMapper.java
+11
-0
DatasetOutputMapper.java
...n/java/com/yice/webadmin/app/dao/DatasetOutputMapper.java
+33
-0
DatasetManageMapper.xml
.../com/yice/webadmin/app/dao/mapper/DatasetManageMapper.xml
+23
-0
DatasetOutputMapper.xml
.../com/yice/webadmin/app/dao/mapper/DatasetOutputMapper.xml
+80
-0
DatasetData.java
...src/main/java/com/yice/webadmin/app/data/DatasetData.java
+4
-0
DatasetDataDto.java
...c/main/java/com/yice/webadmin/app/dto/DatasetDataDto.java
+7
-1
DatasetManageDto.java
...main/java/com/yice/webadmin/app/dto/DatasetManageDto.java
+24
-0
DatasetOutputDto.java
...main/java/com/yice/webadmin/app/dto/DatasetOutputDto.java
+93
-0
DatasetVersionDto.java
...ain/java/com/yice/webadmin/app/dto/DatasetVersionDto.java
+1
-1
DatasetManage.java
.../main/java/com/yice/webadmin/app/model/DatasetManage.java
+24
-1
DatasetOutput.java
.../main/java/com/yice/webadmin/app/model/DatasetOutput.java
+109
-0
DatasetDataService.java
...ava/com/yice/webadmin/app/service/DatasetDataService.java
+17
-0
DatasetManageService.java
...a/com/yice/webadmin/app/service/DatasetManageService.java
+15
-0
DatasetOutputService.java
...a/com/yice/webadmin/app/service/DatasetOutputService.java
+77
-0
DatasetVersionService.java
.../com/yice/webadmin/app/service/DatasetVersionService.java
+9
-1
DatasetDataServiceImpl.java
...ice/webadmin/app/service/impl/DatasetDataServiceImpl.java
+52
-4
DatasetManageServiceImpl.java
...e/webadmin/app/service/impl/DatasetManageServiceImpl.java
+11
-0
DatasetOutputServiceImpl.java
...e/webadmin/app/service/impl/DatasetOutputServiceImpl.java
+230
-0
DatasetVersionServiceImpl.java
.../webadmin/app/service/impl/DatasetVersionServiceImpl.java
+18
-4
DatasetDataVo.java
...src/main/java/com/yice/webadmin/app/vo/DatasetDataVo.java
+6
-0
DatasetManageVo.java
...c/main/java/com/yice/webadmin/app/vo/DatasetManageVo.java
+24
-1
DatasetOutputVo.java
...c/main/java/com/yice/webadmin/app/vo/DatasetOutputVo.java
+93
-0
DatasetVersionVo.java
.../main/java/com/yice/webadmin/app/vo/DatasetVersionVo.java
+1
-1
application-dev.yml
application-webadmin/src/main/resources/application-dev.yml
+6
-6
BaseUpDownloader.java
...in/java/com/yice/common/core/upload/BaseUpDownloader.java
+13
-1
LocalUpDownloader.java
...n/java/com/yice/common/core/upload/LocalUpDownloader.java
+14
-0
MinioUpDownloader.java
...in/java/com/yice/common/minio/util/MinioUpDownloader.java
+22
-0
No files found.
application-webadmin/src/main/java/com/yice/webadmin/app/constant/DatasetConstant.java
View file @
39e57a66
...
...
@@ -3,12 +3,52 @@ package com.yice.webadmin.app.constant;
public
class
DatasetConstant
{
/**
*
未发布状态0
*
未发布状态
*/
public
static
final
Integer
STATUS_UNPUBLISHED
=
0
;
/**
*已发布状态
*
已发布状态
*/
public
static
final
Integer
STATUS_PUBLISHED
=
1
;
/**
* 未完成状态
*/
public
static
final
Integer
STATUS_UNFINISHED
=
0
;
/**
* 未标记状态
*/
public
static
final
Integer
UNMARK
=
0
;
/**
* 已完成状态
*/
public
static
final
Integer
STATUS_FINISHED
=
1
;
/**
* 文件上传字段
*/
public
static
final
Integer
UPLOAD
=
1
;
/**
* 文件上传字段
*/
public
static
final
String
KB
=
"KB"
;
/**
* 文件名称
*/
public
static
final
String
FILE_NAME
=
"output."
;
/**
* 导出位置
*/
public
static
final
String
OUTPUT_POSTION
=
"导出至本地"
;
/**
* 导出内容
*/
public
static
final
String
OUTPUT_CONTENT
=
"全部数据"
;
}
application-webadmin/src/main/java/com/yice/webadmin/app/constant/MongoConstant.java
View file @
39e57a66
...
...
@@ -25,6 +25,22 @@ public final class MongoConstant {
*/
public
static
final
String
CREATE_TIME
=
"createTime"
;
/**
* 标记状态
*/
public
static
final
String
MARK_STATUS
=
"markStatus"
;
/**
* 标记状态
*/
public
static
final
String
OUTPUT
=
"output"
;
/**
* NULL状态
*/
public
static
final
String
EMPTY
=
""
;
/**
* 主键id
*/
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/controller/DatasetDataController.java
View file @
39e57a66
...
...
@@ -56,30 +56,6 @@ public class DatasetDataController {
return
ResponseResult
.
success
();
}
/**
* 统计总个数
* @param versionId 版本标识
* @return
*/
@GetMapping
(
"/summaryCount"
)
public
ResponseResult
<
DatasetDataSummaryDto
>
summaryCount
(
@RequestParam
Long
versionId
)
{
if
(
MyCommonUtil
.
existBlankArgument
(
versionId
))
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
ARGUMENT_NULL_ID_EXIST
);
}
DatasetDataSummaryDto
summaryDto
=
new
DatasetDataSummaryDto
();
DatasetData
datasetDataFilter
=
new
DatasetData
();
datasetDataFilter
.
setVersionId
(
versionId
);
Long
allMarkCount
=
datasetDataService
.
count
(
datasetDataFilter
);
summaryDto
.
setAllMarkCount
(
allMarkCount
);
datasetDataFilter
.
setMarkStatus
(
DatasetConstant
.
STATUS_UNPUBLISHED
);
Long
unMarkCount
=
datasetDataService
.
count
(
datasetDataFilter
);
summaryDto
.
setUnMarkCount
(
unMarkCount
);
summaryDto
.
setMarkCount
(
allMarkCount
-
unMarkCount
);
return
ResponseResult
.
success
(
summaryDto
);
}
/**
* 删除数据集版本数据。
*
...
...
@@ -125,6 +101,25 @@ public class DatasetDataController {
return
ResponseResult
.
success
(
MyPageUtil
.
makeResponseData
(
datasetDataList
,
count
));
}
/**
* 根据版本id,查询该数据集列表
* @param datasetDataDtoFilter 数据集对象
* @param pageParam 分页参数
* @return
*/
@PostMapping
(
"/load"
)
public
ResponseResult
<
MyPageData
<
DatasetData
>>
load
(
@MyRequestBody
DatasetDataDto
datasetDataDtoFilter
,
@MyRequestBody
MyPageParam
pageParam
)
{
if
(
pageParam
!=
null
)
{
PageMethod
.
startPage
(
pageParam
.
getPageNum
(),
pageParam
.
getPageSize
());
}
DatasetData
datasetDataFilter
=
MyModelUtil
.
copyTo
(
datasetDataDtoFilter
,
DatasetData
.
class
);
List
<
DatasetData
>
datasetDataList
=
datasetDataService
.
list
(
datasetDataFilter
,
pageParam
);
Long
count
=
datasetDataService
.
count
(
datasetDataFilter
);
return
ResponseResult
.
success
(
MyPageUtil
.
makeResponseData
(
datasetDataList
,
count
));
}
/**
* 查看指定数据集版本对象详情。
* @param id 主键标识。
...
...
@@ -147,4 +142,29 @@ public class DatasetDataController {
}
return
ResponseResult
.
success
(
datasetData
);
}
/**
* 统计总个数
* @param versionId 版本标识
* @return
*/
@GetMapping
(
"/summaryCount"
)
public
ResponseResult
<
DatasetDataSummaryDto
>
summaryCount
(
@RequestParam
Long
versionId
)
{
if
(
MyCommonUtil
.
existBlankArgument
(
versionId
))
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
ARGUMENT_NULL_ID_EXIST
);
}
DatasetDataSummaryDto
summaryDto
=
new
DatasetDataSummaryDto
();
DatasetData
datasetDataFilter
=
new
DatasetData
();
datasetDataFilter
.
setVersionId
(
versionId
);
Long
allMarkCount
=
datasetDataService
.
count
(
datasetDataFilter
);
summaryDto
.
setAllMarkCount
(
allMarkCount
);
datasetDataFilter
.
setMarkStatus
(
DatasetConstant
.
STATUS_UNPUBLISHED
);
Long
unMarkCount
=
datasetDataService
.
count
(
datasetDataFilter
);
summaryDto
.
setUnMarkCount
(
unMarkCount
);
summaryDto
.
setMarkCount
(
allMarkCount
-
unMarkCount
);
return
ResponseResult
.
success
(
summaryDto
);
}
}
application-webadmin/src/main/java/com/yice/webadmin/app/controller/DatasetManageController.java
View file @
39e57a66
...
...
@@ -125,6 +125,29 @@ public class DatasetManageController {
return
ResponseResult
.
success
(
MyPageUtil
.
makeResponseData
(
datasetManageList
,
DatasetManage
.
INSTANCE
));
}
/**
* 查询所有数据集列表最新的记录列表进行分组查询。
*
* @param datasetManageDtoFilter 过滤对象。
* @param orderParam 排序参数。
* @param pageParam 分页参数。
* @return 应答结果对象,包含查询结果集。
*/
@PostMapping
(
"/findDatasets"
)
public
ResponseResult
<
MyPageData
<
DatasetManageVo
>>
findDatasets
(
@MyRequestBody
DatasetManageDto
datasetManageDtoFilter
,
@MyRequestBody
MyOrderParam
orderParam
,
@MyRequestBody
MyPageParam
pageParam
)
{
if
(
pageParam
!=
null
)
{
PageMethod
.
startPage
(
pageParam
.
getPageNum
(),
pageParam
.
getPageSize
());
}
DatasetManage
datasetManageFilter
=
MyModelUtil
.
copyTo
(
datasetManageDtoFilter
,
DatasetManage
.
class
);
String
orderBy
=
MyOrderParam
.
buildOrderBy
(
orderParam
,
DatasetManage
.
class
);
List
<
DatasetManage
>
datasetManageList
=
datasetManageService
.
getDatasetManageGroupList
(
datasetManageFilter
,
orderBy
);
return
ResponseResult
.
success
(
MyPageUtil
.
makeResponseData
(
datasetManageList
,
DatasetManage
.
INSTANCE
));
}
/**
* 列出符合过滤条件的数据集管理列表。
*
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/controller/DatasetOutputController.java
0 → 100644
View file @
39e57a66
package
com
.
yice
.
webadmin
.
app
.
controller
;
import
com.github.pagehelper.page.PageMethod
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.yice.common.core.annotation.MyRequestBody
;
import
com.yice.common.core.constant.ErrorCodeEnum
;
import
com.yice.common.core.object.*
;
import
com.yice.common.core.util.MyCommonUtil
;
import
com.yice.common.core.util.MyModelUtil
;
import
com.yice.common.core.util.MyPageUtil
;
import
com.yice.common.log.annotation.OperationLog
;
import
com.yice.common.log.model.constant.SysOperationLogType
;
import
com.yice.webadmin.app.dto.DatasetOutputDto
;
import
com.yice.webadmin.app.model.DatasetOutput
;
import
com.yice.webadmin.app.service.DatasetOutputService
;
import
com.yice.webadmin.app.vo.DatasetOutputVo
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 数据集详情操作控制器类。
*
* @author linking
* @date 2023-04-13
*/
@Api
(
tags
=
"数据集版本导出管理接口"
)
@Slf4j
@RestController
@RequestMapping
(
"/admin/app/datasetOutput"
)
public
class
DatasetOutputController
{
@Autowired
private
DatasetOutputService
datasetOutputService
;
/**
* 新增数据集详情数据。
*
* @param datasetOutputDto 新增对象。
* @return 应答结果对象,包含新增对象主键Id。
*/
@ApiOperationSupport
(
ignoreParameters
=
{
"datasetOutputDto.outputId"
})
@OperationLog
(
type
=
SysOperationLogType
.
ADD
)
@PostMapping
(
"/add"
)
public
ResponseResult
<
Long
>
add
(
@MyRequestBody
DatasetOutputDto
datasetOutputDto
)
{
String
errorMessage
=
MyCommonUtil
.
getModelValidationError
(
datasetOutputDto
,
false
);
if
(
errorMessage
!=
null
)
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_VALIDATED_FAILED
,
errorMessage
);
}
DatasetOutput
datasetOutput
=
MyModelUtil
.
copyTo
(
datasetOutputDto
,
DatasetOutput
.
class
);
datasetOutput
=
datasetOutputService
.
saveNew
(
datasetOutput
);
return
ResponseResult
.
success
(
datasetOutput
.
getOutputId
());
}
/**
* 更新数据集详情数据。
*
* @param datasetOutputDto 更新对象。
* @return 应答结果对象。
*/
@OperationLog
(
type
=
SysOperationLogType
.
UPDATE
)
@PostMapping
(
"/update"
)
public
ResponseResult
<
Void
>
update
(
@MyRequestBody
DatasetOutputDto
datasetOutputDto
)
{
String
errorMessage
=
MyCommonUtil
.
getModelValidationError
(
datasetOutputDto
,
true
);
if
(
errorMessage
!=
null
)
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_VALIDATED_FAILED
,
errorMessage
);
}
DatasetOutput
datasetOutput
=
MyModelUtil
.
copyTo
(
datasetOutputDto
,
DatasetOutput
.
class
);
DatasetOutput
originaldatasetOutput
=
datasetOutputService
.
getById
(
datasetOutput
.
getOutputId
());
if
(
originaldatasetOutput
==
null
)
{
errorMessage
=
"数据验证失败,当前 [数据] 并不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
if
(!
datasetOutputService
.
update
(
datasetOutput
,
originaldatasetOutput
))
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
);
}
return
ResponseResult
.
success
();
}
/**
* 删除数据集详情数据。
*
* @param detailId 删除对象主键Id。
* @return 应答结果对象。
*/
@OperationLog
(
type
=
SysOperationLogType
.
DELETE
)
@PostMapping
(
"/delete"
)
public
ResponseResult
<
Void
>
delete
(
@MyRequestBody
Long
detailId
)
{
if
(
MyCommonUtil
.
existBlankArgument
(
detailId
))
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
ARGUMENT_NULL_EXIST
);
}
return
this
.
doDelete
(
detailId
);
}
/**
* 列出符合过滤条件的数据集详情列表。
*
* @param datasetOutputDtoFilter 过滤对象。
* @param orderParam 排序参数。
* @param pageParam 分页参数。
* @return 应答结果对象,包含查询结果集。
*/
@PostMapping
(
"/list"
)
public
ResponseResult
<
MyPageData
<
DatasetOutputVo
>>
list
(
@MyRequestBody
DatasetOutputDto
datasetOutputDtoFilter
,
@MyRequestBody
MyOrderParam
orderParam
,
@MyRequestBody
MyPageParam
pageParam
)
{
if
(
pageParam
!=
null
)
{
PageMethod
.
startPage
(
pageParam
.
getPageNum
(),
pageParam
.
getPageSize
());
}
DatasetOutput
datasetOutputFilter
=
MyModelUtil
.
copyTo
(
datasetOutputDtoFilter
,
DatasetOutput
.
class
);
String
orderBy
=
MyOrderParam
.
buildOrderBy
(
orderParam
,
DatasetOutput
.
class
);
List
<
DatasetOutput
>
datasetOutputList
=
datasetOutputService
.
getDatasetOutputListWithRelation
(
datasetOutputFilter
,
orderBy
);
return
ResponseResult
.
success
(
MyPageUtil
.
makeResponseData
(
datasetOutputList
,
DatasetOutput
.
INSTANCE
));
}
/**
* 查看指定数据集详情对象详情。
*
* @param detailId 指定对象主键Id。
* @return 应答结果对象,包含对象详情。
*/
@GetMapping
(
"/view"
)
public
ResponseResult
<
DatasetOutputVo
>
view
(
@RequestParam
Long
detailId
)
{
DatasetOutput
datasetOutput
=
datasetOutputService
.
getByIdWithRelation
(
detailId
,
MyRelationParam
.
full
());
if
(
datasetOutput
==
null
)
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
);
}
DatasetOutputVo
datasetOutputVo
=
DatasetOutput
.
INSTANCE
.
fromModel
(
datasetOutput
);
return
ResponseResult
.
success
(
datasetOutputVo
);
}
private
ResponseResult
<
Void
>
doDelete
(
Long
detailId
)
{
String
errorMessage
;
// 验证关联Id的数据合法性
DatasetOutput
originaldatasetOutput
=
datasetOutputService
.
getById
(
detailId
);
if
(
originaldatasetOutput
==
null
)
{
errorMessage
=
"数据验证失败,当前 [对象] 并不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
if
(!
datasetOutputService
.
remove
(
detailId
))
{
errorMessage
=
"数据操作失败,删除的对象不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
return
ResponseResult
.
success
();
}
}
application-webadmin/src/main/java/com/yice/webadmin/app/controller/DatasetVersionController.java
View file @
39e57a66
...
...
@@ -18,11 +18,15 @@ import com.yice.common.core.util.MyPageUtil;
import
com.yice.common.log.annotation.OperationLog
;
import
com.yice.common.log.model.constant.SysOperationLogType
;
import
com.yice.webadmin.app.config.PythonConfig
;
import
com.yice.webadmin.app.constant.DatasetConstant
;
import
com.yice.webadmin.app.data.DatasetData
;
import
com.yice.webadmin.app.dto.DatasetDetailDto
;
import
com.yice.webadmin.app.dto.DatasetVersionDto
;
import
com.yice.webadmin.app.model.DatasetDetail
;
import
com.yice.webadmin.app.model.DatasetOutput
;
import
com.yice.webadmin.app.model.DatasetVersion
;
import
com.yice.webadmin.app.service.DatasetDataService
;
import
com.yice.webadmin.app.service.DatasetOutputService
;
import
com.yice.webadmin.app.service.DatasetVersionService
;
import
com.yice.webadmin.app.vo.DatasetVersionVo
;
import
io.swagger.annotations.Api
;
...
...
@@ -42,10 +46,7 @@ import java.nio.charset.StandardCharsets;
import
java.nio.file.Files
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.*
;
/**
* 数据集版本操作控制器类。
...
...
@@ -65,6 +66,8 @@ public class DatasetVersionController {
private
PythonConfig
pythonConfig
;
@Autowired
private
DatasetDataService
datasetDataService
;
@Autowired
private
DatasetOutputService
datasetOutputService
;
/**
* 新增数据集版本数据。
*
...
...
@@ -110,6 +113,40 @@ public class DatasetVersionController {
return
ResponseResult
.
success
();
}
/**
* 更新数据集版本数据。
*
* @param versionId 更新对象。
* @return 应答结果对象。
*/
@OperationLog
(
type
=
SysOperationLogType
.
UPDATE
)
@GetMapping
(
"/publish"
)
public
ResponseResult
<
Void
>
publish
(
@RequestParam
(
"versionId"
)
Long
versionId
)
{
String
errorMessage
;
if
(
null
==
versionId
)
{
errorMessage
=
"数据验证失败,参数不能为空!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_VALIDATED_FAILED
,
errorMessage
);
}
DatasetVersion
datasetVersion
=
datasetVersionService
.
getById
(
versionId
);
if
(
datasetVersion
==
null
)
{
errorMessage
=
"数据验证失败,当前 [数据] 并不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
DatasetData
datasetDataFilter
=
new
DatasetData
();
datasetDataFilter
.
setMarkStatus
(
DatasetConstant
.
UNMARK
);
datasetDataFilter
.
setVersionId
(
versionId
);
Long
count
=
datasetDataService
.
count
(
datasetDataFilter
);
if
(
count
>
0
)
{
errorMessage
=
"该数据集不满足发布条件,请确保数据集已完成全部数据标注!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
datasetVersion
.
setReleaseStatus
(
DatasetConstant
.
STATUS_PUBLISHED
);
if
(!
datasetVersionService
.
update
(
datasetVersion
))
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
);
}
return
ResponseResult
.
success
();
}
/**
* 删除数据集版本数据。
*
...
...
@@ -223,7 +260,7 @@ public class DatasetVersionController {
ObjectNode
objectNode
=
(
ObjectNode
)
rootNode
;
objectNode
.
remove
(
keyToRemove
);
}
else
{
log
.
error
(
"Root node is not an object."
);
log
.
error
(
"Root node is not an object."
);
}
// 将更新后的JSON写回文件
objectMapper
.
writeValue
(
jsonFile
,
rootNode
);
...
...
@@ -296,10 +333,10 @@ public class DatasetVersionController {
if
(!
Files
.
isWritable
(
path
))
{
Files
.
createDirectories
(
Paths
.
get
(
pythonConfig
.
getDatasetFileBaseDir
()));
}
// 文件写入指定路径
// 文件写入指定路径
、应该是追加到文件里面
Files
.
write
(
path
,
bytes
);
// 写入到mongodb中
datasetVersionService
.
writeDatasetFile
ForMongo
(
bytes
,
importFile
.
getOriginalFilename
(),
versionId
);
datasetVersionService
.
writeDatasetFile
(
bytes
,
importFile
.
getOriginalFilename
(),
versionId
);
}
catch
(
IOException
e
)
{
log
.
error
(
"Failed to write imported file ["
+
importFile
.
getOriginalFilename
()
+
" ]."
,
e
);
throw
e
;
...
...
@@ -325,4 +362,30 @@ public class DatasetVersionController {
return
ResponseEntity
.
notFound
().
build
();
// 如果文件不存在,返回404 Not Found状态码
}
}
/**
* 开始导出数据集记录
* @param versionId 版本标识
* @param fileType 文件类型
* @return 返回导出文件链接
*/
@GetMapping
(
"/startExport"
)
public
ResponseResult
<
String
>
startExport
(
@RequestParam
Long
versionId
,
@RequestParam
String
fileType
){
DatasetVersion
datasetVersion
=
this
.
datasetVersionService
.
getById
(
versionId
);
datasetVersion
.
setFileUrl
(
"E:\\自我认知数据集_V2.json"
);
if
(
datasetVersion
==
null
)
{
String
errorMessage
=
"数据操作失败,查询数据不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
DatasetOutput
datasetOutput
=
datasetOutputService
.
saveNew
(
fileType
,
datasetVersion
.
getFileUrl
(),
versionId
);
if
(
datasetOutput
==
null
)
{
String
errorMessage
=
"导出数据操作失败,请刷新后重试或者联系管理员!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
datasetOutput
.
setStatus
(
DatasetConstant
.
STATUS_FINISHED
);
datasetOutput
.
setOutputEndTime
(
new
Date
());
datasetOutputService
.
updateById
(
datasetOutput
);
return
ResponseResult
.
success
(
datasetOutput
.
getDownloadUrl
());
}
}
application-webadmin/src/main/java/com/yice/webadmin/app/dao/DatasetManageMapper.java
View file @
39e57a66
...
...
@@ -44,4 +44,15 @@ public interface DatasetManageMapper extends BaseDaoMapper<DatasetManage> {
@Param
(
"datasetManageFilter"
)
DatasetManage
datasetManageFilter
,
@Param
(
"datasetVersionFilter"
)
DatasetVersion
datasetVersionFilter
,
@Param
(
"orderBy"
)
String
orderBy
);
/**
* 查询最新的数据列表。
*
* @param datasetManageFilter 主表过滤对象。
* @param orderBy 排序字符串,order by从句的参数。
* @return 对象列表。
*/
List
<
DatasetManage
>
getDatasetManageGroupList
(
@Param
(
"datasetManageFilter"
)
DatasetManage
datasetManageFilter
,
@Param
(
"orderBy"
)
String
orderBy
);
}
application-webadmin/src/main/java/com/yice/webadmin/app/dao/DatasetOutputMapper.java
0 → 100644
View file @
39e57a66
package
com
.
yice
.
webadmin
.
app
.
dao
;
import
com.yice.common.core.base.dao.BaseDaoMapper
;
import
com.yice.webadmin.app.model.DatasetOutput
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 数据集导出数据操作访问接口。
*
* @author linking
* @date 2023-04-13
*/
public
interface
DatasetOutputMapper
extends
BaseDaoMapper
<
DatasetOutput
>
{
/**
* 批量插入对象列表。
*
* @param datasetOutputList 新增对象列表。
*/
void
insertList
(
List
<
DatasetOutput
>
datasetOutputList
);
/**
* 获取过滤后的对象列表。
*
* @param datasetOutputFilter 主表过滤对象。
* @param orderBy 排序字符串,order by从句的参数。
* @return 对象列表。
*/
List
<
DatasetOutput
>
getDatasetOutputList
(
@Param
(
"datasetOutputFilter"
)
DatasetOutput
datasetOutputFilter
,
@Param
(
"orderBy"
)
String
orderBy
);
}
application-webadmin/src/main/java/com/yice/webadmin/app/dao/mapper/DatasetManageMapper.xml
View file @
39e57a66
...
...
@@ -11,6 +11,10 @@
<result
column=
"update_user_id"
jdbcType=
"BIGINT"
property=
"updateUserId"
/>
<result
column=
"update_time"
jdbcType=
"TIMESTAMP"
property=
"updateTime"
/>
<result
column=
"data_type"
jdbcType=
"TINYINT"
property=
"dataType"
/>
<result
column=
"data_volume"
jdbcType=
"TINYINT"
property=
"dataVolume"
/>
<result
column=
"release_status"
jdbcType=
"TINYINT"
property=
"releaseStatus"
/>
<result
column=
"input_status"
jdbcType=
"TINYINT"
property=
"inputStatus"
/>
<result
column=
"dataset_version"
jdbcType=
"TINYINT"
property=
"datasetVersion"
/>
</resultMap>
<insert
id=
"insertList"
>
...
...
@@ -95,4 +99,23 @@
ORDER BY ${orderBy}
</if>
</select>
<select
id=
"getDatasetManageGroupList"
resultMap=
"BaseResultMap"
parameterType=
"com.yice.webadmin.app.model.DatasetManage"
>
SELECT lmp_dataset_manage.*, version.release_status, version.input_status, version.data_volume, version.dataset_version
FROM
lmp_dataset_manage lmp_dataset_manage
JOIN (
SELECT dataset_id, MAX(dataset_version) as max_dataset_version
FROM lmp_dataset_version
GROUP BY dataset_id
) v ON lmp_dataset_manage.dataset_id = v.dataset_id
JOIN lmp_dataset_version version ON lmp_dataset_manage.dataset_id = version.dataset_id
AND v.max_dataset_version = version.dataset_version
<where>
<include
refid=
"filterRef"
/>
</where>
<if
test=
"orderBy != null and orderBy != ''"
>
ORDER BY ${orderBy}
</if>
</select>
</mapper>
application-webadmin/src/main/java/com/yice/webadmin/app/dao/mapper/DatasetOutputMapper.xml
0 → 100644
View file @
39e57a66
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yice.webadmin.app.dao.DatasetOutputMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yice.webadmin.app.model.DatasetOutput"
>
<id
column=
"output_id"
jdbcType=
"BIGINT"
property=
"outputId"
/>
<result
column=
"output_postion"
jdbcType=
"VARCHAR"
property=
"outputPostion"
/>
<result
column=
"mark_format_type"
jdbcType=
"VARCHAR"
property=
"markFormatType"
/>
<result
column=
"output_content"
jdbcType=
"VARCHAR"
property=
"outputContent"
/>
<result
column=
"file_size"
jdbcType=
"VARCHAR"
property=
"fileSize"
/>
<result
column=
"data_count"
jdbcType=
"BIGINT"
property=
"dataCount"
/>
<result
column=
"create_user_id"
jdbcType=
"BIGINT"
property=
"createUserId"
/>
<result
column=
"version_id"
jdbcType=
"BIGINT"
property=
"versionId"
/>
<result
column=
"output_start_time"
jdbcType=
"TIMESTAMP"
property=
"outputStartTime"
/>
<result
column=
"output_end_time"
jdbcType=
"TIMESTAMP"
property=
"outputEndTime"
/>
<result
column=
"status"
jdbcType=
"TINYINT"
property=
"status"
/>
<result
column=
"download_url"
jdbcType=
"VARCHAR"
property=
"downloadUrl"
/>
</resultMap>
<insert
id=
"insertList"
>
INSERT INTO lmp_data_output
(output_id,
output_postion,
mark_format_type,
output_content,
file_size,
data_count,
create_user_id,
output_start_time,
output_end_time,
status,
download_url,
version_id)
VALUES
<foreach
collection=
"list"
index=
"index"
item=
"item"
separator=
","
>
(#{item.outputId},
#{item.outputPostion},
#{item.markFormatType},
#{item.outputContent},
#{item.fileSize},
#{item.dataCount},
#{item.createUserId},
#{item.outputStartTime},
#{item.outputEndTime},
#{item.status},
#{item.downloadUrl},
#{item.versionId})
</foreach>
</insert>
<!-- 如果有逻辑删除字段过滤,请写到这里 -->
<sql
id=
"filterRef"
>
<!-- 这里必须加上全包名,否则当filterRef被其他Mapper.xml包含引用的时候,就会调用Mapper.xml中的该SQL片段 -->
<include
refid=
"com.yice.webadmin.app.dao.DatasetOutputMapper.inputFilterRef"
/>
</sql>
<!-- 这里仅包含调用接口输入的主表过滤条件 -->
<sql
id=
"inputFilterRef"
>
<if
test=
"datasetOutputFilter != null"
>
<if
test=
"datasetOutputFilter.outputId != null"
>
AND lmp_data_output.output_id = #{datasetOutputFilter.datasetId}
</if>
<if
test=
"datasetOutputFilter.versionId != null"
>
AND lmp_data_output.version_id = #{datasetOutputFilter.versionId}
</if>
<if
test=
"datasetOutputFilter.markFormatType != null"
>
AND lmp_data_output.mark_format_type = #{datasetOutputFilter.markFormatType}
</if>
</if>
</sql>
<select
id=
"getDatasetOutputList"
resultMap=
"BaseResultMap"
parameterType=
"com.yice.webadmin.app.model.DatasetOutput"
>
SELECT * FROM lmp_data_output
<where>
<include
refid=
"filterRef"
/>
</where>
<if
test=
"orderBy != null and orderBy != ''"
>
ORDER BY ${orderBy}
</if>
</select>
</mapper>
application-webadmin/src/main/java/com/yice/webadmin/app/data/DatasetData.java
View file @
39e57a66
...
...
@@ -29,4 +29,8 @@ public class DatasetData {
@ApiModelProperty
(
name
=
"createTime"
,
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
name
=
"markStatus"
,
value
=
"标记状态"
)
private
Integer
markStatus
;
}
application-webadmin/src/main/java/com/yice/webadmin/app/dto/DatasetDataDto.java
View file @
39e57a66
...
...
@@ -12,7 +12,7 @@ import java.util.Date;
* @author linking
* @date 2023-04-13
*/
@ApiModel
(
"Dataset
Data
Dto视图对象"
)
@ApiModel
(
"Dataset
Mongo
Dto视图对象"
)
@Data
public
class
DatasetDataDto
{
...
...
@@ -39,4 +39,10 @@ public class DatasetDataDto {
*/
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
/**
* 标记状态。
*/
@ApiModelProperty
(
value
=
"标记状态:0:未标记,1:已标记"
)
private
Integer
markStatus
;
}
application-webadmin/src/main/java/com/yice/webadmin/app/dto/DatasetManageDto.java
View file @
39e57a66
...
...
@@ -48,6 +48,30 @@ public class DatasetManageDto {
@ApiModelProperty
(
value
=
"数据类型"
)
private
Integer
dataType
;
/**
* 数据量。
*/
@ApiModelProperty
(
value
=
"数据量"
)
private
Long
dataVolume
;
/**
* 发布状态。
*/
@ApiModelProperty
(
value
=
"发布状态"
)
private
Integer
releaseStatus
;
/**
* 导入状态。
*/
@ApiModelProperty
(
value
=
"导入状态"
)
private
Integer
inputStatus
;
/**
* 版本。
*/
@ApiModelProperty
(
value
=
"版本"
)
private
Integer
datasetVersion
;
/**
* dataset_name LIKE搜索字符串。
*/
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/dto/DatasetOutputDto.java
0 → 100644
View file @
39e57a66
package
com
.
yice
.
webadmin
.
app
.
dto
;
import
com.yice.common.core.validator.UpdateGroup
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
/**
* DatasetOutputDto对象。
*
* @author linking
* @date 2023-04-13
*/
@ApiModel
(
"DatasetOutputDto对象"
)
@Data
public
class
DatasetOutputDto
{
/**
* 导出任务ID。
*/
@ApiModelProperty
(
value
=
"导出任务ID"
,
required
=
true
)
@NotNull
(
message
=
"数据验证失败,导出任务ID不能为空!"
,
groups
=
{
UpdateGroup
.
class
})
private
Long
outputId
;
/**
* 导出位置。
*/
@ApiModelProperty
(
value
=
"导出位置"
,
required
=
true
)
private
String
outputPostion
;
/**
* 导出格式类型。
*/
@ApiModelProperty
(
value
=
"导出格式类型"
)
private
String
markFormatType
;
/**
* 导出内容。
*/
@ApiModelProperty
(
value
=
"导出内容"
)
private
String
outputContent
;
/**
* 文件大小。
*/
@ApiModelProperty
(
value
=
"文件大小"
)
private
String
fileSize
;
/**
* 数据量。
*/
@ApiModelProperty
(
value
=
"数据量"
)
private
Long
dataCount
;
/**
* 创建人。
*/
@ApiModelProperty
(
value
=
"创建人"
)
private
Long
createUserId
;
/**
* 导出开始时间。
*/
@ApiModelProperty
(
value
=
"导出开始时间"
)
private
Date
outputStartTime
;
/**
* 导出完成时间。
*/
@ApiModelProperty
(
value
=
"导出完成时间"
)
private
Date
outputEndTime
;
/**
* 状态。
*/
@ApiModelProperty
(
value
=
"状态:0:标识未完成;1标识已完成"
)
private
Integer
status
;
/**
* 下载地址。
*/
@ApiModelProperty
(
value
=
"下载地址"
)
private
String
downloadUrl
;
/**
* 版本ID。
*/
@ApiModelProperty
(
value
=
"版本ID"
)
private
Long
versionId
;
}
application-webadmin/src/main/java/com/yice/webadmin/app/dto/DatasetVersionDto.java
View file @
39e57a66
...
...
@@ -64,7 +64,7 @@ public class DatasetVersionDto {
/**
* 发布状态。
*/
@ApiModelProperty
(
value
=
"发布状态"
)
@ApiModelProperty
(
value
=
"发布状态
:0标识未发布;1标识已发布
"
)
private
Integer
releaseStatus
;
/**
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/model/DatasetManage.java
View file @
39e57a66
...
...
@@ -51,12 +51,35 @@ public class DatasetManage extends BaseModel {
*/
private
Integer
template
;
/**
* 数据类型。
*/
private
Integer
dataType
;
/**
* 数据量。
*/
@TableField
(
exist
=
false
)
private
Long
dataVolume
;
/**
* 发布状态。
*/
@TableField
(
exist
=
false
)
private
Integer
releaseStatus
;
/**
* 导入状态。
*/
@TableField
(
exist
=
false
)
private
Integer
inputStatus
;
/**
* 版本。
*/
@TableField
(
exist
=
false
)
private
Integer
datasetVersion
;
/**
* dataset_name LIKE搜索字符串。
*/
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/model/DatasetOutput.java
0 → 100644
View file @
39e57a66
package
com
.
yice
.
webadmin
.
app
.
model
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yice.common.core.base.mapper.BaseModelMapper
;
import
com.yice.common.core.base.model.BaseModel
;
import
com.yice.webadmin.app.vo.DatasetOutputVo
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
import
java.util.Date
;
/**
* DatasetOutput实体对象。
*
* @author linking
* @date 2023-04-13
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
value
=
"lmp_data_output"
)
public
class
DatasetOutput
extends
BaseModel
{
/**
* 导出任务ID。
*/
@TableId
(
value
=
"output_id"
)
private
Long
outputId
;
/**
* 导出位置。
*/
private
String
outputPostion
;
/**
* 导出文件格式类型。
*/
private
String
markFormatType
;
/**
* 版本标识。
*/
private
Long
versionId
;
/**
* 导出内容。
*/
private
String
outputContent
;
/**
* 文件大小。
*/
private
String
fileSize
;
/**
* 数据量。
*/
private
Long
dataCount
;
/**
* 创建人。
*/
private
Long
createUserId
;
/**
* 导出开始时间。
*/
private
Date
outputStartTime
;
/**
* 导出完成时间。
*/
private
Date
outputEndTime
;
/**
* 状态。
*/
private
Integer
status
;
/**
* 下载地址。
*/
private
String
downloadUrl
;
@Mapper
public
interface
DatasetOutputModelMapper
extends
BaseModelMapper
<
DatasetOutputVo
,
DatasetOutput
>
{
/**
* 转换Vo对象到实体对象。
*
* @param datasetOutputVo 域对象。
* @return 实体对象。
*/
@Override
DatasetOutput
toModel
(
DatasetOutputVo
datasetOutputVo
);
/**
* 转换实体对象到VO对象。
*
* @param datasetOutput 实体对象。
* @return 域对象。
*/
@Override
DatasetOutputVo
fromModel
(
DatasetOutput
datasetOutput
);
}
public
static
final
DatasetOutput
.
DatasetOutputModelMapper
INSTANCE
=
Mappers
.
getMapper
(
DatasetOutput
.
DatasetOutputModelMapper
.
class
);
}
application-webadmin/src/main/java/com/yice/webadmin/app/service/DatasetDataService.java
View file @
39e57a66
...
...
@@ -45,6 +45,14 @@ public interface DatasetDataService {
*/
Long
count
(
Long
versionId
);
/**
* 查询列表集合总条数
* @param filter 过滤条件
* @return 返回总条数
*/
Long
count
(
DatasetData
filter
);
/**
* 查询列表集合
* @param versionId 版本标识
...
...
@@ -53,6 +61,15 @@ public interface DatasetDataService {
*/
List
<
DatasetData
>
list
(
Long
versionId
,
MyPageParam
pageParam
);
/**
* 根据条件查询数据集数据。
*
* @param filter 过滤对象。
* @param pageParam 分页对象。
* @return 查询结果集。
*/
List
<
DatasetData
>
list
(
DatasetData
filter
,
MyPageParam
pageParam
);
/**
* 更新数据对象。
*
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/service/DatasetManageService.java
View file @
39e57a66
...
...
@@ -68,5 +68,20 @@ public interface DatasetManageService extends IBaseService<DatasetManage, Long>
*/
List
<
DatasetManage
>
getDatasetManageListWithRelation
(
DatasetManage
filter
,
DatasetVersion
datasetVersionFilter
,
String
orderBy
);
/**
* 获取数据集管理对象
*
* @param filter 主表过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
List
<
DatasetManage
>
getDatasetManageGroupList
(
DatasetManage
filter
,
String
orderBy
);
/**
* 保存和创建数据集版本管理
* @param datasetManage 数据集管理对象
* @return 数据集管理对象
*/
DatasetManage
saveAndCreateVersion
(
DatasetManage
datasetManage
);
}
application-webadmin/src/main/java/com/yice/webadmin/app/service/DatasetOutputService.java
0 → 100644
View file @
39e57a66
package
com
.
yice
.
webadmin
.
app
.
service
;
import
com.yice.common.core.base.service.IBaseService
;
import
com.yice.webadmin.app.model.DatasetOutput
;
import
java.util.List
;
/**
* 数据集导出数据操作服务接口。
*
* @author linking
* @date 2023-04-13
*/
public
interface
DatasetOutputService
extends
IBaseService
<
DatasetOutput
,
Long
>
{
/**
* 保存新增对象。
*
* @param datasetOutput 新增对象。
* @return 返回新增对象。
*/
DatasetOutput
saveNew
(
DatasetOutput
datasetOutput
);
/**
* 记录地址并保存到minio中。
* @param fileType 文件类型。
* @param fileUrl 文件地址。
* @param versionId 版本标识。
* @return 返回新增对象。
*/
DatasetOutput
saveNew
(
String
fileType
,
String
fileUrl
,
Long
versionId
);
/**
* 利用数据库的insertList语法,批量插入对象列表。
*
* @param datasetOutputList 新增对象列表。
*/
void
saveNewBatch
(
List
<
DatasetOutput
>
datasetOutputList
);
/**
* 更新数据对象。
*
* @param DatasetOutput 更新的对象。
* @param originalDatasetOutput 原有数据对象。
* @return 成功返回true,否则false。
*/
boolean
update
(
DatasetOutput
DatasetOutput
,
DatasetOutput
originalDatasetOutput
);
/**
* 删除指定数据。
*
* @param outputId 主键Id。
* @return 成功返回true,否则false。
*/
boolean
remove
(
Long
outputId
);
/**
* 获取单表查询结果。由于没有关联数据查询,因此在仅仅获取单表数据的场景下,效率更高。
* 如果需要同时获取关联数据,请移步(getDatasetOutputListWithRelation)方法。
*
* @param filter 过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
List
<
DatasetOutput
>
getDatasetOutputList
(
DatasetOutput
filter
,
String
orderBy
);
/**
* 获取主表的查询结果,以及主表关联的字典数据和一对一从表数据,以及一对一从表的字典数据。
* 该查询会涉及到一对一从表的关联过滤,或一对多从表的嵌套关联过滤,因此性能不如单表过滤。
* 如果仅仅需要获取主表数据,请移步(getDatasetOutputList),以便获取更好的查询性能。
*
* @param filter 主表过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
List
<
DatasetOutput
>
getDatasetOutputListWithRelation
(
DatasetOutput
filter
,
String
orderBy
);
}
application-webadmin/src/main/java/com/yice/webadmin/app/service/DatasetVersionService.java
View file @
39e57a66
...
...
@@ -43,7 +43,7 @@ public interface DatasetVersionService extends IBaseService<DatasetVersion, Long
* @param originalFilename 导入文件名称
* @param versionId 版本标识
*/
void
writeDatasetFile
ForMongo
(
byte
[]
bytes
,
String
originalFilename
,
Long
versionId
);
void
writeDatasetFile
(
byte
[]
bytes
,
String
originalFilename
,
Long
versionId
);
/**
* 更新数据对象。
...
...
@@ -54,6 +54,14 @@ public interface DatasetVersionService extends IBaseService<DatasetVersion, Long
*/
boolean
update
(
DatasetVersion
datasetVersion
,
DatasetVersion
originalDatasetVersion
);
/**
* 更新数据对象。
*
* @param datasetVersion 更新的对象。
* @return 成功返回true,否则false。
*/
boolean
update
(
DatasetVersion
datasetVersion
);
/**
* 删除指定数据。
*
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/service/impl/DatasetDataServiceImpl.java
View file @
39e57a66
package
com
.
yice
.
webadmin
.
app
.
service
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yice.common.core.object.MyPageParam
;
import
com.yice.webadmin.app.constant.MongoConstant
;
import
com.yice.webadmin.app.data.DatasetData
;
...
...
@@ -36,15 +37,20 @@ public class DatasetDataServiceImpl implements DatasetDataService {
* @param datasetData 新增对象。
* @return 返回新增对象。
*/
@Override
public
void
save
(
DatasetData
datasetData
)
{
if
(
StringUtils
.
isNotBlank
(
datasetData
.
getData
()))
{
List
<
Document
>
documents
=
new
ArrayList
<>();
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
datasetData
.
getData
());
if
(
null
!=
jsonArray
&&
jsonArray
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
Document
document
=
new
Document
(
MongoConstant
.
DATA
,
jsonArray
.
getJSONObject
(
i
))
JSONObject
jsonObject
=
jsonArray
.
getJSONObject
(
i
);
Integer
markStatus
=
jsonObject
.
getString
(
MongoConstant
.
OUTPUT
)
!=
null
&&
!
jsonObject
.
getString
(
MongoConstant
.
OUTPUT
).
equals
(
MongoConstant
.
EMPTY
)
?
1
:
0
;
Document
document
=
new
Document
(
MongoConstant
.
DATA
,
jsonObject
)
.
append
(
MongoConstant
.
VERSION
,
datasetData
.
getVersionId
())
.
append
(
MongoConstant
.
CREATE_TIME
,
datasetData
.
getCreateTime
());
.
append
(
MongoConstant
.
CREATE_TIME
,
datasetData
.
getCreateTime
())
.
append
(
MongoConstant
.
MARK_STATUS
,
markStatus
);
documents
.
add
(
document
);
}
}
...
...
@@ -59,6 +65,7 @@ public class DatasetDataServiceImpl implements DatasetDataService {
* @param pageParam 页码参数
* @return 返回查看对象列表
*/
@Override
public
List
<
DatasetData
>
list
(
Long
versionId
,
MyPageParam
pageParam
)
{
Query
query
=
new
Query
(
Criteria
.
where
(
MongoConstant
.
VERSION
).
is
(
versionId
))
.
skip
((
pageParam
.
getPageNum
()
-
1
)
*
pageParam
.
getPageSize
())
...
...
@@ -68,11 +75,48 @@ public class DatasetDataServiceImpl implements DatasetDataService {
MongoConstant
.
COLLECT_NAME
+
versionId
);
}
/**
* 根据条件查询数据集数据。
*
* @param filter 过滤对象。
* @param pageParam 分页对象。
* @return 查询结果集。
*/
@Override
public
List
<
DatasetData
>
list
(
DatasetData
filter
,
MyPageParam
pageParam
)
{
Query
query
=
new
Query
();
query
.
addCriteria
(
Criteria
.
where
(
MongoConstant
.
VERSION
).
is
(
filter
.
getVersionId
()));
if
(
filter
.
getMarkStatus
()
!=
null
)
{
query
.
addCriteria
(
Criteria
.
where
(
MongoConstant
.
MARK_STATUS
).
is
(
filter
.
getMarkStatus
()));
}
query
.
skip
((
pageParam
.
getPageNum
()
-
1
)
*
pageParam
.
getPageSize
())
.
limit
(
pageParam
.
getPageSize
());
return
mongoTemplate
.
find
(
query
,
DatasetData
.
class
,
MongoConstant
.
COLLECT_NAME
+
filter
.
getVersionId
());
}
/**
* 根据条件查询列表集合总条数
* @param filter 版本标识
* @return 返回总条数
*/
@Override
public
Long
count
(
DatasetData
filter
)
{
Query
query
=
new
Query
();
query
.
addCriteria
(
Criteria
.
where
(
MongoConstant
.
VERSION
).
is
(
filter
.
getVersionId
()));
if
(
filter
.
getMarkStatus
()
!=
null
)
{
query
.
addCriteria
(
Criteria
.
where
(
MongoConstant
.
MARK_STATUS
).
is
(
filter
.
getMarkStatus
()));
}
return
mongoTemplate
.
count
(
query
,
DatasetData
.
class
,
MongoConstant
.
COLLECT_NAME
+
filter
.
getVersionId
());
}
/**
* 查询列表集合总条数
* @param versionId 版本标识
* @return 返回总条数
*/
@Override
public
Long
count
(
Long
versionId
)
{
Query
query
=
new
Query
(
Criteria
.
where
(
MongoConstant
.
VERSION
).
is
(
versionId
));
return
mongoTemplate
.
count
(
query
,
DatasetData
.
class
,
...
...
@@ -86,6 +130,7 @@ public class DatasetDataServiceImpl implements DatasetDataService {
* @param versionId 版本标识。
* @return 返回查看对象。
*/
@Override
public
DatasetData
view
(
String
id
,
Long
versionId
)
{
return
mongoTemplate
.
findById
(
id
,
DatasetData
.
class
,
MongoConstant
.
COLLECT_NAME
+
versionId
);
...
...
@@ -97,9 +142,10 @@ public class DatasetDataServiceImpl implements DatasetDataService {
* @param datasetData 更新的对象。
* @return 成功返回true,否则false。
*/
@Override
public
void
update
(
DatasetData
datasetData
)
{
mongoTemplate
.
save
(
datasetData
,
MongoConstant
.
COLLECT_NAME
+
datasetData
.
getVersionId
());
mongoTemplate
.
save
(
datasetData
,
MongoConstant
.
COLLECT_NAME
+
datasetData
.
getVersionId
());
}
/**
...
...
@@ -109,6 +155,7 @@ public class DatasetDataServiceImpl implements DatasetDataService {
* @param versionId 版本标识。
* @return 返回受影响的行数。
*/
@Override
public
Long
remove
(
String
id
,
Long
versionId
)
{
Query
query
=
new
Query
(
Criteria
.
where
(
MongoConstant
.
ID
).
is
(
id
));
return
mongoTemplate
.
remove
(
query
,
DatasetData
.
class
,
...
...
@@ -121,6 +168,7 @@ public class DatasetDataServiceImpl implements DatasetDataService {
* @param versionId 版本标识。
* @return 返回受影响的行数。
*/
@Override
public
void
delete
(
Long
versionId
)
{
mongoTemplate
.
dropCollection
(
MongoConstant
.
COLLECT_NAME
+
versionId
);
}
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/service/impl/DatasetManageServiceImpl.java
View file @
39e57a66
...
...
@@ -140,6 +140,17 @@ public class DatasetManageServiceImpl extends BaseService<DatasetManage, Long> i
return
resultList
;
}
/**
* 分组进行查询数据集列表
* @param filter 主表过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
@Override
public
List
<
DatasetManage
>
getDatasetManageGroupList
(
DatasetManage
filter
,
String
orderBy
)
{
return
datasetManageMapper
.
getDatasetManageGroupList
(
filter
,
orderBy
);
}
@Transactional
@Override
public
DatasetManage
saveAndCreateVersion
(
DatasetManage
datasetManage
)
{
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/service/impl/DatasetOutputServiceImpl.java
0 → 100644
View file @
39e57a66
package
com
.
yice
.
webadmin
.
app
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
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.object.MyRelationParam
;
import
com.yice.common.core.object.TokenData
;
import
com.yice.common.core.upload.BaseUpDownloader
;
import
com.yice.common.core.upload.UpDownloaderFactory
;
import
com.yice.common.core.upload.UploadResponseInfo
;
import
com.yice.common.core.upload.UploadStoreTypeEnum
;
import
com.yice.common.core.util.MyModelUtil
;
import
com.yice.common.minio.config.MinioProperties
;
import
com.yice.common.sequence.wrapper.IdGeneratorWrapper
;
import
com.yice.webadmin.app.constant.DatasetConstant
;
import
com.yice.webadmin.app.dao.DatasetOutputMapper
;
import
com.yice.webadmin.app.model.DatasetOutput
;
import
com.yice.webadmin.app.service.DatasetOutputService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.UrlResource
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.io.IOException
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.text.DecimalFormat
;
import
java.util.Date
;
import
java.util.List
;
/**
* 数据集详情数据操作服务类。
*
* @author linking
* @date 2023-04-13
*/
@Slf4j
@Service
(
"datasetOutputService"
)
public
class
DatasetOutputServiceImpl
extends
BaseService
<
DatasetOutput
,
Long
>
implements
DatasetOutputService
{
@Autowired
private
DatasetOutputMapper
datasetOutputMapper
;
@Autowired
private
IdGeneratorWrapper
idGenerator
;
@Autowired
private
UpDownloaderFactory
upDownloaderFactory
;
@Autowired
private
MinioProperties
minioProperties
;
/**
* 返回当前Service的主表Mapper对象。
*
* @return 主表Mapper对象。
*/
@Override
protected
BaseDaoMapper
<
DatasetOutput
>
mapper
()
{
return
datasetOutputMapper
;
}
/**
* 保存新增对象。
*
* @param datasetOutput 新增对象。
* @return 返回新增对象。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
DatasetOutput
saveNew
(
DatasetOutput
datasetOutput
)
{
datasetOutputMapper
.
insert
(
this
.
buildDefaultValue
(
datasetOutput
));
return
datasetOutput
;
}
/**
* 利用数据库的insertList语法,批量插入对象列表。
*
* @param datasetOutputList 新增对象列表。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
saveNewBatch
(
List
<
DatasetOutput
>
datasetOutputList
)
{
if
(
CollUtil
.
isNotEmpty
(
datasetOutputList
))
{
datasetOutputList
.
forEach
(
this
::
buildDefaultValue
);
datasetOutputMapper
.
insertList
(
datasetOutputList
);
}
}
/**
* 记录地址并保存到minio中。
* @param fileType 文件类型。
* @param fileUrl 文件地址。
* @param versionId 版本标识。
* @return 返回新增对象。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
DatasetOutput
saveNew
(
String
fileType
,
String
fileUrl
,
Long
versionId
)
{
DatasetOutput
datasetOutput
=
new
DatasetOutput
();
String
uploadUrl
=
doUpload
(
fileUrl
,
fileType
,
datasetOutput
);
if
(
StringUtils
.
isEmpty
(
uploadUrl
))
return
null
;
datasetOutput
.
setOutputId
(
idGenerator
.
nextLongId
());
datasetOutput
.
setCreateUserId
(
TokenData
.
takeFromRequest
().
getUserId
());
datasetOutput
.
setVersionId
(
versionId
);
datasetOutput
.
setOutputStartTime
(
new
Date
());
datasetOutput
.
setStatus
(
DatasetConstant
.
STATUS_UNFINISHED
);
datasetOutput
.
setDownloadUrl
(
uploadUrl
);
datasetOutput
.
setMarkFormatType
(
fileType
);
datasetOutput
.
setOutputPostion
(
DatasetConstant
.
OUTPUT_POSTION
);
datasetOutput
.
setOutputContent
(
DatasetConstant
.
OUTPUT_CONTENT
);
datasetOutputMapper
.
insert
(
datasetOutput
);
return
datasetOutput
;
}
/**
* 根据类型,生成对应的文件类型名称
* @param fileUrl 文件地址
* @param fileType 文件类型
*/
private
String
doUpload
(
String
fileUrl
,
String
fileType
,
DatasetOutput
datasetOutput
)
{
String
fileName
=
null
;
try
{
Path
file
=
Paths
.
get
(
fileUrl
);
Resource
resource
=
new
UrlResource
(
file
.
toUri
());
byte
[]
data
=
IOUtils
.
toByteArray
(
resource
.
getInputStream
());
datasetOutput
.
setDataCount
(
Long
.
valueOf
(
JSON
.
parseArray
(
new
String
(
data
,
StandardCharsets
.
UTF_8
)).
size
()));
double
sizeInMb
=
(
double
)
resource
.
contentLength
()
/
1024
;
DecimalFormat
df
=
new
DecimalFormat
(
"#.##"
);
datasetOutput
.
setFileSize
(
df
.
format
(
sizeInMb
)
+
DatasetConstant
.
KB
);
UploadStoreTypeEnum
uploadStoreType
=
UploadStoreTypeEnum
.
values
()[
DatasetConstant
.
UPLOAD
];
BaseUpDownloader
upDownloader
=
upDownloaderFactory
.
get
(
uploadStoreType
);
UploadResponseInfo
responseInfo
=
upDownloader
.
doUpload
(
resource
.
getInputStream
(),
DatasetConstant
.
FILE_NAME
+
fileType
);
if
(!
Boolean
.
TRUE
.
equals
(
responseInfo
.
getUploadFailed
()))
{
fileName
=
buildDownloadUrl
(
responseInfo
.
getFilename
());
}
}
catch
(
IOException
ex
){
log
.
error
(
"上传文件错误信息为:"
,
ex
);
}
return
fileName
;
}
/**
* 构建文件下载链接
* @param fileUrl
* @return
*/
private
String
buildDownloadUrl
(
String
fileUrl
)
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
minioProperties
.
getEndpoint
()).
append
(
"/"
).
append
(
minioProperties
.
getBucketName
()).
append
(
"/"
).
append
(
fileUrl
);
return
sb
.
toString
();
}
/**
* 更新数据对象。
*
* @param datasetOutput 更新的对象。
* @param originalDatasetOutput 原有数据对象。
* @return 成功返回true,否则false。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
update
(
DatasetOutput
datasetOutput
,
DatasetOutput
originalDatasetOutput
)
{
MyModelUtil
.
fillCommonsForUpdate
(
datasetOutput
,
originalDatasetOutput
);
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
UpdateWrapper
<
DatasetOutput
>
uw
=
this
.
createUpdateQueryForNullValue
(
datasetOutput
,
datasetOutput
.
getOutputId
());
return
datasetOutputMapper
.
update
(
datasetOutput
,
uw
)
==
1
;
}
/**
* 删除指定数据。
*
* @param outputId 主键Id。
* @return 成功返回true,否则false。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
remove
(
Long
outputId
)
{
return
datasetOutputMapper
.
deleteById
(
outputId
)
==
1
;
}
/**
* 获取单表查询结果。由于没有关联数据查询,因此在仅仅获取单表数据的场景下,效率更高。
* 如果需要同时获取关联数据,请移步(getDatasetOutputListWithRelation)方法。
*
* @param filter 过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
@Override
public
List
<
DatasetOutput
>
getDatasetOutputList
(
DatasetOutput
filter
,
String
orderBy
)
{
return
datasetOutputMapper
.
getDatasetOutputList
(
filter
,
orderBy
);
}
/**
* 获取主表的查询结果,以及主表关联的字典数据和一对一从表数据,以及一对一从表的字典数据。
* 该查询会涉及到一对一从表的关联过滤,或一对多从表的嵌套关联过滤,因此性能不如单表过滤。
* 如果仅仅需要获取主表数据,请移步(getDatasetOutputList),以便获取更好的查询性能。
*
* @param filter 主表过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
@Override
public
List
<
DatasetOutput
>
getDatasetOutputListWithRelation
(
DatasetOutput
filter
,
String
orderBy
)
{
List
<
DatasetOutput
>
resultList
=
datasetOutputMapper
.
getDatasetOutputList
(
filter
,
orderBy
);
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
int
batchSize
=
resultList
instanceof
Page
?
0
:
1000
;
this
.
buildRelationForDataList
(
resultList
,
MyRelationParam
.
normal
(),
batchSize
);
return
resultList
;
}
private
DatasetOutput
buildDefaultValue
(
DatasetOutput
datasetOutput
)
{
if
(
datasetOutput
.
getOutputId
()
==
null
)
{
datasetOutput
.
setOutputId
(
idGenerator
.
nextLongId
());
}
MyModelUtil
.
fillCommonsForInsert
(
datasetOutput
);
return
datasetOutput
;
}
}
application-webadmin/src/main/java/com/yice/webadmin/app/service/impl/DatasetVersionServiceImpl.java
View file @
39e57a66
...
...
@@ -174,6 +174,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
* @param versionName 版本名称
* @throws IOException 异常操作
*/
@Override
public
void
saveDatasetInfo
(
String
versionName
)
throws
IOException
{
File
file
=
new
File
(
pythonConfig
.
getDatasetFileBaseDir
(),
pythonConfig
.
getDatasetInfo
());
if
(!
file
.
exists
())
{
...
...
@@ -198,7 +199,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
* @param fileName 文件名称
* @return 返回截取后的字符串
*/
private
static
String
extractFileName
(
String
fileName
)
{
private
String
extractFileName
(
String
fileName
)
{
int
lastSlashIndex
=
fileName
.
lastIndexOf
(
'/'
);
if
(
lastSlashIndex
!=
-
1
)
{
fileName
=
fileName
.
substring
(
0
,
lastSlashIndex
+
1
);
...
...
@@ -225,7 +226,7 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
// 文件写入指定路径
Files
.
write
(
path
,
bytes
);
// 写入到mongodb中
writeDatasetFile
ForMongo
(
bytes
,
fullName
,
versionId
);
writeDatasetFile
(
bytes
,
fullName
,
versionId
);
}
catch
(
IOException
e
)
{
log
.
error
(
"Failed to write imported file ["
+
fullName
+
" ]."
,
e
);
throw
e
;
...
...
@@ -253,14 +254,15 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
* @param originalFilename 导入文件名称
* @param versionId 版本标识
*/
public
void
writeDatasetFileForMongo
(
byte
[]
bytes
,
String
originalFilename
,
Long
versionId
)
{
@Override
public
void
writeDatasetFile
(
byte
[]
bytes
,
String
originalFilename
,
Long
versionId
)
{
try
{
// 或者指定字符集进行转换,替换"UTF-8"为你想要使用的字符集
String
result
=
new
String
(
bytes
,
StandardCharsets
.
UTF_8
);
//先删除数据集
datasetDataService
.
delete
(
versionId
);
//保存到mongodb中
datasetDataService
.
save
(
new
DatasetData
(
null
,
versionId
,
result
,
new
Date
()));
datasetDataService
.
save
(
new
DatasetData
(
null
,
versionId
,
result
,
new
Date
()
,
null
));
}
catch
(
Exception
ex
)
{
log
.
error
(
"Failed to write mongodb database ["
+
originalFilename
+
" ]."
,
ex
);
}
...
...
@@ -296,6 +298,18 @@ public class DatasetVersionServiceImpl extends BaseService<DatasetVersion, Long>
return
datasetVersionMapper
.
update
(
datasetVersion
,
uw
)
==
1
;
}
/**
* 更新数据对象。
*
* @param datasetVersion 更新的对象。
* @return 成功返回true,否则false。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
update
(
DatasetVersion
datasetVersion
)
{
return
datasetVersionMapper
.
updateById
(
datasetVersion
)
>
0
;
}
/**
* 删除指定数据。
*
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/vo/DatasetDataVo.java
View file @
39e57a66
...
...
@@ -39,4 +39,10 @@ public class DatasetDataVo {
*/
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
/**
* 标记状态。
*/
@ApiModelProperty
(
value
=
"标记状态:0:未标记,1:已标记"
)
private
Integer
markStatus
;
}
application-webadmin/src/main/java/com/yice/webadmin/app/vo/DatasetManageVo.java
View file @
39e57a66
...
...
@@ -44,13 +44,36 @@ public class DatasetManageVo extends BaseVo {
@ApiModelProperty
(
value
=
"模板"
)
private
Integer
template
;
/**
* 数据类型。
*/
@ApiModelProperty
(
value
=
"数据类型"
)
private
Integer
dataType
;
/**
* 数据量。
*/
@ApiModelProperty
(
value
=
"数据量"
)
private
Long
dataVolume
;
/**
* 发布状态。
*/
@ApiModelProperty
(
value
=
"发布状态"
)
private
Integer
releaseStatus
;
/**
* 导入状态。
*/
@ApiModelProperty
(
value
=
"导入状态"
)
private
Integer
inputStatus
;
/**
* 版本。
*/
@ApiModelProperty
(
value
=
"版本"
)
private
Integer
datasetVersion
;
/**
* DatasetVersion 的一对多关联表数据对象。数据对应类型为DatasetVersion。
*/
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/vo/DatasetOutputVo.java
0 → 100644
View file @
39e57a66
package
com
.
yice
.
webadmin
.
app
.
vo
;
import
com.yice.common.core.validator.UpdateGroup
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
/**
* DatasetOutputVo对象。
*
* @author linking
* @date 2023-04-13
*/
@ApiModel
(
"DatasetOutputVo对象"
)
@Data
public
class
DatasetOutputVo
{
/**
* 导出任务ID。
*/
@ApiModelProperty
(
value
=
"导出任务ID"
,
required
=
true
)
@NotNull
(
message
=
"数据验证失败,导出任务ID不能为空!"
,
groups
=
{
UpdateGroup
.
class
})
private
Long
outputId
;
/**
* 导出位置。
*/
@ApiModelProperty
(
value
=
"导出位置"
,
required
=
true
)
private
String
outputPostion
;
/**
* 导出格式类型。
*/
@ApiModelProperty
(
value
=
"导出格式类型"
)
private
String
markFormatType
;
/**
* 导出内容。
*/
@ApiModelProperty
(
value
=
"导出内容"
)
private
String
outputContent
;
/**
* 文件大小。
*/
@ApiModelProperty
(
value
=
"文件大小"
)
private
String
fileSize
;
/**
* 数据量。
*/
@ApiModelProperty
(
value
=
"数据量"
)
private
Long
dataCount
;
/**
* 创建人。
*/
@ApiModelProperty
(
value
=
"创建人"
)
private
Long
createUserId
;
/**
* 导出开始时间。
*/
@ApiModelProperty
(
value
=
"导出开始时间"
)
private
Date
outputStartTime
;
/**
* 导出完成时间。
*/
@ApiModelProperty
(
value
=
"导出完成时间"
)
private
Date
outputEndTime
;
/**
* 状态。
*/
@ApiModelProperty
(
value
=
"状态"
)
private
Integer
status
;
/**
* 下载地址。
*/
@ApiModelProperty
(
value
=
"下载地址"
)
private
String
downloadUrl
;
/**
* 版本ID。
*/
@ApiModelProperty
(
value
=
"版本ID"
)
private
Long
versionId
;
}
application-webadmin/src/main/java/com/yice/webadmin/app/vo/DatasetVersionVo.java
View file @
39e57a66
...
...
@@ -64,7 +64,7 @@ public class DatasetVersionVo extends BaseVo {
/**
* 发布状态。
*/
@ApiModelProperty
(
value
=
"发布状态"
)
@ApiModelProperty
(
value
=
"发布状态
:0标识未发布;1标识已发布
"
)
private
Integer
releaseStatus
;
/**
...
...
application-webadmin/src/main/resources/application-dev.yml
View file @
39e57a66
...
...
@@ -196,9 +196,9 @@ redis:
# 连接池中最小空闲数量。
minIdle
:
5
#
minio:
#
enabled: true
#
endpoint: http://192.168.0.145:9090
#
accessKey: minioadmin
#
secretKey: minioadmin
# bucketName: application
minio
:
enabled
:
true
endpoint
:
http://192.168.0.145:9090
accessKey
:
minioadmin
secretKey
:
minioadmin
bucketName
:
lmp
common/common-core/src/main/java/com/yice/common/core/upload/BaseUpDownloader.java
View file @
39e57a66
...
...
@@ -16,6 +16,7 @@ import javax.imageio.ImageIO;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -84,6 +85,17 @@ public abstract class BaseUpDownloader {
responseInfo
.
setFilename
(
filenameBuilder
.
toString
());
}
/**
* 方法重置写入Minio里面中,保留文件名称
* 执行文件上传操作,将文件数据存入Minio。
*
* @param inputStream 上传地址。
* @param fileName 文件名称。
* @return 上传应答信息对象。该对象始终不为null。
* @throws IOException minio抛出的异常。
*/
public
abstract
UploadResponseInfo
doUpload
(
InputStream
inputStream
,
String
fileName
);
/**
* 执行下载操作,从本地文件系统读取数据,并将读取的数据直接写入到HttpServletResponse应答对象。
*
...
...
@@ -159,7 +171,7 @@ public abstract class BaseUpDownloader {
}
return
false
;
}
protected
UploadResponseInfo
verifyUploadArgument
(
Boolean
asImage
,
MultipartFile
uploadFile
)
throws
IOException
{
UploadResponseInfo
responseInfo
=
new
UploadResponseInfo
();
...
...
common/common-core/src/main/java/com/yice/common/core/upload/LocalUpDownloader.java
View file @
39e57a66
...
...
@@ -147,6 +147,20 @@ public class LocalUpDownloader extends BaseUpDownloader {
return
responseInfo
;
}
/**
* 方法重置写入Minio里面中,保留文件名称
* 执行文件上传操作,将文件数据存入Minio。
*
* @param inputStream 上传地址。
* @param fileName 文件名称。
* @return 上传应答信息对象。该对象始终不为null。
* @throws IOException minio抛出的异常。
*/
@Override
public
UploadResponseInfo
doUpload
(
InputStream
inputStream
,
String
fileName
){
return
new
UploadResponseInfo
();
}
/**
* 判断filename参数指定的文件名,是否被包含在fileInfoJson参数中。
*
...
...
common/common-minio/src/main/java/com/yice/common/minio/util/MinioUpDownloader.java
View file @
39e57a66
...
...
@@ -6,8 +6,10 @@ import com.yice.common.core.upload.UpDownloaderFactory;
import
com.yice.common.core.upload.UploadResponseInfo
;
import
com.yice.common.core.upload.BaseUpDownloader
;
import
com.yice.common.core.upload.UploadStoreTypeEnum
;
import
com.yice.common.core.util.MyCommonUtil
;
import
com.yice.common.minio.wrapper.MinioTemplate
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.FilenameUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.stereotype.Component
;
...
...
@@ -81,6 +83,26 @@ public class MinioUpDownloader extends BaseUpDownloader {
this
.
downloadInternal
(
fullFileanme
,
fileName
,
response
);
}
/**
* 方法重置写入Minio里面中,保留文件名称
* 执行文件上传操作,将文件数据存入Minio。
*
* @param inputStream 上传地址。
* @param fileName 文件名称。
* @return 上传应答信息对象。该对象始终不为null。
* @throws IOException minio抛出的异常。
*/
@Override
public
UploadResponseInfo
doUpload
(
InputStream
inputStream
,
String
fileName
){
UploadResponseInfo
responseInfo
=
new
UploadResponseInfo
();
StringBuilder
filenameBuilder
=
new
StringBuilder
(
64
);
filenameBuilder
.
append
(
MyCommonUtil
.
generateUuid
())
.
append
(
"."
).
append
(
FilenameUtils
.
getExtension
(
fileName
));
responseInfo
.
setFilename
(
filenameBuilder
.
toString
());
minioTemplate
.
putObject
(
responseInfo
.
getFilename
(),
inputStream
);
return
responseInfo
;
}
private
void
downloadInternal
(
String
fullFileanme
,
String
fileName
,
HttpServletResponse
response
)
throws
IOException
{
response
.
setHeader
(
"content-type"
,
"application/octet-stream"
);
response
.
setContentType
(
"application/octet-stream"
);
...
...
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