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
9ff61528
Commit
9ff61528
authored
Apr 26, 2024
by
pengxin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://192.168.0.35:3000/lmp/lmp_server
parents
e1d2a7fc
66b17714
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
650 additions
and
7 deletions
+650
-7
ApplicationAccessController.java
.../webadmin/app/controller/ApplicationAccessController.java
+158
-0
ModelEstimateController.java
...yice/webadmin/app/controller/ModelEstimateController.java
+14
-7
ApplicationAccessMapper.java
...va/com/yice/webadmin/app/dao/ApplicationAccessMapper.java
+33
-0
ApplicationAccessMapper.xml
.../yice/webadmin/app/dao/mapper/ApplicationAccessMapper.xml
+68
-0
ApplicationAccessDto.java
.../java/com/yice/webadmin/app/dto/ApplicationAccessDto.java
+54
-0
ApplicationAccess.java
...n/java/com/yice/webadmin/app/model/ApplicationAccess.java
+60
-0
ApplicationAccessService.java
...m/yice/webadmin/app/service/ApplicationAccessService.java
+68
-0
ApplicationAccessServiceImpl.java
...badmin/app/service/impl/ApplicationAccessServiceImpl.java
+141
-0
ApplicationAccessVo.java
...in/java/com/yice/webadmin/app/vo/ApplicationAccessVo.java
+54
-0
No files found.
application-webadmin/src/main/java/com/yice/webadmin/app/controller/ApplicationAccessController.java
0 → 100644
View file @
9ff61528
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.ApplicationAccessDto
;
import
com.yice.webadmin.app.model.ApplicationAccess
;
import
com.yice.webadmin.app.model.KGManage
;
import
com.yice.webadmin.app.service.ApplicationAccessService
;
import
com.yice.webadmin.app.vo.ApplicationAccessVo
;
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/applicationAccess"
)
public
class
ApplicationAccessController
{
@Autowired
private
ApplicationAccessService
applicationAccessService
;
/**
* 新增应用接入数据。
*
* @param applicationAccessDto 新增对象。
* @return 应答结果对象,包含新增对象主键Id。
*/
@ApiOperationSupport
(
ignoreParameters
=
{
"applicationAccessDto.accessId"
})
@OperationLog
(
type
=
SysOperationLogType
.
ADD
)
@PostMapping
(
"/add"
)
public
ResponseResult
<
Long
>
add
(
@MyRequestBody
ApplicationAccessDto
applicationAccessDto
)
{
String
errorMessage
=
MyCommonUtil
.
getModelValidationError
(
applicationAccessDto
,
false
);
if
(
errorMessage
!=
null
)
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_VALIDATED_FAILED
,
errorMessage
);
}
ApplicationAccess
applicationAccess
=
MyModelUtil
.
copyTo
(
applicationAccessDto
,
ApplicationAccess
.
class
);
applicationAccess
=
applicationAccessService
.
saveNew
(
applicationAccess
);
return
ResponseResult
.
success
(
applicationAccess
.
getAccessId
());
}
/**
* 更新应用接入数据。
*
* @param applicationAccessDto 更新对象。
* @return 应答结果对象。
*/
@OperationLog
(
type
=
SysOperationLogType
.
UPDATE
)
@PostMapping
(
"/update"
)
public
ResponseResult
<
Void
>
update
(
@MyRequestBody
ApplicationAccessDto
applicationAccessDto
)
{
String
errorMessage
=
MyCommonUtil
.
getModelValidationError
(
applicationAccessDto
,
true
);
if
(
errorMessage
!=
null
)
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_VALIDATED_FAILED
,
errorMessage
);
}
ApplicationAccess
applicationAccess
=
MyModelUtil
.
copyTo
(
applicationAccessDto
,
ApplicationAccess
.
class
);
ApplicationAccess
originalApplicationAccess
=
applicationAccessService
.
getById
(
applicationAccess
.
getAccessId
());
if
(
originalApplicationAccess
==
null
)
{
// NOTE: 修改下面方括号中的话述
errorMessage
=
"数据验证失败,当前 [数据] 并不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
// 验证关联Id的数据合法性
CallResult
callResult
=
applicationAccessService
.
verifyRelatedData
(
applicationAccess
,
originalApplicationAccess
);
if
(!
callResult
.
isSuccess
())
{
return
ResponseResult
.
errorFrom
(
callResult
);
}
if
(!
applicationAccessService
.
update
(
applicationAccess
,
originalApplicationAccess
))
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
);
}
return
ResponseResult
.
success
();
}
/**
* 删除应用接入数据。
*
* @param accessId 删除对象主键Id。
* @return 应答结果对象。
*/
@OperationLog
(
type
=
SysOperationLogType
.
DELETE
)
@PostMapping
(
"/delete"
)
public
ResponseResult
<
Void
>
delete
(
@MyRequestBody
Long
accessId
)
{
if
(
MyCommonUtil
.
existBlankArgument
(
accessId
))
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
ARGUMENT_NULL_EXIST
);
}
return
this
.
doDelete
(
accessId
);
}
/**
* 列出符合过滤条件的应用接入列表。
*
* @param applicationAccessDtoFilter 过滤对象。
* @param orderParam 排序参数。
* @param pageParam 分页参数。
* @return 应答结果对象,包含查询结果集。
*/
@PostMapping
(
"/list"
)
public
ResponseResult
<
MyPageData
<
ApplicationAccessVo
>>
list
(
@MyRequestBody
ApplicationAccessDto
applicationAccessDtoFilter
,
@MyRequestBody
MyOrderParam
orderParam
,
@MyRequestBody
MyPageParam
pageParam
)
{
if
(
pageParam
!=
null
)
{
PageMethod
.
startPage
(
pageParam
.
getPageNum
(),
pageParam
.
getPageSize
());
}
ApplicationAccess
applicationAccessFilter
=
MyModelUtil
.
copyTo
(
applicationAccessDtoFilter
,
ApplicationAccess
.
class
);
String
orderBy
=
MyOrderParam
.
buildOrderBy
(
orderParam
,
ApplicationAccess
.
class
);
List
<
ApplicationAccess
>
applicationAccessList
=
applicationAccessService
.
getApplicationAccessListWithRelation
(
applicationAccessFilter
,
orderBy
);
return
ResponseResult
.
success
(
MyPageUtil
.
makeResponseData
(
applicationAccessList
,
ApplicationAccess
.
INSTANCE
));
}
/**
* 查看指定应用接入对象详情。
*
* @param accessId 指定对象主键Id。
* @return 应答结果对象,包含对象详情。
*/
@GetMapping
(
"/view"
)
public
ResponseResult
<
ApplicationAccessVo
>
view
(
@RequestParam
Long
accessId
)
{
ApplicationAccess
applicationAccess
=
applicationAccessService
.
getByIdWithRelation
(
accessId
,
MyRelationParam
.
full
());
if
(
applicationAccess
==
null
)
{
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
);
}
ApplicationAccessVo
applicationAccessVo
=
ApplicationAccess
.
INSTANCE
.
fromModel
(
applicationAccess
);
return
ResponseResult
.
success
(
applicationAccessVo
);
}
private
ResponseResult
<
Void
>
doDelete
(
Long
accessId
)
{
String
errorMessage
;
// 验证关联Id的数据合法性
ApplicationAccess
originalApplicationAccess
=
applicationAccessService
.
getById
(
accessId
);
if
(
originalApplicationAccess
==
null
)
{
// NOTE: 修改下面方括号中的话述
errorMessage
=
"数据验证失败,当前 [对象] 并不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
if
(!
applicationAccessService
.
remove
(
accessId
))
{
errorMessage
=
"数据操作失败,删除的对象不存在,请刷新后重试!"
;
return
ResponseResult
.
error
(
ErrorCodeEnum
.
DATA_NOT_EXIST
,
errorMessage
);
}
return
ResponseResult
.
success
();
}
}
application-webadmin/src/main/java/com/yice/webadmin/app/controller/ModelEstimateController.java
View file @
9ff61528
...
...
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONException;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.node.ArrayNode
;
import
com.fasterxml.jackson.databind.node.JsonNodeFactory
;
import
com.github.pagehelper.page.PageMethod
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.yice.common.core.annotation.MyRequestBody
;
...
...
@@ -206,17 +207,23 @@ public class ModelEstimateController {
Set
<
Long
>
datasetVersionIds
=
Arrays
.
stream
(
modelEstimate
.
getDatasetVersionIds
().
split
(
","
)).
mapToLong
(
Long:
:
parseLong
).
boxed
().
collect
(
Collectors
.
toSet
());
List
<
DatasetVersion
>
datasetVersions
=
datasetVersionService
.
getInList
(
datasetVersionIds
);
List
<
String
>
dataList
=
new
ArrayList
<>();
int
i
=
0
;
String
url
=
this
.
pythonConfig
.
getModelEstimateFileBaseDir
()
+
modelVersion
.
getVersionName
()
+
File
.
separator
+
"evl_"
+
taskId
+
File
.
separator
+
"generated_predictions.jsonl"
;
//获取评估输出详情
List
<
JSONObject
>
jsonObjects
=
this
.
getFileJsonArray
(
url
);
ObjectMapper
objectMapper
=
new
ObjectMapper
();
ArrayNode
arrayNode
=
objectMapper
.
createArrayNode
();
for
(
DatasetVersion
datasetVersion
:
datasetVersions
)
{
ArrayNode
arrayNode
=
(
ArrayNode
)
new
ObjectMapper
().
readTree
(
new
File
(
datasetVersion
.
getFileUrl
()));
// 读取JSON文件内容并转换为ArrayNode对象
arrayNode
.
addAll
((
ArrayNode
)
objectMapper
.
readTree
(
new
File
(
datasetVersion
.
getFileUrl
())));
// 读取JSON文件内容并转换为ArrayNode对象
}
int
i
=
0
;
int
j
=
0
;
for
(
JSONObject
jsonNode
:
jsonObjects
)
{
// 遍历JSON数组并取出每个元素(ObjectNode)中的数据
jsonNode
.
put
(
"datasetName"
,
datasetVersion
.
getVersionName
());
jsonNode
.
put
(
"datasetName"
,
datasetVersions
.
get
(
j
)
.
getVersionName
());
jsonNode
.
put
(
"input"
,
arrayNode
.
get
(
i
).
get
(
"instruction"
).
textValue
()
+
arrayNode
.
get
(
i
).
get
(
"input"
).
textValue
());
dataList
.
add
(
jsonNode
.
toJSONString
());
i
++;
if
(
i
==
datasetVersions
.
get
(
j
).
getDataVolume
())
{
j
++;
}
}
int
total
=
dataList
.
size
();
// 获取总数据量
...
...
application-webadmin/src/main/java/com/yice/webadmin/app/dao/ApplicationAccessMapper.java
0 → 100644
View file @
9ff61528
package
com
.
yice
.
webadmin
.
app
.
dao
;
import
com.yice.common.core.base.dao.BaseDaoMapper
;
import
com.yice.webadmin.app.model.ApplicationAccess
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 应用接入数据操作访问接口。
*
* @author linking
* @date 2023-04-13
*/
public
interface
ApplicationAccessMapper
extends
BaseDaoMapper
<
ApplicationAccess
>
{
/**
* 批量插入对象列表。
*
* @param ApplicationAccessList 新增对象列表。
*/
void
insertList
(
List
<
ApplicationAccess
>
ApplicationAccessList
);
/**
* 获取过滤后的对象列表。
*
* @param ApplicationAccessFilter 主表过滤对象。
* @param orderBy 排序字符串,order by从句的参数。
* @return 对象列表。
*/
List
<
ApplicationAccess
>
getApplicationAccessList
(
@Param
(
"ApplicationAccessFilter"
)
ApplicationAccess
ApplicationAccessFilter
,
@Param
(
"orderBy"
)
String
orderBy
);
}
application-webadmin/src/main/java/com/yice/webadmin/app/dao/mapper/ApplicationAccessMapper.xml
0 → 100644
View file @
9ff61528
<?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.ApplicationAccessMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yice.webadmin.app.model.ApplicationAccess"
>
<id
column=
"access_id"
jdbcType=
"BIGINT"
property=
"accessId"
/>
<result
column=
"create_user_id"
jdbcType=
"BIGINT"
property=
"createUserId"
/>
<result
column=
"create_time"
jdbcType=
"TIMESTAMP"
property=
"createTime"
/>
<result
column=
"update_user_id"
jdbcType=
"BIGINT"
property=
"updateUserId"
/>
<result
column=
"update_time"
jdbcType=
"TIMESTAMP"
property=
"updateTime"
/>
<result
column=
"application_name"
jdbcType=
"VARCHAR"
property=
"applicationName"
/>
<result
column=
"app_id"
jdbcType=
"BIGINT"
property=
"appId"
/>
<result
column=
"api_key"
jdbcType=
"VARCHAR"
property=
"apiKey"
/>
<result
column=
"secret_key"
jdbcType=
"VARCHAR"
property=
"secretKey"
/>
<result
column=
"application_describe"
jdbcType=
"VARCHAR"
property=
"applicationDescribe"
/>
</resultMap>
<insert
id=
"insertList"
>
INSERT INTO lmp_application_access
(access_id,
create_user_id,
create_time,
update_user_id,
update_time,
application_name,
app_id,
api_key,
secret_key,
application_describe)
VALUES
<foreach
collection=
"list"
index=
"index"
item=
"item"
separator=
","
>
(#{item.accessId},
#{item.createUserId},
#{item.createTime},
#{item.updateUserId},
#{item.updateTime},
#{item.applicationName},
#{item.appId},
#{item.apiKey},
#{item.secretKey},
#{item.applicationDescribe})
</foreach>
</insert>
<!-- 如果有逻辑删除字段过滤,请写到这里 -->
<sql
id=
"filterRef"
>
<!-- 这里必须加上全包名,否则当filterRef被其他Mapper.xml包含引用的时候,就会调用Mapper.xml中的该SQL片段 -->
<include
refid=
"com.yice.webadmin.app.dao.ApplicationAccessMapper.inputFilterRef"
/>
</sql>
<!-- 这里仅包含调用接口输入的主表过滤条件 -->
<sql
id=
"inputFilterRef"
>
<if
test=
"ApplicationAccessFilter != null"
>
<if
test=
"ApplicationAccessFilter.accessId != null"
>
AND lmp_application_access.access_id = #{ApplicationAccessFilter.accessId}
</if>
</if>
</sql>
<select
id=
"getApplicationAccessList"
resultMap=
"BaseResultMap"
parameterType=
"com.yice.webadmin.app.model.ApplicationAccess"
>
SELECT * FROM lmp_application_access
<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/dto/ApplicationAccessDto.java
0 → 100644
View file @
9ff61528
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
;
/**
* ApplicationAccessDto对象。
*
* @author linking
* @date 2023-04-13
*/
@ApiModel
(
"ApplicationAccessDto对象"
)
@Data
public
class
ApplicationAccessDto
{
/**
* 应用接入ID。
*/
@ApiModelProperty
(
value
=
"应用接入ID"
,
required
=
true
)
@NotNull
(
message
=
"数据验证失败,应用接入ID不能为空!"
,
groups
=
{
UpdateGroup
.
class
})
private
Long
accessId
;
/**
* 应用名称。
*/
@ApiModelProperty
(
value
=
"应用名称"
)
private
String
applicationName
;
/**
* AppID。
*/
@ApiModelProperty
(
value
=
"AppID"
)
private
Long
appId
;
/**
* API Key。
*/
@ApiModelProperty
(
value
=
"apiKey"
)
private
String
apiKey
;
/**
* Secret Key。
*/
@ApiModelProperty
(
value
=
"secretKey"
)
private
String
secretKey
;
/**
* 应用描述。
*/
@ApiModelProperty
(
value
=
"applicationDescribe"
)
private
String
applicationDescribe
;
}
application-webadmin/src/main/java/com/yice/webadmin/app/model/ApplicationAccess.java
0 → 100644
View file @
9ff61528
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.ApplicationAccessVo
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
* ApplicationAccess实体对象。
*
* @author linking
* @date 2023-04-13
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
value
=
"lmp_application_access"
)
public
class
ApplicationAccess
extends
BaseModel
{
/**
* 应用接入ID。
*/
@TableId
(
value
=
"access_id"
)
private
Long
accessId
;
/**
* 应用名称。
*/
private
String
applicationName
;
/**
* AppID。
*/
private
Long
appId
;
/**
* API Key。
*/
private
String
apiKey
;
/**
* Secret Key。
*/
private
String
secretKey
;
/**
* 应用描述。
*/
private
String
applicationDescribe
;
@Mapper
public
interface
ApplicationAccessModelMapper
extends
BaseModelMapper
<
ApplicationAccessVo
,
ApplicationAccess
>
{
}
public
static
final
ApplicationAccessModelMapper
INSTANCE
=
Mappers
.
getMapper
(
ApplicationAccessModelMapper
.
class
);
}
application-webadmin/src/main/java/com/yice/webadmin/app/service/ApplicationAccessService.java
0 → 100644
View file @
9ff61528
package
com
.
yice
.
webadmin
.
app
.
service
;
import
com.yice.common.core.base.service.IBaseService
;
import
com.yice.webadmin.app.model.ApplicationAccess
;
import
java.util.List
;
/**
* 模型部署数据操作服务接口。
*
* @author linking
* @date 2023-04-13
*/
public
interface
ApplicationAccessService
extends
IBaseService
<
ApplicationAccess
,
Long
>
{
/**
* 保存新增对象。
*
* @param ApplicationAccess 新增对象。
* @return 返回新增对象。
*/
ApplicationAccess
saveNew
(
ApplicationAccess
ApplicationAccess
);
/**
* 利用数据库的insertList语法,批量插入对象列表。
*
* @param ApplicationAccessList 新增对象列表。
*/
void
saveNewBatch
(
List
<
ApplicationAccess
>
ApplicationAccessList
);
/**
* 更新数据对象。
*
* @param ApplicationAccess 更新的对象。
* @param originalApplicationAccess 原有数据对象。
* @return 成功返回true,否则false。
*/
boolean
update
(
ApplicationAccess
ApplicationAccess
,
ApplicationAccess
originalApplicationAccess
);
/**
* 删除指定数据。
*
* @param accessId 主键Id。
* @return 成功返回true,否则false。
*/
boolean
remove
(
Long
accessId
);
/**
* 获取单表查询结果。由于没有关联数据查询,因此在仅仅获取单表数据的场景下,效率更高。
* 如果需要同时获取关联数据,请移步(getApplicationAccessListWithRelation)方法。
*
* @param filter 过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
List
<
ApplicationAccess
>
getApplicationAccessList
(
ApplicationAccess
filter
,
String
orderBy
);
/**
* 获取主表的查询结果,以及主表关联的字典数据和一对一从表数据,以及一对一从表的字典数据。
* 该查询会涉及到一对一从表的关联过滤,或一对多从表的嵌套关联过滤,因此性能不如单表过滤。
* 如果仅仅需要获取主表数据,请移步(getApplicationAccessList),以便获取更好的查询性能。
*
* @param filter 主表过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
List
<
ApplicationAccess
>
getApplicationAccessListWithRelation
(
ApplicationAccess
filter
,
String
orderBy
);
}
application-webadmin/src/main/java/com/yice/webadmin/app/service/impl/ApplicationAccessServiceImpl.java
0 → 100644
View file @
9ff61528
package
com
.
yice
.
webadmin
.
app
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
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.util.MyModelUtil
;
import
com.yice.common.sequence.wrapper.IdGeneratorWrapper
;
import
com.yice.webadmin.app.dao.ApplicationAccessMapper
;
import
com.yice.webadmin.app.model.ApplicationAccess
;
import
com.yice.webadmin.app.service.ApplicationAccessService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* 应用接入数据操作服务类。
*
* @author linking
* @date 2023-04-13
*/
@Slf4j
@Service
(
"ApplicationAccessService"
)
public
class
ApplicationAccessServiceImpl
extends
BaseService
<
ApplicationAccess
,
Long
>
implements
ApplicationAccessService
{
@Autowired
private
ApplicationAccessMapper
ApplicationAccessMapper
;
@Autowired
private
IdGeneratorWrapper
idGenerator
;
/**
* 返回当前Service的主表Mapper对象。
*
* @return 主表Mapper对象。
*/
@Override
protected
BaseDaoMapper
<
ApplicationAccess
>
mapper
()
{
return
ApplicationAccessMapper
;
}
/**
* 保存新增对象。
*
* @param ApplicationAccess 新增对象。
* @return 返回新增对象。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
ApplicationAccess
saveNew
(
ApplicationAccess
ApplicationAccess
)
{
ApplicationAccessMapper
.
insert
(
this
.
buildDefaultValue
(
ApplicationAccess
));
return
ApplicationAccess
;
}
/**
* 利用数据库的insertList语法,批量插入对象列表。
*
* @param ApplicationAccessList 新增对象列表。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
saveNewBatch
(
List
<
ApplicationAccess
>
ApplicationAccessList
)
{
if
(
CollUtil
.
isNotEmpty
(
ApplicationAccessList
))
{
ApplicationAccessList
.
forEach
(
this
::
buildDefaultValue
);
ApplicationAccessMapper
.
insertList
(
ApplicationAccessList
);
}
}
/**
* 更新数据对象。
*
* @param ApplicationAccess 更新的对象。
* @param originalApplicationAccess 原有数据对象。
* @return 成功返回true,否则false。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
update
(
ApplicationAccess
ApplicationAccess
,
ApplicationAccess
originalApplicationAccess
)
{
MyModelUtil
.
fillCommonsForUpdate
(
ApplicationAccess
,
originalApplicationAccess
);
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
UpdateWrapper
<
ApplicationAccess
>
uw
=
this
.
createUpdateQueryForNullValue
(
ApplicationAccess
,
ApplicationAccess
.
getAccessId
());
return
ApplicationAccessMapper
.
update
(
ApplicationAccess
,
uw
)
==
1
;
}
/**
* 删除指定数据。
*
* @param accessId 主键Id。
* @return 成功返回true,否则false。
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
remove
(
Long
accessId
)
{
return
ApplicationAccessMapper
.
deleteById
(
accessId
)
==
1
;
}
/**
* 获取单表查询结果。由于没有关联数据查询,因此在仅仅获取单表数据的场景下,效率更高。
* 如果需要同时获取关联数据,请移步(getApplicationAccessListWithRelation)方法。
*
* @param filter 过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
@Override
public
List
<
ApplicationAccess
>
getApplicationAccessList
(
ApplicationAccess
filter
,
String
orderBy
)
{
return
ApplicationAccessMapper
.
getApplicationAccessList
(
filter
,
orderBy
);
}
/**
* 获取主表的查询结果,以及主表关联的字典数据和一对一从表数据,以及一对一从表的字典数据。
* 该查询会涉及到一对一从表的关联过滤,或一对多从表的嵌套关联过滤,因此性能不如单表过滤。
* 如果仅仅需要获取主表数据,请移步(getApplicationAccessList),以便获取更好的查询性能。
*
* @param filter 主表过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
@Override
public
List
<
ApplicationAccess
>
getApplicationAccessListWithRelation
(
ApplicationAccess
filter
,
String
orderBy
)
{
List
<
ApplicationAccess
>
resultList
=
ApplicationAccessMapper
.
getApplicationAccessList
(
filter
,
orderBy
);
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
int
batchSize
=
resultList
instanceof
Page
?
0
:
1000
;
this
.
buildRelationForDataList
(
resultList
,
MyRelationParam
.
normal
(),
batchSize
);
return
resultList
;
}
private
ApplicationAccess
buildDefaultValue
(
ApplicationAccess
ApplicationAccess
)
{
if
(
ApplicationAccess
.
getAccessId
()
==
null
)
{
ApplicationAccess
.
setAccessId
(
idGenerator
.
nextLongId
());
}
MyModelUtil
.
fillCommonsForInsert
(
ApplicationAccess
);
return
ApplicationAccess
;
}
}
application-webadmin/src/main/java/com/yice/webadmin/app/vo/ApplicationAccessVo.java
0 → 100644
View file @
9ff61528
package
com
.
yice
.
webadmin
.
app
.
vo
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.yice.common.core.base.vo.BaseVo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* ApplicationAccessVO视图对象。
*
* @author linking
* @date 2023-04-13
*/
@ApiModel
(
"ApplicationAccessVO视图对象"
)
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
ApplicationAccessVo
extends
BaseVo
{
/**
* 应用接入ID。
*/
@ApiModelProperty
(
value
=
"应用接入ID"
)
private
Long
accessId
;
/**
* 应用名称。
*/
@ApiModelProperty
(
value
=
"应用名称"
)
private
String
applicationName
;
/**
* AppID。
*/
@ApiModelProperty
(
value
=
"AppID"
)
private
Long
appId
;
/**
* API Key。
*/
@ApiModelProperty
(
value
=
"apiKey"
)
private
String
apiKey
;
/**
* Secret Key。
*/
@ApiModelProperty
(
value
=
"secretKey"
)
private
String
secretKey
;
/**
* 应用描述。
*/
@ApiModelProperty
(
value
=
"applicationDescribe"
)
private
String
applicationDescribe
;
}
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