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
张帅
amos-tool
Commits
65ea6ede
Commit
65ea6ede
authored
Aug 16, 2023
by
陈祥烨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
last
parent
d91caaef
Hide whitespace changes
Inline
Side-by-side
Showing
66 changed files
with
3893 additions
and
187 deletions
+3893
-187
amos_tool_library_empty.sql
data-mysql/amos_tool_library_empty.sql
+0
-0
pom.xml
pom.xml
+43
-1
AgencyTreeResource.java
.../yeejoin/amos/api/tool/controller/AgencyTreeResource.java
+3
-2
AmosToolTemplateController.java
.../amos/api/tool/controller/AmosToolTemplateController.java
+131
-0
ApiInfoResource.java
...com/yeejoin/amos/api/tool/controller/ApiInfoResource.java
+45
-36
ApiSourceResource.java
...m/yeejoin/amos/api/tool/controller/ApiSourceResource.java
+8
-19
DataApiResource.java
...com/yeejoin/amos/api/tool/controller/DataApiResource.java
+119
-0
DataBaseLinkResource.java
...eejoin/amos/api/tool/controller/DataBaseLinkResource.java
+134
-0
DataBaseNameListResource.java
...in/amos/api/tool/controller/DataBaseNameListResource.java
+58
-0
DataBaseResource.java
...om/yeejoin/amos/api/tool/controller/DataBaseResource.java
+6
-2
RelationResource.java
...om/yeejoin/amos/api/tool/controller/RelationResource.java
+37
-16
TemplateCategoryResource.java
...in/amos/api/tool/controller/TemplateCategoryResource.java
+107
-0
TemplateResource.java
...om/yeejoin/amos/api/tool/controller/TemplateResource.java
+142
-0
TransferDataResource.java
...eejoin/amos/api/tool/controller/TransferDataResource.java
+30
-0
SortType.java
src/main/java/com/yeejoin/amos/api/tool/enums/SortType.java
+39
-0
SourceEnum.java
...main/java/com/yeejoin/amos/api/tool/enums/SourceEnum.java
+33
-0
AgencyModel.java
...ava/com/yeejoin/amos/api/tool/face/model/AgencyModel.java
+25
-0
AmosToolTemplateModel.java
...ejoin/amos/api/tool/face/model/AmosToolTemplateModel.java
+46
-0
AmosToolTemplateVoModel.java
...oin/amos/api/tool/face/model/AmosToolTemplateVoModel.java
+44
-0
DataBaseLinkModel.java
...m/yeejoin/amos/api/tool/face/model/DataBaseLinkModel.java
+44
-0
DataBaseNameListModel.java
...ejoin/amos/api/tool/face/model/DataBaseNameListModel.java
+24
-0
PictureModel.java
...va/com/yeejoin/amos/api/tool/face/model/PictureModel.java
+25
-0
ProjectModel.java
...va/com/yeejoin/amos/api/tool/face/model/ProjectModel.java
+20
-0
RelationModel.java
...a/com/yeejoin/amos/api/tool/face/model/RelationModel.java
+8
-8
RelationTreeModel.java
...m/yeejoin/amos/api/tool/face/model/RelationTreeModel.java
+5
-4
StudioResourceModel.java
...yeejoin/amos/api/tool/face/model/StudioResourceModel.java
+43
-0
TemplateCategoryModel.java
...ejoin/amos/api/tool/face/model/TemplateCategoryModel.java
+28
-0
TemplateCategoryTreeModel.java
...n/amos/api/tool/face/model/TemplateCategoryTreeModel.java
+49
-0
TemplateModel.java
...a/com/yeejoin/amos/api/tool/face/model/TemplateModel.java
+62
-0
TemplateVoModel.java
...com/yeejoin/amos/api/tool/face/model/TemplateVoModel.java
+42
-0
AmosToolTemplateMapper.java
...in/amos/api/tool/face/orm/dao/AmosToolTemplateMapper.java
+36
-0
DataBaseLinkMapper.java
...eejoin/amos/api/tool/face/orm/dao/DataBaseLinkMapper.java
+17
-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
+11
-0
StudioResourceMapper.java
...join/amos/api/tool/face/orm/dao/StudioResourceMapper.java
+23
-0
TemplateCategoryMapper.java
...in/amos/api/tool/face/orm/dao/TemplateCategoryMapper.java
+7
-0
TemplateMapper.java
...om/yeejoin/amos/api/tool/face/orm/dao/TemplateMapper.java
+8
-0
AmosToolTemplate.java
...ejoin/amos/api/tool/face/orm/entity/AmosToolTemplate.java
+52
-0
DataBaseLink.java
...m/yeejoin/amos/api/tool/face/orm/entity/DataBaseLink.java
+52
-0
DataBaseNameList.java
...ejoin/amos/api/tool/face/orm/entity/DataBaseNameList.java
+27
-0
Relation.java
...a/com/yeejoin/amos/api/tool/face/orm/entity/Relation.java
+4
-4
StudioResource.java
...yeejoin/amos/api/tool/face/orm/entity/StudioResource.java
+51
-0
TableColumn.java
...om/yeejoin/amos/api/tool/face/orm/entity/TableColumn.java
+14
-0
Template.java
...a/com/yeejoin/amos/api/tool/face/orm/entity/Template.java
+73
-0
TemplateCategory.java
...ejoin/amos/api/tool/face/orm/entity/TemplateCategory.java
+45
-0
AmosDemoService.java
...m/yeejoin/amos/api/tool/face/service/AmosDemoService.java
+1
-1
AmosToolTemplateService.java
...n/amos/api/tool/face/service/AmosToolTemplateService.java
+122
-0
ApiInfoService.java
...om/yeejoin/amos/api/tool/face/service/ApiInfoService.java
+14
-15
ApiSourceService.java
.../yeejoin/amos/api/tool/face/service/ApiSourceService.java
+19
-1
DataBaseLinkService.java
...ejoin/amos/api/tool/face/service/DataBaseLinkService.java
+185
-0
DataBaseNameListService.java
...n/amos/api/tool/face/service/DataBaseNameListService.java
+55
-0
RelationService.java
...m/yeejoin/amos/api/tool/face/service/RelationService.java
+198
-42
StudioResourceService.java
...oin/amos/api/tool/face/service/StudioResourceService.java
+350
-0
TemplateCategoryService.java
...n/amos/api/tool/face/service/TemplateCategoryService.java
+84
-0
TemplateService.java
...m/yeejoin/amos/api/tool/face/service/TemplateService.java
+176
-0
TransferDataService.java
...ejoin/amos/api/tool/face/service/TransferDataService.java
+59
-0
VisualDesignerService.java
...oin/amos/api/tool/face/service/VisualDesignerService.java
+17
-28
AESUtils.java
src/main/java/com/yeejoin/amos/api/tool/utils/AESUtils.java
+39
-0
ConvertUtil.java
...ain/java/com/yeejoin/amos/api/tool/utils/ConvertUtil.java
+30
-0
DataBaseUtils.java
...n/java/com/yeejoin/amos/api/tool/utils/DataBaseUtils.java
+174
-0
DateUtils.java
src/main/java/com/yeejoin/amos/api/tool/utils/DateUtils.java
+357
-0
SqlHelper.java
src/main/java/com/yeejoin/amos/api/tool/utils/SqlHelper.java
+143
-0
application-dev.properties
src/main/resources/application-dev.properties
+5
-5
application.properties
src/main/resources/application.properties
+6
-3
AmosToolTemplateMapper.xml
src/main/resources/mapper/AmosToolTemplateMapper.xml
+7
-0
StudioResourceMapper.xml
src/main/resources/mapper/StudioResourceMapper.xml
+21
-0
No files found.
data-mysql/amos_tool_library_empty.sql
0 → 100644
View file @
65ea6ede
This source diff could not be displayed because it is too large. You can
view the blob
instead.
pom.xml
View file @
65ea6ede
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<groupId>
com.yeejoin.amos
</groupId>
<groupId>
com.yeejoin.amos
</groupId>
<artifactId>
amos-api-tool
</artifactId>
<artifactId>
amos-api-tool
</artifactId>
<packaging>
jar
</packaging>
<packaging>
jar
</packaging>
<version>
1.
9
.0-SNAPSHOT
</version>
<version>
1.
0
.0-SNAPSHOT
</version>
<name>
amos-api-tool
</name>
<name>
amos-api-tool
</name>
<description>
amos-api-tool
</description>
<description>
amos-api-tool
</description>
...
@@ -18,8 +18,14 @@
...
@@ -18,8 +18,14 @@
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
commons-io
</groupId>
<artifactId>
commons-io
</artifactId>
<version>
2.4
</version>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-netflix-eureka-client
</artifactId>
<artifactId>
spring-cloud-starter-netflix-eureka-client
</artifactId>
<version>
3.1.3
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
...
@@ -31,6 +37,12 @@
...
@@ -31,6 +37,12 @@
<version>
1.4.5.RELEASE
</version>
<version>
1.4.5.RELEASE
</version>
</dependency>
</dependency>
<!--JSqlparser(高效的SQL解析工具)-->
<dependency>
<groupId>
com.github.jsqlparser
</groupId>
<artifactId>
jsqlparser
</artifactId>
<version>
4.4
</version>
</dependency>
<!-- easy-poi -->
<!-- easy-poi -->
<dependency>
<dependency>
...
@@ -71,6 +83,11 @@
...
@@ -71,6 +83,11 @@
<artifactId>
fastjson
</artifactId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.67_noneautotype2
</version>
<version>
1.2.67_noneautotype2
</version>
</dependency>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-text
</artifactId>
<version>
1.8
</version>
</dependency>
<dependency>
<dependency>
<groupId>
org.typroject
</groupId>
<groupId>
org.typroject
</groupId>
...
@@ -136,6 +153,17 @@
...
@@ -136,6 +153,17 @@
</exclusion>
</exclusion>
</exclusions>
</exclusions>
</dependency>
</dependency>
<dependency>
<groupId>
org.typroject
</groupId>
<artifactId>
tyboot-component-emq
</artifactId>
<version>
${tyboot-version}
</version>
<exclusions>
<exclusion>
<groupId>
org.typroject
</groupId>
<artifactId>
*
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencies>
<dependencyManagement>
<dependencyManagement>
...
@@ -212,7 +240,21 @@
...
@@ -212,7 +240,21 @@
<plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<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>
<plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-deploy-plugin
</artifactId>
<artifactId>
maven-deploy-plugin
</artifactId>
...
...
src/main/java/com/yeejoin/amos/api/tool/controller/AgencyTreeResource.java
View file @
65ea6ede
...
@@ -29,6 +29,7 @@ public class AgencyTreeResource {
...
@@ -29,6 +29,7 @@ public class AgencyTreeResource {
/**
/**
* 根据sequenceNbr删除
* 根据sequenceNbr删除
* @param sequenceNbr 主键
* @param sequenceNbr 主键
* @return Boolean
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
...
@@ -40,12 +41,12 @@ public class AgencyTreeResource {
...
@@ -40,12 +41,12 @@ public class AgencyTreeResource {
/**
/**
*列表全部数据查询
*列表全部数据查询
* @return List<AgencyTreeModel>
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
AgencyTreeModel
>>
selectForList
()
public
ResponseModel
<
List
<
AgencyTreeModel
>>
selectForList
()
{
{
return
ResponseHelper
.
buildResponse
(
agencyTreeService
.
queryForAgencyTreeList
());
return
ResponseHelper
.
buildResponse
(
agencyTreeService
.
queryForAgencyTreeList
());
}
}
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/AmosToolTemplateController.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel
;
import
com.yeejoin.amos.api.tool.face.model.AmosToolTemplateVoModel
;
import
com.yeejoin.amos.api.tool.face.model.ProjectModel
;
import
com.yeejoin.amos.api.tool.face.service.AmosToolTemplateService
;
import
com.yeejoin.amos.api.tool.utils.DataBaseUtils
;
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.foundation.utils.StringUtil
;
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
;
import
java.util.Arrays
;
import
java.util.List
;
@CrossOrigin
@RestController
@RequestMapping
(
value
=
"/scene"
)
@Api
(
tags
=
"场景展示Api"
)
public
class
AmosToolTemplateController
{
@Autowired
private
AmosToolTemplateService
amosToolTemplateService
;
/**
* 添加单个记录
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@PostMapping
(
"/save"
)
@ApiOperation
(
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
AmosToolTemplateModel
>
create
(
@RequestBody
AmosToolTemplateVoModel
amosToolTplVoModel
)
throws
NoSuchFieldException
,
IllegalAccessException
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
createWithModel
(
amosToolTemplateService
.
convertModel
(
amosToolTplVoModel
)));
}
/**
* 根据 sequenceNbr 删除
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@DeleteMapping
(
"/{sequenceNbr}"
)
@ApiOperation
(
value
=
"删除"
)
public
ResponseModel
<
Boolean
>
deleteById
(
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
deleteBySeq
(
sequenceNbr
));
}
/**
* 根据 sequenceNbr 批量删除
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/delete/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr批量删除"
,
notes
=
"根据sequenceNbr批量删除"
)
public
ResponseModel
<
Boolean
>
deleteModelsBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
String
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
removeByIds
(
Arrays
.
asList
(
StringUtil
.
string2Array
(
sequenceNbr
))));
}
/**
* 根据 sequenceNbr 编辑单个记录
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"编辑"
)
@RequestMapping
(
value
=
"/{sequenceNbr}"
,
method
=
RequestMethod
.
PUT
)
public
ResponseModel
<
AmosToolTemplateModel
>
update
(
@RequestBody
AmosToolTemplateVoModel
amosToolTplVoModel
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
throws
NoSuchFieldException
,
IllegalAccessException
{
amosToolTplVoModel
.
setSequenceNbr
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
updateWithModel
(
amosToolTemplateService
.
convertModel
(
amosToolTplVoModel
)));
}
/**
* 根据 sequenceNbr 查询单个记录
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"查询单个对象"
)
@RequestMapping
(
value
=
"/{sequenceNbr}"
,
method
=
RequestMethod
.
GET
)
public
ResponseModel
<
AmosToolTemplateVoModel
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
queryForTplVo
(
sequenceNbr
));
}
/**
* 根据字段查询
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"查询大全"
)
@PostMapping
(
"/select/all"
)
public
ResponseModel
<
List
<
AmosToolTemplateModel
>>
query
(
@RequestParam
(
value
=
"categoryScene"
)
String
categoryScene
,
@RequestParam
(
value
=
"miniSences"
)
String
miniSences
)
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
query
(
categoryScene
,
miniSences
));
}
/**
* 列表所有记录
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
"查询所有"
)
@GetMapping
(
"/every"
)
public
ResponseModel
<
List
<
AmosToolTemplateModel
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
queryList
());
}
/**
* 列表分页查询
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"分页查询"
)
@GetMapping
(
value
=
"/page"
)
public
ResponseModel
<
Page
<
AmosToolTemplateModel
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
)
{
Page
page
=
new
Page
();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
queryForAmosToolPage
(
page
));
}
/**
* 点击后根据 sequenceNbr 查看次数加一
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"点击查看次数加一"
)
@PutMapping
(
"/update"
)
public
ResponseModel
<
Boolean
>
updateById
(
@RequestParam
(
value
=
"templateId"
)
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
amosToolTemplateService
.
updateTimes
(
sequenceNbr
));
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/ApiInfoResource.java
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.Api
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.ApiInfoModel
;
import
com.yeejoin.amos.api.tool.face.service.ApiInfoService
;
import
com.yeejoin.amos.api.tool.face.service.ApiInfoService
;
import
com.yeejoin.amos.api.tool.face.service.ApiSourceService
;
import
com.yeejoin.amos.api.tool.face.service.ApiSourceService
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
io.swagger.annotations.Api
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
javax.servlet.http.HttpServletRequest
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.ApiInfoModel
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.utils.StringUtil
;
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.util.Arrays
;
import
java.util.List
;
@CrossOrigin
@CrossOrigin
@RestController
@RestController
@Api
(
tags
=
"接口管理Api"
)
@Api
(
tags
=
"接口管理Api"
)
...
@@ -23,18 +23,19 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
...
@@ -23,18 +23,19 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
public
class
ApiInfoResource
{
public
class
ApiInfoResource
{
@Autowired
@Autowired
ApiInfoService
apiInfoService
;
private
ApiInfoService
apiInfoService
;
@Autowired
@Autowired
ApiSourceService
apiSourceService
;
private
ApiSourceService
apiSourceService
;
/**
/**
* 新增
* 新增
* @return
* @param apiInfoModel API信息
* @return ApiInfoModel
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/save"
)
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
ApiInfoModel
>
save
(
@RequestBody
ApiInfoModel
apiInfoModel
)
throws
Exception
{
public
ResponseModel
<
ApiInfoModel
>
save
(
@RequestBody
ApiInfoModel
apiInfoModel
)
{
apiInfoModel
=
apiInfoService
.
createWithModel
(
apiInfoModel
);
apiInfoModel
=
apiInfoService
.
createWithModel
(
apiInfoModel
);
return
ResponseHelper
.
buildResponse
(
apiInfoModel
);
return
ResponseHelper
.
buildResponse
(
apiInfoModel
);
}
}
...
@@ -42,7 +43,7 @@ public class ApiInfoResource {
...
@@ -42,7 +43,7 @@ public class ApiInfoResource {
/**
/**
* 根据sequenceNbr更新
* 根据sequenceNbr更新
* @param sequenceNbr 主键
* @param sequenceNbr 主键
* @return
* @return
ApiInfoModel
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
...
@@ -55,29 +56,31 @@ public class ApiInfoResource {
...
@@ -55,29 +56,31 @@ public class ApiInfoResource {
/**
/**
* 根据sequenceNbr删除
* 根据sequenceNbr删除
* @param sequenceNbr 主键
* @param sequenceNbr 主键
* @return
* @return
Boolean
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
HttpServletRequest
request
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
){
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
){
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
removeById
(
sequenceNbr
));
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
removeById
(
sequenceNbr
));
}
}
/**
/**
* 根据sequenceNbr
删除多项
* 根据sequenceNbr
批量删除
* @param sequenceNbr 主键
* @param sequenceNbr 主键
* @return
* @return
Boolean
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/
s
/{sequenceNbr}"
)
@DeleteMapping
(
value
=
"/
delete
/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除多项"
,
notes
=
"根据sequenceNbr删除多项"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除多项"
,
notes
=
"根据sequenceNbr删除多项"
)
public
ResponseModel
<
Boolean
[]>
deleteModelsBySequenceNbr
(
HttpServletRequest
request
,
@PathVariable
(
value
=
"sequenceNbr"
)
String
sequenceNbr
){
public
ResponseModel
<
Boolean
>
deleteModelsBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
String
sequenceNbr
){
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
deleteByIds
(
sequenceNbr
));
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
removeByIds
(
Arrays
.
asList
(
StringUtil
.
string2Array
(
sequenceNbr
))
));
}
}
/**
/**
* 根据sequenceNbr查询
* 根据sequenceNbr查询
* @param sequenceNbr
主键
* @param sequenceNbr 主键
* @return
* @return
ApiInfoModel
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
...
@@ -85,32 +88,38 @@ public class ApiInfoResource {
...
@@ -85,32 +88,38 @@ public class ApiInfoResource {
public
ResponseModel
<
ApiInfoModel
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
throws
Exception
{
public
ResponseModel
<
ApiInfoModel
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryBySeq
(
sequenceNbr
));
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryBySeq
(
sequenceNbr
));
}
}
/**
/**
* 列表分页查询
* 列表分页查询
*@param current 当前页
* @param current 当前页
*@param current 每页大小
* @param size 每页大小
* @return
* @param apiName API名称
* @param sequenceNbr 主键
* @return Page<ApiInfoModel>
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/page"
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
Page
<
ApiInfoModel
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
@RequestParam
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
,
@RequestParam
(
value
=
"apiName"
,
required
=
false
)
String
apiName
)
public
ResponseModel
<
Page
<
ApiInfoModel
>>
queryForPage
(
{
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
@RequestParam
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
,
@RequestParam
(
value
=
"apiName"
,
required
=
false
)
String
apiName
)
{
Page
<
ApiInfoModel
>
page
=
new
Page
<
ApiInfoModel
>();
Page
<
ApiInfoModel
>
page
=
new
Page
<
ApiInfoModel
>();
page
.
setCurrent
(
current
);
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryForApiInfoPage
(
page
,
apiSourceService
.
queryCodeById
(
sequenceNbr
),
apiName
));
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryForApiInfoPage
(
page
,
apiSourceService
.
queryCodeById
(
sequenceNbr
),
apiName
));
}
}
/**
/**
*列表全部数据查询
*
列表全部数据查询
*
@return
*
@return List<ApiInfoModel>
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
ApiInfoModel
>>
selectForList
()
public
ResponseModel
<
List
<
ApiInfoModel
>>
selectForList
()
{
{
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryForApiInfoList
());
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryForApiInfoList
());
}
}
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/ApiSourceResource.java
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.ApiInfoModel
;
import
com.yeejoin.amos.api.tool.face.model.ApiSourceModel
;
import
com.yeejoin.amos.api.tool.face.model.ApiSourceModel
;
import
com.yeejoin.amos.api.tool.face.model.TplModel
;
import
com.yeejoin.amos.api.tool.face.service.ApiInfoService
;
import
com.yeejoin.amos.api.tool.face.service.ApiInfoService
;
import
com.yeejoin.amos.api.tool.face.service.ApiSourceService
;
import
com.yeejoin.amos.api.tool.face.service.ApiSourceService
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -15,7 +13,6 @@ import java.util.List;
...
@@ -15,7 +13,6 @@ import java.util.List;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
javax.servlet.http.HttpServletRequest
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
...
@@ -27,13 +24,11 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
...
@@ -27,13 +24,11 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
public
class
ApiSourceResource
{
public
class
ApiSourceResource
{
@Autowired
@Autowired
ApiSourceService
apiSourceService
;
private
ApiSourceService
apiSourceService
;
@Autowired
ApiInfoService
apiInfoService
;
/**
/**
* 新增
* 新增
*
*
@param model API来源信息
* @return ApiSourceDto
* @return ApiSourceDto
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
...
@@ -46,38 +41,34 @@ public class ApiSourceResource {
...
@@ -46,38 +41,34 @@ public class ApiSourceResource {
/**
/**
* 根据sequenceNbr更新
* 根据sequenceNbr更新
*
*
@param model API来源信息
* @param sequenceNbr 编码
* @param sequenceNbr 编码
* @return ApiSourceDto
* @return ApiSourceDto
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
public
ResponseModel
<
ApiSourceModel
>
updateBySeqApiSource
(
@RequestBody
ApiSourceModel
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
public
ResponseModel
<
ApiSourceModel
>
updateBySeqApiSource
(
@RequestBody
ApiSourceModel
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
model
.
setSequenceNbr
(
sequenceNbr
);
model
.
setSequenceNbr
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
updateWithModel
(
model
));
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
updateWithModel
(
model
));
}
}
/**
/**
* 根据sequenceNbr删除
* 根据sequenceNbr删除
*
* @param sequenceNbr 编码
* @param sequenceNbr 编码
* @return Boolean
* @return Boolean
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
HttpServletRequest
request
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
List
<
ApiInfoModel
>
apiInfoModels
=
apiInfoService
.
queryForApiInfoListByApiSource
(
apiSourceService
.
queryCodeById
(
sequenceNbr
));
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
deleteById
(
sequenceNbr
));
for
(
ApiInfoModel
apiInfoModel:
apiInfoModels
){
apiInfoService
.
removeById
(
apiInfoModel
.
getSequenceNbr
());
}
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
removeById
(
sequenceNbr
));
}
}
/**
/**
* 根据sequenceNbr查询
* 根据sequenceNbr查询
*
* @param sequenceNbr 物理主键
* @param sequenceNbr 物理主键
* @return ApiSourceDto
* @return ApiSourceDto
*/
*/
...
@@ -88,10 +79,8 @@ public class ApiSourceResource {
...
@@ -88,10 +79,8 @@ public class ApiSourceResource {
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
queryBySeq
(
sequenceNbr
));
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
queryBySeq
(
sequenceNbr
));
}
}
/**
/**
* 列表全部数据查询
* 列表全部数据查询
*
* @return List<ApiSourceDto>
* @return List<ApiSourceDto>
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
...
...
src/main/java/com/yeejoin/amos/api/tool/controller/DataApiResource.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.ProjectModel
;
import
com.yeejoin.amos.api.tool.face.service.StudioResourceService
;
import
com.yeejoin.amos.api.tool.utils.DataBaseUtils
;
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.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.doc.TycloudResource
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.sql.SQLException
;
import
java.util.Enumeration
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
* 测试 前端控制器
* </p>
*
* @author 子杨
* @since 2023-06-06
*/
@RestController
@TycloudResource
(
module
=
"atl"
,
value
=
"dataApi"
)
@RequestMapping
(
value
=
"/v1/dataApi"
)
@Api
(
tags
=
"atl-导出"
)
public
class
DataApiResource
{
private
final
Logger
logger
=
LogManager
.
getLogger
(
DataApiResource
.
class
);
@Autowired
private
StudioResourceService
studioResourceService
;
/**
* 依据参数导出 应用快搭增量脚本
*
* @throws SQLException
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
ANONYMOUS
,
needAuth
=
false
)
@ApiOperation
(
value
=
"导出应用快搭增量脚本"
)
@RequestMapping
(
value
=
"/generateSQL"
,
method
=
RequestMethod
.
GET
)
public
void
generateSQL
(
@RequestParam
(
"resourceCode"
)
String
resourceCode
,
@RequestParam
(
"dimension"
)
String
dimension
,
@RequestParam
(
"ipSeq"
)
Long
ipSeq
,
HttpServletRequest
request
,
HttpServletResponse
response
)
{
Map
<
String
,
Object
>
variables
=
new
HashMap
<>();
Enumeration
<
String
>
keys
=
request
.
getParameterNames
();
while
(
keys
.
hasMoreElements
())
{
String
name
=
(
String
)
keys
.
nextElement
();
String
value
=
request
.
getParameter
(
name
);
variables
.
put
(
name
,
value
);
}
variables
.
remove
(
"resourceCode"
);
variables
.
remove
(
"dimension"
);
variables
.
remove
(
"ipSeq"
);
studioResourceService
.
generateSQL
(
resourceCode
,
dimension
,
ipSeq
,
variables
,
response
);
}
/**
* 获取项目列表
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"项目列表"
)
@GetMapping
(
"/project/list"
)
public
ResponseModel
<
List
<
ProjectModel
>>
selectByIpAgency
(
@RequestParam
(
value
=
"ipSeq"
)
Long
ipSeq
,
@RequestParam
(
value
=
"agencyCode"
)
String
agencyCode
)
throws
SQLException
{
return
ResponseHelper
.
buildResponse
(
studioResourceService
.
getProjectList
(
ipSeq
,
agencyCode
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"应用列表"
)
@GetMapping
(
"application/page/project"
)
public
ResponseModel
<
Page
<
ProjectModel
>>
selectApp
(
@RequestParam
(
value
=
"ipSeq"
)
Long
sequenceNbr
,
@RequestParam
(
value
=
"projectNbr"
)
Long
projectNbr
,
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
)
throws
SQLException
{
Page
page
=
new
Page
();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
DataBaseUtils
.
listToPage
(
studioResourceService
.
getAppList
(
sequenceNbr
,
projectNbr
),
current
,
size
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"数据列表"
)
@GetMapping
(
"idx/page"
)
public
ResponseModel
<
Page
<
ProjectModel
>>
selectIdx
(
@RequestParam
(
value
=
"ipSeq"
)
Long
ipSeq
,
@RequestParam
(
value
=
"agencyCode"
)
String
agencyCode
,
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
)
throws
SQLException
{
Page
page
=
new
Page
();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
DataBaseUtils
.
listToPage
(
studioResourceService
.
getIdx
(
ipSeq
,
agencyCode
),
current
,
size
));
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/DataBaseLinkResource.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.AgencyModel
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
import
com.yeejoin.amos.api.tool.face.model.TemplateVoModel
;
import
com.yeejoin.amos.api.tool.face.service.DataBaseLinkService
;
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
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.sql.SQLException
;
import
java.util.List
;
/**
* @author r
*/
@RestController
@Api
(
tags
=
"数据库信息"
)
@RequestMapping
(
value
=
"/database_link"
)
public
class
DataBaseLinkResource
{
@Autowired
private
DataBaseLinkService
dataBaseLinkService
;
/**
* 新增
*
* @param dataBaseLinkModel 数据库连接
* @return DataBaseLinkModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
DataBaseLinkModel
>
save
(
@RequestBody
DataBaseLinkModel
dataBaseLinkModel
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
save
(
dataBaseLinkModel
));
}
/**
* 根据sequenceNbr更新
*
* @param model 数据库连接
* @return DataBaseLinkModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
public
ResponseModel
<
DataBaseLinkModel
>
updateBySeq
(
@RequestBody
DataBaseLinkModel
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
throws
Exception
{
model
.
setSequenceNbr
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
update
(
model
));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return Boolean
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
removeById
(
sequenceNbr
));
}
/**
* 根据sequenceNbr查询
* @param sequenceNbr 主键
* @return TemplateVoModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
public
ResponseModel
<
DataBaseLinkModel
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
queryBySeq
(
sequenceNbr
));
}
/**
* 机构分页查询
*
* @param current 当前分页
* @param size 分页大小
* @return Page<AgencyModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"机构分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
Page
<
AgencyModel
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
@RequestParam
Long
ipSeq
)
throws
SQLException
{
Page
<
AgencyModel
>
page
=
new
Page
<>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
queryForAgencyPage
(
page
,
ipSeq
));
}
/**
* 列表全部数据查询
*
* @return List<DataBaseLinkModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
DataBaseLinkModel
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
queryForDataBaseList
());
}
/**
* 机构列表查询
*
* @return Page<AgencyModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/agency/list"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"机构列表查询"
,
notes
=
"列表查询"
)
public
ResponseModel
<
List
<
AgencyModel
>>
queryForList
()
throws
SQLException
,
IOException
{
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
queryForAgencyList
());
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/DataBaseNameListResource.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel
;
import
com.yeejoin.amos.api.tool.face.service.DataBaseNameListService
;
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.util.List
;
@RestController
@Api
(
tags
=
"数据库名称表"
)
@RequestMapping
(
value
=
"/database_name"
)
public
class
DataBaseNameListResource
{
@Autowired
private
DataBaseNameListService
dataBaseNameListService
;
/**
* 数据库初始化
*
* @param ipSeq 数据库连接seq
* @return List<DataBaseLinkModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/refresh/{ipSeq}"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"数据库初始化"
,
notes
=
"数据库初始化"
)
public
ResponseModel
<
List
<
String
>>
refresh
(
@PathVariable
Long
ipSeq
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
dataBaseNameListService
.
refreshDataBase
(
ipSeq
));
}
/**
* 分页查询
*
* @param current 当前分页
* @param size 分页大小
* @return Page<DataBaseNameListModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
Page
<
DataBaseNameListModel
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
@RequestParam
Long
ipSeq
)
{
Page
<
DataBaseNameListModel
>
page
=
new
Page
<>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
dataBaseNameListService
.
queryForDataBasePage
(
page
,
ipSeq
));
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/DataBaseResource.java
View file @
65ea6ede
...
@@ -29,7 +29,9 @@ public class DataBaseResource {
...
@@ -29,7 +29,9 @@ public class DataBaseResource {
DataBaseService
dataBaseService
;
DataBaseService
dataBaseService
;
/**
/**
* 新增
* 数据库初始化
* @param dataBaseModel 数据库连接信息
* @return List<DataBaseModel>
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/refresh"
)
@PostMapping
(
value
=
"/refresh"
)
...
@@ -44,9 +46,11 @@ public class DataBaseResource {
...
@@ -44,9 +46,11 @@ public class DataBaseResource {
/**
/**
* 根据sequenceNbr批量删除
* 根据sequenceNbr批量删除
* @param sequenceNbr 物理主键
* @return Boolean[]
*/
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/
s
/{sequenceNbr}"
)
@DeleteMapping
(
value
=
"/
delete
/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"批量删除"
,
notes
=
"根据sequenceNbr删除"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"批量删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
[]>
deleteBySequenceNbr
(
HttpServletRequest
request
,
@PathVariable
(
value
=
"sequenceNbr"
)
String
sequenceNbr
)
{
public
ResponseModel
<
Boolean
[]>
deleteBySequenceNbr
(
HttpServletRequest
request
,
@PathVariable
(
value
=
"sequenceNbr"
)
String
sequenceNbr
)
{
String
Nbr
[]
=
sequenceNbr
.
split
(
","
);
String
Nbr
[]
=
sequenceNbr
.
split
(
","
);
...
...
src/main/java/com/yeejoin/amos/api/tool/controller/RelationResource.java
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.service.AgencyTreeService
;
import
com.yeejoin.amos.api.tool.face.service.DataBaseLinkService
;
import
com.yeejoin.amos.api.tool.face.service.DataBaseService
;
import
com.yeejoin.amos.api.tool.face.service.RelationService
;
import
com.yeejoin.amos.api.tool.face.service.RelationService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -12,7 +11,8 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
...
@@ -12,7 +11,8 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.sql.Connection
;
import
javax.servlet.http.HttpServletResponse
;
@CrossOrigin
@CrossOrigin
@RestController
@RestController
...
@@ -20,21 +20,41 @@ import java.sql.Connection;
...
@@ -20,21 +20,41 @@ import java.sql.Connection;
@RequestMapping
(
value
=
"/Agency"
)
@RequestMapping
(
value
=
"/Agency"
)
public
class
RelationResource
{
public
class
RelationResource
{
@Autowired
@Autowired
RelationService
relationService
;
private
RelationService
relationService
;
@Autowired
DataBaseService
dataBaseService
;
@Autowired
@Autowired
AgencyTreeService
agencyTree
Service
;
DataBaseLinkService
dataBaseLink
Service
;
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
/**
@DeleteMapping
(
value
=
"/relation/{agencyCodeId}/{sequenceNbrs}"
)
* 根据机构ID和数据库sequenceNbr批量删除数据库
*
* @param agencyCode 机构ID
* @param sequenceNbrs 多个主键
* @return String
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/relation/{agencyCode}/{sequenceNbrs}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"机构删除"
,
notes
=
"机构删除"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"机构删除"
,
notes
=
"机构删除"
)
public
ResponseModel
<
String
>
deleteDataBase
(
@PathVariable
Long
agencyCodeId
,
@PathVariable
String
sequenceNbrs
)
throws
Exception
{
public
ResponseModel
<
String
>
deleteDataBase
(
Long
[]
seqs
=
dataBaseService
.
stringToLong
(
sequenceNbrs
);
@PathVariable
String
agencyCode
,
for
(
Long
seq
:
seqs
)
{
@PathVariable
String
sequenceNbrs
)
throws
Exception
{
Connection
connection
=
dataBaseService
.
connectNewDatabase
(
dataBaseService
.
queryBySeq
(
seq
));
relationService
.
deleteAgency
(
agencyCode
,
sequenceNbrs
);
relationService
.
deleteDataBase
(
connection
,
agencyTreeService
.
queryForAgencyCodeById
(
agencyCodeId
));
}
return
ResponseHelper
.
buildResponse
(
"The data has been deleted !"
);
return
ResponseHelper
.
buildResponse
(
"The data has been deleted !"
);
}
}
}
/**
* 导出SQL脚本
*
* @return String
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/output/{agencyCode}/{sequenceNbrs}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出"
,
notes
=
"导出"
)
public
ResponseModel
<
String
>
generateSQL
(
@PathVariable
String
agencyCode
,
@PathVariable
String
sequenceNbrs
,
HttpServletResponse
response
)
throws
Exception
{
relationService
.
outputAgency
(
agencyCode
,
sequenceNbrs
,
response
);
return
ResponseHelper
.
buildResponse
(
"yes"
);
}
}
\ No newline at end of file
src/main/java/com/yeejoin/amos/api/tool/controller/TemplateCategoryResource.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.TemplateCategoryModel
;
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.service.TemplateCategoryService
;
import
com.yeejoin.amos.api.tool.face.service.TemplateService
;
import
com.yeejoin.amos.api.tool.face.service.VisualDesignerService
;
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.util.List
;
@CrossOrigin
@RestController
@Api
(
tags
=
"模板分类管理Api"
)
@RequestMapping
(
value
=
"/tpl_cate"
)
public
class
TemplateCategoryResource
{
@Autowired
private
TemplateCategoryService
templateCategoryService
;
@Autowired
private
TemplateService
templateService
;
@Autowired
private
VisualDesignerService
visualDesignerService
;
/**
* 新增
* @param sequenceNbr 设计器主键
* @param templateCategoryModel 模板分类信息
* @return ApiSourceDto
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/save/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
TemplateCategoryModel
>
save
(
@PathVariable
Long
sequenceNbr
,
@RequestBody
TemplateCategoryModel
templateCategoryModel
){
templateCategoryModel
.
setDesignerType
(
visualDesignerService
.
queryBySeq
(
sequenceNbr
).
getDesignerType
());
templateCategoryModel
=
templateCategoryService
.
createWithModel
(
templateCategoryModel
);
return
ResponseHelper
.
buildResponse
(
templateCategoryModel
);
}
/**
* 根据sequenceNbr更新
* @param sequenceNbr 编码
* @return ApiSourceDto
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
public
ResponseModel
<
TemplateCategoryModel
>
updateBySeqTplCate
(
@RequestBody
TemplateCategoryModel
templateCategoryModel
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
){
templateCategoryModel
.
setSequenceNbr
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
templateCategoryService
.
updateWithModel
(
templateCategoryModel
));
}
/**
* 根据sequenceNbr删除
* @param sequenceNbr 编码
* @return Boolean
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
templateCategoryService
.
deleteById
(
sequenceNbr
));
}
/**
* 根据sequenceNbr查询
* @param sequenceNbr 物理主键
* @return ApiSourceDto
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
public
ResponseModel
<
TemplateCategoryModel
>
selectOne
(
@PathVariable
Long
sequenceNbr
){
return
ResponseHelper
.
buildResponse
(
templateCategoryService
.
queryBySeq
(
sequenceNbr
));
}
/**
* 列表全部数据查询
* @return List<ApiSourceDto>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
TemplateCategoryModel
>>
selectForList
(){
return
ResponseHelper
.
buildResponse
(
templateCategoryService
.
queryForTplCateList
());
}
/**
* 列表树形结构查询
* @return List<ApiSourceDto>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表树形结构查询"
,
notes
=
"列表树形结构查询"
)
@GetMapping
(
value
=
"/tree"
)
public
ResponseModel
<
List
<
TemplateCategoryTreeModel
>>
selectForTree
(){
return
ResponseHelper
.
buildResponse
(
templateCategoryService
.
getTree
());
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/TemplateResource.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
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.service.TemplateService
;
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.springframework.web.multipart.MultipartFile
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.utils.StringUtil
;
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.io.IOException
;
import
java.util.*
;
@CrossOrigin
@RestController
@Api
(
tags
=
"模板管理Api"
)
@RequestMapping
(
value
=
"/tpl"
)
public
class
TemplateResource
{
@Autowired
private
TemplateService
templateService
;
/**
* 新增
* @param tplVoModel 页面表单数据
* @return TemplateModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
TemplateModel
>
save
(
@RequestBody
TemplateVoModel
tplVoModel
)
throws
Exception
{
tplVoModel
.
setDisplayName
(
tplVoModel
.
getComName
());
return
ResponseHelper
.
buildResponse
(
templateService
.
createWithModel
(
templateService
.
convertModel
(
tplVoModel
)));
}
/**
* 根据sequenceNbr更新
* @param tplVoModel 模板信息
* @param sequenceNbr 主键
* @return TemplateModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
public
ResponseModel
<
TemplateModel
>
updateBySequenceNbrTpl
(
@RequestBody
TemplateVoModel
tplVoModel
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
throws
NoSuchFieldException
,
IllegalAccessException
{
tplVoModel
.
setSequenceNbr
(
sequenceNbr
);
tplVoModel
.
setDisplayName
(
tplVoModel
.
getComName
());
return
ResponseHelper
.
buildResponse
(
templateService
.
updateWithModel
(
templateService
.
convertModel
(
tplVoModel
)));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return Boolean
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
templateService
.
removeById
(
sequenceNbr
));
}
/**
* 根据sequenceNbr删除多项
* @param sequenceNbr 主键
* @return String
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/delete/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除多项"
,
notes
=
"根据sequenceNbr删除多项"
)
public
ResponseModel
<
Boolean
>
deleteModelsBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
String
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
templateService
.
removeByIds
(
Arrays
.
asList
(
StringUtil
.
string2Array
(
sequenceNbr
))));
}
/**
* 根据sequenceNbr查询
* @param sequenceNbr 主键
* @return TemplateVoModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
public
ResponseModel
<
TemplateVoModel
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
templateService
.
queryForTplVo
(
sequenceNbr
));
}
/**
* 列表分页查询
* @param current 当前页
* @param size 每页大小
* @param categorySeq 模板分类ID
* @param displayName 模板名称
* @return Page<TemplateModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
Page
<
TemplateModel
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
@RequestParam
(
value
=
"categorySeq"
)
Long
categorySeq
,
@RequestParam
(
value
=
"displayName"
,
required
=
false
)
String
displayName
)
{
Page
<
TemplateModel
>
page
=
new
Page
<>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
templateService
.
queryForTplPage
(
page
,
categorySeq
,
displayName
));
}
/**
* 列表全部数据查询
* @return List<TemplateModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
TemplateModel
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(
templateService
.
queryForTplList
());
}
/**
* 导入
* @param multipartFile 文件
* @return TemplateModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@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 @
65ea6ede
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/enums/SortType.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
enums
;
public
enum
SortType
{
COMPREHENSIVE
(
"综合排序"
,
"SEQUENCE_NBR"
,
"asc"
),
LATEST
(
"最新发布"
,
"REC_DATE"
,
"desc"
),
VIEW_TIMES
(
"最多浏览"
,
"VIEW_TIMES"
,
"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/enums/SourceEnum.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
enums
;
/**
* 数据来源枚举
*/
public
enum
SourceEnum
{
IDX
(
"idx"
,
"指标系统"
);
String
source
;
String
desc
;
SourceEnum
(
String
source
,
String
desc
)
{
this
.
source
=
source
;
this
.
desc
=
desc
;
}
public
String
getSource
()
{
return
source
;
}
public
void
setSource
(
String
source
)
{
this
.
source
=
source
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/AgencyModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.typroject.tyboot.core.rdbms.model.BaseModel
;
/**
* @author r
*/
@Data
@ApiModel
(
value
=
"AgencyModel"
,
description
=
""
)
public
class
AgencyModel
{
@ApiModelProperty
(
value
=
"机构名称"
)
private
String
agencyName
;
@ApiModelProperty
(
value
=
"机构编码"
)
private
String
agencyCode
;
@ApiModelProperty
(
value
=
"机构描述"
)
private
String
agencyDesc
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/AmosToolTemplateModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.typroject.tyboot.core.rdbms.model.BaseModel
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
AmosToolTemplateModel
extends
BaseModel
{
/**
* 模板名称
*/
private
String
templateName
;
/**
* 场景类型
*/
private
String
categoryScene
;
/**
* 效果图
*/
@ApiModelProperty
(
value
=
"效果图"
)
protected
String
sketch
;
/**
* 所属机构
*/
private
String
agencyName
;
/**
* 查看次数
*/
private
Integer
viewTimes
;
/**
* 模板URL
*/
private
String
templateLink
;
/**
* 是否删除
*/
private
Boolean
isDelete
;
public
void
setSketch
(
String
sketch
)
{
this
.
sketch
=
sketch
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/AmosToolTemplateVoModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
org.typroject.tyboot.core.rdbms.model.BaseModel
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
@NoArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@JsonIgnoreProperties
({
"hibernateLazyInitializer"
,
"handler"
})
public
class
AmosToolTemplateVoModel
extends
AmosToolTemplateModel
{
/**
* 模板名称
*/
private
String
templateName
;
/**
* 场景类型
*/
private
String
categoryScene
;
/**
* 效果图
*/
@ApiModelProperty
(
value
=
"效果图"
)
protected
String
sketch
;
/**
* 所属机构
*/
private
String
agencyName
;
/**
* 模板URL
*/
private
String
templateLink
;
@ApiModelProperty
(
value
=
"效果图"
)
private
List
<
PictureModel
>
sketches
=
new
ArrayList
<>();
}
src/main/java/com/yeejoin/amos/api/tool/face/model/DataBaseLinkModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
com.yeejoin.amos.api.tool.face.orm.entity.DataBaseLink
;
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
;
/**
* @author r
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@NoArgsConstructor
@ApiModel
(
value
=
"DataBaseLinkModel"
,
description
=
""
)
public
class
DataBaseLinkModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"主机IP"
)
private
String
ip
;
@ApiModelProperty
(
value
=
"端口"
)
private
String
port
;
@ApiModelProperty
(
value
=
"数据库名"
)
private
String
dbName
=
""
;
@ApiModelProperty
(
value
=
"用户名"
)
private
String
userName
;
@ApiModelProperty
(
value
=
"密码"
)
private
String
passWord
;
public
DataBaseLinkModel
(
String
ip
,
String
port
,
String
dbName
,
String
userName
,
String
passWord
)
{
this
.
ip
=
ip
;
this
.
port
=
port
;
this
.
dbName
=
dbName
;
this
.
userName
=
userName
;
this
.
passWord
=
passWord
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/DataBaseNameListModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
org.typroject.tyboot.core.rdbms.model.BaseModel
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
value
=
"DataBaseNameListModel"
,
description
=
""
)
public
class
DataBaseNameListModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"数据库名"
)
private
String
dbName
;
@ApiModelProperty
(
value
=
"连接id"
)
private
Long
parentId
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/PictureModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
PictureModel
{
@ApiModelProperty
(
value
=
"图片名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"图片UID"
)
private
String
uid
;
@ApiModelProperty
(
value
=
"图片url"
)
private
String
url
;
@ApiModelProperty
(
value
=
"图片状态"
)
private
String
status
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/ProjectModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
value
=
"Model"
,
description
=
""
)
public
class
ProjectModel
{
@ApiModelProperty
(
value
=
"PROJECT_SEQ or APP_SEQ"
)
private
String
sequenceNbr
;
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"机构编码"
)
private
String
agencyCode
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/RelationModel.java
View file @
65ea6ede
...
@@ -11,15 +11,15 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
...
@@ -11,15 +11,15 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
@ApiModel
(
value
=
"RelationModel"
,
description
=
""
)
@ApiModel
(
value
=
"RelationModel"
,
description
=
""
)
public
class
RelationModel
extends
BaseModel
{
public
class
RelationModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"
表1
名称"
)
@ApiModelProperty
(
value
=
"
父表
名称"
)
private
String
table1
;
private
String
parentName
;
@ApiModelProperty
(
value
=
"
表1
字段"
)
@ApiModelProperty
(
value
=
"
父表
字段"
)
private
String
field1
;
private
String
parentField
;
@ApiModelProperty
(
value
=
"表
2
名称"
)
@ApiModelProperty
(
value
=
"表名称"
)
private
String
table2
;
private
String
name
;
@ApiModelProperty
(
value
=
"表
2
字段"
)
@ApiModelProperty
(
value
=
"表字段"
)
private
String
field
2
;
private
String
field
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/RelationTreeModel.java
View file @
65ea6ede
...
@@ -4,8 +4,11 @@ import io.swagger.annotations.ApiModel;
...
@@ -4,8 +4,11 @@ import io.swagger.annotations.ApiModel;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
// import sun.reflect.generics.tree.Tree;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
//import java.util.TreeMap;
@Data
@Data
@NoArgsConstructor
@NoArgsConstructor
...
@@ -25,13 +28,11 @@ public class RelationTreeModel {
...
@@ -25,13 +28,11 @@ public class RelationTreeModel {
private
String
parentName
;
private
String
parentName
;
@ApiModelProperty
(
value
=
"子节点"
)
@ApiModelProperty
(
value
=
"子节点"
)
private
List
<
RelationTreeModel
>
children
;
private
List
<
RelationTreeModel
>
children
=
new
ArrayList
<>()
;
public
RelationTreeModel
(
String
name
,
String
field
,
String
parentField
,
String
parentName
,
List
<
RelationTreeModel
>
children
)
{
public
RelationTreeModel
(
String
name
,
String
field
,
String
parentField
)
{
this
.
name
=
name
;
this
.
name
=
name
;
this
.
field
=
field
;
this
.
field
=
field
;
this
.
parentField
=
parentField
;
this
.
parentField
=
parentField
;
this
.
parentName
=
parentName
;
this
.
children
=
children
;
}
}
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/StudioResourceModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.typroject.tyboot.core.rdbms.model.BaseModel
;
/**
* <p>
*
* </p>
*
* @author 子杨
* @since 2022-08-16
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
StudioResourceModel
extends
BaseModel
{
/**
* 资源编码
*/
private
String
resourceCode
;
/**
* 资源名称
*/
private
String
resourceName
;
// private String resourceTable;
/**
* 资源参数
*/
private
String
resourceParams
;
/**
* 删除资源sql
*/
private
String
resourceDeleteSql
;
/**
* 插入资源sql
*/
private
String
resourceInsertSql
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/TemplateCategoryModel.java
0 → 100644
View file @
65ea6ede
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
org.typroject.tyboot.core.rdbms.model.BaseModel
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"TemplateCategoryModel"
,
description
=
""
)
public
class
TemplateCategoryModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"模板分类名称"
)
private
String
cateName
;
@ApiModelProperty
(
value
=
"模板类型"
)
private
String
tplType
;
@ApiModelProperty
(
value
=
"所用设计器类型"
)
private
String
designerType
;
@ApiModelProperty
(
value
=
"图标路径"
)
private
String
icon
=
""
;
@ApiModelProperty
(
value
=
"是否删除"
)
private
Boolean
isDel
=
false
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/TemplateCategoryTreeModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
@NoArgsConstructor
@ApiModel
(
value
=
"TemplateCategoryTreeModel"
,
description
=
""
)
public
class
TemplateCategoryTreeModel
{
@ApiModelProperty
(
value
=
"物理主键"
)
private
Long
sequenceNbr
;
@ApiModelProperty
(
value
=
"父ID"
)
private
Long
parentId
=
0L
;
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"设计器类型"
)
private
String
designerType
=
""
;
@ApiModelProperty
(
value
=
"子列表"
)
private
List
<
TemplateCategoryTreeModel
>
children
=
new
ArrayList
<>();
public
void
setParentId
(
Long
parentId
)
{
this
.
parentId
=
parentId
;
}
public
TemplateCategoryTreeModel
(
Long
sequenceNb
,
Long
parentId
,
String
name
,
String
designerType
){
this
.
sequenceNbr
=
sequenceNb
;
this
.
parentId
=
parentId
;
this
.
name
=
name
;
this
.
designerType
=
designerType
;
}
public
TemplateCategoryTreeModel
(
Long
sequenceNb
,
Long
parentId
,
String
name
,
String
designerType
,
List
<
TemplateCategoryTreeModel
>
children
){
this
.
sequenceNbr
=
sequenceNb
;
this
.
parentId
=
parentId
;
this
.
name
=
name
;
this
.
designerType
=
designerType
;
this
.
children
=
children
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/TemplateModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
;
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
;
@Data
@NoArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
autoResultMap
=
true
)
@ApiModel
(
value
=
"TemplateModel"
,
description
=
""
)
public
class
TemplateModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"展示名称"
)
protected
String
displayName
=
""
;
@ApiModelProperty
(
value
=
"模板标识"
)
protected
String
comKey
=
""
;
@ApiModelProperty
(
value
=
"模板名称"
)
protected
String
comName
=
""
;
@ApiModelProperty
(
value
=
"模板内容"
)
@TableField
(
typeHandler
=
JacksonTypeHandler
.
class
)
protected
JSONObject
content
;
@ApiModelProperty
(
value
=
"分类ID"
)
protected
Long
cateSeq
;
@ApiModelProperty
(
value
=
"模板状态"
)
protected
Boolean
openStatus
=
false
;
@ApiModelProperty
(
value
=
"缩略图"
)
protected
String
thumb
;
@ApiModelProperty
(
value
=
"效果图"
)
protected
String
sketch
;
@ApiModelProperty
(
value
=
"是否删除"
)
protected
Boolean
isDel
=
false
;
public
void
setThumb
(
String
thumb
)
{
this
.
thumb
=
thumb
;
}
public
void
setSketch
(
String
sketch
)
{
this
.
sketch
=
sketch
;
}
public
TemplateModel
(
JSONObject
content
,
Long
cateSeq
)
{
this
.
content
=
content
;
this
.
cateSeq
=
cateSeq
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/TemplateVoModel.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
@NoArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"TemplateVoModel"
,
description
=
""
)
@JsonIgnoreProperties
({
"hibernateLazyInitializer"
,
"handler"
})
public
class
TemplateVoModel
extends
TemplateModel
{
@ApiModelProperty
(
value
=
"模板内容"
)
private
String
contentStr
;
@ApiModelProperty
(
value
=
"缩略图"
)
private
List
<
PictureModel
>
thumbs
=
new
ArrayList
<>();
@ApiModelProperty
(
value
=
"效果图"
)
private
List
<
PictureModel
>
sketches
=
new
ArrayList
<>();
public
void
setIsDel
(
Boolean
isDel
)
{
this
.
isDel
=
isDel
;
}
public
String
getComName
()
{
return
comName
;
}
public
void
setDisplayName
(
String
displayName
)
{
this
.
displayName
=
displayName
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/AmosToolTemplateMapper.java
0 → 100644
View file @
65ea6ede
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.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.Update
;
import
java.util.List
;
@Mapper
public
interface
AmosToolTemplateMapper
extends
BaseMapper
<
AmosToolTemplate
>
{
/**
* 全部
*/
@Select
(
"select * from amos_tool_template"
+
" order by ${miniSences} ${way}"
)
List
<
AmosToolTemplateModel
>
listAll
(
@Param
(
"miniSences"
)
String
miniSences
,
@Param
(
"way"
)
String
way
);
/**
* 具体场景
*/
@Select
(
"select * from amos_tool_template"
+
" where CATEGORY_SCENE=#{categoryScene} order by `${miniSences}` ${way}"
)
List
<
AmosToolTemplateModel
>
queryByScenes
(
@Param
(
"categoryScene"
)
String
categoryScene
,
@Param
(
"miniSences"
)
String
miniSences
,
@Param
(
"way"
)
String
way
);
/**
* 点击查看次数加一
*/
@Update
(
"update amos_tool_template set VIEW_TIMES = VIEW_TIMES+1 where SEQUENCE_NBR = #{sequenceNbr}"
)
boolean
updateTimesById
(
@Param
(
"sequenceNbr"
)
Long
sequenceNbr
);
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/DataBaseLinkMapper.java
0 → 100644
View file @
65ea6ede
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.DataBaseLink
;
import
org.mapstruct.Mapper
;
import
org.springframework.stereotype.Repository
;
/**
* Mapper 接口
*
* @author r
*/
@Mapper
@Repository
public
interface
DataBaseLinkMapper
extends
BaseMapper
<
DataBaseLink
>
{
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/DataBaseNameListMapper.java
0 → 100644
View file @
65ea6ede
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 @
65ea6ede
...
@@ -5,14 +5,25 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
...
@@ -5,14 +5,25 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import
com.yeejoin.amos.api.tool.face.orm.entity.Relation
;
import
com.yeejoin.amos.api.tool.face.orm.entity.Relation
;
import
com.yeejoin.amos.api.tool.face.service.RelationService
;
import
com.yeejoin.amos.api.tool.face.service.RelationService
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.SelectProvider
;
import
org.apache.ibatis.annotations.SelectProvider
;
import
org.mapstruct.Mapper
;
import
org.springframework.stereotype.Repository
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@Mapper
@Repository
public
interface
RelationMapper
extends
BaseMapper
<
Relation
>
{
public
interface
RelationMapper
extends
BaseMapper
<
Relation
>
{
@SelectProvider
(
type
=
RelationService
.
class
,
method
=
"deleteDataBase"
)
@SelectProvider
(
type
=
RelationService
.
class
,
method
=
"deleteDataBase"
)
@SqlParser
(
filter
=
true
)
@SqlParser
(
filter
=
true
)
List
<
Relation
>
deleteDataBase
(
@Param
(
"maps"
)
List
<
HashMap
<
String
,
String
>>
maps
);
List
<
Relation
>
deleteDataBase
(
@Param
(
"maps"
)
List
<
HashMap
<
String
,
String
>>
maps
);
@Select
(
"${sqlStr}"
)
List
<
HashMap
<
String
,
String
>>
getPublicItems
(
@Param
(
value
=
"sqlStr"
)
String
sqlStr
);
}
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/StudioResourceMapper.java
0 → 100644
View file @
65ea6ede
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.StudioResource
;
import
com.yeejoin.amos.api.tool.face.orm.entity.TableColumn
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 子杨
* @since 2022-08-16
*/
public
interface
StudioResourceMapper
extends
BaseMapper
<
StudioResource
>
{
List
<
TableColumn
>
queryForListByTableName
(
@Param
(
"tableName"
)
String
tableName
);
}
\ No newline at end of file
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/TemplateCategoryMapper.java
0 → 100644
View file @
65ea6ede
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.TemplateCategory
;
public
interface
TemplateCategoryMapper
extends
BaseMapper
<
TemplateCategory
>
{
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/TemplateMapper.java
0 → 100644
View file @
65ea6ede
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.Template
;
public
interface
TemplateMapper
extends
BaseMapper
<
Template
>
{
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/AmosToolTemplate.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@TableName
(
"amos_tool_template"
)
public
class
AmosToolTemplate
extends
BaseEntity
{
/**
* 模板名称
*/
@TableField
(
"TEMPLATE_NAME"
)
private
String
templateName
;
/**
* 场景类型
*/
@TableField
(
"CATEGORY_SCENE"
)
private
String
categoryScene
;
/**
*效果图
*/
@TableField
(
"SKETCH"
)
private
String
sketch
;
/**
* 所属机构
*/
@TableField
(
"AGENCY_NAME"
)
private
String
agencyName
;
/**
* 查看次数
*/
@TableField
(
"VIEW_TIMES"
)
private
Integer
viewTimes
;
/**
* 模板URL
*/
@TableField
(
"TEMPLATE_LINK"
)
private
String
templateLink
;
/**
* 是否删除
*/
@TableField
(
"IS_DELETE"
)
private
Boolean
isDelete
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/DataBaseLink.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* @author r
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"database_link"
)
public
class
DataBaseLink
extends
BaseEntity
{
/**
*主机IP
*/
@TableField
(
"IP"
)
private
String
ip
;
/**
*端口
*/
@TableField
(
"PORT"
)
private
String
port
;
/**
*数据库名
*/
@TableField
(
"DATABASE_NAME"
)
private
String
dbName
;
/**
*用户名
*/
@TableField
(
"USER_NAME"
)
private
String
userName
;
/**
*密码
*/
@TableField
(
"PASSWORD"
)
private
String
passWord
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/DataBaseNameList.java
0 → 100644
View file @
65ea6ede
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
(
"DATABASE_NAME"
)
private
String
dbName
;
/**
* 连接id
*/
@TableField
(
"PARENT_ID"
)
private
Long
parentId
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/Relation.java
View file @
65ea6ede
...
@@ -16,24 +16,24 @@ public class Relation extends BaseEntity {
...
@@ -16,24 +16,24 @@ public class Relation extends BaseEntity {
* 表1
* 表1
*/
*/
@TableField
(
"table1"
)
@TableField
(
"table1"
)
private
String
table1
;
private
String
parentName
;
/**
/**
* 表1 字段
* 表1 字段
*/
*/
@TableField
(
"table1_field"
)
@TableField
(
"table1_field"
)
private
String
field1
;
private
String
parentField
;
/**
/**
* 表2
* 表2
*/
*/
@TableField
(
"table2"
)
@TableField
(
"table2"
)
private
String
table2
;
private
String
name
;
/**
/**
* 表2 字段
* 表2 字段
*/
*/
@TableField
(
"table2_field"
)
@TableField
(
"table2_field"
)
private
String
field
2
;
private
String
field
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/StudioResource.java
0 → 100644
View file @
65ea6ede
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
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
/**
* <p>
*
* </p>
*
* @author 子杨
* @since 2022-08-16
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@TableName
(
"studio_resource"
)
public
class
StudioResource
extends
BaseEntity
{
/**
* 资源编码
*/
@TableField
(
"RESOURCE_CODE"
)
private
String
resourceCode
;
/**
* 资源名称
*/
@TableField
(
"RESOURCE_NAME"
)
private
String
resourceName
;
// @TableField("RESOURCE_TABLE")
// private String resourceTable;
/**
* 资源参数
*/
@TableField
(
"RESOURCE_PARAMS"
)
private
String
resourceParams
;
/**
* 删除资源sql
*/
@TableField
(
"RESOURCE_DELETE_SQL"
)
private
String
resourceDeleteSql
;
/**
* 插入资源sql
*/
@TableField
(
"RESOURCE_INSERT_SQL"
)
private
String
resourceInsertSql
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/TableColumn.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
entity
;
import
lombok.Data
;
@Data
public
class
TableColumn
{
private
String
columnName
;
private
Boolean
isRequired
;
private
Boolean
isPk
;
private
int
sort
;
private
String
columnComment
;
private
Boolean
isIncrement
;
private
String
columnType
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/Template.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.annotation.SqlCondition
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
;
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
(
value
=
"studio_template"
,
autoResultMap
=
true
)
public
class
Template
extends
BaseEntity
{
/**
*展示名称
*/
@TableField
(
value
=
"DISPLAY_NAME"
,
condition
=
SqlCondition
.
LIKE
)
private
String
displayName
;
/**
*模板标识
*/
@TableField
(
"COMPONENT_KEY"
)
private
String
comKey
;
/**
*模板名称
*/
@TableField
(
"COMPONENT_NAME"
)
private
String
comName
;
/**
*模板内容
*/
@TableField
(
value
=
"CONTENT"
,
typeHandler
=
JacksonTypeHandler
.
class
)
private
JSONObject
content
;
/**
*分类ID
*/
@TableField
(
"CATEGORY_SEQ"
)
private
Long
cateSeq
;
/**
*模板状态
*/
@TableField
(
"OPEN_STATUS"
)
private
Boolean
openStatus
;
/**
*缩略图
*/
@TableField
(
"THUMB"
)
private
String
thumb
;
/**
*状态图
*/
@TableField
(
"SKETCH"
)
private
String
sketch
;
/**
*是否删除
*/
@TableField
(
"IS_DELETE"
)
private
Boolean
isDel
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/TemplateCategory.java
0 → 100644
View file @
65ea6ede
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
(
"studio_template_category"
)
public
class
TemplateCategory
extends
BaseEntity
{
/**
*分类名称
*/
@TableField
(
"CATEGORY_NAME"
)
private
String
cateName
;
/**
*模板类型
*/
@TableField
(
"TEMP_TYPE"
)
private
String
tplType
;
/**
*所属设计器类型
*/
@TableField
(
"DESIGNER_TYPE"
)
private
String
designerType
;
/**
*图标路径
*/
@TableField
(
"ICON"
)
private
String
icon
;
/**
*是否删除
*/
@TableField
(
"IS_DELETE"
)
private
Boolean
isDel
;
}
src/main/java/com/yeejoin/amos/api/tool/face/service/AmosDemoService.java
View file @
65ea6ede
...
@@ -31,7 +31,7 @@ public class AmosDemoService extends BaseService<AmosDemoModel,AmosDemo,AmosDemo
...
@@ -31,7 +31,7 @@ public class AmosDemoService extends BaseService<AmosDemoModel,AmosDemo,AmosDemo
}
}
/**
/**
* 列表查询
示例
* 列表查询
*/
*/
public
List
<
AmosDemoModel
>
queryForAmosDemoList
(
String
agencyCode
)
{
public
List
<
AmosDemoModel
>
queryForAmosDemoList
(
String
agencyCode
)
{
return
this
.
queryForList
(
""
,
false
,
agencyCode
);
return
this
.
queryForList
(
""
,
false
,
agencyCode
);
...
...
src/main/java/com/yeejoin/amos/api/tool/face/service/AmosToolTemplateService.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.enums.SortType
;
import
com.yeejoin.amos.api.tool.face.model.*
;
import
com.yeejoin.amos.api.tool.face.orm.dao.AmosToolTemplateMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.AmosToolTemplate
;
import
com.yeejoin.amos.api.tool.utils.ConvertUtil
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.annotation.Resource
;
import
java.sql.*
;
import
java.util.*
;
@Component
public
class
AmosToolTemplateService
extends
BaseService
<
AmosToolTemplateModel
,
AmosToolTemplate
,
AmosToolTemplateMapper
>
{
@Resource
private
AmosToolTemplateMapper
amosToolTemplateMapper
;
@Autowired
private
DataBaseLinkService
dataBaseLinkService
;
/**
* 点击后查看次数加一
*/
public
boolean
updateTimes
(
Long
sequenceNbr
)
{
return
amosToolTemplateMapper
.
updateTimesById
(
sequenceNbr
);
}
/**
* 获取排序类型
*/
private
SortType
getSortType
(
String
miniSences
)
{
return
SortType
.
fromName
(
miniSences
);
}
/**
* 列表全部数据
*/
public
List
<
AmosToolTemplateModel
>
queryList
(){
return
this
.
queryForList
(
""
,
false
);
}
/**
* 列表分页查询
*/
public
Page
<
AmosToolTemplateModel
>
queryForAmosToolPage
(
Page
page
)
{
return
this
.
queryForPage
(
page
,
null
,
false
);
}
/**
* 统一处理
*/
public
List
<
AmosToolTemplateModel
>
query
(
String
categoryScene
,
String
miniSences
)
{
SortType
sortType
=
getSortType
(
miniSences
);
if
(
"全部"
.
equals
(
categoryScene
))
{
return
amosToolTemplateMapper
.
listAll
(
sortType
.
getField
(),
sortType
.
getDirection
());
}
else
{
return
amosToolTemplateMapper
.
queryByScenes
(
categoryScene
,
sortType
.
getField
(),
sortType
.
getDirection
());
}
}
/**
* 生成随机UID
*/
public
String
getUid
()
{
UUID
uuid
=
UUID
.
randomUUID
();
String
str
=
uuid
.
toString
();
return
str
.
replace
(
"-"
,
""
);
}
/**
* url转化图片
*/
public
List
<
PictureModel
>
urlToModel
(
String
url
)
{
List
<
PictureModel
>
pictureModels
=
new
ArrayList
<>();
PictureModel
pictureModel
=
new
PictureModel
(
""
,
this
.
getUid
(),
url
,
"done"
);
pictureModels
.
add
(
pictureModel
);
return
pictureModels
;
}
/**
* model转化VO
*/
public
AmosToolTemplateVoModel
convertVoModel
(
AmosToolTemplateModel
templateModel
)
{
AmosToolTemplateVoModel
tplVoModel
=
new
AmosToolTemplateVoModel
();
BeanUtils
.
copyProperties
(
templateModel
,
tplVoModel
);
if
(
templateModel
.
getSketch
()
!=
null
)
tplVoModel
.
setSketches
(
this
.
urlToModel
(
templateModel
.
getSketch
()));
return
tplVoModel
;
}
/**
* TplVoModel转化TplModel
*/
public
AmosToolTemplateModel
convertModel
(
AmosToolTemplateVoModel
amosToolTplVoModel
)
throws
NoSuchFieldException
,
IllegalAccessException
{
AmosToolTemplateModel
amosToolTemplateModel
=
new
AmosToolTemplateModel
();
BeanUtils
.
copyProperties
(
amosToolTplVoModel
,
amosToolTemplateModel
,
"thumbs"
,
"sketches"
,
"contentStr"
);
//判定sketch为空
if
(
amosToolTplVoModel
.
getSketches
().
size
()
!=
0
)
{
amosToolTemplateModel
.
setSketch
(
ConvertUtil
.
objectListToUrl
(
amosToolTplVoModel
.
getSketches
()));
}
return
amosToolTemplateModel
;
}
/**
* 根据sequenceNbr获取模板并转化为VO
*/
public
AmosToolTemplateVoModel
queryForTplVo
(
Long
sequenceNbr
)
{
AmosToolTemplateModel
templateModel
=
this
.
queryBySeq
(
sequenceNbr
);
AmosToolTemplateVoModel
templateVoModel
=
this
.
convertVoModel
(
templateModel
);
return
templateVoModel
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/ApiInfoService.java
View file @
65ea6ede
...
@@ -3,18 +3,16 @@ package com.yeejoin.amos.api.tool.face.service;
...
@@ -3,18 +3,16 @@ package com.yeejoin.amos.api.tool.face.service;
import
com.yeejoin.amos.api.tool.face.orm.entity.ApiInfo
;
import
com.yeejoin.amos.api.tool.face.orm.entity.ApiInfo
;
import
com.yeejoin.amos.api.tool.face.orm.dao.ApiInfoMapper
;
import
com.yeejoin.amos.api.tool.face.orm.dao.ApiInfoMapper
;
import
com.yeejoin.amos.api.tool.face.model.ApiInfoModel
;
import
com.yeejoin.amos.api.tool.face.model.ApiInfoModel
;
import
org.apache.commons.beanutils.ConvertUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
@Service
@Service
public
class
ApiInfoService
extends
BaseService
<
ApiInfoModel
,
ApiInfo
,
ApiInfoMapper
>
{
public
class
ApiInfoService
extends
BaseService
<
ApiInfoModel
,
ApiInfo
,
ApiInfoMapper
>
{
@Autowired
ApiSourceService
apiSourceService
;
/**
/**
* 分页查询
* 分页查询
...
@@ -24,29 +22,30 @@ public class ApiInfoService extends BaseService<ApiInfoModel,ApiInfo,ApiInfoMapp
...
@@ -24,29 +22,30 @@ public class ApiInfoService extends BaseService<ApiInfoModel,ApiInfo,ApiInfoMapp
}
}
/**
/**
* 列表查询
示例
* 列表查询
*/
*/
public
List
<
ApiInfoModel
>
queryForApiInfoList
()
{
public
List
<
ApiInfoModel
>
queryForApiInfoList
()
{
return
this
.
queryForList
(
""
,
false
);
return
this
.
queryForList
(
""
,
false
);
}
}
/**
/**
*
列表查询 示例
*
根据来源获取Api列表
*/
*/
public
List
<
ApiInfoModel
>
queryForApiInfoLis
tByApiSource
(
String
apiSource
)
{
public
List
<
ApiInfoModel
>
selec
tByApiSource
(
String
apiSource
)
{
return
this
.
queryForList
(
""
,
false
,
apiSource
);
return
this
.
queryForList
(
""
,
false
,
apiSource
);
}
}
/**
/**
*
删除多个模板
*
根据来源获取Api列表主键
*/
*/
public
Boolean
[]
deleteByIds
(
String
sequenceNbr
){
public
List
<
String
>
selectSeqByApiSource
(
String
apiSource
)
{
String
[]
arr
=
sequenceNbr
.
split
(
","
);
List
<
String
>
sequenceNbrs
=
new
ArrayList
<>();
Long
[]
seq
=
(
Long
[])
ConvertUtils
.
convert
(
arr
,
Long
.
class
);
for
(
ApiInfoModel
model
:
this
.
selectByApiSource
(
apiSource
)){
Boolean
[]
arr2
=
new
Boolean
[
arr
.
length
];
sequenceNbrs
.
add
(
Long
.
toString
(
model
.
getSequenceNbr
()));
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++){
arr2
[
i
]
=
this
.
removeById
(
seq
[
i
]);
}
}
return
arr2
;
return
sequenceNbrs
;
}
}
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/ApiSourceService.java
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.yeejoin.amos.api.tool.face.model.ApiInfoModel
;
import
com.yeejoin.amos.api.tool.face.model.ApiSourceModel
;
import
com.yeejoin.amos.api.tool.face.model.ApiSourceModel
;
import
com.yeejoin.amos.api.tool.face.orm.entity.ApiSource
;
import
com.yeejoin.amos.api.tool.face.orm.entity.ApiSource
;
import
com.yeejoin.amos.api.tool.face.orm.dao.ApiSourceMapper
;
import
com.yeejoin.amos.api.tool.face.orm.dao.ApiSourceMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.List
;
...
@@ -11,16 +13,32 @@ import java.util.List;
...
@@ -11,16 +13,32 @@ import java.util.List;
@Service
@Service
public
class
ApiSourceService
extends
BaseService
<
ApiSourceModel
,
ApiSource
,
ApiSourceMapper
>
{
public
class
ApiSourceService
extends
BaseService
<
ApiSourceModel
,
ApiSource
,
ApiSourceMapper
>
{
@Autowired
private
ApiInfoService
apiInfoService
;
/**
/**
* 列表查询
示例
* 列表查询
*/
*/
public
List
<
ApiSourceModel
>
queryForApiSourceList
()
{
public
List
<
ApiSourceModel
>
queryForApiSourceList
()
{
return
this
.
queryForList
(
""
,
false
);
return
this
.
queryForList
(
""
,
false
);
}
}
/**
* 根据机构ID获取机构编码
*/
public
String
queryCodeById
(
Long
sequenceNbr
){
public
String
queryCodeById
(
Long
sequenceNbr
){
ApiSourceModel
model
=
this
.
queryModelByParams
(
sequenceNbr
);
ApiSourceModel
model
=
this
.
queryModelByParams
(
sequenceNbr
);
return
model
.
getCode
();
return
model
.
getCode
();
}
}
/**
* 通过API来源ID删除API来源
*/
public
Boolean
deleteById
(
Long
sequenceNbr
){
List
<
String
>
strings
=
apiInfoService
.
selectSeqByApiSource
(
this
.
queryCodeById
(
sequenceNbr
));
if
(
strings
.
size
()
!=
0
)
{
this
.
removeByIds
(
strings
);
}
return
this
.
removeById
(
sequenceNbr
);
}
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/DataBaseLinkService.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.AgencyModel
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.DataBaseLinkMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.DataBaseLink
;
import
com.yeejoin.amos.api.tool.utils.AESUtils
;
import
com.yeejoin.amos.api.tool.utils.DataBaseUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.sql.DataSource
;
import
java.io.IOException
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* 服务实现类
*
* @author r
*/
@Service
public
class
DataBaseLinkService
extends
BaseService
<
DataBaseLinkModel
,
DataBaseLink
,
DataBaseLinkMapper
>
{
private
static
final
Logger
log
=
LogManager
.
getLogger
(
DataBaseLinkService
.
class
);
@Autowired
private
DataSource
dataSource
;
/**
* 新增
*/
public
DataBaseLinkModel
save
(
DataBaseLinkModel
dataBaseLinkModel
)
throws
Exception
{
DataBaseLinkModel
model
=
this
.
encryptPwd
(
dataBaseLinkModel
);
if
(
this
.
testConnection
(
model
))
{
return
this
.
createWithModel
(
model
);
}
else
{
return
new
DataBaseLinkModel
();
}
}
/**
* 编辑
*/
public
DataBaseLinkModel
update
(
DataBaseLinkModel
dataBaseLinkModel
)
throws
Exception
{
DataBaseLinkModel
model
=
this
.
encryptPwd
(
dataBaseLinkModel
);
if
(
this
.
testConnection
(
model
))
{
return
this
.
updateWithModel
(
model
);
}
else
{
return
new
DataBaseLinkModel
();
}
}
/**
* 机构分页查询
*/
public
Page
<
AgencyModel
>
queryForAgencyPage
(
Page
<
AgencyModel
>
page
,
Long
ipSeq
)
throws
SQLException
{
Connection
connection
=
this
.
connectNewDatabase
(
this
.
queryBySeq
(
ipSeq
));
List
<
Map
<
String
,
Object
>>
maps
=
DataBaseUtils
.
getMaps
(
"SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;"
,
connection
);
connection
.
close
();
List
<
AgencyModel
>
records
=
new
ArrayList
<>();
for
(
Map
<
String
,
Object
>
map
:
maps
)
{
AgencyModel
model
=
new
AgencyModel
();
model
.
setAgencyName
(
map
.
get
(
"AGENCY_NAME"
).
toString
());
model
.
setAgencyCode
(
map
.
get
(
"AGENCY_CODE"
).
toString
());
if
((
map
.
get
(
"AGENCY_DESC"
)
!=
null
))
model
.
setAgencyDesc
(
map
.
get
(
"AGENCY_DESC"
).
toString
());
records
.
add
(
model
);
}
Page
<
AgencyModel
>
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
;
}
/**
* 机构列表查询
*/
public
List
<
AgencyModel
>
queryForAgencyList
()
throws
SQLException
,
IOException
{
Connection
con
=
dataSource
.
getConnection
();
URL
url
=
new
URL
(
con
.
getMetaData
().
getURL
().
replace
(
"jdbc:mysql"
,
"http"
));
con
.
close
();
log
.
info
(
url
);
DataBaseLink
dataBaseLink
=
getOne
(
new
QueryWrapper
<
DataBaseLink
>().
eq
(
"IP"
,
url
.
getHost
()));
DataBaseLinkModel
dataBaseLinkModel
=
new
DataBaseLinkModel
();
Bean
.
toModel
(
dataBaseLink
,
dataBaseLinkModel
);
Connection
connection
=
this
.
connectNewDatabase
(
dataBaseLinkModel
);
List
<
Map
<
String
,
Object
>>
maps
=
DataBaseUtils
.
getMaps
(
"SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;"
,
connection
);
connection
.
close
();
List
<
AgencyModel
>
records
=
new
ArrayList
<>();
for
(
Map
<
String
,
Object
>
map
:
maps
)
{
AgencyModel
model
=
new
AgencyModel
();
model
.
setAgencyName
(
map
.
get
(
"AGENCY_NAME"
).
toString
());
model
.
setAgencyCode
(
map
.
get
(
"AGENCY_CODE"
).
toString
());
if
((
map
.
get
(
"AGENCY_DESC"
)
!=
null
))
model
.
setAgencyDesc
(
map
.
get
(
"AGENCY_DESC"
).
toString
());
records
.
add
(
model
);
}
return
records
;
}
/**
* 列表查询
*/
public
List
<
DataBaseLinkModel
>
queryForDataBaseList
()
{
return
this
.
queryForList
(
""
,
false
);
}
/**
* 获取数据库名称
*/
public
String
[]
getDataBaseName
(
Connection
connection
)
throws
SQLException
{
Statement
stmt
=
connection
.
createStatement
();
ResultSet
rs
=
stmt
.
executeQuery
(
"SHOW DATABASES"
);
String
[]
result
=
new
String
[
1000
];
int
count
=
0
;
while
(
rs
.
next
())
{
result
[
count
++]
=
rs
.
getString
(
1
);
}
return
result
;
}
/**
* 连接数据库
*/
public
Connection
connectNewDatabase
(
DataBaseLinkModel
model
)
{
try
{
// 加载数据库驱动
Class
.
forName
(
"com.mysql.cj.jdbc.Driver"
);
// 连接新增的数据库
String
dbUrl
=
"jdbc:mysql://"
+
model
.
getIp
()
+
":"
+
model
.
getPort
()
+
"/"
+
model
.
getDbName
();
// 解密pwd,并连接
return
DriverManager
.
getConnection
(
dbUrl
,
model
.
getUserName
(),
AESUtils
.
decrypt
(
model
.
getPassWord
()));
}
catch
(
SQLException
|
ClassNotFoundException
e
)
{
e
.
printStackTrace
();
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
return
null
;
}
/**
* 测试连接数据库
*/
public
boolean
testConnection
(
DataBaseLinkModel
model
)
throws
Exception
{
Connection
connection
=
this
.
connectNewDatabase
(
model
);
if
(
connection
!=
null
)
{
connection
.
close
();
return
true
;
}
return
false
;
}
/**
* 加密model里的密码
*/
public
DataBaseLinkModel
encryptPwd
(
DataBaseLinkModel
model
)
throws
Exception
{
model
.
setPassWord
(
AESUtils
.
encrypt
(
model
.
getPassWord
()));
return
model
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/DataBaseNameListService.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.DataBaseNameListMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
java.sql.Connection
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
@Service
public
class
DataBaseNameListService
extends
BaseService
<
DataBaseNameListModel
,
DataBaseNameList
,
DataBaseNameListMapper
>
{
@Autowired
private
DataBaseLinkService
dataBaseLinkService
;
/**
* 分页查询
*/
public
Page
<
DataBaseNameListModel
>
queryForDataBasePage
(
Page
<
DataBaseNameListModel
>
page
,
Long
parentId
)
{
return
this
.
queryForPage
(
page
,
null
,
false
,
parentId
);
}
/**
* 初始化数据库名表
*/
public
List
<
String
>
refreshDataBase
(
Long
ipSeq
)
throws
Exception
{
DataBaseLinkModel
dataBaseLinkModel
=
dataBaseLinkService
.
queryBySeq
(
ipSeq
);
//清空表单
this
.
remove
(
new
QueryWrapper
<
DataBaseNameList
>().
eq
(
"PARENT_ID"
,
ipSeq
));
//连接数据库
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
dataBaseLinkModel
);
if
(
connection
==
null
)
return
null
;
List
<
String
>
strings
=
new
ArrayList
<>();
Collection
<
DataBaseNameList
>
dataBaseNameLists
=
new
ArrayList
<>();
for
(
String
name
:
dataBaseLinkService
.
getDataBaseName
(
connection
))
{
if
(
name
==
null
)
break
;
DataBaseNameListModel
model
=
new
DataBaseNameListModel
(
name
,
ipSeq
);
strings
.
add
(
name
);
dataBaseNameLists
.
add
(
this
.
prepareEntity
(
model
));
}
this
.
saveBatch
(
dataBaseNameLists
);
connection
.
close
();
return
strings
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/RelationService.java
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.
baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.
yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseModel
;
import
com.yeejoin.amos.api.tool.face.model.DataBase
NameList
Model
;
import
com.yeejoin.amos.api.tool.face.model.RelationModel
;
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.model.RelationTreeModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.DataBaseMapper
;
import
com.yeejoin.amos.api.tool.face.orm.dao.RelationMapper
;
import
com.yeejoin.amos.api.tool.face.orm.dao.RelationMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.DataBase
;
import
com.yeejoin.amos.api.tool.face.orm.entity.Relation
;
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.DataBaseUtils
;
import
org.apache.commons.beanutils.ConvertUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Service
;
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
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.sql.*
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
yeejoin
.
amos
.
api
.
tool
.
utils
.
DataBaseUtils
.*;
@Service
@Service
public
class
RelationService
extends
BaseService
<
RelationModel
,
Relation
,
RelationMapper
>
{
public
class
RelationService
extends
BaseService
<
RelationModel
,
Relation
,
RelationMapper
>
{
@Autowired
private
RelationMapper
relationMapper
;
@Autowired
@Autowired
DataBaseService
dataBase
Service
;
private
DataBaseLinkService
dataBaseLink
Service
;
@Autowired
@Autowired
DataBaseMapper
dataBaseMapper
;
JdbcTemplate
jdbcTemplate
;
@Autowired
private
DataBaseNameListService
dataBaseNameListService
;
/**
* 根据机构删除
*/
public
void
deleteAgency
(
String
agencyCode
,
String
sequenceNbrs
)
throws
Exception
{
for
(
Long
seq
:
(
Long
[])
ConvertUtils
.
convert
(
StringUtil
.
string2Array
(
sequenceNbrs
),
Long
.
class
))
{
DataBaseNameListModel
nameListModel
=
dataBaseNameListService
.
queryBySeq
(
seq
);
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
nameListModel
.
getParentId
());
model
.
setDbName
(
nameListModel
.
getDbName
());
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
this
.
deleteDataBase
(
connection
,
agencyCode
,
model
.
getDbName
());
}
}
/**
* 导出机构
*/
public
void
outputAgency
(
String
agencyCode
,
String
sequenceNbrs
,
HttpServletResponse
response
)
throws
Exception
{
for
(
Long
seq
:
(
Long
[])
ConvertUtils
.
convert
(
StringUtil
.
string2Array
(
sequenceNbrs
),
Long
.
class
))
{
DataBaseNameListModel
nameListModel
=
dataBaseNameListService
.
queryBySeq
(
seq
);
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
nameListModel
.
getParentId
());
model
.
setDbName
(
nameListModel
.
getDbName
());
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
this
.
insertData
(
connection
,
agencyCode
,
model
.
getDbName
(),
response
);
}
}
/**
/**
* 删除数据库
* 删除数据库
*/
*/
public
String
deleteDataBase
(
Connection
connection
,
String
agencyCode
)
throws
SQLException
{
public
String
deleteDataBase
(
Connection
connection
,
String
agencyCode
,
String
dbName
)
throws
SQLException
{
try
{
try
{
// 加载数据库驱动
Class
.
forName
(
"com.mysql.cj.jdbc.Driver"
);
if
(!
connection
.
isClosed
())
if
(!
connection
.
isClosed
())
System
.
out
.
println
(
"Succeeded connecting to the Database!"
);
System
.
out
.
println
(
"Succeeded connecting to the Database!"
);
//通过连接获取relation表树形结构
//通过连接获取relation表树形结构
List
<
RelationTreeModel
>
trees
=
this
.
createRelationTree
(
connection
);
List
<
RelationTreeModel
>
trees
=
this
.
createRelationTree
(
dbName
);
for
(
RelationTreeModel
tree
:
trees
)
{
for
(
RelationTreeModel
tree
:
trees
)
{
//根据根节点获得根节点相关列表
//根据根节点获得根节点相关列表
List
<
RelationTreeModel
>
array
=
this
.
createList
(
tree
);
List
<
RelationTreeModel
>
array
=
this
.
createList
(
tree
);
//根据列表获取sql语句
//根据列表获取sql语句
System
.
out
.
println
(
this
.
createSqlByArray
(
array
,
agencyCode
));
System
.
out
.
println
(
this
.
createSqlByArray
(
array
,
agencyCode
));
System
.
out
.
println
(
statementSql
(
this
.
createSqlByArray
(
array
,
agencyCode
)
,
connection
));
System
.
out
.
println
(
statementSql
(
this
.
createSqlByArray
(
array
,
agencyCode
)
.
toString
(),
connection
));
}
}
}
catch
(
SQLException
e
)
{
}
catch
(
ClassNotFoundException
|
SQLException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
connection
.
close
();
connection
.
close
();
return
null
;
return
null
;
}
}
/**
/**
* 执行sql
* 执行sql
*/
*/
public
int
statementSql
(
String
Builder
sql
,
Connection
connection
)
{
public
int
statementSql
(
String
sql
,
Connection
connection
)
{
int
count
=
0
;
int
count
=
0
;
try
{
try
{
Statement
statement
=
connection
.
createStatement
();
Statement
statement
=
connection
.
createStatement
();
count
=
statement
.
executeUpdate
(
sql
.
toString
()
);
count
=
statement
.
executeUpdate
(
sql
);
statement
.
close
();
statement
.
close
();
return
count
;
return
count
;
}
catch
(
SQLException
e
)
{
}
catch
(
SQLException
e
)
{
...
@@ -72,24 +110,10 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
...
@@ -72,24 +110,10 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
/**
/**
* 获取关系表转化为map
* 获取关系表转化为map
*/
*/
public
List
<
HashMap
<
String
,
String
>>
queryRelation
(
Connection
connection
)
throws
SQLException
{
public
List
<
HashMap
<
String
,
String
>>
queryRelation
(
String
dbName
)
throws
SQLException
{
QueryWrapper
<
DataBase
>
wrapper
=
new
QueryWrapper
<>();
StringBuilder
sql
=
new
StringBuilder
(
"SELECT * FROM "
);
wrapper
.
eq
(
"dbName"
,
"amos_tool_library"
);
sql
.
append
(
dbName
).
append
(
"_relation;"
);
DataBase
entity
=
dataBaseMapper
.
selectOne
(
wrapper
);
return
relationMapper
.
getPublicItems
(
sql
.
toString
());
Statement
statement
=
connection
.
createStatement
();
ResultSet
resultSet
=
statement
.
executeQuery
(
"SELECT * FROM relation ;"
);
ResultSetMetaData
data
=
resultSet
.
getMetaData
();
List
<
HashMap
<
String
,
String
>>
maps
=
new
ArrayList
<>();
while
(
resultSet
.
next
())
{
HashMap
<
String
,
String
>
map
=
new
HashMap
<>();
for
(
int
i
=
1
;
i
<=
data
.
getColumnCount
();
i
++)
{
map
.
put
(
data
.
getColumnName
(
i
),
resultSet
.
getString
(
data
.
getColumnName
(
i
)));
}
maps
.
add
(
map
);
}
resultSet
.
close
();
statement
.
close
();
return
maps
;
}
}
/**
/**
...
@@ -112,11 +136,12 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
...
@@ -112,11 +136,12 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
public
List
<
RelationTreeModel
>
createNodes
(
List
<
HashMap
<
String
,
String
>>
maps
)
{
public
List
<
RelationTreeModel
>
createNodes
(
List
<
HashMap
<
String
,
String
>>
maps
)
{
List
<
RelationTreeModel
>
relationTreeModels
=
new
ArrayList
<>();
List
<
RelationTreeModel
>
relationTreeModels
=
new
ArrayList
<>();
for
(
HashMap
<
String
,
String
>
map
:
maps
)
{
for
(
HashMap
<
String
,
String
>
map
:
maps
)
{
RelationTreeModel
model
=
new
RelationTreeModel
();
RelationTreeModel
model
=
new
RelationTreeModel
(
map
.
get
(
"TABLE2"
),
map
.
get
(
"TABLE2_FIELD"
),
map
.
get
(
"TABLE1_FIELD"
));
if
(
map
.
get
(
"TABLE1"
)
==
null
)
if
(
map
.
get
(
"TABLE1"
)
==
null
)
model
=
new
RelationTreeModel
(
map
.
get
(
"TABLE2"
),
map
.
get
(
"TABLE2_FIELD"
),
map
.
get
(
"TABLE1_FIELD"
),
""
,
null
);
model
.
setParentName
(
""
);
else
else
model
=
new
RelationTreeModel
(
map
.
get
(
"TABLE2"
),
map
.
get
(
"TABLE2_FIELD"
),
map
.
get
(
"TABLE1_FIELD"
),
map
.
get
(
"TABLE1"
),
null
);
model
.
setParentName
(
map
.
get
(
"TABLE1"
)
);
relationTreeModels
.
add
(
model
);
relationTreeModels
.
add
(
model
);
}
}
return
relationTreeModels
;
return
relationTreeModels
;
...
@@ -125,8 +150,8 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
...
@@ -125,8 +150,8 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
/**
/**
* 创建关系表树
* 创建关系表树
*/
*/
public
List
<
RelationTreeModel
>
createRelationTree
(
Connection
connection
)
throws
SQLException
{
public
List
<
RelationTreeModel
>
createRelationTree
(
String
dbName
)
throws
SQLException
{
List
<
HashMap
<
String
,
String
>>
maps
=
this
.
queryRelation
(
connection
);
List
<
HashMap
<
String
,
String
>>
maps
=
this
.
queryRelation
(
dbName
);
List
<
RelationTreeModel
>
trees
=
new
ArrayList
<>();
List
<
RelationTreeModel
>
trees
=
new
ArrayList
<>();
trees
.
addAll
(
createTree
(
createNodes
(
maps
),
""
));
trees
.
addAll
(
createTree
(
createNodes
(
maps
),
""
));
return
trees
;
return
trees
;
...
@@ -139,7 +164,8 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
...
@@ -139,7 +164,8 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
StringBuilder
sql
=
new
StringBuilder
();
StringBuilder
sql
=
new
StringBuilder
();
if
(
array
.
size
()
==
1
)
{
if
(
array
.
size
()
==
1
)
{
sql
.
append
(
"DELETE FROM "
).
append
(
array
.
get
(
0
).
getName
()).
append
(
" WHERE "
);
sql
.
append
(
"DELETE FROM "
).
append
(
array
.
get
(
0
).
getName
()).
append
(
" WHERE "
);
sql
.
append
(
array
.
get
(
0
).
getName
()).
append
(
"."
).
append
(
array
.
get
(
0
).
getField
()).
append
(
" = '"
).
append
(
agencyCode
).
append
(
"' ;"
);
sql
.
append
(
array
.
get
(
0
).
getName
()).
append
(
"."
).
append
(
array
.
get
(
0
).
getField
());
sql
.
append
(
" = '"
).
append
(
agencyCode
).
append
(
"' ;"
);
}
else
{
}
else
{
sql
.
append
(
"DELETE "
).
append
(
array
.
get
(
0
).
getName
());
sql
.
append
(
"DELETE "
).
append
(
array
.
get
(
0
).
getName
());
for
(
RelationTreeModel
model
:
array
)
{
for
(
RelationTreeModel
model
:
array
)
{
...
@@ -154,7 +180,102 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
...
@@ -154,7 +180,102 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
sql
.
append
(
model
.
getName
()).
append
(
"."
).
append
(
model
.
getField
());
sql
.
append
(
model
.
getName
()).
append
(
"."
).
append
(
model
.
getField
());
}
}
}
}
sql
.
append
(
" WHERE "
).
append
(
array
.
get
(
0
).
getName
()).
append
(
"."
).
append
(
array
.
get
(
0
).
getField
()).
append
(
" = '"
).
append
(
agencyCode
).
append
(
"' ;"
);
sql
.
append
(
" WHERE "
).
append
(
array
.
get
(
0
).
getName
()).
append
(
"."
).
append
(
array
.
get
(
0
).
getField
());
sql
.
append
(
" = '"
).
append
(
agencyCode
).
append
(
"' ;"
);
}
return
sql
;
}
/**
* 插入数据
*/
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
=
DataBaseUtils
.
getTableColumn
(
model
.
getName
(),
connection
);
String
sql
=
this
.
getSelectSQL
(
tableSet
,
model
.
getName
(),
columns
,
agencyCode
).
toString
();
List
<
Map
<
String
,
Object
>>
dataList
=
DataBaseUtils
.
getMaps
(
sql
,
connection
);
System
.
out
.
println
(
sql
);
StringBuffer
insertSQL
=
DataBaseUtils
.
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
;
return
sql
;
}
}
...
@@ -186,4 +307,39 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
...
@@ -186,4 +307,39 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
result
.
addAll
(
createNodeList
(
model
.
getChildren
()));
result
.
addAll
(
createNodeList
(
model
.
getChildren
()));
return
result
;
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/StudioResourceService.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
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.ProjectModel
;
import
com.yeejoin.amos.api.tool.face.orm.entity.StudioResource
;
import
com.yeejoin.amos.api.tool.face.model.StudioResourceModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.StudioResourceMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.TableColumn
;
import
com.yeejoin.amos.api.tool.utils.DataBaseUtils
;
import
com.yeejoin.amos.api.tool.utils.DateUtils
;
import
com.yeejoin.amos.api.tool.utils.SqlHelper
;
import
org.apache.commons.lang3.time.DateFormatUtils
;
import
org.apache.commons.text.StringSubstitutor
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.sql.DataSource
;
import
java.io.*
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
* 服务类
* </p>
*
* @author 子杨
* @since 2022-08-16
*/
@Component
public
class
StudioResourceService
extends
BaseService
<
StudioResourceModel
,
StudioResource
,
StudioResourceMapper
>
{
/**
* 数据库备份路径
*/
public
static
final
String
BACKUP_PATH
=
"/db/"
;
/**
* 数据库备份文本前缀
*/
public
static
String
ONESQL_PREFIX
=
""
;
private
static
String
SUFFIX
=
"sql"
;
private
static
String
BR
=
"\r\n"
;
private
static
String
SLASH
=
"/"
;
private
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"
;
private
static
String
DELIMITER
=
"###################################"
;
@Autowired
JdbcTemplate
jdbcTemplate
;
@Autowired
DataSource
datasource
;
@Autowired
private
DataBaseLinkService
dataBaseLinkService
;
@Autowired
private
SqlHelper
sqlHelper
;
@Autowired
EmqKeeper
emqKeeper
;
/**
* 列表查询 示例
*/
public
List
<
StudioResourceModel
>
queryForStudioResourceList
(
String
resourceCode
)
{
return
this
.
queryForList
(
""
,
false
,
resourceCode
);
}
public
void
generateSQL
(
String
resourceCode
,
String
dimension
,
Long
ipSeq
,
Map
<
String
,
Object
>
variables
,
HttpServletResponse
response
)
{
try
{
// if (resourceCode.equals("StudioApplication")){
// ApplicationModel model = applicationService.queryBySeq(Long.valueOf(variables.get(dimension).toString()));
// variables.put("agencyCode", model.getAgencyCode());
// }
List
<
StudioResourceModel
>
resourceList
=
queryForStudioResourceList
(
resourceCode
);
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
();
}
print
(
variables
.
get
(
dimension
).
toString
(),
"开始执行"
,
"start"
);
// 备份文件路径名称
String
fileName
=
(
SourceEnum
.
IDX
.
getSource
().
equals
(
resourceCode
.
toLowerCase
())
?
(
resourceCode
.
toLowerCase
()
+
"_"
)
:
"studio_"
)
+
DateFormatUtils
.
format
(
new
Date
(),
"yyyyMMdd"
)
+
"."
+
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
deleteSql
=
new
StringBuffer
();
StringBuffer
insertSql
=
new
StringBuffer
();
for
(
StudioResourceModel
model
:
resourceList
)
{
if
(!
validationParameters
(
model
,
variables
))
{
continue
;
}
if
(!
ObjectUtils
.
isEmpty
(
model
.
getResourceDeleteSql
()))
{
String
json
=
format
(
model
.
getResourceDeleteSql
(),
variables
);
JSONObject
dimensionData
=
JSONObject
.
parseObject
(
json
);
String
deleteAllSql
=
dimensionData
.
getString
(
dimension
);
deleteAllSql
.
replaceAll
(
";"
,
";"
+
BR
);
deleteSql
.
append
(
deleteAllSql
).
append
(
BRANCH
).
append
(
BR
);
}
if
(!
ObjectUtils
.
isEmpty
(
model
.
getResourceInsertSql
()))
{
String
sql
=
buildInsertSql
(
model
,
dimension
,
ipSeq
,
variables
);
if
(!
ObjectUtils
.
isEmpty
(
sql
))
insertSql
.
append
(
sql
);
}
}
if
(
deleteSql
.
length
()
>
0
)
{
print
(
variables
.
get
(
dimension
).
toString
(),
"开始创建delete语句..."
,
"running"
);
writer
.
write
(
BR
+
DELIMITER
+
BR
);
writer
.
write
(
"/**"
+
BR
+
"* 删除历史资源数据 "
+
BR
+
"**/"
+
BR
);
writer
.
write
(
BR
+
DELIMITER
+
BR
);
writer
.
write
(
deleteSql
.
toString
());
writer
.
write
(
BR
+
BR
+
DELIMITER
+
BR
);
print
(
variables
.
get
(
dimension
).
toString
(),
"delete语句创建完成..."
,
"running"
);
}
if
(
insertSql
.
length
()
>
0
)
{
print
(
variables
.
get
(
dimension
).
toString
(),
"开始创建insert语句..."
,
"running"
);
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
);
print
(
variables
.
get
(
dimension
).
toString
(),
"insert语句创建完成..."
,
"running"
);
}
writer
.
flush
();
writer
.
close
();
out
.
close
();
if
(
deleteSql
.
length
()
==
0
&&
insertSql
.
length
()
==
0
)
{
print
(
variables
.
get
(
dimension
).
toString
(),
"该项目下数据路径字段为空,不支持导出..."
,
"start"
);
return
;
}
download
(
response
,
fileName
,
sqlFilePath
);
print
(
variables
.
get
(
dimension
).
toString
(),
"执行结束"
,
"end"
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
catch
(
SQLException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
private
boolean
validationParameters
(
StudioResourceModel
model
,
Map
<
String
,
Object
>
variables
)
{
String
text
=
model
.
getResourceParams
();
JSONArray
fields
=
JSONObject
.
parseArray
(
text
);
for
(
int
i
=
0
;
i
<
fields
.
size
();
i
++)
{
if
(!
variables
.
containsKey
(
fields
.
getJSONObject
(
i
).
getString
(
"name"
)))
{
return
false
;
}
}
return
true
;
}
private
String
buildInsertSql
(
StudioResourceModel
resource
,
String
dimension
,
Long
ipSeq
,
Map
<
String
,
Object
>
variables
)
throws
SQLException
{
StringBuffer
sbsql
=
new
StringBuffer
();
String
json
=
format
(
resource
.
getResourceInsertSql
(),
variables
);
JSONObject
dimensionData
=
JSONObject
.
parseObject
(
json
);
JSONObject
selectAllSql
=
dimensionData
.
getJSONObject
(
dimension
);
DataBaseLinkModel
dataBaseLinkModel
=
dataBaseLinkService
.
queryBySeq
(
ipSeq
);
for
(
String
tableName
:
selectAllSql
.
keySet
())
{
String
selectsql
=
format
(
selectAllSql
.
getString
(
tableName
),
variables
);
if
(
dimension
.
equals
(
"appSeq"
))
{
dataBaseLinkModel
.
setDbName
(
dataBaseLinkModel
.
getDbName
().
replace
(
"project"
,
"studio"
));
}
else
if
(
dimension
.
equals
(
"projectSeq"
))
{
dataBaseLinkModel
.
setDbName
(
dataBaseLinkModel
.
getDbName
().
replace
(
"project"
,
"idx"
));
}
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
dataBaseLinkModel
);
if
(
ObjectUtils
.
isEmpty
(
selectAllSql
.
keySet
()))
{
return
""
;
}
List
<
TableColumn
>
columns
=
DataBaseUtils
.
getTableColumn
(
tableName
,
connection
);
List
<
Map
<
String
,
Object
>>
dataList
=
DataBaseUtils
.
getMaps
(
selectsql
,
connection
);
sbsql
.
append
(
DataBaseUtils
.
getInsertSQL
(
dataList
,
columns
,
tableName
));
connection
.
close
();
}
return
sbsql
.
toString
();
}
public
static
String
format
(
String
sqlTemplate
,
Map
<
String
,
Object
>
parameter
)
{
StringSubstitutor
ss
=
new
StringSubstitutor
(
parameter
);
return
ss
.
replace
(
sqlTemplate
);
}
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
();
}
private
void
print
(
String
id
,
String
msg
,
String
step
)
{
String
percent
=
"0"
;
percent
=
ValidationUtil
.
equals
(
step
,
"end"
)
?
"100"
:
ValidationUtil
.
equals
(
step
,
"running"
)
?
"50"
:
"10"
;
JSONObject
event
=
new
JSONObject
();
event
.
put
(
"percent"
,
percent
);
event
.
put
(
"status"
,
"running"
);
event
.
put
(
"logInfo"
,
msg
);
event
.
put
(
"time"
,
DateUtils
.
toDateStr
(
DateUtils
.
format
()));
try
{
emqKeeper
.
getMqttClient
().
publish
(
"/topicTable/solidify/"
+
(
id
.
indexOf
(
','
)
!=
-
1
?
id
.
split
(
","
)[
0
]
:
id
),
event
.
toString
().
getBytes
(),
0
,
false
);
}
catch
(
MqttException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 获取项目列表
*/
public
List
<
ProjectModel
>
getProjectList
(
Long
ipSeq
,
String
agencyCode
)
throws
SQLException
{
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
ipSeq
);
model
.
setDbName
(
"amos_studio"
);
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
Statement
sql
=
connection
.
createStatement
();
String
sqlStr
=
"select SEQUENCE_NBR,PROJECT_NAME,AGENCY_CODE from amos_studio.studio_project "
+
"where AGENCY_CODE = "
+
"'"
+
agencyCode
+
"'"
;
// System.out.println(sqlStr);
ResultSet
resultSet
=
sql
.
executeQuery
(
sqlStr
);
ResultSetMetaData
md
=
resultSet
.
getMetaData
();
//获得结果集结构信息,元数据
List
<
ProjectModel
>
listPm
=
new
ArrayList
<>();
//实例化一个list作为容器
try
{
//循环赋值 添加ProjectMode到list
while
(
resultSet
.
next
())
{
//每次循环都实例化一个user 用来储存属性
ProjectModel
pm
=
new
ProjectModel
();
pm
.
setName
(
resultSet
.
getString
(
"PROJECT_NAME"
));
pm
.
setSequenceNbr
(
resultSet
.
getString
(
"SEQUENCE_NBR"
));
pm
.
setAgencyCode
(
resultSet
.
getString
(
"AGENCY_CODE"
));
listPm
.
add
(
pm
);
}
}
catch
(
SQLException
throwables
)
{
throwables
.
printStackTrace
();
}
finally
{
//关闭资源
connection
.
close
();
}
return
listPm
;
}
public
List
<
ProjectModel
>
getAppList
(
Long
ipSeq
,
Long
projectNbr
)
throws
SQLException
{
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
ipSeq
);
model
.
setDbName
(
"amos_studio"
);
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
Statement
sql
=
connection
.
createStatement
();
String
sqlStr
=
"select SEQUENCE_NBR,APP_NAME from amos_studio.studio_application "
+
"where PROJECT_SEQ = "
+
"'"
+
projectNbr
+
"'"
;
// System.out.println(sqlStr);
ResultSet
resultSet
=
sql
.
executeQuery
(
sqlStr
);
ResultSetMetaData
md
=
resultSet
.
getMetaData
();
//获得结果集结构信息,元数据
List
<
ProjectModel
>
listPm
=
new
ArrayList
<>();
//实例化一个list作为容器
try
{
//循环赋值 添加ProjectMode到list
while
(
resultSet
.
next
())
{
//每次循环都实例化一个user 用来储存属性
ProjectModel
pm
=
new
ProjectModel
();
pm
.
setName
(
resultSet
.
getString
(
"APP_NAME"
));
pm
.
setSequenceNbr
(
resultSet
.
getString
(
"SEQUENCE_NBR"
));
listPm
.
add
(
pm
);
}
}
catch
(
SQLException
throwables
)
{
throwables
.
printStackTrace
();
}
finally
{
//关闭资源
connection
.
close
();
}
return
listPm
;
}
public
List
<
ProjectModel
>
getIdx
(
Long
ipSeq
,
String
agencyCode
)
throws
SQLException
{
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
ipSeq
);
model
.
setDbName
(
"amos_idx"
);
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
Statement
sql
=
connection
.
createStatement
();
String
sqlStr
=
"select id,agencyCode,name,type from amos_idx.idx_explorer "
+
"where agencyCode = '"
+
agencyCode
+
"' and type = 'project'"
;
// System.out.println(sqlStr);
ResultSet
resultSet
=
sql
.
executeQuery
(
sqlStr
);
ResultSetMetaData
md
=
resultSet
.
getMetaData
();
//获得结果集结构信息,元数据
List
<
ProjectModel
>
listPm
=
new
ArrayList
<>();
//实例化一个list作为容器
try
{
//循环赋值 添加ProjectMode到list
while
(
resultSet
.
next
())
{
//每次循环都实例化一个user 用来储存属性
ProjectModel
pm
=
new
ProjectModel
();
pm
.
setName
(
resultSet
.
getString
(
"name"
));
pm
.
setSequenceNbr
(
resultSet
.
getString
(
"id"
));
pm
.
setAgencyCode
(
agencyCode
);
listPm
.
add
(
pm
);
}
resultSet
.
close
();
}
catch
(
SQLException
throwables
)
{
throwables
.
printStackTrace
();
}
finally
{
//关闭资源
connection
.
close
();
}
return
listPm
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/TemplateCategoryService.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.yeejoin.amos.api.tool.face.model.TemplateCategoryModel
;
import
com.yeejoin.amos.api.tool.face.model.TemplateCategoryTreeModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.TemplateCategoryMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.TemplateCategory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
@Service
public
class
TemplateCategoryService
extends
BaseService
<
TemplateCategoryModel
,
TemplateCategory
,
TemplateCategoryMapper
>
{
@Autowired
private
VisualDesignerService
visualDesignerService
;
@Autowired
private
TemplateService
templateService
;
/**
* 列表查询
*/
public
List
<
TemplateCategoryModel
>
queryForTplCateList
()
{
return
this
.
queryForList
(
""
,
false
);
}
/**
* 通过模板分类ID删除模板分类
*/
public
Boolean
deleteById
(
Long
sequenceNbr
){
List
<
String
>
strings
=
templateService
.
selectSeqsByCategorySeq
(
sequenceNbr
);
if
(
strings
.
size
()
!=
0
)
{
this
.
removeByIds
(
strings
);
}
return
this
.
removeById
(
sequenceNbr
);
}
/**
* 模板分类表单数据转化为树形节点
*/
public
List
<
TemplateCategoryTreeModel
>
tplCateToNode
(
List
<
TemplateCategoryModel
>
templateCategoryModels
){
List
<
TemplateCategoryTreeModel
>
nodes
=
new
ArrayList
<>();
for
(
TemplateCategoryModel
model
:
templateCategoryModels
){
TemplateCategoryTreeModel
node
=
new
TemplateCategoryTreeModel
();
node
.
setName
(
model
.
getCateName
());
node
.
setSequenceNbr
(
model
.
getSequenceNbr
());
node
.
setParentId
(
1L
);
node
.
setDesignerType
(
model
.
getDesignerType
());
nodes
.
add
(
node
);
}
return
nodes
;
}
/**
* 获得模板分类树
*/
public
List
<
TemplateCategoryTreeModel
>
getTree
()
{
List
<
TemplateCategoryTreeModel
>
nodes
=
this
.
tplCateToNode
(
this
.
queryForTplCateList
());
nodes
.
addAll
(
visualDesignerService
.
VisualDesignerToNode
(
visualDesignerService
.
queryForVisualDesignerList
()));
return
getChildren
(
nodes
,
""
,
0L
);
}
/**
* 获得模板分类子节点(递归)
*/
public
List
<
TemplateCategoryTreeModel
>
getChildren
(
List
<
TemplateCategoryTreeModel
>
nodes
,
String
parent
,
Long
id
){
List
<
TemplateCategoryTreeModel
>
tree
=
new
ArrayList
<>();
for
(
TemplateCategoryTreeModel
node
:
nodes
){
if
(
node
.
getParentId
()
==
0L
&&
parent
.
equals
(
""
)){
node
.
setChildren
(
getChildren
(
nodes
,
node
.
getDesignerType
(),
node
.
getSequenceNbr
()));
tree
.
add
(
node
);
}
else
{
if
(
parent
.
equals
(
node
.
getDesignerType
())
&&
node
.
getParentId
()
!=
0L
)
{
node
.
setParentId
(
id
);
tree
.
add
(
node
);
}
}
}
return
tree
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/TemplateService.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
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.ValidationUtil
;
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.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
;
}
/**
* 列表查询
*/
public
List
<
TemplateModel
>
queryForTplListByCategorySeq
(
Long
categorySeq
)
{
return
this
.
queryForList
(
""
,
false
,
categorySeq
);
}
/**
* 根据模板分类ID获取模板sequenceNb's
*/
public
List
<
String
>
selectSeqsByCategorySeq
(
Long
categorySeq
)
{
List
<
String
>
strings
=
new
ArrayList
<>();
for
(
TemplateModel
model
:
this
.
queryForTplListByCategorySeq
(
categorySeq
))
{
strings
.
add
(
Long
.
toString
(
model
.
getSequenceNbr
()));
}
return
strings
;
}
/**
* 列表查询
*/
public
List
<
TemplateModel
>
queryForTplList
()
{
return
this
.
queryForList
(
""
,
false
);
}
/**
* 根据sequenceNbr获取模板并转化为VO
*/
public
TemplateVoModel
queryForTplVo
(
Long
sequenceNbr
)
{
TemplateModel
templateModel
=
this
.
queryBySeq
(
sequenceNbr
);
TemplateVoModel
templateVoModel
=
this
.
convertVoModel
(
templateModel
);
if
(
templateModel
.
getContent
()
!=
null
)
{
templateVoModel
.
setContentStr
(
templateModel
.
getContent
().
toString
());
}
return
templateVoModel
;
}
/**
* TplVoModel转化TplModel
*/
public
TemplateModel
convertModel
(
TemplateVoModel
tplVoModel
)
throws
NoSuchFieldException
,
IllegalAccessException
{
TemplateModel
templateModel
=
new
TemplateModel
();
BeanUtils
.
copyProperties
(
tplVoModel
,
templateModel
,
"thumbs"
,
"sketches"
,
"contentStr"
);
//判定thumbs为空
if
(
tplVoModel
.
getThumbs
().
size
()
!=
0
)
{
templateModel
.
setThumb
(
ConvertUtil
.
objectListToUrl
(
tplVoModel
.
getThumbs
()));
}
//判定sketch为空
if
(
tplVoModel
.
getSketches
().
size
()
!=
0
)
{
templateModel
.
setSketch
(
ConvertUtil
.
objectListToUrl
(
tplVoModel
.
getSketches
()));
}
templateModel
.
setContent
(
JSON
.
parseObject
(
tplVoModel
.
getContentStr
()));
return
templateModel
;
}
/**
* 读取json文件
*/
public
String
readMultipartFile
(
MultipartFile
multipartFile
)
throws
IOException
{
Reader
reader
=
new
InputStreamReader
(
multipartFile
.
getInputStream
(),
"utf-8"
);
int
ch
=
0
;
StringBuffer
stringBuffer
=
new
StringBuffer
();
while
((
ch
=
reader
.
read
())
!=
-
1
)
{
stringBuffer
.
append
((
char
)
ch
);
}
reader
.
close
();
return
stringBuffer
.
toString
();
}
/**
* 通过json文件建立空白模板
*/
public
TemplateModel
fileToTpl
(
MultipartFile
multipartFile
)
throws
IOException
{
JSONObject
content
=
JSON
.
parseObject
(
this
.
readMultipartFile
(
multipartFile
));
String
str
=
"1668429235251548162"
;
return
new
TemplateModel
(
content
,
Long
.
parseLong
(
str
));
}
/**
* model转化VO
*/
public
TemplateVoModel
convertVoModel
(
TemplateModel
templateModel
)
{
TemplateVoModel
tplVoModel
=
new
TemplateVoModel
();
BeanUtils
.
copyProperties
(
templateModel
,
tplVoModel
);
if
(
templateModel
.
getSketch
()
!=
null
)
tplVoModel
.
setSketches
(
this
.
urlToPicModel
(
templateModel
.
getSketch
()));
if
(
templateModel
.
getThumb
()
!=
null
)
tplVoModel
.
setThumbs
(
this
.
urlToPicModel
(
templateModel
.
getThumb
()));
System
.
out
.
println
(
tplVoModel
.
getThumbs
());
return
tplVoModel
;
}
/**
* 生成随机UID
*/
public
String
getUid
()
{
UUID
uuid
=
UUID
.
randomUUID
();
String
str
=
uuid
.
toString
();
return
str
.
replace
(
"-"
,
""
);
}
/**
* url转化图片
*/
public
List
<
PictureModel
>
urlToPicModel
(
String
url
)
{
List
<
PictureModel
>
pictureModels
=
new
ArrayList
<>();
PictureModel
pictureModel
=
new
PictureModel
(
""
,
this
.
getUid
(),
url
,
"done"
);
pictureModels
.
add
(
pictureModel
);
return
pictureModels
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/TransferDataService.java
0 → 100644
View file @
65ea6ede
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.DataBaseUtils
;
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
final
String
TABLE_DES
=
"mcb_warning_base_source_attribution"
;
private
static
final
String
TABLE_ORI
=
"qms_explorer"
;
private
static
final
String
DBNAME_DES
=
"amos_mcb"
;
private
static
final
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
=
DataBaseUtils
.
getMaps
(
"SELECT * FROM "
+
TABLE_ORI
+
" ;"
,
connection
);
connection
.
close
();
connection
=
this
.
connectDataBase
(
DBNAME_DES
);
List
<
TableColumn
>
columns
=
DataBaseUtils
.
getTableColumn
(
TABLE_DES
,
connection
);
List
<
Map
<
String
,
Object
>>
dataList
=
this
.
convertDataMap
(
maps
,
columns
);
System
.
out
.
println
(
DataBaseUtils
.
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/VisualDesignerService.java
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.yeejoin.amos.api.tool.face.model.TplCateModel
;
import
com.yeejoin.amos.api.tool.face.model.TemplateCategoryTreeModel
;
import
com.yeejoin.amos.api.tool.face.model.TplCateTreeModel
;
import
com.yeejoin.amos.api.tool.face.model.VisualDesignerModel
;
import
com.yeejoin.amos.api.tool.face.model.VisualDesignerModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.VisualDesignerMapper
;
import
com.yeejoin.amos.api.tool.face.orm.dao.VisualDesignerMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.VisualDesigner
;
import
com.yeejoin.amos.api.tool.face.orm.entity.VisualDesigner
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
...
@@ -17,40 +15,30 @@ import java.util.List;
...
@@ -17,40 +15,30 @@ import java.util.List;
@Service
@Service
public
class
VisualDesignerService
extends
BaseService
<
VisualDesignerModel
,
VisualDesigner
,
VisualDesignerMapper
>
{
public
class
VisualDesignerService
extends
BaseService
<
VisualDesignerModel
,
VisualDesigner
,
VisualDesignerMapper
>
{
@Autowired
TplCateService
tplCateService
;
@Autowired
VisualDesignerService
visualDesignerService
;
/**
/**
* 列表查询
示例
* 列表查询
*/
*/
// 父List
// 父List
public
List
<
VisualDesignerModel
>
queryForVisualDesignerList
()
{
public
List
<
VisualDesignerModel
>
queryForVisualDesignerList
()
{
return
this
.
queryForList
(
""
,
false
);
return
this
.
queryForList
(
""
,
false
);
}
}
public
List
<
TplCateTreeModel
>
getList
()
{
/**
List
<
TplCateTreeModel
>
treeList
=
new
ArrayList
<>();
* 设计器表单数据转化为树形节点
List
<
TplCateModel
>
tplCateModels
=
tplCateService
.
queryForTplCateList
();
*/
List
<
VisualDesignerModel
>
visualDesignerModels
=
visualDesignerService
.
queryForVisualDesignerList
();
public
List
<
TemplateCategoryTreeModel
>
VisualDesignerToNode
(
List
<
VisualDesignerModel
>
visualDesignerModels
){
for
(
int
i
=
0
;
i
<
visualDesignerModels
.
size
();
i
++){
List
<
TemplateCategoryTreeModel
>
nodes
=
new
ArrayList
<>();
TplCateTreeModel
tplCateTreeModel1
=
new
for
(
VisualDesignerModel
model
:
visualDesignerModels
){
TplCateTreeModel
(
visualDesignerModels
.
get
(
i
).
getSequenceNbr
(),
0L
,
TemplateCategoryTreeModel
node
=
new
TemplateCategoryTreeModel
();
visualDesignerModels
.
get
(
i
).
getDesignerName
(),
visualDesignerModels
.
get
(
i
).
getDesignerType
());
node
.
setSequenceNbr
(
model
.
getSequenceNbr
());
for
(
int
j
=
0
,
index
=
0
;
j
<
tplCateModels
.
size
();
j
++){
node
.
setName
(
model
.
getDesignerName
());
if
(
tplCateModels
.
get
(
j
).
getDesignerType
().
equals
(
tplCateTreeModel1
.
getDesignerType
())){
node
.
setDesignerType
(
model
.
getDesignerType
());
TplCateTreeModel
tplCateTreeModel2
=
new
nodes
.
add
(
node
);
TplCateTreeModel
(
tplCateModels
.
get
(
j
).
getSequenceNbr
(),
tplCateTreeModel1
.
getSequenceNbr
(),
tplCateModels
.
get
(
j
).
getCateName
(),
tplCateTreeModel1
.
getDesignerType
(),
null
);
tplCateTreeModel1
.
getChildren
().
add
(
index
++,
tplCateTreeModel2
);
}
}
treeList
.
add
(
i
,
tplCateTreeModel1
);
}
}
return
treeList
;
return
nodes
;
}
}
}
}
\ No newline at end of file
src/main/java/com/yeejoin/amos/api/tool/utils/AESUtils.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
utils
;
import
javax.crypto.Cipher
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.util.Base64
;
/**
* 加解密工具类
* @author lima
* @date 2023/3/3 16:56
*/
public
class
AESUtils
{
private
static
final
String
ALGORITHM
=
"AES"
;
private
static
final
String
SECRET_KEY
=
"aes-key-lima1995"
;
// 密钥
/**
* 加密
*/
public
static
String
encrypt
(
String
value
)
throws
Exception
{
SecretKeySpec
keySpec
=
new
SecretKeySpec
(
SECRET_KEY
.
getBytes
(),
ALGORITHM
);
Cipher
cipher
=
Cipher
.
getInstance
(
ALGORITHM
);
cipher
.
init
(
Cipher
.
ENCRYPT_MODE
,
keySpec
);
byte
[]
encrypted
=
cipher
.
doFinal
(
value
.
getBytes
());
return
Base64
.
getEncoder
().
encodeToString
(
encrypted
);
}
/**
* 解密
*/
public
static
String
decrypt
(
String
value
)
throws
Exception
{
SecretKeySpec
keySpec
=
new
SecretKeySpec
(
SECRET_KEY
.
getBytes
(),
ALGORITHM
);
Cipher
cipher
=
Cipher
.
getInstance
(
ALGORITHM
);
cipher
.
init
(
Cipher
.
DECRYPT_MODE
,
keySpec
);
byte
[]
decoded
=
Base64
.
getDecoder
().
decode
(
value
);
byte
[]
decrypted
=
cipher
.
doFinal
(
decoded
);
return
new
String
(
decrypted
);
}
}
\ No newline at end of file
src/main/java/com/yeejoin/amos/api/tool/utils/ConvertUtil.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
utils
;
import
org.apache.commons.beanutils.ConvertUtils
;
import
java.lang.reflect.Field
;
import
java.util.List
;
public
class
ConvertUtil
{
/**
* 图像对象列表提取url
*/
public
static
<
Object
>
String
objectListToUrl
(
List
<
Object
>
objectList
)
throws
IllegalAccessException
,
NoSuchFieldException
{
if
(
objectList
.
isEmpty
())
{
return
null
;
}
System
.
out
.
println
(
objectList
.
get
(
0
));
Class
<?>
cla
=
objectList
.
get
(
0
).
getClass
();
Field
field
=
cla
.
getDeclaredField
(
"url"
);
field
.
setAccessible
(
true
);
return
field
.
get
(
objectList
.
get
(
0
)).
toString
();
}
}
src/main/java/com/yeejoin/amos/api/tool/utils/DataBaseUtils.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
utils
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.orm.entity.TableColumn
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.sql.DataSource
;
import
java.net.Inet4Address
;
import
java.net.InetAddress
;
import
java.net.NetworkInterface
;
import
java.net.SocketException
;
import
java.sql.*
;
import
java.util.*
;
public
class
DataBaseUtils
{
/**
* 数据库备份路径
*/
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
=
DataBaseUtils
.
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
;
}
public
static
<
V
>
Page
<
V
>
listToPage
(
List
<
V
>
list
,
int
current
,
int
size
)
{
//当前页
Page
<
V
>
page
=
new
Page
<>(
current
,
size
);
int
count
=
list
.
size
();
List
<
V
>
pageList
=
new
ArrayList
<>();
//计算当前页第一条数据的下标
int
currId
=
current
>
1
?
(
current
-
1
)
*
size
:
0
;
for
(
int
i
=
0
;
i
<
size
&&
i
<
count
-
currId
;
i
++)
{
pageList
.
add
(
list
.
get
(
currId
+
i
));
}
page
.
setSize
(
size
);
page
.
setCurrent
(
current
);
page
.
setTotal
(
count
);
//计算分页总页数
page
.
setPages
(
count
%
10
==
0
?
count
/
10
:
count
/
10
+
1
);
page
.
setRecords
(
pageList
);
return
page
;
}
}
src/main/java/com/yeejoin/amos/api/tool/utils/DateUtils.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
utils
;
import
java.text.DateFormat
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
public
class
DateUtils
{
public
static
String
LONG_PATTERN
=
"yyyy-MM-dd HH:mm:ss"
;
public
static
String
MID_PATTERN
=
"yyyy-MM-dd HH:mm"
;
public
static
String
SHORT_PATTERN
=
"yyyy-MM-dd"
;
public
static
String
MONTH_PATTERN
=
"yyyy-MM"
;
private
static
final
SimpleDateFormat
monthSdf
=
new
SimpleDateFormat
(
"yyyy-MM"
);
private
static
final
SimpleDateFormat
shortSdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
private
static
final
SimpleDateFormat
longSdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
public
static
Date
parseDate
(
String
date
)
{
try
{
return
new
SimpleDateFormat
(
"yyyy-MM-dd hh:mm:ss"
).
parse
(
date
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
public
static
String
toDateStr
(
Date
date
)
{
return
new
SimpleDateFormat
(
"yyyy-MM-dd hh:mm:ss"
).
format
(
date
);
}
public
static
Date
addDate
(
Date
date
,
int
field
,
int
amount
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
c
.
add
(
field
,
amount
);
return
c
.
getTime
();
}
public
static
boolean
isValidDate
(
String
str
,
String
format
)
{
DateFormat
formatter
=
new
SimpleDateFormat
(
format
);
try
{
Date
date
=
(
Date
)
formatter
.
parse
(
str
);
return
str
.
equals
(
formatter
.
format
(
date
));
}
catch
(
Exception
e
)
{
return
false
;
}
}
/**
* 获取某年某月的第一天日期
*
* @param date
* @param format
* @return
*/
public
static
String
getStartMonthDate
(
String
date
,
String
format
)
{
if
(
date
==
null
||
date
.
length
()
<
6
||
format
==
null
)
{
return
null
;
}
int
year
=
Integer
.
parseInt
(
date
.
substring
(
0
,
4
));
int
month
=
date
.
contains
(
"-"
)
?
month
=
Integer
.
parseInt
(
date
.
substring
(
5
,
7
))
:
Integer
.
parseInt
(
date
.
substring
(
4
,
6
));
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
set
(
year
,
month
-
1
,
1
);
return
shortSdf
.
format
(
cal
.
getTime
())
+
" 00:00:00"
;
}
/**
* 获取某年某月的最后一天日期
*
* @param date
* @param format
* @return
*/
public
static
String
getEndMonthDate
(
String
date
,
String
format
)
{
if
(
date
==
null
||
date
.
length
()
<
6
||
format
==
null
)
{
return
null
;
}
int
year
=
Integer
.
parseInt
(
date
.
substring
(
0
,
4
));
int
month
=
date
.
contains
(
"-"
)
?
month
=
Integer
.
parseInt
(
date
.
substring
(
5
,
7
))
:
Integer
.
parseInt
(
date
.
substring
(
4
,
6
));
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
set
(
year
,
month
-
1
,
1
);
int
day
=
cal
.
getActualMaximum
(
5
);
cal
.
set
(
year
,
month
-
1
,
day
);
return
shortSdf
.
format
(
cal
.
getTime
())
+
" 23:59:59"
;
}
/**
* 获取某天的开始时间
*
* @param date
* @param format
* @return
*/
public
static
String
getStartDayDate
(
String
date
,
String
format
)
{
try
{
return
getCurrentDayStartTime
(
new
SimpleDateFormat
(
SHORT_PATTERN
).
parse
(
date
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
/**
* 获取某天的结束时间
*
* @param date
* @param format
* @return
*/
public
static
String
getEndDayDate
(
String
date
,
String
format
)
{
try
{
return
getCurrentDayEndTime
(
new
SimpleDateFormat
(
SHORT_PATTERN
).
parse
(
date
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
/**
* 获得本天的开始时间,即2012-01-01 00:00:00
*
* @return
*/
public
static
String
getCurrentDayStartTime
(
Date
date
)
throws
Exception
{
date
=
shortSdf
.
parse
(
shortSdf
.
format
(
date
)
+
" 00:00:00"
);
return
longSdf
.
format
(
date
);
}
/**
* 获得本天的结束时间,即2012-01-01 23:59:59
*
* @return
*/
public
static
String
getCurrentDayEndTime
(
Date
date
)
throws
Exception
{
date
=
longSdf
.
parse
(
shortSdf
.
format
(
date
)
+
" 23:59:59"
);
return
longSdf
.
format
(
date
);
}
/**
* 获得本周的第一天,周一
*
* @return
*/
public
static
String
getCurrentWeekDayStartTime
(
Date
date
)
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
Date
dt
=
null
;
c
.
setTime
(
date
);
int
weekday
=
c
.
get
(
Calendar
.
DAY_OF_WEEK
)
-
2
;
c
.
add
(
Calendar
.
DATE
,
-
weekday
);
dt
=
longSdf
.
parse
(
shortSdf
.
format
(
c
.
getTime
())
+
" 00:00:00"
);
return
longSdf
.
format
(
dt
);
}
/**
* 获得本周的最后一天,周日
*
* @return
*/
public
static
String
getCurrentWeekDayEndTime
(
Date
date
)
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
Date
dt
=
null
;
c
.
setTime
(
date
);
int
weekday
=
c
.
get
(
Calendar
.
DAY_OF_WEEK
);
c
.
add
(
Calendar
.
DATE
,
8
-
weekday
);
dt
=
longSdf
.
parse
(
shortSdf
.
format
(
c
.
getTime
())
+
" 23:59:59"
);
return
longSdf
.
format
(
dt
);
}
/**
* 获得本月的开始时间,即2012-01-01 00:00:00
*
* @return
*/
public
static
String
getCurrentMonthStartTime
(
Date
date
)
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
Date
dt
=
null
;
c
.
set
(
Calendar
.
DATE
,
1
);
dt
=
shortSdf
.
parse
(
shortSdf
.
format
(
c
.
getTime
())
+
" 00:00:00"
);
return
longSdf
.
format
(
dt
);
}
/**
* 当前月的结束时间,即2012-01-31 23:59:59
*
* @return
*/
public
static
String
getCurrentMonthEndTime
(
Date
date
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
Date
now
=
null
;
c
.
set
(
Calendar
.
DATE
,
1
);
c
.
add
(
Calendar
.
MONTH
,
1
);
c
.
add
(
Calendar
.
DATE
,
-
1
);
try
{
now
=
longSdf
.
parse
(
shortSdf
.
format
(
c
.
getTime
())
+
" 23:59:59"
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
longSdf
.
format
(
now
);
}
/**
* 当前季度的开始时间,即2012-01-1 00:00:00
*
* @return
*/
public
static
String
getCurrentQuarterStartTime
(
Date
date
)
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
int
currentMonth
=
c
.
get
(
Calendar
.
MONTH
)
+
1
;
Date
dt
=
null
;
if
(
currentMonth
>=
1
&&
currentMonth
<=
3
)
c
.
set
(
Calendar
.
MONTH
,
0
);
else
if
(
currentMonth
>=
4
&&
currentMonth
<=
6
)
c
.
set
(
Calendar
.
MONTH
,
3
);
else
if
(
currentMonth
>=
7
&&
currentMonth
<=
9
)
c
.
set
(
Calendar
.
MONTH
,
4
);
else
if
(
currentMonth
>=
10
&&
currentMonth
<=
12
)
c
.
set
(
Calendar
.
MONTH
,
9
);
c
.
set
(
Calendar
.
DATE
,
1
);
dt
=
longSdf
.
parse
(
shortSdf
.
format
(
c
.
getTime
())
+
" 00:00:00"
);
return
longSdf
.
format
(
dt
);
}
/**
* 当前季度的结束时间,即2012-03-31 23:59:59
*
* @return
*/
public
static
String
getCurrentQuarterEndTime
(
Date
date
)
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
int
currentMonth
=
c
.
get
(
Calendar
.
MONTH
)
+
1
;
Date
dt
=
null
;
if
(
currentMonth
>=
1
&&
currentMonth
<=
3
)
{
c
.
set
(
Calendar
.
MONTH
,
2
);
c
.
set
(
Calendar
.
DATE
,
31
);
}
else
if
(
currentMonth
>=
4
&&
currentMonth
<=
6
)
{
c
.
set
(
Calendar
.
MONTH
,
5
);
c
.
set
(
Calendar
.
DATE
,
30
);
}
else
if
(
currentMonth
>=
7
&&
currentMonth
<=
9
)
{
c
.
set
(
Calendar
.
MONTH
,
8
);
c
.
set
(
Calendar
.
DATE
,
30
);
}
else
if
(
currentMonth
>=
10
&&
currentMonth
<=
12
)
{
c
.
set
(
Calendar
.
MONTH
,
11
);
c
.
set
(
Calendar
.
DATE
,
31
);
}
dt
=
longSdf
.
parse
(
shortSdf
.
format
(
c
.
getTime
())
+
" 23:59:59"
);
return
longSdf
.
format
(
dt
);
}
/**
* 当前年的开始时间,即2012-01-01 00:00:00
*
* @return
*/
public
static
String
getCurrentYearStartTime
(
Date
date
)
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
Date
dt
=
null
;
c
.
set
(
Calendar
.
MONTH
,
0
);
c
.
set
(
Calendar
.
DATE
,
1
);
dt
=
shortSdf
.
parse
(
shortSdf
.
format
(
c
.
getTime
())
+
" 00:00:00"
);
return
longSdf
.
format
(
dt
);
}
/**
* 当前年的结束时间,即2012-12-31 23:59:59
*
* @return
*/
public
static
String
getCurrentYearEndTime
(
Date
date
)
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
Date
dt
=
null
;
c
.
set
(
Calendar
.
MONTH
,
11
);
c
.
set
(
Calendar
.
DATE
,
31
);
dt
=
longSdf
.
parse
(
shortSdf
.
format
(
c
.
getTime
())
+
" 23:59:59"
);
return
longSdf
.
format
(
dt
);
}
/**
* 获取当前时间
*
* @return
*/
public
static
Date
format
()
{
Date
date
=
new
Date
();
return
date
;
}
/**
* 获取前一天日期
*
* @return
*/
public
static
Date
getYesterday
()
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
format
());
cal
.
add
(
Calendar
.
DATE
,
-
1
);
return
cal
.
getTime
();
}
/**
* 获取过去七天
*
* @return
*/
public
static
Date
getBeforeWeek
(
Date
date
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
format
());
cal
.
add
(
Calendar
.
DATE
,
-
7
);
Date
beforeWeek
=
cal
.
getTime
();
return
beforeWeek
;
}
/**
* 获取过去一月
*
* @return
*/
public
static
Date
getBeforeMonth
(
Date
date
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
format
());
cal
.
add
(
Calendar
.
MONTH
,
-
1
);
Date
beforeWeek
=
cal
.
getTime
();
return
beforeWeek
;
}
/**
* 获取过去三个月
*
* @return
*/
public
static
Date
getBeforeQuarter
(
Date
date
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
format
());
cal
.
add
(
Calendar
.
MONTH
,
-
3
);
Date
beforeQuarter
=
cal
.
getTime
();
return
beforeQuarter
;
}
/**
* 获取去年今日
*
* @return
*/
public
static
Date
getBeforeYear
(
Date
date
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
cal
.
add
(
Calendar
.
YEAR
,
-
1
);
Date
y
=
cal
.
getTime
();
String
year
=
shortSdf
.
format
(
y
);
return
y
;
}
}
src/main/java/com/yeejoin/amos/api/tool/utils/SqlHelper.java
0 → 100644
View file @
65ea6ede
package
com
.
yeejoin
.
amos
.
api
.
tool
.
utils
;
import
org.apache.ibatis.mapping.BoundSql
;
import
org.apache.ibatis.mapping.MappedStatement
;
import
org.apache.ibatis.mapping.ParameterMapping
;
import
org.apache.ibatis.mapping.ParameterMode
;
import
org.apache.ibatis.reflection.MetaObject
;
import
org.apache.ibatis.reflection.factory.DefaultObjectFactory
;
import
org.apache.ibatis.reflection.factory.ObjectFactory
;
import
org.apache.ibatis.reflection.wrapper.DefaultObjectWrapperFactory
;
import
org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory
;
import
org.apache.ibatis.session.Configuration
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.TypeHandlerRegistry
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Author: xl
* @Description:
* @Date: 2023/1/9 19:10
*/
@Component
public
class
SqlHelper
{
@Autowired
private
SqlSessionFactory
sqlSessionFactory
;
private
final
ObjectFactory
DEFAULT_OBJECT_FACTORY
=
new
DefaultObjectFactory
();
private
final
ObjectWrapperFactory
DEFAULT_OBJECT_WRAPPER_FACTORY
=
new
DefaultObjectWrapperFactory
();
/**
* 通过命名空间方式获取sql
*
* @param namespace
* @param params
* @return
*/
public
String
getNamespaceSql
(
String
namespace
,
Object
params
)
{
params
=
wrapCollection
(
params
);
Configuration
configuration
=
sqlSessionFactory
.
openSession
().
getConfiguration
();
MappedStatement
mappedStatement
=
configuration
.
getMappedStatement
(
namespace
);
TypeHandlerRegistry
typeHandlerRegistry
=
mappedStatement
.
getConfiguration
().
getTypeHandlerRegistry
();
BoundSql
boundSql
=
mappedStatement
.
getBoundSql
(
params
);
List
<
ParameterMapping
>
parameterMappings
=
boundSql
.
getParameterMappings
();
String
sql
=
boundSql
.
getSql
();
if
(
parameterMappings
!=
null
)
{
for
(
int
i
=
0
;
i
<
parameterMappings
.
size
();
i
++)
{
ParameterMapping
parameterMapping
=
parameterMappings
.
get
(
i
);
if
(
parameterMapping
.
getMode
()
!=
ParameterMode
.
OUT
)
{
Object
value
;
String
propertyName
=
parameterMapping
.
getProperty
();
if
(
boundSql
.
hasAdditionalParameter
(
propertyName
))
{
value
=
boundSql
.
getAdditionalParameter
(
propertyName
);
}
else
if
(
params
==
null
)
{
value
=
null
;
}
else
if
(
typeHandlerRegistry
.
hasTypeHandler
(
params
.
getClass
()))
{
value
=
params
;
}
else
{
MetaObject
metaObject
=
configuration
.
newMetaObject
(
params
);
value
=
metaObject
.
getValue
(
propertyName
);
}
JdbcType
jdbcType
=
parameterMapping
.
getJdbcType
();
if
(
value
==
null
&&
jdbcType
==
null
)
jdbcType
=
configuration
.
getJdbcTypeForNull
();
sql
=
replaceParameter
(
sql
,
value
,
jdbcType
,
parameterMapping
.
getJavaType
());
}
}
}
return
sql
;
}
/**
* 根据类型替换参数
* 仅作为数字和字符串两种类型进行处理,需要特殊处理的可以继续完善这里
*
* @param sql
* @param value
* @param jdbcType
* @param javaType
* @return
*/
private
String
replaceParameter
(
String
sql
,
Object
value
,
JdbcType
jdbcType
,
Class
javaType
)
{
String
strValue
=
String
.
valueOf
(
value
);
if
(
jdbcType
!=
null
)
{
switch
(
jdbcType
)
{
// 数字
case
BIT:
case
TINYINT:
case
SMALLINT:
case
INTEGER:
case
BIGINT:
case
FLOAT:
case
REAL:
case
DOUBLE:
case
NUMERIC:
case
DECIMAL:
break
;
// 日期
case
DATE:
case
TIME:
case
TIMESTAMP:
// 其他,包含字符串和其他特殊类型
default
:
strValue
=
"'"
+
strValue
+
"'"
;
}
}
else
if
(
Number
.
class
.
isAssignableFrom
(
javaType
))
{
// 不加单引号
}
else
{
strValue
=
"'"
+
strValue
+
"'"
;
}
return
sql
.
replaceFirst
(
"\\?"
,
strValue
);
}
/**
* 简单包装参数
*
* @param object
* @return
*/
private
Object
wrapCollection
(
final
Object
object
)
{
if
(
object
instanceof
List
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"list"
,
object
);
return
map
;
}
else
if
(
object
!=
null
&&
object
.
getClass
().
isArray
())
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"array"
,
object
);
return
map
;
}
return
object
;
}
public
void
setSqlSessionFactory
(
SqlSessionFactory
sqlSessionFactory
)
{
this
.
sqlSessionFactory
=
sqlSessionFactory
;
}
}
src/main/resources/application-dev.properties
View file @
65ea6ede
#DB properties:
#DB properties:
# jdbc_config
# jdbc_config
spring.datasource.url
=
jdbc:mysql://39.98.45.134:3306/amos_
studio_delete
?allowMultiQueries=true
spring.datasource.url
=
jdbc:mysql://39.98.45.134:3306/amos_
tool_library_test
?allowMultiQueries=true
spring.datasource.username
=
root
spring.datasource.username
=
root
spring.datasource.password
=
Yeejoin@2020
spring.datasource.password
=
Yeejoin@2020
spring.datasource.driver-class-name
=
com.mysql.cj.jdbc.Driver
spring.datasource.driver-class-name
=
com.mysql.cj.jdbc.Driver
...
@@ -14,8 +14,8 @@ spring.datasource.hikari.max-lifetime=1800000
...
@@ -14,8 +14,8 @@ spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout
=
30000
spring.datasource.hikari.connection-timeout
=
30000
spring.datasource.hikari.connection-test-query
=
SELECT 1
spring.datasource.hikari.connection-test-query
=
SELECT 1
#
??????
#
eureka
eureka.instance.hostname
=
39.98.45.134
eureka.instance.hostname
=
172.16.3.18
eureka.client.serviceUrl.defaultZone
=
http://${eureka.instance.hostname}:10001/eureka/
eureka.client.serviceUrl.defaultZone
=
http://${eureka.instance.hostname}:10001/eureka/
eureka.instance.prefer-ip-address
=
true
eureka.instance.prefer-ip-address
=
true
eureka.instance.health-check-url
=
http://localhost:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.health-check-url
=
http://localhost:${server.port}${server.servlet.context-path}/actuator/health
...
@@ -25,7 +25,7 @@ eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}
...
@@ -25,7 +25,7 @@ eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}
#redis
#redis
spring.redis.database
=
1
spring.redis.database
=
1
spring.redis.host
=
39.98.45.134
spring.redis.host
=
172.16.3.18
spring.redis.port
=
6379
spring.redis.port
=
6379
spring.redis.password
=
yeejoin@2020
spring.redis.password
=
yeejoin@2020
spring.redis.timeout
=
0
spring.redis.timeout
=
0
...
@@ -33,7 +33,7 @@ spring.redis.timeout=0
...
@@ -33,7 +33,7 @@ spring.redis.timeout=0
## emqx
## emqx
emqx.clean-session
=
true
emqx.clean-session
=
true
emqx.client-id
=
${spring.application.name}-${random.int[1024,65536]}
emqx.client-id
=
${spring.application.name}-${random.int[1024,65536]}
emqx.broker
=
tcp://
39.98.45.134
:2883
emqx.broker
=
tcp://
172.16.3.18
:2883
emqx.client-user-name
=
super
emqx.client-user-name
=
super
emqx.client-password
=
a123456
emqx.client-password
=
a123456
emqx.max-inflight
=
1000
emqx.max-inflight
=
1000
...
...
src/main/resources/application.properties
View file @
65ea6ede
spring.application.name
=
DemoProject
spring.application.name
=
AMOS-ATL
server.servlet.context-path
=
/jcs
server.servlet.context-path
=
/atl
server.port
=
20000
#server.servlet.context-path=/jcs
server.port
=
30002
#server.port=20000
spring.profiles.active
=
dev
spring.profiles.active
=
dev
management.health.elasticsearch.enabled
=
false
management.health.elasticsearch.enabled
=
false
...
@@ -9,6 +11,7 @@ spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
...
@@ -9,6 +11,7 @@ spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
logging.config
=
classpath:logback-${spring.profiles.active}.xml
logging.config
=
classpath:logback-${spring.profiles.active}.xml
#mybatis-plus\uFFFD\uFFFD\uFFFD\uFFFD\u05BE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u02B9\uFFFD\uFFFDmybatis\uFFFD\u0123\uFFFD\uFFFD\uFFFD\uFFFD\u04B2\uFFFD\uFFFD\uFFFD
#mybatis-plus\uFFFD\uFFFD\uFFFD\uFFFD\u05BE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u02B9\uFFFD\uFFFDmybatis\uFFFD\u0123\uFFFD\uFFFD\uFFFD\uFFFD\u04B2\uFFFD\uFFFD\uFFFD
mybatis-plus.configuration.log-impl
=
org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus.configuration.log-impl
=
org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus.configuration.map-underscore-to-camel-case
=
true
spring.datasource.type
=
com.zaxxer.hikari.HikariDataSource
spring.datasource.type
=
com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle
=
10
spring.datasource.hikari.minimum-idle
=
10
...
...
src/main/resources/mapper/AmosToolTemplateMapper.xml
0 → 100644
View file @
65ea6ede
<?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.AmosToolTemplateMapper"
>
<!-- <select id="queryAll" parameterType="com.yeejoin.amos.api.tool.face.orm.dao.AmosToolTemplateMappermplateMapper">-->
<!-- select * from view;-->
<!-- </select>-->
</mapper>
src/main/resources/mapper/StudioResourceMapper.xml
0 → 100644
View file @
65ea6ede
<?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.StudioResourceMapper"
>
<select
id=
"queryForListByTableName"
resultType=
"com.yeejoin.amos.api.tool.face.orm.entity.TableColumn"
>
SELECT
column_name as columnName,
( CASE WHEN ( is_nullable = 'no'
<![CDATA[ && ]]>
column_key != 'PRI' ) THEN '1' ELSE NULL END ) AS isRequired,
( CASE WHEN column_key = 'PRI' THEN '1' ELSE '0' END ) AS isPk,
ordinal_position AS sort,
column_comment as columnComment,
( CASE WHEN extra = 'auto_increment' THEN '1' ELSE '0' END ) AS isIncrement,
column_type as columnType
FROM
information_schema.COLUMNS
WHERE
table_schema = database()
AND table_name = #{tableName}
ORDER BY
ordinal_position
</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