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
f486099d
Commit
f486099d
authored
Mar 21, 2024
by
pengxin
2
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
数据集模块改造。
parent
f8d29640
Changes
34
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
1340 additions
and
4612 deletions
+1340
-4612
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
+19
-0
DatasetManageController.java
...yice/webadmin/app/controller/DatasetManageController.java
+23
-0
DatasetOutputController.java
...yice/webadmin/app/controller/DatasetOutputController.java
+155
-0
DatasetVersionController.java
...ice/webadmin/app/controller/DatasetVersionController.java
+69
-6
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
+6
-0
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
application-webadmin.log
zzlogs/application-webadmin/application-webadmin.log
+0
-4584
No files found.
application-webadmin/src/main/java/com/yice/webadmin/app/constant/DatasetConstant.java
View file @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -99,6 +99,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 主键标识。
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/controller/DatasetManageController.java
View file @
f486099d
...
...
@@ -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 @
f486099d
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
com.yice.webadmin.config.ApplicationConfig
;
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
;
@Autowired
private
ApplicationConfig
appConfig
;
/**
* 新增数据集详情数据。
*
* @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 @
f486099d
...
...
@@ -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
();
}
/**
* 删除数据集版本数据。
*
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
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 @
f486099d
...
...
@@ -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 @
f486099d
<?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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
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 @
f486099d
...
...
@@ -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 @
f486099d
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 @
f486099d
...
...
@@ -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 @
f486099d
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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -177,9 +177,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 @
f486099d
...
...
@@ -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
;
...
...
@@ -138,6 +139,17 @@ public abstract class BaseUpDownloader {
Boolean
asImage
,
MultipartFile
uploadFile
)
throws
IOException
;
/**
* 方法重置写入Minio里面中,保留文件名称
* 执行文件上传操作,将文件数据存入Minio。
*
* @param inputStream 上传地址。
* @param fileName 文件名称。
* @return 上传应答信息对象。该对象始终不为null。
* @throws IOException minio抛出的异常。
*/
public
abstract
UploadResponseInfo
doUpload
(
InputStream
inputStream
,
String
fileName
);
/**
* 判断filename参数指定的文件名,是否被包含在fileInfoJson参数中。
*
...
...
@@ -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 @
f486099d
...
...
@@ -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 @
f486099d
...
...
@@ -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
;
...
...
@@ -57,6 +59,26 @@ public class MinioUpDownloader extends BaseUpDownloader {
return
responseInfo
;
}
/**
* 方法重置写入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
;
}
@Override
public
void
doDownload
(
String
rootBaseDir
,
...
...
zzlogs/application-webadmin/application-webadmin.log
deleted
100644 → 0
View file @
f8d29640
This diff is collapsed.
Click to expand it.
pengxin
@pengxin
mentioned in commit
4f1b0668
·
Mar 21, 2024
mentioned in commit
4f1b0668
mentioned in commit 4f1b06686dafd2987f210fceec92a12501406133
Toggle commit list
pengxin
@pengxin
mentioned in commit
d30228f6
·
Mar 21, 2024
mentioned in commit
d30228f6
mentioned in commit d30228f6a9c7c19f503cbb97ba027ef0e69f6ca0
Toggle commit list
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