Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-tool
Project
Project
Details
Activity
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
tool
amos-tool
Commits
fdab2426
Commit
fdab2426
authored
Jul 25, 2023
by
rjb
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
http://39.98.45.134:8090/tool/amos-tool
into develop
parents
c75e61af
6598a771
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
826 additions
and
294 deletions
+826
-294
pom.xml
pom.xml
+21
-1
AmosToolTemplateController.java
.../amos/api/tool/controller/AmosToolTemplateController.java
+76
-0
RelationResource.java
...om/yeejoin/amos/api/tool/controller/RelationResource.java
+32
-3
TemplateResource.java
...om/yeejoin/amos/api/tool/controller/TemplateResource.java
+1
-1
TransferDataResource.java
...eejoin/amos/api/tool/controller/TransferDataResource.java
+30
-0
ViewController.java
.../com/yeejoin/amos/api/tool/controller/ViewController.java
+0
-88
SortType.java
src/main/java/com/yeejoin/amos/api/tool/enums/SortType.java
+39
-0
AmosToolTemplateModel.java
...ejoin/amos/api/tool/face/model/AmosToolTemplateModel.java
+16
-12
DataBaseLinkModel.java
...m/yeejoin/amos/api/tool/face/model/DataBaseLinkModel.java
+1
-5
DataBaseNameListModel.java
...ejoin/amos/api/tool/face/model/DataBaseNameListModel.java
+22
-0
RelationTreeModel.java
...m/yeejoin/amos/api/tool/face/model/RelationTreeModel.java
+2
-0
AmosToolTemplateMapper.java
...in/amos/api/tool/face/orm/dao/AmosToolTemplateMapper.java
+36
-0
DataBaseNameListMapper.java
...in/amos/api/tool/face/orm/dao/DataBaseNameListMapper.java
+11
-0
RelationMapper.java
...om/yeejoin/amos/api/tool/face/orm/dao/RelationMapper.java
+2
-0
ViewMapper.java
...va/com/yeejoin/amos/api/tool/face/orm/dao/ViewMapper.java
+0
-32
AmosToolTemplate.java
...ejoin/amos/api/tool/face/orm/entity/AmosToolTemplate.java
+27
-41
DataBaseLink.java
...m/yeejoin/amos/api/tool/face/orm/entity/DataBaseLink.java
+0
-6
DataBaseNameList.java
...ejoin/amos/api/tool/face/orm/entity/DataBaseNameList.java
+27
-0
AmosToolTemplateService.java
...n/amos/api/tool/face/service/AmosToolTemplateService.java
+52
-0
DataBaseLinkService.java
...ejoin/amos/api/tool/face/service/DataBaseLinkService.java
+0
-1
DataBaseNameListService.java
...n/amos/api/tool/face/service/DataBaseNameListService.java
+13
-0
RelationService.java
...m/yeejoin/amos/api/tool/face/service/RelationService.java
+166
-7
TemplateService.java
...m/yeejoin/amos/api/tool/face/service/TemplateService.java
+38
-10
TransferDataService.java
...ejoin/amos/api/tool/face/service/TransferDataService.java
+59
-0
ViewService.java
...a/com/yeejoin/amos/api/tool/face/service/ViewService.java
+0
-80
TableUtils.java
...main/java/com/yeejoin/amos/api/tool/utils/TableUtils.java
+148
-0
application.properties
src/main/resources/application.properties
+5
-5
AmosToolTemplateMapper.xml
src/main/resources/mapper/AmosToolTemplateMapper.xml
+2
-2
No files found.
pom.xml
View file @
fdab2426
...
...
@@ -5,7 +5,7 @@
<groupId>
com.yeejoin.amos
</groupId>
<artifactId>
amos-api-tool
</artifactId>
<packaging>
jar
</packaging>
<version>
1.
9
.0-SNAPSHOT
</version>
<version>
1.
0
.0-SNAPSHOT
</version>
<name>
amos-api-tool
</name>
<description>
amos-api-tool
</description>
...
...
@@ -36,6 +36,12 @@
<version>
1.4.5.RELEASE
</version>
</dependency>
<!--JSqlparser(高效的SQL解析工具)-->
<dependency>
<groupId>
com.github.jsqlparser
</groupId>
<artifactId>
jsqlparser
</artifactId>
<version>
4.4
</version>
</dependency>
<!-- easy-poi -->
<dependency>
...
...
@@ -233,7 +239,21 @@
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
2.7.9
</version>
<executions>
<execution>
<phase>
package
</phase>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>
true
</includeSystemScope>
<mainClass>
com.yeejoin.amos.Application
</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-deploy-plugin
</artifactId>
...
...
src/main/java/com/yeejoin/amos/api/tool/controller/AmosToolTemplateController.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel
;
import
com.yeejoin.amos.api.tool.face.service.AmosToolTemplateService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.doc.TycloudResource
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.annotation.Resource
;
import
java.util.List
;
@RestController
@TycloudResource
(
module
=
"iot"
,
value
=
"amosToolTemplate"
)
@RequestMapping
(
value
=
"/v1/iot/AmosToolTemplate"
)
@Api
(
tags
=
"丝袜哥测试"
)
public
class
AmosToolTemplateController
{
private
final
Logger
logger
=
LogManager
.
getLogger
(
AmosToolTemplateController
.
class
);
@Resource
private
AmosToolTemplateService
amosToolTemplateService
;
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/save"
)
@ApiOperation
(
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
AmosToolTemplateModel
>
saveOne
(
@RequestBody
AmosToolTemplateModel
amosToolTemplateModel
)
{
amosToolTemplateModel
=
amosToolTemplateService
.
createWithModel
(
amosToolTemplateModel
);
return
ResponseHelper
.
buildResponse
(
amosToolTemplateModel
);
}
/**
* 根据字段查询
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/select/all"
)
@ApiOperation
(
value
=
"查询大全"
)
public
ResponseModel
<
List
<
AmosToolTemplateModel
>>
query
(
@RequestParam
(
value
=
"templateScene"
)
String
templateScene
,
@RequestParam
(
value
=
"miniSences"
)
String
miniSences
)
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
query
(
templateScene
,
miniSences
));
}
/**
* 查询所有
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/every"
)
@ApiOperation
(
"查询所有"
)
public
ResponseModel
<
List
<
AmosToolTemplateModel
>>
queryEvery
()
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
queryEvery
());
}
/**
* 根据ID删除
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/delete"
)
@ApiOperation
(
value
=
"删除"
)
public
ResponseModel
<
Boolean
>
deleteById
(
@RequestParam
(
value
=
"templateId"
)
Long
templateId
)
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
deleteBySeq
(
templateId
));
}
/**
* 根据ID更新
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/update"
)
@ApiOperation
(
value
=
"更新"
)
public
ResponseModel
<
Boolean
>
updateById
(
@RequestParam
(
value
=
"templateId"
)
Long
templateId
)
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
updateTimes
(
templateId
));
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/RelationResource.java
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
import
com.yeejoin.amos.api.tool.face.service.DataBaseLinkService
;
import
com.yeejoin.amos.api.tool.face.service.RelationService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -10,6 +12,12 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.xml.crypto.Data
;
import
java.sql.Connection
;
import
java.util.ArrayList
;
import
java.util.List
;
@CrossOrigin
@RestController
...
...
@@ -18,20 +26,40 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
public
class
RelationResource
{
@Autowired
private
RelationService
relationService
;
@Autowired
DataBaseLinkService
dataBaseLinkService
;
/**
* 根据机构ID和数据库sequenceNbr批量删除数据库
*
* @param agencyCodeId 机构ID
* @param sequenceNbrs 多个主键
* @return String
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/relation/{agencyCodeId}/{sequenceNbrs}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"机构删除"
,
notes
=
"机构删除"
)
public
ResponseModel
<
String
>
deleteDataBase
(
@PathVariable
Long
agencyCodeId
,
@PathVariable
String
sequenceNbrs
)
throws
Exception
{
relationService
.
deleteAgency
(
agencyCodeId
,
sequenceNbrs
);
relationService
.
deleteAgency
(
agencyCodeId
,
sequenceNbrs
);
return
ResponseHelper
.
buildResponse
(
"The data has been deleted !"
);
}
}
/**
* 导出SQL脚本
*
* @return String
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/output/{agencyCodeId}/{sequenceNbrs}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出"
,
notes
=
"导出"
)
public
ResponseModel
<
String
>
genereteSQL
(
@PathVariable
Long
agencyCodeId
,
@PathVariable
String
sequenceNbrs
,
HttpServletResponse
response
)
throws
Exception
{
relationService
.
outputAgency
(
agencyCodeId
,
sequenceNbrs
,
response
);
return
ResponseHelper
.
buildResponse
(
"yes"
);
}
}
\ No newline at end of file
src/main/java/com/yeejoin/amos/api/tool/controller/TemplateResource.java
View file @
fdab2426
...
...
@@ -133,9 +133,9 @@ public class TemplateResource {
* @return TemplateModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@CrossOrigin
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"根据sequenceNbr导入content"
,
notes
=
"根据sequenceNbr导入content"
)
@PostMapping
(
value
=
"/import"
)
@CrossOrigin
(
methods
=
RequestMethod
.
POST
)
public
ResponseModel
<
TemplateModel
>
importTpl
(
@RequestParam
(
"file"
)
MultipartFile
multipartFile
)
throws
IOException
{
return
ResponseHelper
.
buildResponse
(
templateService
.
createWithModel
(
templateService
.
fileToTpl
(
multipartFile
)));
}
...
...
src/main/java/com/yeejoin/amos/api/tool/controller/TransferDataResource.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.service.TransferDataService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.sql.SQLException
;
@CrossOrigin
@RestController
@Api
(
tags
=
"数据迁移"
)
@RequestMapping
(
value
=
"/transfer_data"
)
public
class
TransferDataResource
{
@Autowired
private
TransferDataService
transferDataService
;
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PutMapping
(
value
=
"/relation/"
)
@ApiOperation
(
httpMethod
=
"Put"
,
value
=
"数据迁移"
,
notes
=
"数据迁移"
)
public
ResponseModel
<
String
>
transferData
(
)
throws
SQLException
,
ClassNotFoundException
{
transferDataService
.
transferData
();
return
ResponseHelper
.
buildResponse
(
"The data has been transferred !"
);
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/ViewController.java
deleted
100644 → 0
View file @
c75e61af
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.ViewModel
;
import
com.yeejoin.amos.api.tool.face.service.ViewService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.doc.TycloudResource
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.annotation.Resource
;
import
java.util.List
;
@RestController
@TycloudResource
(
module
=
"iot"
,
value
=
"view"
)
@RequestMapping
(
value
=
"/v1/iot/View"
)
@Api
(
tags
=
"测试"
)
public
class
ViewController
{
private
final
Logger
logger
=
LogManager
.
getLogger
(
ViewController
.
class
);
@Resource
private
ViewService
viewService
;
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"根据所属机构查询"
)
@GetMapping
(
"/list"
)
public
ResponseModel
selectForList
(
@RequestParam
(
value
=
"agency"
)
String
agency
)
{
return
ResponseHelper
.
buildResponse
(
viewService
.
queryForAViewList
(
agency
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/save"
)
@ApiOperation
(
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
ViewModel
>
save
(
@RequestBody
ViewModel
viewModel
){
viewModel
=
viewService
.
createWithModel
(
viewModel
);
return
ResponseHelper
.
buildResponse
(
viewModel
);
}
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/sences/list"
)
@ApiOperation
(
value
=
"根据场景查询"
)
public
ResponseModel
selectByScene
(
@RequestParam
(
value
=
"sences"
)
String
sences
){
return
ResponseHelper
.
buildResponse
(
viewService
.
queryByScene
(
sences
));
}
/**
* 根据字段查询
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/select/all"
)
@ApiOperation
(
value
=
"查询大全"
)
public
ResponseModel
query
(
@RequestParam
(
value
=
"sences"
)
String
sences
,
@RequestParam
(
value
=
"miniSences"
)
String
miniSences
){
return
ResponseHelper
.
buildResponse
(
viewService
.
query
(
sences
,
miniSences
));
}
/**
* 查询所有
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/every"
)
@ApiOperation
(
"平台"
)
public
ResponseModel
<
List
<
ViewModel
>>
queryEvery
(){
return
ResponseHelper
.
buildResponse
(
viewService
.
queryEvery
());
}
/**
* 根据ID删除
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/delete"
)
@ApiOperation
(
value
=
"删除"
)
public
ResponseModel
<
Boolean
>
deleteById
(
@RequestParam
(
value
=
"SEQUENCE_NBR"
)
Long
SEQUENCE_NBR
){
return
ResponseHelper
.
buildResponse
(
viewService
.
deleteBySeq
(
SEQUENCE_NBR
));
}
/**
* 根据ID更新
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/update"
)
@ApiOperation
(
value
=
"更新"
)
public
ResponseModel
updateById
(
@RequestParam
(
value
=
"SEQUENCE_NBR"
)
Long
SEQUENCE_NBR
){
return
ResponseHelper
.
buildResponse
(
viewService
.
updateTimes
(
SEQUENCE_NBR
));
}
}
src/main/java/com/yeejoin/amos/api/tool/enums/SortType.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
enums
;
public
enum
SortType
{
COMPREHENSIVE
(
"综合排序"
,
"templateId"
,
"asc"
),
LATEST
(
"最新发布"
,
"releaseTime"
,
"desc"
),
VIEW_TIMES
(
"最多浏览"
,
"viewTimes"
,
"desc"
);
private
final
String
name
;
private
final
String
field
;
private
final
String
direction
;
SortType
(
String
name
,
String
field
,
String
direction
)
{
this
.
name
=
name
;
this
.
field
=
field
;
this
.
direction
=
direction
;
}
public
String
getName
()
{
return
name
;
}
public
String
getField
()
{
return
field
;
}
public
String
getDirection
()
{
return
direction
;
}
public
static
SortType
fromName
(
String
name
)
{
for
(
SortType
sortType
:
SortType
.
values
())
{
if
(
sortType
.
getName
().
equals
(
name
))
{
return
sortType
;
}
}
// 默认返回综合排序
return
COMPREHENSIVE
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/
View
Model.java
→
src/main/java/com/yeejoin/amos/api/tool/face/model/
AmosToolTemplate
Model.java
View file @
fdab2426
...
...
@@ -8,33 +8,37 @@ import java.sql.Timestamp;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
View
Model
extends
BaseModel
{
public
class
AmosToolTemplate
Model
extends
BaseModel
{
/**
*
编号
*
模板ID
*/
private
Long
sequenceNbr
;
private
Long
templateId
;
/**
* 名称
*
模板
名称
*/
private
String
n
ame
;
private
String
templateN
ame
;
/**
* 场景
* 场景
类型
*/
private
String
sences
;
private
String
templateScene
;
/**
* 所属机构
*/
private
String
agency
;
private
String
agency
Name
;
/**
* 查看次数
*/
private
Integer
t
imes
;
private
Integer
viewT
imes
;
/**
* URL
*
模板
URL
*/
private
String
u
rl
;
private
String
templateU
rl
;
/**
* 发布时间
*/
private
Timestamp
release
;
private
Timestamp
releaseTime
;
/**
* 是否删除
*/
private
Boolean
isDelete
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/DataBaseLinkModel.java
View file @
fdab2426
...
...
@@ -16,9 +16,6 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
@ApiModel
(
value
=
"DataBaseLinkModel"
,
description
=
""
)
public
class
DataBaseLinkModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"数据名称"
)
private
String
dataName
=
""
;
@ApiModelProperty
(
value
=
"主机IP"
)
private
String
ip
;
...
...
@@ -34,8 +31,7 @@ public class DataBaseLinkModel extends BaseModel {
@ApiModelProperty
(
value
=
"密码"
)
private
String
passWord
;
public
DataBaseLinkModel
(
String
dataName
,
String
ip
,
String
port
,
String
dbName
,
String
userName
,
String
passWord
)
{
this
.
dataName
=
dataName
;
public
DataBaseLinkModel
(
String
ip
,
String
port
,
String
dbName
,
String
userName
,
String
passWord
)
{
this
.
ip
=
ip
;
this
.
port
=
port
;
this
.
dbName
=
dbName
;
...
...
src/main/java/com/yeejoin/amos/api/tool/face/model/DataBaseNameListModel.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
org.typroject.tyboot.core.rdbms.model.BaseModel
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@NoArgsConstructor
@ApiModel
(
value
=
"DataBaseNameListModel"
,
description
=
""
)
public
class
DataBaseNameListModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"数据库名"
)
private
String
dbName
;
@ApiModelProperty
(
value
=
"连接id"
)
private
String
parentId
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/RelationTreeModel.java
View file @
fdab2426
...
...
@@ -4,9 +4,11 @@ import io.swagger.annotations.ApiModel;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
// import sun.reflect.generics.tree.Tree;
import
java.util.ArrayList
;
import
java.util.List
;
//import java.util.TreeMap;
@Data
@NoArgsConstructor
...
...
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/AmosToolTemplateMapper.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel
;
import
com.yeejoin.amos.api.tool.face.orm.entity.AmosToolTemplate
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.Update
;
import
java.util.List
;
public
interface
AmosToolTemplateMapper
extends
BaseMapper
<
AmosToolTemplate
>
{
/**
* 全部
*/
@Select
(
"select templateUrl,templateName,agencyName,viewTimes,releaseTime from amos_tool_template"
+
" order by ${miniSences} ${way}"
)
List
<
AmosToolTemplateModel
>
listAll
(
@Param
(
"miniSences"
)
String
miniSences
,
@Param
(
"way"
)
String
way
);
/**
* 具体场景
*/
@Select
(
"select templateUrl,templateName,agencyName,viewTimes,releaseTime from amos_tool_template"
+
" where categoryScene=#{categoryScene} order by ${miniSences} ${way}"
)
List
<
AmosToolTemplateModel
>
queryByScenes
(
@Param
(
"categoryScene"
)
String
categoryScene
,
@Param
(
"miniSences"
)
String
miniSences
,
@Param
(
"way"
)
String
way
);
@Select
(
"select templateId,templateName,categoryScene,agencyName,viewTimes,templateUrl,releaseTime"
+
" from amos_tool_template"
)
List
<
AmosToolTemplateModel
>
listAll
();
/**
* 更新查看次数
*/
@Update
(
"update amos_tool_template set viewTimes = viewTimes+1 where templateId = #{templateId}"
)
boolean
updateById
(
Long
templateId
);
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/DataBaseNameListMapper.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList
;
import
org.mapstruct.Mapper
;
import
org.springframework.stereotype.Repository
;
@Mapper
@Repository
public
interface
DataBaseNameListMapper
extends
BaseMapper
<
DataBaseNameList
>
{
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/RelationMapper.java
View file @
fdab2426
...
...
@@ -13,6 +13,8 @@ import org.springframework.stereotype.Repository;
import
java.util.HashMap
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
@Mapper
@Repository
public
interface
RelationMapper
extends
BaseMapper
<
Relation
>
{
...
...
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/ViewMapper.java
deleted
100644 → 0
View file @
c75e61af
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.api.tool.face.model.ViewModel
;
import
com.yeejoin.amos.api.tool.face.orm.entity.View
;
import
org.apache.ibatis.annotations.Insert
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.Update
;
import
java.util.List
;
public
interface
ViewMapper
extends
BaseMapper
<
View
>
{
/**
* 全部
*/
@Select
(
"select url,name,agency,times,releasetime from view order by ${miniSences} ${way}"
)
List
<
ViewModel
>
queryAll
(
@Param
(
"miniSences"
)
String
miniSences
,
@Param
(
"way"
)
String
way
);
/**
* 具体场景
*/
@Select
(
"select url,name,agency,times,releasetime from view where sences=#{sences} order by ${miniSences} ${way}"
)
List
<
ViewModel
>
queryBySences
(
@Param
(
"sences"
)
String
sences
,
@Param
(
"miniSences"
)
String
miniSences
,
@Param
(
"way"
)
String
way
);
@Select
(
"select SEQUENCE_NBR,name,sences,agency,times,url,releasetime from view"
)
List
<
ViewModel
>
queryEvery
();
/**
* 更新查看次数
*/
@Update
(
"update view set times = times+1 where SEQUENCE_NBR = #{SEQUENCE_NBR}"
)
boolean
update
(
Long
SEQUENCE_NBR
);
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/
View
.java
→
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/
AmosToolTemplate
.java
View file @
fdab2426
...
...
@@ -8,68 +8,54 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
import
java.util.Date
;
import
java.sql.Timestamp
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@TableName
(
"
view
"
)
public
class
View
extends
BaseEntity
{
@TableName
(
"
amos_tool_template
"
)
public
class
AmosToolTemplate
extends
BaseEntity
{
@TableId
(
value
=
"SEQUENCE_NBR"
,
type
=
IdType
.
ID_WORKER
)
protected
Long
sequenceNbr
;
/**
*
继承的无关字段
*
模板ID
*/
@TableField
(
value
=
"REC_DATE"
,
exist
=
false
,
select
=
false
)
protected
Date
recDate
;
@TableField
(
value
=
"REC_USER_ID"
,
exist
=
false
,
select
=
false
@TableId
(
value
=
"TEMPLATE_ID"
,
type
=
IdType
.
ID_WORKER
)
protected
String
recUserId
;
/**
* 编号
*/
// @TableId(type = IdType.ID_WORKER_STR)
// private String vid;
protected
Long
templateId
;
/**
* 名称
*
模板
名称
*/
@TableField
(
"NAME"
)
private
String
n
ame
;
@TableField
(
"
TEMPLATE_
NAME"
)
private
String
templateN
ame
;
/**
* 场景
* 场景
类型
*/
@TableField
(
"
SENCES
"
)
private
String
sences
;
@TableField
(
"
CATEGORY_SCENE
"
)
private
String
categoryScene
;
/**
* 所属机构
*/
@TableField
(
"AGENCY"
)
private
String
agency
;
@TableField
(
"AGENCY
_NAME
"
)
private
String
agency
Name
;
/**
* 查看次数
*/
@TableField
(
"TIMES"
)
private
Integer
t
imes
;
@TableField
(
"
VIEW_
TIMES"
)
private
Integer
viewT
imes
;
/**
* URL
*
模板
URL
*/
@TableField
(
"URL"
)
private
String
u
rl
;
@TableField
(
"
TEMPLATE_
URL"
)
private
String
templateU
rl
;
/**
* 发布时间
*/
@TableField
(
"RELEASE"
)
private
Timestamp
release
;
@TableField
(
"RELEASE_TIME"
)
private
Timestamp
releaseTime
;
/**
* 是否删除
*/
@TableField
(
"IS_DELETE"
)
private
Boolean
isDelete
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/DataBaseLink.java
View file @
fdab2426
...
...
@@ -20,12 +20,6 @@ import lombok.experimental.Accessors;
public
class
DataBaseLink
extends
BaseEntity
{
/**
*数据名称
*/
@TableField
(
"dataName"
)
private
String
dataName
;
/**
*主机IP
*/
@TableField
(
"ip"
)
...
...
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/DataBaseNameList.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"database_name_list"
)
public
class
DataBaseNameList
extends
BaseEntity
{
/**
* 数据库名
*/
@TableField
(
"dbName"
)
private
String
dbName
;
/**
* 连接id
*/
@TableField
(
"parentId"
)
private
Long
parentId
;
}
src/main/java/com/yeejoin/amos/api/tool/face/service/AmosToolTemplateService.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.yeejoin.amos.api.tool.enums.SortType
;
import
com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.AmosToolTemplateMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.AmosToolTemplate
;
import
org.springframework.stereotype.Component
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.annotation.Resource
;
import
java.util.List
;
@Component
public
class
AmosToolTemplateService
extends
BaseService
<
AmosToolTemplateModel
,
AmosToolTemplate
,
AmosToolTemplateMapper
>
{
@Resource
private
AmosToolTemplateMapper
amosToolTemplateMapper
;
/**
* 查询所有
*/
public
List
<
AmosToolTemplateModel
>
queryEvery
()
{
return
amosToolTemplateMapper
.
listAll
();
}
/**
* 查看次数更新
*/
public
boolean
updateTimes
(
Long
templateId
)
{
return
amosToolTemplateMapper
.
updateById
(
templateId
);
}
/**
* 获取排序类型
*/
private
SortType
getSortType
(
String
miniScenes
)
{
return
SortType
.
fromName
(
miniScenes
);
}
/**
* 统一处理
*/
public
List
<
AmosToolTemplateModel
>
query
(
String
categoryScene
,
String
miniScenes
)
{
SortType
sortType
=
getSortType
(
miniScenes
);
if
(
"全部"
.
equals
(
categoryScene
))
{
return
amosToolTemplateMapper
.
listAll
(
sortType
.
getField
(),
sortType
.
getDirection
());
}
else
{
return
amosToolTemplateMapper
.
queryByScenes
(
categoryScene
,
sortType
.
getField
(),
sortType
.
getDirection
());
}
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/DataBaseLinkService.java
View file @
fdab2426
...
...
@@ -76,7 +76,6 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
DataBaseLinkModel
model
=
new
DataBaseLinkModel
();
BeanUtils
.
copyProperties
(
model
,
dataBaseLinkModel
);
model
.
setDbName
(
name
);
model
.
setDataName
(
name
);
dataBaseLinkModels
.
add
(
model
);
dataBaseLinks
.
add
(
this
.
prepareEntity
(
model
));
}
...
...
src/main/java/com/yeejoin/amos/api/tool/face/service/DataBaseNameListService.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.DataBaseLinkMapper
;
import
com.yeejoin.amos.api.tool.face.orm.dao.DataBaseNameListMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
@Service
public
class
DataBaseNameListService
extends
BaseService
<
DataBaseNameListModel
,
DataBaseNameList
,
DataBaseNameListMapper
>
{
}
src/main/java/com/yeejoin/amos/api/tool/face/service/RelationService.java
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.alibaba.fastjson.JSON
;
import
com.yeejoin.amos.api.tool.enums.SourceEnum
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
import
com.yeejoin.amos.api.tool.face.model.RelationModel
;
import
com.yeejoin.amos.api.tool.face.model.RelationTreeModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.RelationMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.Relation
;
import
com.yeejoin.amos.api.tool.face.orm.entity.TableColumn
;
import
com.yeejoin.amos.api.tool.utils.TableUtils
;
import
org.apache.commons.beanutils.ConvertUtils
;
import
org.apache.commons.lang3.time.DateFormatUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.utils.StringUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
yeejoin
.
amos
.
api
.
tool
.
utils
.
TableUtils
.*;
@Service
public
class
RelationService
extends
BaseService
<
RelationModel
,
Relation
,
RelationMapper
>
{
@Autowired
private
RelationMapper
relationMapper
;
@Autowired
private
DataBaseLinkService
dataBaseLinkService
;
@Autowired
private
AgencyTreeService
agencyTreeService
;
@Autowired
JdbcTemplate
jdbcTemplate
;
@Autowired
StudioResourceService
studioResourceService
;
/**
* 根据机构删除
*/
public
void
deleteAgency
(
Long
agencyCodeId
,
String
sequenceNbrs
)
throws
Exception
{
for
(
Long
seq
:
(
Long
[])
ConvertUtils
.
convert
(
StringUtil
.
string2Array
(
sequenceNbrs
),
Long
.
class
))
{
for
(
Long
seq
:
(
Long
[])
ConvertUtils
.
convert
(
StringUtil
.
string2Array
(
sequenceNbrs
),
Long
.
class
))
{
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
seq
);
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
this
.
deleteDataBase
(
...
...
@@ -40,6 +58,18 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
}
/**
* 导出机构
*/
public
void
outputAgency
(
Long
agencyCodeId
,
String
sequenceNbrs
,
HttpServletResponse
response
)
throws
Exception
{
for
(
Long
seq
:
(
Long
[])
ConvertUtils
.
convert
(
StringUtil
.
string2Array
(
sequenceNbrs
),
Long
.
class
))
{
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
seq
);
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
this
.
insertData
(
connection
,
agencyTreeService
.
queryForAgencyCodeById
(
agencyCodeId
),
model
.
getDbName
(),
response
);
}
}
/**
* 删除数据库
*/
public
String
deleteDataBase
(
Connection
connection
,
String
agencyCode
,
String
dbName
)
throws
SQLException
{
...
...
@@ -52,24 +82,24 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
//根据根节点获得根节点相关列表
List
<
RelationTreeModel
>
array
=
this
.
createList
(
tree
);
//根据列表获取sql语句
System
.
out
.
println
(
this
.
createSqlByArray
(
array
,
agencyCode
));
System
.
out
.
println
(
statementSql
(
this
.
createSqlByArray
(
array
,
agencyCode
)
,
connection
));
System
.
out
.
println
(
this
.
createSqlByArray
(
array
,
agencyCode
));
System
.
out
.
println
(
statementSql
(
this
.
createSqlByArray
(
array
,
agencyCode
)
.
toString
(),
connection
));
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
connection
.
close
();
return
null
;
}
}
/**
* 执行sql
*/
public
int
statementSql
(
String
Builder
sql
,
Connection
connection
)
{
public
int
statementSql
(
String
sql
,
Connection
connection
)
{
int
count
=
0
;
try
{
Statement
statement
=
connection
.
createStatement
();
count
=
statement
.
executeUpdate
(
sql
.
toString
()
);
count
=
statement
.
executeUpdate
(
sql
);
statement
.
close
();
return
count
;
}
catch
(
SQLException
e
)
{
...
...
@@ -84,7 +114,7 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
public
List
<
HashMap
<
String
,
String
>>
queryRelation
(
String
dbName
)
throws
SQLException
{
StringBuilder
sql
=
new
StringBuilder
(
"SELECT * FROM "
);
sql
.
append
(
dbName
).
append
(
"_relation;"
);
List
<
HashMap
<
String
,
String
>>
maps
=
relationMapper
.
getPublicItems
(
sql
.
toString
());
List
<
HashMap
<
String
,
String
>>
maps
=
relationMapper
.
getPublicItems
(
sql
.
toString
());
return
maps
;
}
...
...
@@ -159,6 +189,100 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
}
/**
* 插入数据
*/
public
void
insertData
(
Connection
connection
,
String
agencyCode
,
String
dbName
,
HttpServletResponse
response
)
throws
SQLException
{
try
{
File
directory
=
new
File
(
""
);
// 参数为空
String
coursePath
=
directory
.
getCanonicalPath
();
File
parentFile
=
new
File
(
coursePath
).
getParentFile
();
String
backPath
=
parentFile
.
getCanonicalPath
()
+
BACKUP_PATH
;
File
sqlDirectory
=
new
File
(
backPath
);
if
(!
sqlDirectory
.
exists
())
{
sqlDirectory
.
mkdir
();
}
String
fileName
=
agencyCode
+
"."
+
SUFFIX
;
String
sqlFilePath
=
backPath
+
SLASH
+
fileName
;
File
file
=
new
File
(
sqlFilePath
);
FileOutputStream
out
;
OutputStreamWriter
writer
=
null
;
out
=
new
FileOutputStream
(
file
);
writer
=
new
OutputStreamWriter
(
out
,
"utf8"
);
StringBuffer
insertSql
=
new
StringBuffer
();
if
(!
connection
.
isClosed
())
System
.
out
.
println
(
"Succeeded connecting to the Database!"
);
//通过连接获取relation表树形结构
List
<
RelationTreeModel
>
trees
=
this
.
createRelationTree
(
dbName
);
for
(
RelationTreeModel
tree
:
trees
)
{
//根据根节点获得根节点相关列表
List
<
RelationTreeModel
>
array
=
this
.
createList
(
tree
);
//根据列表获取sql语句
for
(
RelationTreeModel
model
:
array
)
{
List
<
RelationTreeModel
>
tableSet
=
tableRelation
(
model
,
array
);
List
<
TableColumn
>
columns
=
TableUtils
.
getTableColumn
(
model
.
getName
(),
connection
);
String
sql
=
this
.
getSelectSQL
(
tableSet
,
model
.
getName
(),
columns
,
agencyCode
).
toString
();
List
<
Map
<
String
,
Object
>>
dataList
=
TableUtils
.
getMaps
(
sql
,
connection
);
System
.
out
.
println
(
sql
);
StringBuffer
insertSQL
=
TableUtils
.
getInsertSQL
(
dataList
,
columns
,
model
.
getName
());
System
.
out
.
println
(
insertSQL
);
if
(!
ObjectUtils
.
isEmpty
(
sql
))
insertSql
.
append
(
insertSQL
);
}
}
if
(
insertSql
.
length
()
>
0
)
{
writer
.
write
(
BR
+
DELIMITER
+
BR
);
writer
.
write
(
"/**"
+
BR
+
"* 资源数据"
+
BR
+
"**/"
+
BR
);
writer
.
write
(
BR
+
DELIMITER
+
BR
);
writer
.
write
(
insertSql
.
toString
());
writer
.
write
(
BR
+
BR
+
DELIMITER
+
BR
);
}
writer
.
flush
();
writer
.
close
();
out
.
close
();
download
(
response
,
fileName
,
sqlFilePath
);
}
catch
(
SQLException
|
IOException
e
)
{
e
.
printStackTrace
();
}
connection
.
close
();
}
/**
* 导出插入语句
*/
public
StringBuilder
getSelectSQL
(
List
<
RelationTreeModel
>
array
,
String
tableName
,
List
<
TableColumn
>
columns
,
String
agencyCode
)
{
StringBuilder
sql
=
new
StringBuilder
();
if
(
array
.
size
()
==
1
)
{
sql
.
append
(
"SELECT * FROM "
).
append
(
array
.
get
(
0
).
getName
()).
append
(
" WHERE "
);
sql
.
append
(
array
.
get
(
0
).
getName
()).
append
(
"."
).
append
(
array
.
get
(
0
).
getField
());
sql
.
append
(
" = '"
).
append
(
agencyCode
).
append
(
"' ;"
);
}
else
{
sql
.
append
(
"SELECT "
);
int
count
=
0
;
for
(
TableColumn
colum
:
columns
)
{
if
(
count
!=
0
)
{
sql
.
append
(
","
);
}
count
++;
sql
.
append
(
tableName
).
append
(
"."
).
append
(
colum
.
getColumnName
());
}
sql
.
append
(
" FROM "
).
append
(
array
.
get
(
0
).
getName
());
for
(
RelationTreeModel
model
:
array
)
{
if
(!
model
.
getParentName
().
equals
(
""
))
{
sql
.
append
(
" JOIN "
).
append
(
model
.
getName
()).
append
(
" ON "
);
sql
.
append
(
model
.
getParentName
()).
append
(
"."
).
append
(
model
.
getParentField
()).
append
(
" = "
);
sql
.
append
(
model
.
getName
()).
append
(
"."
).
append
(
model
.
getField
());
}
}
sql
.
append
(
" WHERE "
).
append
(
array
.
get
(
0
).
getName
()).
append
(
"."
).
append
(
array
.
get
(
0
).
getField
());
sql
.
append
(
" = '"
).
append
(
agencyCode
).
append
(
"' ;"
);
}
return
sql
;
}
/**
* 列表节点生成(递归)
*/
public
List
<
RelationTreeModel
>
createNodeList
(
List
<
RelationTreeModel
>
tree
)
{
...
...
@@ -185,4 +309,39 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
result
.
addAll
(
createNodeList
(
model
.
getChildren
()));
return
result
;
}
/**
* 根据表获取关联表集合
*/
public
List
<
RelationTreeModel
>
tableRelation
(
RelationTreeModel
table
,
List
<
RelationTreeModel
>
list
)
{
List
<
RelationTreeModel
>
result
=
new
ArrayList
<>();
if
(
table
.
getParentName
().
equals
(
""
))
{
result
.
add
(
table
);
}
else
{
for
(
RelationTreeModel
node
:
list
)
{
if
(
node
.
getName
().
equals
(
table
.
getParentName
()))
{
result
.
addAll
(
tableRelation
(
node
,
list
));
result
.
add
(
table
);
break
;
}
}
}
return
result
;
}
public
void
download
(
HttpServletResponse
response
,
String
fileName
,
String
sqlFilePath
)
throws
IOException
{
File
f
=
new
File
(
sqlFilePath
);
BufferedInputStream
br
=
new
BufferedInputStream
(
new
FileInputStream
(
f
));
byte
[]
buf
=
new
byte
[
1024
];
int
len
=
0
;
response
.
reset
();
// 非常重要
response
.
setContentType
(
"application/x-msdownload"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment; filename="
+
fileName
);
OutputStream
out
=
response
.
getOutputStream
();
while
((
len
=
br
.
read
(
buf
))
>
0
)
out
.
write
(
buf
,
0
,
len
);
br
.
close
();
out
.
close
();
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/TemplateService.java
View file @
fdab2426
...
...
@@ -4,34 +4,62 @@ import com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.PictureModel
;
import
com.yeejoin.amos.api.tool.face.model.TemplateCategoryTreeModel
;
import
com.yeejoin.amos.api.tool.face.model.TemplateModel
;
import
com.yeejoin.amos.api.tool.face.model.TemplateVoModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.TemplateMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.Template
;
import
com.yeejoin.amos.api.tool.utils.ConvertUtil
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.typroject.tyboot.core.foundation.utils.
String
Util
;
import
org.typroject.tyboot.core.foundation.utils.
Validation
Util
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.Reader
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.UUID
;
@Service
public
class
TemplateService
extends
BaseService
<
TemplateModel
,
Template
,
TemplateMapper
>
{
@Autowired
private
TemplateCategoryService
templateCategoryService
;
/**
* 分页查询
*/
public
Page
<
TemplateModel
>
queryForTplPage
(
Page
<
TemplateModel
>
page
,
Long
categorySeq
,
String
displayName
)
{
List
<
TemplateCategoryTreeModel
>
modelList
=
templateCategoryService
.
getTree
();
List
<
TemplateModel
>
records
=
new
ArrayList
<>();
for
(
TemplateCategoryTreeModel
visualDesigner
:
modelList
)
{
if
(
Objects
.
equals
(
categorySeq
,
visualDesigner
.
getSequenceNbr
()))
{
for
(
TemplateCategoryTreeModel
category
:
visualDesigner
.
getChildren
())
{
records
.
addAll
(
this
.
queryForTplListByCategorySeq
(
category
.
getSequenceNbr
()));
}
return
this
.
queryForPages
(
records
,
page
);
}
}
return
this
.
queryForPage
(
page
,
null
,
false
,
categorySeq
,
displayName
);
}
public
Page
<
TemplateModel
>
queryForPages
(
List
<
TemplateModel
>
records
,
Page
<
TemplateModel
>
page
)
{
Page
<
TemplateModel
>
entiryPage
=
new
Page
(
page
.
getCurrent
(),
page
.
getSize
());
if
(!
ValidationUtil
.
isEmpty
(
records
))
{
page
.
setTotal
(
records
.
size
());
page
.
setPages
(
entiryPage
.
getPages
());
page
.
setCurrent
(
entiryPage
.
getCurrent
());
page
.
setSize
(
entiryPage
.
getSize
());
page
.
setRecords
(
records
);
}
return
page
;
}
/**
* 列表查询
*/
...
...
@@ -42,9 +70,9 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 根据模板分类ID获取模板sequenceNb's
*/
public
List
<
String
>
selectSeqsByCategorySeq
(
Long
categorySeq
){
public
List
<
String
>
selectSeqsByCategorySeq
(
Long
categorySeq
)
{
List
<
String
>
strings
=
new
ArrayList
<>();
for
(
TemplateModel
model
:
this
.
queryForTplListByCategorySeq
(
categorySeq
)){
for
(
TemplateModel
model
:
this
.
queryForTplListByCategorySeq
(
categorySeq
))
{
strings
.
add
(
Long
.
toString
(
model
.
getSequenceNbr
()));
}
return
strings
;
...
...
@@ -61,7 +89,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 根据sequenceNbr获取模板并转化为VO
*/
public
TemplateVoModel
queryForTplVo
(
Long
sequenceNbr
){
public
TemplateVoModel
queryForTplVo
(
Long
sequenceNbr
)
{
TemplateModel
templateModel
=
this
.
queryBySeq
(
sequenceNbr
);
TemplateVoModel
templateVoModel
=
this
.
convertVoModel
(
templateModel
);
if
(
templateModel
.
getContent
()
!=
null
)
{
...
...
@@ -114,10 +142,10 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* model转化VO
*/
public
TemplateVoModel
convertVoModel
(
TemplateModel
templateModel
){
public
TemplateVoModel
convertVoModel
(
TemplateModel
templateModel
)
{
TemplateVoModel
tplVoModel
=
new
TemplateVoModel
();
BeanUtils
.
copyProperties
(
templateModel
,
tplVoModel
);
if
(
templateModel
.
getSketch
()
!=
null
)
if
(
templateModel
.
getSketch
()
!=
null
)
tplVoModel
.
setSketches
(
this
.
urlToPicModel
(
templateModel
.
getSketch
()));
if
(
templateModel
.
getThumb
()
!=
null
)
tplVoModel
.
setThumbs
(
this
.
urlToPicModel
(
templateModel
.
getThumb
()));
...
...
@@ -128,8 +156,8 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 生成随机UID
*/
public
String
getUid
(){
UUID
uuid
=
UUID
.
randomUUID
();
public
String
getUid
()
{
UUID
uuid
=
UUID
.
randomUUID
();
String
str
=
uuid
.
toString
();
return
str
.
replace
(
"-"
,
""
);
}
...
...
@@ -137,7 +165,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* url转化图片
*/
public
List
<
PictureModel
>
urlToPicModel
(
String
url
){
public
List
<
PictureModel
>
urlToPicModel
(
String
url
)
{
List
<
PictureModel
>
pictureModels
=
new
ArrayList
<>();
PictureModel
pictureModel
=
new
PictureModel
(
""
,
this
.
getUid
(),
url
,
"done"
);
pictureModels
.
add
(
pictureModel
);
...
...
src/main/java/com/yeejoin/amos/api/tool/face/service/TransferDataService.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.yeejoin.amos.api.tool.face.orm.entity.TableColumn
;
import
com.yeejoin.amos.api.tool.utils.TableUtils
;
import
org.springframework.stereotype.Service
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.SQLException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
TransferDataService
{
private
static
String
TABLE_DES
=
"mcb_warning_base_source_attribution"
;
private
static
String
TABLE_ORI
=
"qms_explorer"
;
private
static
String
DBNAME_DES
=
"amos_mcb"
;
private
static
String
DBNAME_ORI
=
"amos_studio"
;
public
Connection
connectDataBase
(
String
dataBaseName
)
throws
ClassNotFoundException
,
SQLException
{
// 加载数据库驱动
Class
.
forName
(
"com.mysql.cj.jdbc.Driver"
);
// 生成url
String
dbUrl
=
"jdbc:mysql://172.16.3.18:3306/"
+
dataBaseName
;
// 连接数据库
return
DriverManager
.
getConnection
(
dbUrl
,
"root"
,
"Yeejoin@2020"
);
}
public
void
transferData
()
throws
SQLException
,
ClassNotFoundException
{
Connection
connection
=
this
.
connectDataBase
(
DBNAME_ORI
);
List
<
Map
<
String
,
Object
>>
maps
=
TableUtils
.
getMaps
(
"SELECT * FROM "
+
TABLE_ORI
+
" ;"
,
connection
);
connection
.
close
();
connection
=
this
.
connectDataBase
(
DBNAME_DES
);
List
<
TableColumn
>
columns
=
TableUtils
.
getTableColumn
(
TABLE_DES
,
connection
);
List
<
Map
<
String
,
Object
>>
dataList
=
this
.
convertDataMap
(
maps
,
columns
);
System
.
out
.
println
(
TableUtils
.
getInsertSQL
(
dataList
,
columns
,
TABLE_DES
));
}
public
List
<
Map
<
String
,
Object
>>
convertDataMap
(
List
<
Map
<
String
,
Object
>>
maps
,
List
<
TableColumn
>
columns
)
{
List
<
Map
<
String
,
Object
>>
dataList
=
new
ArrayList
<>();
for
(
Map
<
String
,
Object
>
map
:
maps
)
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
for
(
TableColumn
column
:
columns
)
{
data
.
put
(
column
.
getColumnName
(),
null
);
}
data
.
replace
(
"SEQUENCE_NBR"
,
map
.
get
(
"SEQUENCE_NBR"
));
data
.
replace
(
"NAME"
,
map
.
get
(
"RESOURCE_NAME"
));
data
.
replace
(
"PARENT_ID"
,
map
.
get
(
"PARENT_ID"
));
data
.
replace
(
"CODE"
,
map
.
get
(
"AGENCY_CODE"
));
data
.
replace
(
"REC_USER_ID"
,
map
.
get
(
"REC_USER_ID"
));
data
.
replace
(
"REC_DATE"
,
map
.
get
(
"REC_DATE"
));
dataList
.
add
(
data
);
}
return
dataList
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/ViewService.java
deleted
100644 → 0
View file @
c75e61af
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.ViewModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.ViewMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.View
;
import
org.apache.ibatis.annotations.Select
;
import
org.springframework.stereotype.Component
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.annotation.Resource
;
import
java.util.List
;
@Component
public
class
ViewService
extends
BaseService
<
ViewModel
,
View
,
ViewMapper
>
{
@Resource
ViewMapper
viewMapper
;
/**
* 根据所属机构分页查询
*/
public
Page
<
ViewModel
>
queryForViewPageByAgency
(
Page
page
,
String
agency
)
{
return
this
.
queryForPage
(
page
,
null
,
false
,
agency
);
}
/**
* 查询所有
*/
public
List
<
ViewModel
>
queryEvery
(){
return
viewMapper
.
queryEvery
();
}
/**
* 根据所属机构列表查询
*/
public
List
<
ViewModel
>
queryForAViewList
(
String
agency
)
{
return
this
.
queryForList
(
""
,
false
,
agency
);
}
/**
* 根据场景分页查询
*/
public
Page
<
ViewModel
>
queryByScene
(
Page
page
,
String
sences
)
{
return
this
.
queryForPage
(
page
,
null
,
false
,
sences
);
}
/**
* 根据场景列表查询
*/
public
List
<
ViewModel
>
queryByScene
(
String
sences
)
{
return
this
.
queryForList
(
""
,
false
,
sences
);
}
/**
* 查看次数更新
*/
public
boolean
updateTimes
(
Long
SEQUENCE_NBR
){
return
viewMapper
.
update
(
SEQUENCE_NBR
);
}
/**
* 统一处理
*/
public
List
<
ViewModel
>
query
(
String
sences
,
String
miniSences
){
if
(
sences
.
equals
(
"全部"
)){
if
(
miniSences
.
equals
(
"综合排序"
)){
return
viewMapper
.
queryAll
(
"SEQUENCE_NBR"
,
"asc"
);
}
else
if
(
miniSences
.
equals
(
"最新发布"
)){
return
viewMapper
.
queryAll
(
"releasetime"
,
"desc"
);
}
else
return
viewMapper
.
queryAll
(
"times"
,
"desc"
);
}
else
{
if
(
miniSences
.
equals
(
"综合排序"
)){
return
viewMapper
.
queryBySences
(
sences
,
"SEQUENCE_NBR"
,
"asc"
);
}
else
if
(
miniSences
.
equals
(
"最新发布"
)){
return
viewMapper
.
queryBySences
(
sences
,
"releasetime"
,
"desc"
);
}
else
return
viewMapper
.
queryBySences
(
sences
,
"times"
,
"desc"
);
}
}
}
src/main/java/com/yeejoin/amos/api/tool/utils/TableUtils.java
0 → 100644
View file @
fdab2426
package
com
.
yeejoin
.
amos
.
api
.
tool
.
utils
;
import
com.alibaba.fastjson.JSON
;
import
com.yeejoin.amos.api.tool.face.orm.entity.TableColumn
;
import
org.springframework.util.ObjectUtils
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
TableUtils
{
/**
* 数据库备份路径
*/
public
static
final
String
BACKUP_PATH
=
"/db/"
;
/**
* 数据库备份文本前缀
*/
public
static
String
ONESQL_PREFIX
=
""
;
public
static
String
SUFFIX
=
"sql"
;
public
static
String
BR
=
"\r\n"
;
public
static
String
SLASH
=
"/"
;
public
static
String
BRANCH
=
";"
;
private
static
String
SPLIT
=
"`"
;
private
static
String
SPACE
=
" "
;
private
static
String
INSERT_INTO
=
" INSERT INTO "
;
private
static
String
CREATE_INTO
=
" CREATE TABLE "
;
private
static
String
VALUES
=
"VALUES"
;
private
static
String
LEFTBRACE
=
"("
;
private
static
String
RIGHTBRACE
=
")"
;
private
static
String
QUOTES
=
"'"
;
private
static
String
COMMA
=
","
;
private
static
String
DISABLEFOREIGN
=
"SET FOREIGN_KEY_CHECKS = 0;\r\n"
;
private
static
String
ABLEFOREIGN
=
"SET FOREIGN_KEY_CHECKS = 1;\r\n"
;
public
static
String
DELIMITER
=
"###################################"
;
/**
* 获取maps
*/
public
static
List
<
Map
<
String
,
Object
>>
getMaps
(
String
sql
,
Connection
connection
)
throws
SQLException
{
Statement
statement
=
connection
.
createStatement
();
ResultSet
rs
=
statement
.
executeQuery
(
sql
);
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<
Map
<
String
,
Object
>>();
try
{
ResultSetMetaData
md
=
rs
.
getMetaData
();
int
columnCount
=
md
.
getColumnCount
();
while
(
rs
.
next
())
{
Map
<
String
,
Object
>
rowData
=
new
HashMap
<
String
,
Object
>();
for
(
int
i
=
1
;
i
<=
columnCount
;
i
++)
{
rowData
.
put
(
md
.
getColumnName
(
i
),
rs
.
getObject
(
i
));
}
list
.
add
(
rowData
);
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
if
(
rs
!=
null
)
rs
.
close
();
rs
=
null
;
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
return
list
;
}
/**
* 获取表单列名
*/
public
static
List
<
TableColumn
>
getTableColumn
(
String
tableName
,
Connection
connection
)
throws
SQLException
{
String
columnSql
=
""
+
"\t\t SELECT\n"
+
"\t\t table_name as table_name,\n"
+
"\t\t\tcolumn_name as columnName,\n"
+
"\t\t\t( CASE WHEN ( is_nullable = 'no' && column_key != 'PRI' ) THEN '1' ELSE NULL END ) AS isRequired,\n"
+
"\t\t\t( CASE WHEN column_key = 'PRI' THEN '1' ELSE '0' END ) AS isPk,\n"
+
"\t\t\tordinal_position AS sort,\n"
+
"\t\t\tcolumn_comment as columnComment,\n"
+
"\t\t\t( CASE WHEN extra = 'auto_increment' THEN '1' ELSE '0' END ) AS isIncrement,\n"
+
"\t\t\tcolumn_type as columnType \n"
+
"\t\tFROM\n"
+
"\t\t\tinformation_schema.COLUMNS \n"
+
"\t\tWHERE\n"
+
"\t\t\ttable_schema = database()\n"
+
"\t\t\tAND table_name = \""
+
tableName
+
"\"\n"
+
"\t\tORDER BY\n"
+
"\t\t\tordinal_position\t"
;
List
<
Map
<
String
,
Object
>>
columnList
=
TableUtils
.
getMaps
(
columnSql
,
connection
);
List
<
TableColumn
>
columns
=
new
ArrayList
<>();
for
(
Map
<
String
,
Object
>
map
:
columnList
)
{
TableColumn
column
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
),
TableColumn
.
class
);
if
(!
column
.
getColumnName
().
equals
(
"content"
))
columns
.
add
(
column
);
}
return
columns
;
}
/**
* 获取insert语句
*/
public
static
StringBuffer
getInsertSQL
(
List
<
Map
<
String
,
Object
>>
dataList
,
List
<
TableColumn
>
columns
,
String
tableName
)
{
StringBuffer
sql
=
new
StringBuffer
();
for
(
Map
<
String
,
Object
>
map
:
dataList
)
{
sql
.
append
(
INSERT_INTO
);
sql
.
append
(
SPACE
).
append
(
tableName
).
append
(
SPACE
);
sql
.
append
(
LEFTBRACE
);
for
(
TableColumn
column
:
columns
)
{
sql
.
append
(
SPLIT
);
sql
.
append
(
column
.
getColumnName
());
sql
.
append
(
SPLIT
);
sql
.
append
(
COMMA
);
}
sql
.
deleteCharAt
(
sql
.
length
()
-
1
);
sql
.
append
(
RIGHTBRACE
);
sql
.
append
(
VALUES
);
sql
.
append
(
LEFTBRACE
);
for
(
TableColumn
column
:
columns
)
{
if
(
column
.
getColumnType
().
contains
(
"bigint"
)
||
column
.
getColumnType
().
contains
(
"int"
)
||
column
.
getColumnType
().
contains
(
"bit(1)"
))
{
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
column
.
getColumnName
())))
{
sql
.
append
(
map
.
get
(
column
.
getColumnName
()));
}
else
{
sql
.
append
(
"0"
);
}
}
else
{
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
column
.
getColumnName
())))
{
sql
.
append
(
"'"
).
append
(
map
.
get
(
column
.
getColumnName
())).
append
(
"'"
);
}
else
{
sql
.
append
(
"null"
);
}
}
sql
.
append
(
COMMA
);
}
sql
.
deleteCharAt
(
sql
.
length
()
-
1
);
sql
.
append
(
RIGHTBRACE
);
sql
.
append
(
BRANCH
).
append
(
BR
);
}
return
sql
;
}
}
src/main/resources/application.properties
View file @
fdab2426
spring.application.name
=
DemoProject
server.servlet.context-path
=
/atl
#
server.servlet.context-path=/jcs
server.port
=
30201
#
server.port=20000
spring.application.name
=
AMOS-ATL
#
server.servlet.context-path=/atl
server.servlet.context-path
=
/jcs
#
server.port=30201
server.port
=
20000
spring.profiles.active
=
dev
management.health.elasticsearch.enabled
=
false
...
...
src/main/resources/mapper/
View
Mapper.xml
→
src/main/resources/mapper/
AmosToolTemplate
Mapper.xml
View file @
fdab2426
<?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.yeejoin.amos.api.tool.face.orm.dao.
View
Mapper"
>
<!-- <select id="queryAll" parameterType="com.yeejoin.amos.api.tool.face.orm.dao.
View
Mapper">-->
<mapper
namespace=
"com.yeejoin.amos.api.tool.face.orm.dao.
AmosToolTemplate
Mapper"
>
<!-- <select id="queryAll" parameterType="com.yeejoin.amos.api.tool.face.orm.dao.
AmosToolTemplateMappermplate
Mapper">-->
<!-- select * from view;-->
<!-- </select>-->
</mapper>
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