Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
QA
holmes
Commits
f5d586d0
Commit
f5d586d0
authored
Sep 16, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增环境模板相关
parent
11a6b06f
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
196 additions
and
48 deletions
+196
-48
EnvTemplateController.java
...va/cn/qg/holmes/controller/k8s/EnvTemplateController.java
+118
-38
EnvTemplate.java
src/main/java/cn/qg/holmes/entity/k8s/EnvTemplate.java
+6
-10
EnvTemplateDetail.java
src/main/java/cn/qg/holmes/entity/k8s/EnvTemplateDetail.java
+31
-0
EnvTemplateVo.java
src/main/java/cn/qg/holmes/entity/k8s/EnvTemplateVo.java
+16
-0
EnvTemplateDetailMapper.java
...java/cn/qg/holmes/mapper/k8s/EnvTemplateDetailMapper.java
+7
-0
EnvTemplateDetailService.java
...va/cn/qg/holmes/service/k8s/EnvTemplateDetailService.java
+7
-0
EnvTemplateDetailServiceImpl.java
...holmes/service/k8s/impl/EnvTemplateDetailServiceImpl.java
+11
-0
No files found.
src/main/java/cn/qg/holmes/controller/k8s/EnvTemplateController.java
View file @
f5d586d0
...
@@ -2,8 +2,13 @@ package cn.qg.holmes.controller.k8s;
...
@@ -2,8 +2,13 @@ package cn.qg.holmes.controller.k8s;
import
cn.qg.holmes.common.JsonResult
;
import
cn.qg.holmes.common.JsonResult
;
import
cn.qg.holmes.entity.k8s.EnvTemplate
;
import
cn.qg.holmes.entity.k8s.EnvTemplate
;
import
cn.qg.holmes.entity.k8s.EnvTemplateDetail
;
import
cn.qg.holmes.entity.k8s.EnvTemplateVo
;
import
cn.qg.holmes.service.k8s.EnvTemplateDetailService
;
import
cn.qg.holmes.service.k8s.EnvTemplateService
;
import
cn.qg.holmes.service.k8s.EnvTemplateService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -20,74 +25,149 @@ public class EnvTemplateController {
...
@@ -20,74 +25,149 @@ public class EnvTemplateController {
@Autowired
@Autowired
EnvTemplateService
envTemplateService
;
EnvTemplateService
envTemplateService
;
@Autowired
EnvTemplateDetailService
envTemplateDetailService
;
@GetMapping
(
"/list"
)
public
JsonResult
getTemplateList
(
@RequestParam
(
defaultValue
=
"1"
)
Integer
pageNum
,
@RequestParam
(
defaultValue
=
"10"
)
Integer
pageSize
)
{
IPage
<
EnvTemplate
>
envTemplateIPage
=
new
Page
<>(
pageNum
,
pageSize
);
IPage
<
EnvTemplate
>
IPage
=
envTemplateService
.
page
(
envTemplateIPage
);
List
<
EnvTemplate
>
envTemplateList
=
IPage
.
getRecords
();
List
<
EnvTemplateVo
>
envTemplateVoList
=
new
ArrayList
<>();
QueryWrapper
<
EnvTemplateDetail
>
queryWrapper
=
new
QueryWrapper
<>();
for
(
EnvTemplate
envTemplate:
envTemplateList
)
{
EnvTemplateVo
envTemplateVo
=
new
EnvTemplateVo
();
envTemplateVo
.
setEnvTemplate
(
envTemplate
);
queryWrapper
.
eq
(
"template_id"
,
envTemplate
.
getId
());
List
<
EnvTemplateDetail
>
envTemplateDetailList
=
envTemplateDetailService
.
list
(
queryWrapper
);
envTemplateVo
.
setEnvTemplateDetailList
(
envTemplateDetailList
);
envTemplateVoList
.
add
(
envTemplateVo
);
}
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"total"
,
IPage
.
getTotal
());
map
.
put
(
"list"
,
envTemplateVoList
);
return
JsonResult
.
buildSuccessResult
(
map
);
}
/**
/**
* 获取所有的模板
* 获取所有的模板
及其关联的服务
* @return
* @return
*/
*/
@GetMapping
(
"/getAll"
)
@GetMapping
(
"/getAll"
)
public
JsonResult
getTemplateByName
()
{
public
JsonResult
getTemplateByName
()
{
QueryWrapper
<
EnvTemplate
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
groupBy
(
"template_name"
);
List
<
EnvTemplate
>
envTemplateList
=
envTemplateService
.
list
(
queryWrapper
);
queryWrapper
.
clear
();
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
List
<
EnvTemplate
>
envTemplateList
=
envTemplateService
.
list
();
QueryWrapper
<
EnvTemplateDetail
>
queryWrapper
=
new
QueryWrapper
<>();
for
(
EnvTemplate
envTemplate:
envTemplateList
)
{
for
(
EnvTemplate
envTemplate:
envTemplateList
)
{
String
templateName
=
envTemplate
.
getTemplateName
();
queryWrapper
.
eq
(
"template_name"
,
templateName
);
List
<
EnvTemplate
>
etList
=
envTemplateService
.
list
(
queryWrapper
);
// 创建一个Map用来存储
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"name"
,
templateName
);
map
.
put
(
"id"
,
envTemplate
.
getId
());
for
(
EnvTemplate
et:
etList
)
{
map
.
put
(
"name"
,
envTemplate
.
getName
());
if
(!
map
.
containsKey
(
et
.
getLabel
()))
{
map
.
put
(
"updateTime"
,
envTemplate
.
getUpdateTime
());
List
<
EnvTemplate
>
mapList
=
new
ArrayList
<>();
queryWrapper
.
eq
(
"template_id"
,
envTemplate
.
getId
());
mapList
.
add
(
et
);
List
<
EnvTemplateDetail
>
envTemplateDetailList
=
envTemplateDetailService
.
list
(
queryWrapper
);
map
.
put
(
et
.
getLabel
(),
mapList
);
for
(
EnvTemplateDetail
envTemplateDetail:
envTemplateDetailList
)
{
List
<
EnvTemplateDetail
>
envTemplateDetailListTemp
;
if
(
map
.
containsKey
(
envTemplateDetail
.
getLabel
()))
{
envTemplateDetailListTemp
=
(
List
<
EnvTemplateDetail
>)
map
.
get
(
envTemplateDetail
.
getLabel
());
}
else
{
}
else
{
List
<
EnvTemplate
>
temp
=
(
List
<
EnvTemplate
>)
map
.
get
(
et
.
getLabel
());
envTemplateDetailListTemp
=
new
ArrayList
<>();
temp
.
add
(
et
);
map
.
put
(
et
.
getLabel
(),
temp
);
temp
=
null
;
}
}
envTemplateDetailListTemp
.
add
(
envTemplateDetail
);
map
.
put
(
envTemplateDetail
.
getLabel
(),
envTemplateDetailListTemp
);
}
}
resultList
.
add
(
map
);
queryWrapper
.
clear
();
queryWrapper
.
clear
();
resultList
.
add
(
map
);
}
}
return
JsonResult
.
buildSuccessResult
(
resultList
);
return
JsonResult
.
buildSuccessResult
(
resultList
);
}
}
/**
/**
* 新建模板
* 新建模板
* @param envTemplate
List 模板列表
* @param envTemplate
Vo 模板虚拟实体类
* @return
* @return
*/
*/
@PostMapping
(
"/create"
)
@PostMapping
(
"/create"
)
public
JsonResult
saveEnvTemplate
(
@RequestBody
List
<
EnvTemplate
>
envTemplateList
)
{
public
JsonResult
saveEnvTemplate
(
@RequestBody
EnvTemplateVo
envTemplateVo
)
{
if
(
envTemplateList
.
size
()
==
0
)
{
EnvTemplate
envTemplate
=
envTemplateVo
.
getEnvTemplate
();
return
JsonResult
.
buildErrorStateResult
(
"参数不能为空!"
,
false
);
QueryWrapper
<
EnvTemplate
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"name"
,
envTemplate
.
getName
());
if
(
envTemplateService
.
getOne
(
queryWrapper
)
!=
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"模板已存在!"
,
false
);
}
// 保存模板
if
(!
envTemplateService
.
save
(
envTemplate
))
{
return
JsonResult
.
buildErrorStateResult
(
"模板创建失败!"
,
false
);
}
}
return
JsonResult
.
buildSuccessResult
(
envTemplateService
.
saveBatch
(
envTemplateList
));
// 模板详情列表设置模板id
Integer
templateId
=
envTemplateService
.
getOne
(
queryWrapper
).
getId
();
List
<
EnvTemplateDetail
>
envTemplateDetailList
=
envTemplateVo
.
getEnvTemplateDetailList
();
for
(
EnvTemplateDetail
envTemplateDetail:
envTemplateDetailList
)
{
envTemplateDetail
.
setTemplateId
(
templateId
);
}
// 保存模板详情
if
(!
envTemplateDetailService
.
saveBatch
(
envTemplateDetailList
))
{
return
JsonResult
.
buildErrorStateResult
(
"模板详情保存失败!"
,
false
);
}
return
JsonResult
.
buildSuccessResult
(
true
);
}
}
/**
/**
* 编辑模板
* 编辑模板
及模板详情
* @param envTemplate
List
模板列表
* @param envTemplate
Vo
模板列表
* @return
* @return
*/
*/
@PostMapping
(
"/modify"
)
@PostMapping
(
"/modify"
)
public
JsonResult
modifyEnvTemplate
(
@RequestBody
List
<
EnvTemplate
>
envTemplateList
)
{
public
JsonResult
modifyEnvTemplate
(
@RequestBody
EnvTemplateVo
envTemplateVo
)
{
return
JsonResult
.
buildSuccessResult
(
envTemplateService
.
updateBatchById
(
envTemplateList
));
EnvTemplate
envTemplate
=
envTemplateVo
.
getEnvTemplate
();
if
(!
envTemplateService
.
updateById
(
envTemplate
))
{
return
JsonResult
.
buildErrorStateResult
(
"模板更新失败!"
,
false
);
}
// 参数传过来的列表
List
<
EnvTemplateDetail
>
envTemplateDetailList
=
envTemplateVo
.
getEnvTemplateDetailList
();
// 查询出数据库里该模板的所有条目
QueryWrapper
<
EnvTemplateDetail
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"template_id"
,
envTemplate
.
getId
());
List
<
EnvTemplateDetail
>
envTemplateDetailListDb
=
envTemplateDetailService
.
list
(
queryWrapper
);
// 删除传参里没有的
for
(
EnvTemplateDetail
envTemplateDetailDb:
envTemplateDetailListDb
)
{
boolean
delete
=
true
;
for
(
EnvTemplateDetail
envTemplateDetail:
envTemplateDetailList
)
{
if
(
envTemplateDetail
.
getId
()
!=
null
)
{
if
(
envTemplateDetail
.
getId
().
equals
(
envTemplateDetailDb
.
getId
()))
{
delete
=
false
;
break
;
}
}
}
if
(
delete
)
{
envTemplateDetailService
.
removeById
(
envTemplateDetailDb
.
getId
());
}
}
// 剩余的批量新增/修改
if
(!
envTemplateDetailService
.
saveOrUpdateBatch
(
envTemplateDetailList
))
{
return
JsonResult
.
buildErrorStateResult
(
"更新模板详情失败!"
,
false
);
}
return
JsonResult
.
buildSuccessResult
(
"模板更新成功"
);
}
}
/**
*
* @param templateId 模板id
* @return
*/
@PostMapping
(
"/delete"
)
@PostMapping
(
"/delete"
)
public
JsonResult
deleteEnvTemplate
(
@RequestParam
String
templateName
)
{
public
JsonResult
deleteEnvTemplate
(
@RequestParam
Integer
templateId
)
{
QueryWrapper
<
EnvTemplate
>
queryWrapper
=
new
QueryWrapper
<>();
if
(!
envTemplateService
.
removeById
(
templateId
))
{
queryWrapper
.
eq
(
"template_name"
,
templateName
);
return
JsonResult
.
buildErrorStateResult
(
"模板删除失败!"
,
false
);
List
<
EnvTemplate
>
envTemplateList
=
envTemplateService
.
list
(
queryWrapper
);
}
List
<
Integer
>
templateIdList
=
new
ArrayList
<>();
QueryWrapper
<
EnvTemplateDetail
>
queryWrapper
=
new
QueryWrapper
<>();
envTemplateList
.
forEach
(
envTemplate
->
templateIdList
.
add
(
envTemplate
.
getId
()));
queryWrapper
.
eq
(
"template_id"
,
templateId
);
return
JsonResult
.
buildSuccessResult
(
envTemplateService
.
removeByIds
(
templateIdList
));
if
(!
envTemplateDetailService
.
remove
(
queryWrapper
))
{
return
JsonResult
.
buildErrorStateResult
(
"模板详情删除失败"
,
false
);
}
return
JsonResult
.
buildSuccessResult
(
"模板删除成功!"
);
}
}
}
}
src/main/java/cn/qg/holmes/entity/k8s/EnvTemplate.java
View file @
f5d586d0
...
@@ -3,8 +3,11 @@ package cn.qg.holmes.entity.k8s;
...
@@ -3,8 +3,11 @@ package cn.qg.holmes.entity.k8s;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.Date
;
/**
/**
* 环境模板实体类
* 环境模板实体类
* @author libo
* @author libo
...
@@ -15,15 +18,8 @@ public class EnvTemplate {
...
@@ -15,15 +18,8 @@ public class EnvTemplate {
@TableId
(
type
=
IdType
.
AUTO
)
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
Integer
id
;
private
String
templateName
;
private
String
name
;
private
String
serviceName
;
private
String
serviceType
;
private
String
label
;
private
String
domain
;
private
String
tag
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
}
}
src/main/java/cn/qg/holmes/entity/k8s/EnvTemplateDetail.java
0 → 100644
View file @
f5d586d0
package
cn
.
qg
.
holmes
.
entity
.
k8s
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@TableName
(
value
=
"env_template_detail"
)
public
class
EnvTemplateDetail
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
String
serviceName
;
private
String
serviceType
;
private
String
label
;
private
String
domain
;
private
String
tag
;
private
Integer
templateId
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
}
src/main/java/cn/qg/holmes/entity/k8s/EnvTemplateVo.java
0 → 100644
View file @
f5d586d0
package
cn
.
qg
.
holmes
.
entity
.
k8s
;
import
lombok.Data
;
import
java.util.List
;
/**
* 创建环境模板虚拟实体类
*/
@Data
public
class
EnvTemplateVo
{
private
EnvTemplate
envTemplate
;
private
List
<
EnvTemplateDetail
>
envTemplateDetailList
;
}
src/main/java/cn/qg/holmes/mapper/k8s/EnvTemplateDetailMapper.java
0 → 100644
View file @
f5d586d0
package
cn
.
qg
.
holmes
.
mapper
.
k8s
;
import
cn.qg.holmes.entity.k8s.EnvTemplateDetail
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
EnvTemplateDetailMapper
extends
BaseMapper
<
EnvTemplateDetail
>
{
}
src/main/java/cn/qg/holmes/service/k8s/EnvTemplateDetailService.java
0 → 100644
View file @
f5d586d0
package
cn
.
qg
.
holmes
.
service
.
k8s
;
import
cn.qg.holmes.entity.k8s.EnvTemplateDetail
;
import
com.baomidou.mybatisplus.extension.service.IService
;
public
interface
EnvTemplateDetailService
extends
IService
<
EnvTemplateDetail
>
{
}
src/main/java/cn/qg/holmes/service/k8s/impl/EnvTemplateDetailServiceImpl.java
0 → 100644
View file @
f5d586d0
package
cn
.
qg
.
holmes
.
service
.
k8s
.
impl
;
import
cn.qg.holmes.entity.k8s.EnvTemplateDetail
;
import
cn.qg.holmes.mapper.k8s.EnvTemplateDetailMapper
;
import
cn.qg.holmes.service.k8s.EnvTemplateDetailService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
@Service
public
class
EnvTemplateDetailServiceImpl
extends
ServiceImpl
<
EnvTemplateDetailMapper
,
EnvTemplateDetail
>
implements
EnvTemplateDetailService
{
}
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