Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-tool
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tool
amos-tool
Commits
c6cf897a
Commit
c6cf897a
authored
Jul 19, 2023
by
Code-KingTT
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
# Conflicts: # src/main/resources/application.properties
parents
3e34a105
0d4a2952
Hide whitespace changes
Inline
Side-by-side
Showing
67 changed files
with
3925 additions
and
42 deletions
+3925
-42
pom.xml
pom.xml
+91
-1
Application.java
src/main/java/com/yeejoin/amos/Application.java
+1
-2
AgencyTreeResource.java
.../yeejoin/amos/api/tool/controller/AgencyTreeResource.java
+50
-0
AmosDemoResource.java
...om/yeejoin/amos/api/tool/controller/AmosDemoResource.java
+2
-2
ApiInfoResource.java
...com/yeejoin/amos/api/tool/controller/ApiInfoResource.java
+125
-0
ApiSourceResource.java
...m/yeejoin/amos/api/tool/controller/ApiSourceResource.java
+95
-0
DataApiResource.java
...com/yeejoin/amos/api/tool/controller/DataApiResource.java
+69
-0
DataBaseLinkResource.java
...eejoin/amos/api/tool/controller/DataBaseLinkResource.java
+70
-0
RelationResource.java
...om/yeejoin/amos/api/tool/controller/RelationResource.java
+59
-0
TemplateCategoryResource.java
...in/amos/api/tool/controller/TemplateCategoryResource.java
+107
-0
TemplateResource.java
...om/yeejoin/amos/api/tool/controller/TemplateResource.java
+142
-0
SourceEnum.java
...main/java/com/yeejoin/amos/api/tool/enums/SourceEnum.java
+33
-0
Encrypted.java
.../com/yeejoin/amos/api/tool/face/annotation/Encrypted.java
+18
-0
SensitiveData.java
.../yeejoin/amos/api/tool/face/annotation/SensitiveData.java
+19
-0
AgencyTreeModel.java
...com/yeejoin/amos/api/tool/face/model/AgencyTreeModel.java
+25
-0
ApiInfoModel.java
...va/com/yeejoin/amos/api/tool/face/model/ApiInfoModel.java
+38
-0
ApiSourceModel.java
.../com/yeejoin/amos/api/tool/face/model/ApiSourceModel.java
+23
-0
DataBaseLinkModel.java
...m/yeejoin/amos/api/tool/face/model/DataBaseLinkModel.java
+45
-0
PictureModel.java
...va/com/yeejoin/amos/api/tool/face/model/PictureModel.java
+25
-0
RelationModel.java
...a/com/yeejoin/amos/api/tool/face/model/RelationModel.java
+25
-0
RelationTreeModel.java
...m/yeejoin/amos/api/tool/face/model/RelationTreeModel.java
+38
-0
StudioResource.java
.../com/yeejoin/amos/api/tool/face/model/StudioResource.java
+51
-0
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
VisualDesignerModel.java
...yeejoin/amos/api/tool/face/model/VisualDesignerModel.java
+28
-0
AgencyTreeMapper.java
.../yeejoin/amos/api/tool/face/orm/dao/AgencyTreeMapper.java
+13
-0
ApiInfoMapper.java
...com/yeejoin/amos/api/tool/face/orm/dao/ApiInfoMapper.java
+8
-0
ApiSourceMapper.java
...m/yeejoin/amos/api/tool/face/orm/dao/ApiSourceMapper.java
+14
-0
DataBaseLinkMapper.java
...eejoin/amos/api/tool/face/orm/dao/DataBaseLinkMapper.java
+17
-0
RelationMapper.java
...om/yeejoin/amos/api/tool/face/orm/dao/RelationMapper.java
+29
-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
VisualDesignerMapper.java
...join/amos/api/tool/face/orm/dao/VisualDesignerMapper.java
+7
-0
AgencyTree.java
...com/yeejoin/amos/api/tool/face/orm/entity/AgencyTree.java
+36
-0
ApiInfo.java
...va/com/yeejoin/amos/api/tool/face/orm/entity/ApiInfo.java
+53
-0
ApiSource.java
.../com/yeejoin/amos/api/tool/face/orm/entity/ApiSource.java
+28
-0
DataBaseLink.java
...m/yeejoin/amos/api/tool/face/orm/entity/DataBaseLink.java
+58
-0
Relation.java
...a/com/yeejoin/amos/api/tool/face/orm/entity/Relation.java
+39
-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
VisualDesigner.java
...yeejoin/amos/api/tool/face/orm/entity/VisualDesigner.java
+39
-0
AgencyTreeService.java
...yeejoin/amos/api/tool/face/service/AgencyTreeService.java
+29
-0
AmosDemoService.java
...m/yeejoin/amos/api/tool/face/service/AmosDemoService.java
+1
-1
ApiInfoService.java
...om/yeejoin/amos/api/tool/face/service/ApiInfoService.java
+51
-0
ApiSourceService.java
.../yeejoin/amos/api/tool/face/service/ApiSourceService.java
+44
-0
DataBaseLinkService.java
...ejoin/amos/api/tool/face/service/DataBaseLinkService.java
+107
-0
RelationService.java
...m/yeejoin/amos/api/tool/face/service/RelationService.java
+453
-0
StudioResourceService.java
...oin/amos/api/tool/face/service/StudioResourceService.java
+301
-0
TemplateCategoryService.java
...n/amos/api/tool/face/service/TemplateCategoryService.java
+87
-0
TemplateService.java
...m/yeejoin/amos/api/tool/face/service/TemplateService.java
+148
-0
VisualDesignerService.java
...oin/amos/api/tool/face/service/VisualDesignerService.java
+45
-0
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
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
+31
-16
application-qa.properties
src/main/resources/application-qa.properties
+51
-0
application.properties
src/main/resources/application.properties
+23
-11
logback-dev.xml
src/main/resources/logback-dev.xml
+4
-4
logback-qa.xml
src/main/resources/logback-qa.xml
+46
-0
AmosDemoMapper.xml
src/main/resources/mapper/AmosDemoMapper.xml
+0
-5
StudioResourceMapper.xml
src/main/resources/mapper/StudioResourceMapper.xml
+21
-0
No files found.
pom.xml
View file @
c6cf897a
...
@@ -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,6 +18,11 @@
...
@@ -18,6 +18,11 @@
<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>
</dependency>
</dependency>
...
@@ -31,6 +36,58 @@
...
@@ -31,6 +36,58 @@
<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 -->
<dependency>
<groupId>
cn.afterturn
</groupId>
<artifactId>
easypoi-base
</artifactId>
<version>
4.1.0
</version>
</dependency>
<dependency>
<groupId>
cn.afterturn
</groupId>
<artifactId>
easypoi-web
</artifactId>
<version>
4.1.0
</version>
</dependency>
<dependency>
<groupId>
cn.afterturn
</groupId>
<artifactId>
easypoi-annotation
</artifactId>
<version>
4.1.0
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
easyexcel
</artifactId>
<version>
2.0.5
</version>
<exclusions>
<exclusion>
<groupId>
org.ow2.asm
</groupId>
<artifactId>
asm
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpmime
</artifactId>
<version>
4.5.7
</version>
</dependency>
<!-- JSON -->
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.67_noneautotype2
</version>
</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>
<artifactId>
tyboot-core-foundation
</artifactId>
<artifactId>
tyboot-core-foundation
</artifactId>
...
@@ -95,6 +152,17 @@
...
@@ -95,6 +152,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>
...
@@ -171,7 +239,21 @@
...
@@ -171,7 +239,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>
...
@@ -180,6 +262,14 @@
...
@@ -180,6 +262,14 @@
<skip>
true
</skip>
<skip>
true
</skip>
</configuration>
</configuration>
</plugin>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
8
</source>
<target>
8
</target>
</configuration>
</plugin>
</plugins>
</plugins>
</build>
</build>
...
...
src/main/java/com/yeejoin/amos/Application.java
View file @
c6cf897a
...
@@ -36,7 +36,6 @@ public class Application {
...
@@ -36,7 +36,6 @@ public class Application {
String
path
=
oConvertUtils
.
getString
(
env
.
getProperty
(
"server.servlet.context-path"
));
String
path
=
oConvertUtils
.
getString
(
env
.
getProperty
(
"server.servlet.context-path"
));
log
.
info
(
"\n----------------------------------------------------------\n\t"
log
.
info
(
"\n----------------------------------------------------------\n\t"
+
"Application AMOS-API-TOOL is running! Access URLs:\n\t"
+
"Swagger文档: \thttp://"
+
ip
+
":"
+
port
+
"Application AMOS-API-TOOL is running! Access URLs:\n\t"
+
"Swagger文档: \thttp://"
+
ip
+
":"
+
port
+
path
+
"/doc.html\n"
+
"-----------------"
+
+
path
+
"/doc.html\n"
+
"----------------------------------------------------------"
);
"-----------------------------------------"
);
}
}
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/AgencyTreeResource.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.AgencyTreeModel
;
import
com.yeejoin.amos.api.tool.face.service.AgencyTreeService
;
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
;
/**
* @author r
*/
@RestController
@Api
(
tags
=
"机构树"
)
@RequestMapping
(
value
=
"/privilege_agency"
)
public
class
AgencyTreeResource
{
@Autowired
private
AgencyTreeService
agencyTreeService
;
/**
* 根据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
(
agencyTreeService
.
removeById
(
sequenceNbr
));
}
/**
*列表全部数据查询
* @return List<AgencyTreeModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
AgencyTreeModel
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(
agencyTreeService
.
queryForAgencyTreeList
());
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/AmosDemoResource.java
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.AmosDemoModel
;
import
com.yeejoin.amos.api.tool.face.model.AmosDemoModel
;
import
com.yeejoin.amos.api.tool.face.service.AmosDemoService
;
import
com.yeejoin.amos.api.tool.face.service.AmosDemoService
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
@@ -76,7 +76,7 @@ public class AmosDemoResource {
...
@@ -76,7 +76,7 @@ public class AmosDemoResource {
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
)
@TycloudOperation
(
ApiLevel
=
UserType
.
SUPER_ADMIN
,
needAuth
=
false
)
@ApiOperation
(
value
=
"列表查询"
)
@ApiOperation
(
value
=
"列表查询"
)
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
ResponseModel
selectForList
(
@RequestParam
(
value
=
"agencyCode"
)
String
agencyCode
)
{
public
ResponseModel
selectForList
(
@RequestParam
(
value
=
"agencyCode"
)
String
agencyCode
)
{
...
...
src/main/java/com/yeejoin/amos/api/tool/controller/ApiInfoResource.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
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.ApiSourceService
;
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.util.Arrays
;
import
java.util.List
;
@CrossOrigin
@RestController
@Api
(
tags
=
"接口管理Api"
)
@RequestMapping
(
value
=
"/api-info"
)
public
class
ApiInfoResource
{
@Autowired
private
ApiInfoService
apiInfoService
;
@Autowired
private
ApiSourceService
apiSourceService
;
/**
* 新增
* @param apiInfoModel API信息
* @return ApiInfoModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
ApiInfoModel
>
save
(
@RequestBody
ApiInfoModel
apiInfoModel
)
throws
Exception
{
apiInfoModel
=
apiInfoService
.
createWithModel
(
apiInfoModel
);
return
ResponseHelper
.
buildResponse
(
apiInfoModel
);
}
/**
* 根据sequenceNbr更新
* @param sequenceNbr 主键
* @return ApiInfoModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
public
ResponseModel
<
ApiInfoModel
>
updateBySequenceNbrApiInfo
(
@RequestBody
ApiInfoModel
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
model
.
setSequenceNbr
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
updateWithModel
(
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
(
apiInfoService
.
removeById
(
sequenceNbr
));
}
/**
* 根据sequenceNbr 批量删除
* @param sequenceNbr 主键
* @return Boolean
*/
@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
(
apiInfoService
.
removeByIds
(
Arrays
.
asList
(
StringUtil
.
string2Array
(
sequenceNbr
))));
}
/**
* 根据sequenceNbr查询
* @param sequenceNbr 主键
* @return ApiInfoModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
public
ResponseModel
<
ApiInfoModel
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryBySeq
(
sequenceNbr
));
}
/**
* 列表分页查询
* @param current 当前页
* @param size 每页大小
* @param apiName API名称
* @param sequenceNbr 主键
* @return Page<ApiInfoModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/page"
)
@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
)
{
Page
<
ApiInfoModel
>
page
=
new
Page
<
ApiInfoModel
>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryForApiInfoPage
(
page
,
apiSourceService
.
queryCodeById
(
sequenceNbr
),
apiName
));
}
/**
* 列表全部数据查询
* @return List<ApiInfoModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
ApiInfoModel
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(
apiInfoService
.
queryForApiInfoList
());
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/ApiSourceResource.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.ApiSourceModel
;
import
com.yeejoin.amos.api.tool.face.service.ApiInfoService
;
import
com.yeejoin.amos.api.tool.face.service.ApiSourceService
;
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
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
@CrossOrigin
@RestController
@Api
(
tags
=
"接口来源管理Api"
)
@RequestMapping
(
value
=
"/api_source"
)
public
class
ApiSourceResource
{
@Autowired
private
ApiSourceService
apiSourceService
;
@Autowired
private
ApiInfoService
apiInfoService
;
/**
* 新增
* @param model API来源信息
* @return ApiSourceDto
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
ApiSourceModel
>
save
(
@RequestBody
ApiSourceModel
model
)
{
model
=
apiSourceService
.
createWithModel
(
model
);
return
ResponseHelper
.
buildResponse
(
model
);
}
/**
* 根据sequenceNbr更新
* @param model API来源信息
* @param sequenceNbr 编码
* @return ApiSourceDto
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
public
ResponseModel
<
ApiSourceModel
>
updateBySeqApiSource
(
@RequestBody
ApiSourceModel
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
model
.
setSequenceNbr
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
updateWithModel
(
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
(
apiSourceService
.
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
<
ApiSourceModel
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
queryBySeq
(
sequenceNbr
));
}
/**
* 列表全部数据查询
* @return List<ApiSourceDto>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
ApiSourceModel
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(
apiSourceService
.
queryForApiSourceList
());
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/DataApiResource.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.AmosDemoModel
;
import
com.yeejoin.amos.api.tool.face.service.AmosDemoService
;
import
com.yeejoin.amos.api.tool.face.service.StudioResourceService
;
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.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
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
SQLException
{
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"
);
studioResourceService
.
generateSQL
(
resourceCode
,
dimension
,
variables
,
response
);
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/DataBaseLinkResource.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
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
java.util.List
;
/**
* @author r
*/
@RestController
@Api
(
tags
=
"数据库信息"
)
@RequestMapping
(
value
=
"/database_join_record"
)
public
class
DataBaseLinkResource
{
@Autowired
private
DataBaseLinkService
dataBaseLinkService
;
/**
* 数据库初始化
* @param dataBaseLinkModel 数据库连接信息
* @return List<DataBaseLinkModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/refresh"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"数据库初始化"
,
notes
=
"数据库初始化"
)
public
ResponseModel
<
List
<
DataBaseLinkModel
>>
save
(
@RequestBody
DataBaseLinkModel
dataBaseLinkModel
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
refreshDataBase
(
dataBaseLinkService
.
encryptPwd
(
dataBaseLinkModel
)));
}
/**
* 列表分页查询
* @param current 当前分页
* @param size 分页大小
* @return Page<DataBaseLinkModel>
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
Page
<
DataBaseLinkModel
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
)
{
Page
<
DataBaseLinkModel
>
page
=
new
Page
<
DataBaseLinkModel
>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
dataBaseLinkService
.
queryForDataBasePage
(
page
));
}
/**
* 列表全部数据查询
* @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
());
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/RelationResource.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
controller
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
import
com.yeejoin.amos.api.tool.face.service.DataBaseLinkService
;
import
com.yeejoin.amos.api.tool.face.service.RelationService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Configurable
;
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.xml.crypto.Data
;
import
java.sql.Connection
;
import
java.util.ArrayList
;
import
java.util.List
;
@CrossOrigin
@RestController
@Api
(
tags
=
"机构管理Api"
)
@RequestMapping
(
value
=
"/Agency"
)
public
class
RelationResource
{
@Autowired
private
RelationService
relationService
;
@Autowired
DataBaseLinkService
dataBaseLinkService
;
/**
* 根据机构ID和数据库sequenceNbr批量删除数据库
* @param agencyCodeId 机构ID
* @param sequenceNbrs 多个主键
* @return String
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@DeleteMapping
(
value
=
"/relation/{agencyCodeId}/{sequenceNbrs}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"机构删除"
,
notes
=
"机构删除"
)
public
ResponseModel
<
String
>
deleteDataBase
(
@PathVariable
Long
agencyCodeId
,
@PathVariable
String
sequenceNbrs
)
throws
Exception
{
relationService
.
deleteAgency
(
agencyCodeId
,
sequenceNbrs
);
return
ResponseHelper
.
buildResponse
(
"The data has been deleted !"
);
}
/**
* 导出SQL脚本
* @return String
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/output/{agencyCodeId}/{sequenceNbrs}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出"
,
notes
=
"导出"
)
public
ResponseModel
<
String
>
genereteSQL
(
@PathVariable
Long
agencyCodeId
,
@PathVariable
String
sequenceNbrs
)
throws
Exception
{
relationService
.
outputAgency
(
agencyCodeId
,
sequenceNbrs
);
return
ResponseHelper
.
buildResponse
(
"yes"
);
}
}
src/main/java/com/yeejoin/amos/api/tool/controller/TemplateCategoryResource.java
0 → 100644
View file @
c6cf897a
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 @
c6cf897a
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
)
@CrossOrigin
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"根据sequenceNbr导入content"
,
notes
=
"根据sequenceNbr导入content"
)
@PostMapping
(
value
=
"/import"
)
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/enums/SourceEnum.java
0 → 100644
View file @
c6cf897a
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/annotation/Encrypted.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
annotation
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* 需要加解密的字段用这个注解
* @author lima
* @date 2023/3/3 17:29
*/
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
FIELD
)
public
@interface
Encrypted
{
}
\ No newline at end of file
src/main/java/com/yeejoin/amos/api/tool/face/annotation/SensitiveData.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
annotation
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Inherited
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* 带有敏感字段的类需要加这个注解
* @author lima
* @date 2023/3/6 16:18
*/
@Inherited
@Target
({
ElementType
.
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
SensitiveData
{
}
\ No newline at end of file
src/main/java/com/yeejoin/amos/api/tool/face/model/AgencyTreeModel.java
0 → 100644
View file @
c6cf897a
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
;
/**
* @author r
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"DataBaseLinkModel"
,
description
=
""
)
public
class
AgencyTreeModel
extends
BaseModel
{
@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/ApiInfoModel.java
0 → 100644
View file @
c6cf897a
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
;
import
java.util.Date
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"ApiInfoModel"
,
description
=
""
)
public
class
ApiInfoModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"接口来源"
)
private
String
apiSource
;
@ApiModelProperty
(
value
=
"接口名称"
)
private
String
apiName
;
@ApiModelProperty
(
value
=
"接口方法"
)
private
String
httpMethod
;
@ApiModelProperty
(
value
=
"接口地址"
)
private
String
apiPath
;
@ApiModelProperty
(
value
=
"响应方式"
)
private
String
resType
;
@ApiModelProperty
(
value
=
"请求参数配置"
)
private
String
bodyValue
;
@ApiModelProperty
(
value
=
"解析规则配置"
)
private
String
ruleData
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/ApiSourceModel.java
0 → 100644
View file @
c6cf897a
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
;
import
java.util.Date
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"ApiSourceModel"
,
description
=
""
)
public
class
ApiSourceModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"接口来源名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"接口标识"
)
private
String
code
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/DataBaseLinkModel.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
org.typroject.tyboot.core.rdbms.model.BaseModel
;
/**
* @author r
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@NoArgsConstructor
@ApiModel
(
value
=
"DataBaseLinkModel"
,
description
=
""
)
public
class
DataBaseLinkModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"数据名称"
)
private
String
dataName
=
""
;
@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
dataName
,
String
ip
,
String
port
,
String
dbName
,
String
userName
,
String
passWord
)
{
this
.
dataName
=
dataName
;
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/PictureModel.java
0 → 100644
View file @
c6cf897a
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/RelationModel.java
0 → 100644
View file @
c6cf897a
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
=
"RelationModel"
,
description
=
""
)
public
class
RelationModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"父表名称"
)
private
String
parentName
;
@ApiModelProperty
(
value
=
"父表字段"
)
private
String
parentField
;
@ApiModelProperty
(
value
=
"表名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"表字段"
)
private
String
field
;
}
src/main/java/com/yeejoin/amos/api/tool/face/model/RelationTreeModel.java
0 → 100644
View file @
c6cf897a
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
sun.reflect.generics.tree.Tree
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.TreeMap
;
@Data
@NoArgsConstructor
@ApiModel
(
value
=
"RelationTreeModel"
,
description
=
""
)
public
class
RelationTreeModel
{
@ApiModelProperty
(
value
=
"表名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"表字段"
)
private
String
field
;
@ApiModelProperty
(
value
=
"前表关联字段"
)
private
String
parentField
;
@ApiModelProperty
(
value
=
"父表名"
)
private
String
parentName
;
@ApiModelProperty
(
value
=
"子节点"
)
private
List
<
RelationTreeModel
>
children
=
new
ArrayList
<>();
public
RelationTreeModel
(
String
name
,
String
field
,
String
parentField
)
{
this
.
name
=
name
;
this
.
field
=
field
;
this
.
parentField
=
parentField
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/model/StudioResource.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
model
;
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/model/StudioResourceModel.java
0 → 100644
View file @
c6cf897a
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 @
c6cf897a
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 @
c6cf897a
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 @
c6cf897a
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 @
c6cf897a
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/model/VisualDesignerModel.java
0 → 100644
View file @
c6cf897a
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
=
"VisualDesignerModel"
,
description
=
""
)
public
class
VisualDesignerModel
extends
BaseModel
{
@ApiModelProperty
(
value
=
"设计器名称"
)
private
String
designerName
;
@ApiModelProperty
(
value
=
"描述"
)
private
String
designerDesc
;
@ApiModelProperty
(
value
=
"设计器类型"
)
private
String
designerType
;
@ApiModelProperty
(
value
=
"图标路径"
)
private
String
icon
;
public
String
getDesignerType
()
{
return
designerType
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/AgencyTreeMapper.java
0 → 100644
View file @
c6cf897a
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.AgencyTree
;
/**
* Mapper 接口
*
* @author r
*/
public
interface
AgencyTreeMapper
extends
BaseMapper
<
AgencyTree
>
{
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/ApiInfoMapper.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
dao
;
import
com.yeejoin.amos.api.tool.face.orm.entity.ApiInfo
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
ApiInfoMapper
extends
BaseMapper
<
ApiInfo
>{
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/ApiSourceMapper.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
dao
;
import
com.yeejoin.amos.api.tool.face.orm.entity.ApiSource
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* Mapper 接口
*
* @author system_generator
* @date 2023-06-01
*/
public
interface
ApiSourceMapper
extends
BaseMapper
<
ApiSource
>{
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/dao/DataBaseLinkMapper.java
0 → 100644
View file @
c6cf897a
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/RelationMapper.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
dao
;
import
com.baomidou.mybatisplus.annotation.SqlParser
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.Relation
;
import
com.yeejoin.amos.api.tool.face.service.RelationService
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.SelectProvider
;
import
org.mapstruct.Mapper
;
import
org.springframework.stereotype.Repository
;
import
java.util.HashMap
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
@Mapper
@Repository
public
interface
RelationMapper
extends
BaseMapper
<
Relation
>
{
@SelectProvider
(
type
=
RelationService
.
class
,
method
=
"deleteDataBase"
)
@SqlParser
(
filter
=
true
)
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 @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.api.tool.face.model.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 @
c6cf897a
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 @
c6cf897a
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/dao/VisualDesignerMapper.java
0 → 100644
View file @
c6cf897a
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.VisualDesigner
;
public
interface
VisualDesignerMapper
extends
BaseMapper
<
VisualDesigner
>
{
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/AgencyTree.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* @author r
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"privilege_agency"
)
public
class
AgencyTree
extends
BaseEntity
{
/**
*机构名称
*/
@TableField
(
"AGENCY_NAME"
)
private
String
agencyName
;
/**
*机构编码
*/
@TableField
(
"AGENCY_CODE"
)
private
String
agencyCode
;
/**
*机构描述
*/
@TableField
(
"AGENCY_DESC"
)
private
String
agencyDesc
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/ApiInfo.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"studio_data_api"
)
public
class
ApiInfo
extends
BaseEntity
{
/**
* 接口来源
*/
@TableField
(
"api_source"
)
private
String
apiSource
;
/**
* 接口名称
*/
@TableField
(
"api_name"
)
private
String
apiName
;
/**
* 接口方法
*/
@TableField
(
"http_method"
)
private
String
httpMethod
;
/**
* 接口地址
*/
@TableField
(
"api_path"
)
private
String
apiPath
;
/**
* 响应方式
*/
@TableField
(
"res_type"
)
private
String
resType
;
/**
* 请求参数配置
*/
@TableField
(
"body_value"
)
private
String
bodyValue
;
/**
* 解析规则配置
*/
@TableField
(
"rule_data"
)
private
String
ruleData
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/ApiSource.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
orm
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"studio_data_api_category"
)
public
class
ApiSource
extends
BaseEntity
{
/**
* 接口来源名称
*/
@TableField
(
"name"
)
private
String
name
;
/**
* 接口标识
*/
@TableField
(
"code"
)
private
String
code
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/DataBaseLink.java
0 → 100644
View file @
c6cf897a
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
{
/**
*数据名称
*/
@TableField
(
"dataName"
)
private
String
dataName
;
/**
*主机IP
*/
@TableField
(
"ip"
)
private
String
ip
;
/**
*端口
*/
@TableField
(
"port"
)
private
String
port
;
/**
*数据库名
*/
@TableField
(
"dbName"
)
private
String
dbName
;
/**
*用户名
*/
@TableField
(
"userName"
)
private
String
userName
;
/**
*密码
*/
@TableField
(
"passWord"
)
private
String
passWord
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/Relation.java
0 → 100644
View file @
c6cf897a
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
(
"relation"
)
public
class
Relation
extends
BaseEntity
{
/**
* 表1
*/
@TableField
(
"table1"
)
private
String
parentName
;
/**
* 表1 字段
*/
@TableField
(
"table1_field"
)
private
String
parentField
;
/**
* 表2
*/
@TableField
(
"table2"
)
private
String
name
;
/**
* 表2 字段
*/
@TableField
(
"table2_field"
)
private
String
field
;
}
src/main/java/com/yeejoin/amos/api/tool/face/orm/entity/TableColumn.java
0 → 100644
View file @
c6cf897a
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 @
c6cf897a
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 @
c6cf897a
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/orm/entity/VisualDesigner.java
0 → 100644
View file @
c6cf897a
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_visual_designer"
)
public
class
VisualDesigner
extends
BaseEntity
{
/**
* 设计器名称
*/
@TableField
(
"DESIGNER_NAME"
)
private
String
designerName
;
/**
* 描述
*/
@TableField
(
"DESIGNER_DESC"
)
private
String
designerDesc
;
/**
* 设计器类型
*/
@TableField
(
"DESIGNER_TYPE"
)
private
String
designerType
;
/**
* 图标路径
*/
@TableField
(
"ICON"
)
private
String
icon
;
}
src/main/java/com/yeejoin/amos/api/tool/face/service/AgencyTreeService.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.yeejoin.amos.api.tool.face.model.AgencyTreeModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.AgencyTreeMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.AgencyTree
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
java.util.List
;
/**
* 服务实现类
*
* @author r
*/
@Service
public
class
AgencyTreeService
extends
BaseService
<
AgencyTreeModel
,
AgencyTree
,
AgencyTreeMapper
>
{
/**
* 列表查询
*/
public
List
<
AgencyTreeModel
>
queryForAgencyTreeList
()
{
return
this
.
queryForList
(
""
,
false
);
}
public
String
queryForAgencyCodeById
(
Long
id
){
return
queryBySeq
(
id
).
getAgencyCode
();
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/AmosDemoService.java
View file @
c6cf897a
...
@@ -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/ApiInfoService.java
0 → 100644
View file @
c6cf897a
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.dao.ApiInfoMapper
;
import
com.yeejoin.amos.api.tool.face.model.ApiInfoModel
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
java.util.ArrayList
;
import
java.util.List
;
@Service
public
class
ApiInfoService
extends
BaseService
<
ApiInfoModel
,
ApiInfo
,
ApiInfoMapper
>
{
/**
* 分页查询
*/
public
Page
<
ApiInfoModel
>
queryForApiInfoPage
(
Page
<
ApiInfoModel
>
page
,
String
apiSource
,
String
apiName
)
{
return
this
.
queryForPage
(
page
,
null
,
false
,
apiSource
,
apiName
);
}
/**
* 列表查询
*/
public
List
<
ApiInfoModel
>
queryForApiInfoList
()
{
return
this
.
queryForList
(
""
,
false
);
}
/**
* 根据来源获取Api列表
*/
public
List
<
ApiInfoModel
>
selectByApiSource
(
String
apiSource
)
{
return
this
.
queryForList
(
""
,
false
,
apiSource
);
}
/**
* 根据来源获取Api列表主键
*/
public
List
<
String
>
selectSeqByApiSource
(
String
apiSource
)
{
List
<
String
>
sequenceNbrs
=
new
ArrayList
<>();
for
(
ApiInfoModel
model
:
this
.
selectByApiSource
(
apiSource
)){
sequenceNbrs
.
add
(
Long
.
toString
(
model
.
getSequenceNbr
()));
}
return
sequenceNbrs
;
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/ApiSourceService.java
0 → 100644
View file @
c6cf897a
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.orm.entity.ApiSource
;
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.springframework.stereotype.Service
;
import
java.util.List
;
@Service
public
class
ApiSourceService
extends
BaseService
<
ApiSourceModel
,
ApiSource
,
ApiSourceMapper
>
{
@Autowired
private
ApiInfoService
apiInfoService
;
/**
* 列表查询
*/
public
List
<
ApiSourceModel
>
queryForApiSourceList
()
{
return
this
.
queryForList
(
""
,
false
);
}
/**
* 根据机构ID获取机构编码
*/
public
String
queryCodeById
(
Long
sequenceNbr
){
ApiSourceModel
model
=
this
.
queryModelByParams
(
sequenceNbr
);
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 @
c6cf897a
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.orm.dao.DataBaseLinkMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.DataBaseLink
;
import
com.yeejoin.amos.api.tool.utils.AESUtils
;
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.*
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 服务实现类
*
* @author r
*/
@Service
public
class
DataBaseLinkService
extends
BaseService
<
DataBaseLinkModel
,
DataBaseLink
,
DataBaseLinkMapper
>
{
@Autowired
private
DataBaseLinkMapper
dataBaseLinkMapper
;
/**
* 分页查询
*/
public
Page
<
DataBaseLinkModel
>
queryForDataBasePage
(
Page
<
DataBaseLinkModel
>
page
)
{
return
this
.
queryForPage
(
page
,
null
,
false
);
}
/**
* 列表查询
*/
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
List
<
DataBaseLinkModel
>
refreshDataBase
(
DataBaseLinkModel
dataBaseLinkModel
)
throws
Exception
{
//清空表单
this
.
remove
(
new
QueryWrapper
<>());
//连接数据库
Connection
connection
=
this
.
connectNewDatabase
(
dataBaseLinkModel
);
if
(
connection
==
null
)
return
null
;
List
<
DataBaseLinkModel
>
dataBaseLinkModels
=
new
ArrayList
<>();
Collection
<
DataBaseLink
>
dataBaseLinks
=
new
ArrayList
<>();
for
(
String
name
:
this
.
getDataBaseName
(
connection
))
{
if
(
name
==
null
)
break
;
DataBaseLinkModel
model
=
new
DataBaseLinkModel
();
BeanUtils
.
copyProperties
(
model
,
dataBaseLinkModel
);
model
.
setDbName
(
name
);
model
.
setDataName
(
name
);
dataBaseLinkModels
.
add
(
model
);
dataBaseLinks
.
add
(
this
.
prepareEntity
(
model
));
}
this
.
saveBatch
(
dataBaseLinks
);
connection
.
close
();
return
dataBaseLinkModels
;
}
/**
* 连接数据库
*/
public
Connection
connectNewDatabase
(
DataBaseLinkModel
model
)
throws
Exception
{
// 加载数据库驱动
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
()));
}
/**
* 加密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/RelationService.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.alibaba.fastjson.JSON
;
import
com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel
;
import
com.yeejoin.amos.api.tool.face.model.RelationModel
;
import
com.yeejoin.amos.api.tool.face.model.RelationTreeModel
;
import
com.yeejoin.amos.api.tool.face.orm.dao.RelationMapper
;
import
com.yeejoin.amos.api.tool.face.orm.entity.Relation
;
import
com.yeejoin.amos.api.tool.face.orm.entity.TableColumn
;
import
io.github.classgraph.json.JSONUtils
;
import
org.apache.commons.beanutils.ConvertUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.utils.StringUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
RelationService
extends
BaseService
<
RelationModel
,
Relation
,
RelationMapper
>
{
/**
* 数据库备份路径
*/
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
private
RelationMapper
relationMapper
;
@Autowired
private
DataBaseLinkService
dataBaseLinkService
;
@Autowired
private
AgencyTreeService
agencyTreeService
;
@Autowired
JdbcTemplate
jdbcTemplate
;
@Autowired
StudioResourceService
studioResourceService
;
/**
* 根据机构删除
*/
public
void
deleteAgency
(
Long
agencyCodeId
,
String
sequenceNbrs
)
throws
Exception
{
for
(
Long
seq
:
(
Long
[])
ConvertUtils
.
convert
(
StringUtil
.
string2Array
(
sequenceNbrs
),
Long
.
class
))
{
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
seq
);
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
this
.
deleteDataBase
(
connection
,
agencyTreeService
.
queryForAgencyCodeById
(
agencyCodeId
),
model
.
getDbName
());
}
}
/**
* 删除数据库
*/
public
String
deleteDataBase
(
Connection
connection
,
String
agencyCode
,
String
dbName
)
throws
SQLException
{
try
{
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语句
System
.
out
.
println
(
this
.
createSqlByArray
(
array
,
agencyCode
));
System
.
out
.
println
(
statementSql
(
this
.
createSqlByArray
(
array
,
agencyCode
).
toString
(),
connection
));
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
connection
.
close
();
return
null
;
}
/**
* 执行sql
*/
public
int
statementSql
(
String
sql
,
Connection
connection
)
{
int
count
=
0
;
try
{
Statement
statement
=
connection
.
createStatement
();
count
=
statement
.
executeUpdate
(
sql
);
statement
.
close
();
return
count
;
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
return
count
;
}
/**
* 获取关系表转化为map
*/
public
List
<
HashMap
<
String
,
String
>>
queryRelation
(
String
dbName
)
throws
SQLException
{
StringBuilder
sql
=
new
StringBuilder
(
"SELECT * FROM "
);
sql
.
append
(
dbName
).
append
(
"_relation;"
);
List
<
HashMap
<
String
,
String
>>
maps
=
relationMapper
.
getPublicItems
(
sql
.
toString
());
return
maps
;
}
/**
* 递归建立树形结构 (算法)
*/
public
List
<
RelationTreeModel
>
createTree
(
List
<
RelationTreeModel
>
relationTreeModels
,
String
parentName
)
{
List
<
RelationTreeModel
>
tree
=
new
ArrayList
<>();
for
(
RelationTreeModel
relationTreeModel
:
relationTreeModels
)
{
if
(
parentName
.
equals
(
relationTreeModel
.
getParentName
()))
{
relationTreeModel
.
setChildren
(
createTree
(
relationTreeModels
,
relationTreeModel
.
getName
()));
tree
.
add
(
relationTreeModel
);
}
}
return
tree
;
}
/**
* 创建节点列表
*/
public
List
<
RelationTreeModel
>
createNodes
(
List
<
HashMap
<
String
,
String
>>
maps
)
{
List
<
RelationTreeModel
>
relationTreeModels
=
new
ArrayList
<>();
for
(
HashMap
<
String
,
String
>
map
:
maps
)
{
RelationTreeModel
model
=
new
RelationTreeModel
(
map
.
get
(
"TABLE2"
),
map
.
get
(
"TABLE2_FIELD"
),
map
.
get
(
"TABLE1_FIELD"
));
if
(
map
.
get
(
"TABLE1"
)
==
null
)
model
.
setParentName
(
""
);
else
model
.
setParentName
(
map
.
get
(
"TABLE1"
));
relationTreeModels
.
add
(
model
);
}
return
relationTreeModels
;
}
/**
* 创建关系表树
*/
public
List
<
RelationTreeModel
>
createRelationTree
(
String
dbName
)
throws
SQLException
{
List
<
HashMap
<
String
,
String
>>
maps
=
this
.
queryRelation
(
dbName
);
List
<
RelationTreeModel
>
trees
=
new
ArrayList
<>();
trees
.
addAll
(
createTree
(
createNodes
(
maps
),
""
));
return
trees
;
}
/**
* 根据列表生成sql语句
*/
public
StringBuilder
createSqlByArray
(
List
<
RelationTreeModel
>
array
,
String
agencyCode
)
{
StringBuilder
sql
=
new
StringBuilder
();
if
(
array
.
size
()
==
1
)
{
sql
.
append
(
"DELETE 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
(
"DELETE "
).
append
(
array
.
get
(
0
).
getName
());
for
(
RelationTreeModel
model
:
array
)
{
if
(!
model
.
getParentName
().
equals
(
""
))
sql
.
append
(
", "
).
append
(
model
.
getName
());
}
sql
.
append
(
" FROM "
).
append
(
array
.
get
(
0
).
getName
());
for
(
RelationTreeModel
model
:
array
)
{
if
(!
model
.
getParentName
().
equals
(
""
))
{
sql
.
append
(
" LEFT 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
;
}
/**
*
* @param connection
* @param agencyCode
* @param dbName
* @return
* @throws SQLException
*/
public
String
insertData
(
Connection
connection
,
String
agencyCode
,
String
dbName
)
throws
SQLException
{
try
{
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
<
String
>
columNames
=
this
.
selectColumNames
(
model
.
getName
(),
connection
);
String
sql
=
this
.
insertSqlByTableName
(
tableSet
,
model
.
getName
(),
columNames
,
agencyCode
).
toString
();
System
.
out
.
println
(
sql
);
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 = \""
+
model
.
getName
()
+
"\"\n"
+
"\t\tORDER BY\n"
+
"\t\t\tordinal_position\t"
;
List
<
Map
<
String
,
Object
>>
dataList
=
this
.
setToMap
(
sql
,
connection
);
List
<
Map
<
String
,
Object
>>
columnList
=
this
.
setToMap
(
columnSql
,
connection
);
List
<
TableColumn
>
columns
=
new
ArrayList
<>();
for
(
Map
<
String
,
Object
>
map:
columnList
){
TableColumn
column
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
),
TableColumn
.
class
);
columns
.
add
(
column
);
}
StringBuffer
sbsql
=
new
StringBuffer
();
for
(
Map
<
String
,
Object
>
map
:
dataList
)
{
sbsql
.
append
(
INSERT_INTO
);
sbsql
.
append
(
SPACE
).
append
(
model
.
getName
()).
append
(
SPACE
);
sbsql
.
append
(
LEFTBRACE
);
for
(
TableColumn
column
:
columns
)
{
sbsql
.
append
(
SPLIT
);
sbsql
.
append
(
column
.
getColumnName
());
sbsql
.
append
(
SPLIT
);
sbsql
.
append
(
COMMA
);
}
sbsql
.
deleteCharAt
(
sbsql
.
length
()
-
1
);
sbsql
.
append
(
RIGHTBRACE
);
sbsql
.
append
(
VALUES
);
sbsql
.
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
())))
{
sbsql
.
append
(
map
.
get
(
column
.
getColumnName
()));
}
else
{
sbsql
.
append
(
"0"
);
}
}
else
{
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
column
.
getColumnName
())))
{
sbsql
.
append
(
"'"
).
append
(
map
.
get
(
column
.
getColumnName
())).
append
(
"'"
);
}
else
{
sbsql
.
append
(
"null"
);
}
}
sbsql
.
append
(
COMMA
);
}
sbsql
.
deleteCharAt
(
sbsql
.
length
()
-
1
);
sbsql
.
append
(
RIGHTBRACE
);
sbsql
.
append
(
BRANCH
).
append
(
BR
);
}
System
.
out
.
println
(
sbsql
);
}
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
connection
.
close
();
return
null
;
}
/**
* 导出插入语句
* @param array
* @param agencyCode
* @return
*/
public
StringBuilder
insertSqlByTableName
(
List
<
RelationTreeModel
>
array
,
String
tableName
,
List
<
String
>
columNames
,
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
(
String
name
:
columNames
){
if
(
count
!=
0
){
sql
.
append
(
","
);
}
count
++;
sql
.
append
(
tableName
).
append
(
"."
).
append
(
name
);
}
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
;
}
/**
*
* @param tableName
* @param connection
* @return
* @throws SQLException
*/
public
List
<
String
>
selectColumNames
(
String
tableName
,
Connection
connection
)
throws
SQLException
{
List
<
String
>
columNames
=
new
ArrayList
<>();
String
sql
=
"SELECT * FROM "
+
tableName
+
" limit 0,0"
;
Statement
statement
=
connection
.
createStatement
();
ResultSet
resultSet
=
statement
.
executeQuery
(
sql
);
ResultSetMetaData
data
=
resultSet
.
getMetaData
();
for
(
int
i
=
1
;
i
<=
data
.
getColumnCount
();
i
++
){
if
(!(
"content"
).
equals
(
data
.
getColumnName
(
i
)))
columNames
.
add
(
data
.
getColumnName
(
i
));
}
return
columNames
;
}
/**
* 列表节点生成(递归)
*/
public
List
<
RelationTreeModel
>
createNodeList
(
List
<
RelationTreeModel
>
tree
)
{
List
<
RelationTreeModel
>
result
=
new
ArrayList
<>();
for
(
RelationTreeModel
node
:
tree
)
{
RelationTreeModel
model
=
new
RelationTreeModel
();
BeanUtils
.
copyProperties
(
node
,
model
);
model
.
setChildren
(
null
);
result
.
add
(
model
);
result
.
addAll
(
createNodeList
(
node
.
getChildren
()));
}
return
result
;
}
/**
* 树转化对象列表
*/
public
List
<
RelationTreeModel
>
createList
(
RelationTreeModel
model
)
{
List
<
RelationTreeModel
>
result
=
new
ArrayList
<>();
RelationTreeModel
temp
=
new
RelationTreeModel
();
BeanUtils
.
copyProperties
(
model
,
temp
);
temp
.
setChildren
(
null
);
result
.
add
(
temp
);
result
.
addAll
(
createNodeList
(
model
.
getChildren
()));
return
result
;
}
/**
*
* @param table
* @param list
* @return
*/
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
;
}
/**
* 获取关系表转化为map
*/
public
List
<
Map
<
String
,
Object
>>
setToMap
(
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
void
outputAgency
(
Long
agencyCodeId
,
String
sequenceNbrs
)
throws
Exception
{
for
(
Long
seq
:
(
Long
[])
ConvertUtils
.
convert
(
StringUtil
.
string2Array
(
sequenceNbrs
),
Long
.
class
))
{
DataBaseLinkModel
model
=
dataBaseLinkService
.
queryBySeq
(
seq
);
Connection
connection
=
dataBaseLinkService
.
connectNewDatabase
(
model
);
this
.
insertData
(
connection
,
agencyTreeService
.
queryForAgencyCodeById
(
agencyCodeId
),
model
.
getDbName
());
}
}
public
void
download
(
String
filePath
,
String
sql
)
throws
IOException
{
File
file
=
new
File
(
filePath
);
try
{
FileWriter
writer
=
new
FileWriter
(
file
);
writer
.
write
(
sql
);
writer
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/StudioResourceService.java
0 → 100644
View file @
c6cf897a
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.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.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.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
SqlHelper
sqlHelper
;
@Autowired
EmqKeeper
emqKeeper
;
/**
* 分页查询
*/
public
Page
<
StudioResourceModel
>
queryForStudioResourcePage
(
Page
page
,
String
agencyCode
)
{
return
this
.
queryForPage
(
page
,
null
,
false
,
agencyCode
);
}
/**
* 列表查询 示例
*/
public
List
<
StudioResourceModel
>
queryForStudioResourceList
(
String
resourceCode
)
{
return
this
.
queryForList
(
""
,
false
,
resourceCode
);
}
public
void
generateSQL
(
String
resourceCode
,
String
dimension
,
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
,
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
();
}
}
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
,
Map
<
String
,
Object
>
variables
)
{
StringBuffer
sbsql
=
new
StringBuffer
();
String
json
=
format
(
resource
.
getResourceInsertSql
(),
variables
);
JSONObject
dimensionData
=
JSONObject
.
parseObject
(
json
);
JSONObject
selectAllSql
=
dimensionData
.
getJSONObject
(
dimension
);
if
(
ObjectUtils
.
isEmpty
(
selectAllSql
.
keySet
()))
{
return
""
;
}
for
(
String
tableName
:
selectAllSql
.
keySet
())
{
List
<
TableColumn
>
columns
=
null
;
List
<
Map
<
String
,
Object
>>
dataList
=
null
;
String
selectsql
=
format
(
selectAllSql
.
getString
(
tableName
),
variables
);
if
(
SourceEnum
.
IDX
.
getSource
().
equals
(
resource
.
getResourceCode
().
toLowerCase
()))
{
// String sql = sqlHelper.getNamespaceSql("com.yeejoin.amos.api.studio.face.orm.dao.StudioResourceMapper.queryForListByTableName", tableName);
// Query query = new Query();
// query.setSql(sql);
// List result = IndicatorsManager.indicatorClient.queryBySql(query).getResult();
// List<TableColumn> finalColumns = new ArrayList<>();
// result.stream().forEach(x -> {
// TableColumn column = JsonUtils.jsonToBean(JSON.toJSONString(x), TableColumn.class);
// finalColumns.add(column);
// });
// columns = finalColumns;
//
// query.setSql(selectsql);
// dataList = IndicatorsManager.indicatorClient.queryBySql(query).getResult();
}
else
{
columns
=
this
.
getBaseMapper
().
queryForListByTableName
(
tableName
);
dataList
=
jdbcTemplate
.
queryForList
(
selectsql
.
toString
());
}
for
(
Map
<
String
,
Object
>
map
:
dataList
)
{
sbsql
.
append
(
INSERT_INTO
);
sbsql
.
append
(
SPACE
).
append
(
tableName
).
append
(
SPACE
);
sbsql
.
append
(
LEFTBRACE
);
for
(
TableColumn
column
:
columns
)
{
sbsql
.
append
(
SPLIT
);
sbsql
.
append
(
column
.
getColumnName
());
sbsql
.
append
(
SPLIT
);
sbsql
.
append
(
COMMA
);
}
sbsql
.
deleteCharAt
(
sbsql
.
length
()
-
1
);
sbsql
.
append
(
RIGHTBRACE
);
sbsql
.
append
(
VALUES
);
sbsql
.
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
())))
{
sbsql
.
append
(
map
.
get
(
column
.
getColumnName
()));
}
else
{
sbsql
.
append
(
"0"
);
}
}
else
{
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
column
.
getColumnName
())))
{
sbsql
.
append
(
"'"
).
append
(
map
.
get
(
column
.
getColumnName
())).
append
(
"'"
);
}
else
{
sbsql
.
append
(
"null"
);
}
}
sbsql
.
append
(
COMMA
);
}
sbsql
.
deleteCharAt
(
sbsql
.
length
()
-
1
);
sbsql
.
append
(
RIGHTBRACE
);
sbsql
.
append
(
BRANCH
).
append
(
BR
);
}
}
return
sbsql
.
toString
();
}
public
static
String
format
(
String
sqlTemplate
,
Map
<
String
,
Object
>
parameter
)
{
StringSubstitutor
ss
=
new
StringSubstitutor
(
parameter
);
String
newTemplateStr
=
ss
.
replace
(
sqlTemplate
);
return
newTemplateStr
;
}
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
();
}
}
}
src/main/java/com/yeejoin/amos/api/tool/face/service/TemplateCategoryService.java
0 → 100644
View file @
c6cf897a
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.model.TemplateModel
;
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.foundation.utils.StringUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
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 @
c6cf897a
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.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.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.typroject.tyboot.core.foundation.utils.StringUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.Reader
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.UUID
;
@Service
public
class
TemplateService
extends
BaseService
<
TemplateModel
,
Template
,
TemplateMapper
>
{
/**
* 分页查询
*/
public
Page
<
TemplateModel
>
queryForTplPage
(
Page
<
TemplateModel
>
page
,
Long
categorySeq
,
String
displayName
)
{
return
this
.
queryForPage
(
page
,
null
,
false
,
categorySeq
,
displayName
);
}
/**
* 列表查询
*/
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/VisualDesignerService.java
0 → 100644
View file @
c6cf897a
package
com
.
yeejoin
.
amos
.
api
.
tool
.
face
.
service
;
import
com.yeejoin.amos.api.tool.face.model.TemplateCategoryTreeModel
;
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.entity.VisualDesigner
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
java.util.ArrayList
;
import
java.util.List
;
@Service
public
class
VisualDesignerService
extends
BaseService
<
VisualDesignerModel
,
VisualDesigner
,
VisualDesignerMapper
>
{
/**
* 列表查询
*/
// 父List
public
List
<
VisualDesignerModel
>
queryForVisualDesignerList
()
{
return
this
.
queryForList
(
""
,
false
);
}
/**
* 设计器表单数据转化为树形节点
*/
public
List
<
TemplateCategoryTreeModel
>
VisualDesignerToNode
(
List
<
VisualDesignerModel
>
visualDesignerModels
){
List
<
TemplateCategoryTreeModel
>
nodes
=
new
ArrayList
<>();
for
(
VisualDesignerModel
model
:
visualDesignerModels
){
TemplateCategoryTreeModel
node
=
new
TemplateCategoryTreeModel
();
node
.
setSequenceNbr
(
model
.
getSequenceNbr
());
node
.
setName
(
model
.
getDesignerName
());
node
.
setDesignerType
(
model
.
getDesignerType
());
nodes
.
add
(
node
);
}
return
nodes
;
}
}
\ No newline at end of file
src/main/java/com/yeejoin/amos/api/tool/utils/AESUtils.java
0 → 100644
View file @
c6cf897a
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 @
c6cf897a
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/DateUtils.java
0 → 100644
View file @
c6cf897a
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 @
c6cf897a
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 @
c6cf897a
#DB properties:
# jdbc_config
# jdbc_config
#spring.datasource.url=jdbc:mysql://172.16.3.18:3306/amos_studio?allowMultiQueries=true
spring.datasource.url
=
jdbc:mysql://39.98.45.134:3306/amos_tool_library_test?allowMultiQueries=true
spring.datasource.url
=
jdbc:mysql://39.98.45.134:3306/amos_idx_biz?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
spring.datasource.type
=
com.zaxxer.hikari.HikariDataSource
spring.datasource.type
=
com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle
=
3
spring.datasource.hikari.minimum-idle
=
3
spring.datasource.hikari.maximum-pool-size
=
5
spring.datasource.hikari.maximum-pool-size
=
10
spring.datasource.hikari.auto-commit
=
true
spring.datasource.hikari.auto-commit
=
true
spring.datasource.hikari.idle-timeout
=
30000
spring.datasource.hikari.idle-timeout
=
30000
spring.datasource.hikari.pool-name
=
DatebookHikariCP
spring.datasource.hikari.pool-name
=
DatebookHikariCP
...
@@ -14,30 +14,44 @@ spring.datasource.hikari.max-lifetime=1800000
...
@@ -14,30 +14,44 @@ 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
# REDIS (RedisProperties)
#??????
spring.redis.database
=
1
eureka.instance.hostname
=
39.98.45.134
spring.redis.host
=
172.16.3.18
eureka.client.serviceUrl.defaultZone
=
http://${eureka.instance.hostname}:10001/eureka/
spring.redis.port
=
6379
spring.redis.password
=
yeejoin@2020
spring.redis.timeout
=
0
#注册中心地址
eureka.client.service-url.defaultZone
=
http://39.98.45.134:10001/eureka/
eureka.instance.prefer-ip-address
=
true
eureka.instance.prefer-ip-address
=
true
management.endpoints.web.exposure.include
=
*
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
eureka.instance.metadata-map.management.context-path
=
${server.servlet.context-path}/actuator
eureka.instance.metadata-map.management.context-path
=
${server.servlet.context-path}/actuator
eureka.instance.status-page-url
=
http://localhost:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.status-page-url
=
http://localhost:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs
=
http://localhost:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.metadata-map.management.api-docs
=
http://localhost:${server.port}${server.servlet.context-path}/doc.html
#redis
spring.redis.database
=
1
spring.redis.host
=
39.98.45.134
spring.redis.port
=
6379
spring.redis.password
=
yeejoin@2020
spring.redis.timeout
=
0
## emqx
emqx.clean-session
=
true
emqx.client-id
=
${spring.application.name}-${random.int[1024,65536]}
emqx.broker
=
tcp://39.98.45.134:2883
emqx.client-user-name
=
super
emqx.client-password
=
a123456
emqx.max-inflight
=
1000
emqx.keep-alive-interval
=
10
knife4j.production
=
false
knife4j.production
=
false
knife4j.enable
=
true
knife4j.enable
=
true
knife4j.basic.enable
=
true
knife4j.basic.enable
=
true
knife4j.basic.username
=
admin
knife4j.basic.username
=
admin
knife4j.basic.password
=
a1234560
knife4j.basic.password
=
a1234560
management.security.enabled
=
true
management.endpoint.health.show-details
=
always
spring.security.user.name
=
admin
spring.security.user.name
=
admin
spring.security.user.password
=
a1234560
spring.security.user.password
=
a1234560
spring.boot.admin.client.enabled
=
true
spring.boot.admin.client.instance.metadata.user.name
=
${spring.security.user.name}
spring.boot.admin.client.instance.metadata.user.password
=
${spring.security.user.password}
spring.boot.admin.client.username
=
admin
spring.boot.admin.client.password
=
a1234560
management.security.enabled
=
false
management.endpoint.health.show-details
=
always
management.endpoints.web.exposure.include
=
*
\ No newline at end of file
src/main/resources/application-qa.properties
0 → 100644
View file @
c6cf897a
#DB properties:
spring.datasource.driver-class-name
=
com.mysql.cj.jdbc.Driver
spring.datasource.url
=
jdbc:mysql://172.16.3.67:3306/systemdeveloper?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username
=
root
spring.datasource.password
=
root_123
#eureka properties:
eureka.instance.hostname
=
172.16.10.72
eureka.client.serviceUrl.defaultZone
=
http://${eureka.instance.hostname}:10001/eureka/
eureka.instance.prefer-ip-address
=
true
eureka.instance.health-check-url
=
http://localhost:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path
=
${server.servlet.context-path}/actuator
eureka.instance.status-page-url
=
http://localhost:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs
=
http://localhost:${server.port}${server.servlet.context-path}/swagger-ui.html
#redis
spring.redis.database
=
0
spring.redis.host
=
172.16.10.85
spring.redis.port
=
6379
spring.redis.password
=
amos2019Redis
spring.redis.lettuce.pool.max-active
=
200
spring.redis.lettuce.pool.max-wait
=
-1
spring.redis.lettuce.pool.max-idle
=
10
spring.redis.lettuce.pool.min-idle
=
0
spring.redis.expire.time
=
300
## emqx
emqx.clean-session
=
true
emqx.client-id
=
${spring.application.name}-${random.int[1024,65536]}
emqx.broker
=
tcp://172.16.10.85:1883
emqx.user-name
=
super
emqx.password
=
a123456
security.systemctl.name
=
AMOS-API-SYSTEMCTL
knife4j.production
=
false
knife4j.enable
=
true
knife4j.basic.enable
=
true
knife4j.basic.username
=
admin
knife4j.basic.password
=
a1234560
spring.security.user.name
=
admin
spring.security.user.password
=
a1234560
spring.boot.admin.client.enabled
=
true
spring.boot.admin.client.instance.metadata.user.name
=
${spring.security.user.name}
spring.boot.admin.client.instance.metadata.user.password
=
${spring.security.user.password}
spring.boot.admin.client.username
=
admin
spring.boot.admin.client.password
=
a1234560
management.security.enabled
=
false
management.endpoint.health.show-details
=
always
management.endpoints.web.exposure.include
=
*
\ No newline at end of file
src/main/resources/application.properties
View file @
c6cf897a
spring.application.name
=
AMOS-API-TOOL
spring.application.name
=
AMOS-ATL
server.servlet.context-path
=
/atl
<<<<<<<
HEAD
#server.servlet.context-path=/jcs
server.port
=
30002
#server.port=20000
=======
server.port
=
30201
server.port
=
30201
server.servlet.context-path
=
/template
>>>>>>>
56d4a0ab360f8ce8f2fa01e2ecf68e745d42bc24
spring.profiles.active
=
dev
spring.profiles.active
=
dev
spring.jackson.dateFormat
=
yyyy-MM-dd HH:mm:ss
management.health.elasticsearch.enabled
=
false
spring.jackson.time-zone
=
GMT+8
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.configuration.log-impl
=
org.apache.ibatis.logging.stdout.StdOutImpl
# mybatis-plus
spring.datasource.type
=
com.zaxxer.hikari.HikariDataSource
mybatis-plus.mapper-locations
=
classpath*:mapper/*Mapper.xml
spring.datasource.hikari.minimum-idle
=
10
mybatis-plus.type-aliases-super-type
=
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
spring.datasource.hikari.maximum-pool-size
=
25
mybatis-plus.global-config.db-config.id-type
=
id_worker
spring.datasource.hikari.auto-commit
=
true
mybatis-plus.global-config.db-config.logic-delete-field
=
is_delete
spring.datasource.hikari.idle-timeout
=
30000
mybatis-plus.global-config.db-config.logic-delete-value
=
1
spring.datasource.hikari.pool-name
=
DatebookHikariCP
mybatis-plus.global-config.db-config.logic-not-delete-value
=
0
spring.datasource.hikari.max-lifetime
=
120000
mybatis.interceptor.enabled
=
true
spring.datasource.hikari.connection-timeout
=
30000
spring.datasource.hikari.connection-test-query
=
SELECT 1
\ No newline at end of file
src/main/resources/logback-dev.xml
View file @
c6cf897a
...
@@ -16,10 +16,11 @@
...
@@ -16,10 +16,11 @@
<logger
name=
"org.apache.activemq"
level=
"INFO"
/>
<logger
name=
"org.apache.activemq"
level=
"INFO"
/>
<logger
name=
"org.springframework"
level=
"DEBUG"
/>
<logger
name=
"org.springframework"
level=
"DEBUG"
/>
<logger
name=
"
com.yeejoin.amos
"
level=
"DEBUG"
/>
<logger
name=
"
org.typroject
"
level=
"DEBUG"
/>
<logger
name=
"com.yeejoin"
level=
"DEBUG"
/>
<!-- 日志输出级别 -->
<!-- 日志输出级别 -->
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
</root>
</root>
</configuration>
\ No newline at end of file
</configuration>
src/main/resources/logback-qa.xml
0 → 100644
View file @
c6cf897a
<?xml version="1.0" encoding="UTF-8"?>
<configuration
debug=
"false"
>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property
name=
"LOG_HOME"
value=
"log"
/>
<!-- 按照每天生成日志文件 -->
<appender
name=
"FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!--日志文件输出的文件名-->
<FileNamePattern>
${LOG_HOME}/jcs.log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>
7
</MaxHistory>
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"
>
<MaxFileSize>
30mb
</MaxFileSize>
</triggeringPolicy>
</appender>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</encoder>
</appender>
<!--myibatis log configure-->
<logger
name=
"com.apache.ibatis"
level=
"INFO"
/>
<logger
name=
"org.mybatis"
level=
"INFO"
/>
<logger
name=
"java.sql.Connection"
level=
"INFO"
/>
<logger
name=
"java.sql.Statement"
level=
"INFO"
/>
<logger
name=
"java.sql.PreparedStatement"
level=
"INFO"
/>
<logger
name=
"com.baomidou.mybatisplus"
level=
"INFO"
/>
<logger
name=
"org.typroject"
level=
"INFO"
/>
<logger
name=
"com.yeejoin"
level=
"INFO"
/>
<logger
name=
"org.springframework"
level=
"INFO"
/>
<!-- 日志输出级别 -->
<root
level=
"INFO"
>
<appender-ref
ref=
"FILE"
/>
<appender-ref
ref=
"STDOUT"
/>
</root>
</configuration>
src/main/resources/mapper/AmosDemoMapper.xml
deleted
100644 → 0
View file @
3e34a105
<?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.AmosDemoMapper"
>
</mapper>
src/main/resources/mapper/StudioResourceMapper.xml
0 → 100644
View file @
c6cf897a
<?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