Commit cc5d7e29 authored by xinglei's avatar xinglei

Merge branch 'develop_rjb' into develop

parents 5760bfca 160825a1
...@@ -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,47 @@ ...@@ -31,6 +36,47 @@
<version>1.4.5.RELEASE</version> <version>1.4.5.RELEASE</version>
</dependency> </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> <dependency>
<groupId>org.typroject</groupId> <groupId>org.typroject</groupId>
<artifactId>tyboot-core-foundation</artifactId> <artifactId>tyboot-core-foundation</artifactId>
...@@ -180,6 +226,14 @@ ...@@ -180,6 +226,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>
......
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 javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @author r
*/
@RestController
@Api(tags = "机构树")
@RequestMapping(value = "/privilege_agency")
public class AgencyTreeResource {
@Autowired
AgencyTreeService agencyTreeService;
/**
* 根据sequenceNbr删除
* @param sequenceNbr 主键
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(agencyTreeService.removeById(sequenceNbr));
}
/**
*列表全部数据查询
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<AgencyTreeModel>> selectForList()
{
return ResponseHelper.buildResponse(agencyTreeService.queryForAgencyTreeList());
}
}
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) {
......
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.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@CrossOrigin
@RestController
@Api(tags = "接口管理Api")
@RequestMapping(value = "/api-info")
public class ApiInfoResource {
@Autowired
ApiInfoService apiInfoService;
@Autowired
ApiSourceService apiSourceService;
/**
* 新增
* @return
*/
@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
*/
@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
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(apiInfoService.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr删除多项
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@DeleteMapping(value = "/delete/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除多项", notes = "根据sequenceNbr删除多项")
public ResponseModel<Boolean[]> deleteModelsBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr")String sequenceNbr){
return ResponseHelper.buildResponse(apiInfoService.deleteByIds(sequenceNbr));
}
/**
* 根据sequenceNbr查询
* @param sequenceNbr 主键
* @return
*/
@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 current 每页大小
* @return
*/
@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
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<ApiInfoModel>> selectForList()
{
return ResponseHelper.buildResponse(apiInfoService.queryForApiInfoList());
}
}
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.ApiInfoModel;
import com.yeejoin.amos.api.tool.face.model.ApiSourceModel;
import com.yeejoin.amos.api.tool.face.model.TplModel;
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 javax.servlet.http.HttpServletRequest;
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
ApiSourceService apiSourceService;
@Autowired
ApiInfoService apiInfoService;
/**
* 新增
*
* @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 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(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
List<ApiInfoModel> apiInfoModels = apiInfoService.queryForApiInfoListByApiSource(apiSourceService.queryCodeById(sequenceNbr));
for (ApiInfoModel apiInfoModel:apiInfoModels){
apiInfoService.removeById(apiInfoModel.getSequenceNbr());
}
return ResponseHelper.buildResponse(apiSourceService.removeById(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());
}
}
package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.DataBaseModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.beanutils.ConvertUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @author r
*/
@RestController
@Api(tags = "数据库信息")
@RequestMapping(value = "/database_join_record")
public class DataBaseResource {
@Autowired
DataBaseService dataBaseService;
/**
* 新增
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/refresh")
@ApiOperation(httpMethod = "POST", value = "数据库初始化", notes = "数据库初始化")
public ResponseModel<List<DataBaseModel>> save(@RequestBody DataBaseModel dataBaseModel) throws Exception {
List<DataBaseModel> dataBaseModels = dataBaseService.refreshDataBase(dataBaseModel);
if (dataBaseModels == null)
return null;
else
return ResponseHelper.buildResponse(dataBaseModels);
}
/**
* 根据sequenceNbr批量删除
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/delete/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "批量删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean[]> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") String sequenceNbr) {
String Nbr[] = sequenceNbr.split(",");
Long[] seq = (Long[]) ConvertUtils.convert(Nbr, Long.class);
Boolean Nbr2[] = new Boolean[Nbr.length];
for (int i = 0; i < Nbr.length; i++) {
Nbr2[i] = dataBaseService.removeById(seq[i]);
}
return ResponseHelper.buildResponse(Nbr2);
}
/**
* 列表分页查询
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<DataBaseModel>> queryForPage(@RequestParam(value = "current") int current, @RequestParam(value = "size") int size) {
Page<DataBaseModel> page = new Page<DataBaseModel>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(dataBaseService.queryForDataBasePage(page));
}
/**
* 列表全部数据查询
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<DataBaseModel>> selectForList() {
return ResponseHelper.buildResponse(dataBaseService.queryForDataBaseList());
}
}
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.service.AgencyTreeService;
import com.yeejoin.amos.api.tool.face.service.DataBaseService;
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.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.sql.Connection;
@CrossOrigin
@RestController
@Api(tags = "机构管理Api")
@RequestMapping(value = "/Agency")
public class RelationResource {
@Autowired
RelationService relationService;
@Autowired
DataBaseService dataBaseService;
@Autowired
AgencyTreeService agencyTreeService;
@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 {
Long[] seqs = dataBaseService.stringToLong(sequenceNbrs);
for (Long seq : seqs) {
Connection connection = dataBaseService.connectNewDatabase(dataBaseService.queryBySeq(seq));
relationService.deleteDataBase(connection,agencyTreeService.queryForAgencyCodeById(agencyCodeId));
}
return ResponseHelper.buildResponse("The data has been deleted !");
}
}
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.TplCateModel;
import com.yeejoin.amos.api.tool.face.model.TplCateTreeModel;
import com.yeejoin.amos.api.tool.face.model.TplModel;
import com.yeejoin.amos.api.tool.face.service.TplCateService;
import com.yeejoin.amos.api.tool.face.service.TplService;
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 javax.servlet.http.HttpServletRequest;
import java.util.List;
@CrossOrigin
@RestController
@Api(tags = "模板分类管理Api")
@RequestMapping(value = "/tpl_cate")
public class TplCateResource {
@Autowired
TplCateService tplCateService;
@Autowired
TplService tplService;
@Autowired
VisualDesignerService visualDesignerService;
/**
* 新增
*
* @return ApiSourceDto
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@PostMapping(value = "/save/{sequenceNbr}")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<TplCateModel> save(@PathVariable Long sequenceNbr,@RequestBody TplCateModel tplCateModel){
tplCateModel.setDesignerType(visualDesignerService.queryBySeq(sequenceNbr).getDesignerType());
tplCateModel.setIcon("");
tplCateModel.setIsDel(false);
tplCateModel = tplCateService.createWithModel(tplCateModel);
return ResponseHelper.buildResponse(tplCateModel);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 编码
* @return ApiSourceDto
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<TplCateModel> updateBySeqTplCate(@RequestBody TplCateModel tplCateModel,@PathVariable(value = "sequenceNbr") Long sequenceNbr){
tplCateModel.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(tplCateService.updateWithModel(tplCateModel));
}
/**
* 根据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(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
List<TplModel> tplModels = tplService.queryForTplListByCategorySeq(sequenceNbr);
for (TplModel tplModel:tplModels){
tplService.removeById(tplModel.getSequenceNbr());
}
return ResponseHelper.buildResponse(tplCateService.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 物理主键
* @return ApiSourceDto
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<TplCateModel> selectOne(@PathVariable Long sequenceNbr){
return ResponseHelper.buildResponse(tplCateService.queryBySeq(sequenceNbr));
}
/**
* 列表全部数据查询
*
* @return List<ApiSourceDto>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<TplCateModel>> selectForList(){
return ResponseHelper.buildResponse(tplCateService.queryForTplCateList());
}
/**
* 列表树形结构查询
*
* @return List<ApiSourceDto>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "GET", value = "列表树形结构查询", notes = "列表树形结构查询")
@GetMapping(value = "/tree")
public ResponseModel<List<TplCateTreeModel>> selectForTree(){
return ResponseHelper.buildResponse(visualDesignerService.getList());
}
}
package com.yeejoin.amos.api.tool.controller;
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.TplModel;
import com.yeejoin.amos.api.tool.face.model.TplVoModel;
import com.yeejoin.amos.api.tool.face.service.TplService;
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.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
@CrossOrigin
@RestController
@Api(tags = "模板管理Api")
@RequestMapping(value = "/tpl")
public class TplResource {
@Autowired
TplService tplService;
/**
* 新增
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<TplModel> save(@RequestBody TplVoModel tplVoModel) throws Exception {
tplVoModel.setIsDel(false);
tplVoModel.setDisplayName(tplVoModel.getComName());
TplModel tplModel = new TplModel();
tplService.convertModel(tplVoModel, tplModel);
return ResponseHelper.buildResponse(tplService.createWithModel(tplModel));
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<TplModel> updateBySequenceNbrTpl(@RequestBody TplVoModel tplVoModel, @PathVariable(value = "sequenceNbr") Long sequenceNbr) throws NoSuchFieldException, IllegalAccessException {
tplVoModel.setSequenceNbr(sequenceNbr);
tplVoModel.setDisplayName(tplVoModel.getComName());
TplModel tplModel = new TplModel();
tplService.convertModel(tplVoModel, tplModel);
return ResponseHelper.buildResponse(tplService.updateWithModel(tplModel));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(tplService.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr删除多项
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/delete/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除多项", notes = "根据sequenceNbr删除多项")
public ResponseModel<String> deleteModelsBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") String sequenceNbr) {
tplService.deleteByIds(sequenceNbr);
return ResponseHelper.buildResponse("Succeed!");
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<TplVoModel> selectOne(@PathVariable Long sequenceNbr) throws Exception {
TplModel tplModel = tplService.queryBySeq(sequenceNbr);
TplVoModel tplVoModel = tplService.convertVoModel(tplModel);
if (tplModel.getContent() != null) tplVoModel.setContentStr(tplModel.getContent().toString());
return ResponseHelper.buildResponse(tplVoModel);
}
/**
* 列表分页查询
*
* @param current 当前页
* @param size 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<TplModel>> queryForPage(@RequestParam(value = "current") int current, @RequestParam(value = "size") int size, @RequestParam(value = "categorySeq") Long categorySeq, @RequestParam(value = "displayName", required = false) String displayName) {
Page<TplModel> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(tplService.queryForTplPage(page, categorySeq, displayName));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<TplModel>> selectForList() {
return ResponseHelper.buildResponse(tplService.queryForTplList());
}
/**
* 导入
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@CrossOrigin
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr导入content", notes = "根据sequenceNbr导入content")
@PostMapping(value = "/import")
public ResponseModel<TplModel> importTpl(@RequestParam("file") MultipartFile multipartFile) throws Exception {
JSONObject content = JSON.parseObject(tplService.readMultipartFile(multipartFile));
String str = "1668429235251548162";
TplModel tplModel = new TplModel(content, "", "", "", Long.parseLong(str), false, false);
return ResponseHelper.buildResponse(tplService.createWithModel(tplModel));
}
}
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
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
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 = "DataBaseModel", description = "")
public class AgencyTreeModel extends BaseModel {
@ApiModelProperty(value = "机构名称")
private String agencyName;
@ApiModelProperty(value = "机构编码")
private String agencyCode;
@ApiModelProperty(value = "机构描述")
private String agencyDesc;
}
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;
}
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;
}
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 = "DataBaseModel", description = "")
public class DataBaseModel 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 DataBaseModel(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;
}
}
package com.yeejoin.amos.api.tool.face.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PicModel {
private String name;
private String uid;
private String url;
private String status;
}
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 = "表1名称")
private String table1;
@ApiModelProperty(value = "表1字段")
private String field1;
@ApiModelProperty(value = "表2名称")
private String table2;
@ApiModelProperty(value = "表2字段")
private String field2;
}
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.List;
@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;
public RelationTreeModel(String name, String field,String parentField , String parentName, List<RelationTreeModel> children) {
this.name = name;
this.field = field;
this.parentField = parentField;
this.parentName = parentName;
this.children = children;
}
}
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="TplCateModel", description="")
public class TplCateModel 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;
public void setIcon(String icon) {
this.icon = icon;
}
public void setIsDel(Boolean isDel) {
this.isDel = isDel;
}
}
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="TplCateTreeModel", description="")
public class TplCateTreeModel {
@ApiModelProperty(value = "物理主键")
private Long sequenceNbr;
@ApiModelProperty(value = "父ID")
private Long parentId;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "设计器类型")
private String designerType;
@ApiModelProperty(value = "子列表")
private List<TplCateTreeModel> children = new ArrayList<>();
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public TplCateTreeModel(Long sequenceNb, Long parentId, String name,String designerType){
this.sequenceNbr =sequenceNb ;
this.parentId = parentId;
this.name = name;
this.designerType =designerType;
}
public TplCateTreeModel(Long sequenceNb, Long parentId, String name,String designerType,List<TplCateTreeModel> children){
this.sequenceNbr =sequenceNb ;
this.parentId = parentId;
this.name = name;
this.designerType =designerType;
this.children = children;
}
}
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="TplModel", description="")
public class TplModel 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;
@ApiModelProperty(value = "缩略图")
protected String thumb;
@ApiModelProperty(value = "效果图")
protected String sketch;
@ApiModelProperty(value = "是否删除")
protected Boolean isDel;
public void setThumb(String thumb) {
this.thumb = thumb ;
}
public void setSketch(String sketch) {
this.sketch = sketch;
}
public TplModel(JSONObject content, String displayName, String comKey, String comName, Long cateSeq, Boolean openStatus, Boolean isDel){
this.content = content;
this.displayName =displayName;
this.comKey = comKey;
this.comName = comName;
this.cateSeq = cateSeq;
this.openStatus = openStatus;
this.isDel = isDel;
}
}
package com.yeejoin.amos.api.tool.face.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yeejoin.amos.api.tool.face.util.PicUtil;
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="TplVoModel", description="")
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})
public class TplVoModel extends TplModel {
@ApiModelProperty(value = "模板内容")
private String contentStr;
@ApiModelProperty(value = "缩略图")
private List<PicModel> thumbs = new ArrayList<>();
@ApiModelProperty(value = "效果图")
private List<PicModel> sketches = new ArrayList<>();
public void setIsDel(Boolean isDel) {
this.isDel = isDel;
}
public String getComName() {
return comName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
}
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;
}
}
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> {
}
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>{
}
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>{
}
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.DataBase;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Repository;
/**
* Mapper 接口
*
* @author r
*/
@Mapper
@Repository
public interface DataBaseMapper extends BaseMapper<DataBase> {
}
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.SelectProvider;
import java.util.HashMap;
import java.util.List;
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);
}
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.TplCate;
public interface TplCateMapper extends BaseMapper<TplCate> {
}
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.Tpl;
public interface TplMapper extends BaseMapper<Tpl> {
}
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> {
}
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;
}
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;
}
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;
}
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_join_record")
public class DataBase 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;
}
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 table1;
/**
* 表1 字段
*/
@TableField("table1_field")
private String field1;
/**
* 表2
*/
@TableField("table2")
private String table2;
/**
* 表2 字段
*/
@TableField("table2_field")
private String field2;
}
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 Tpl 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;
}
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 TplCate 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;
}
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;
}
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();
}
}
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.apache.commons.beanutils.ConvertUtils;
import org.springframework.beans.BeanUtils;
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.List;
@Service
public class ApiInfoService extends BaseService<ApiInfoModel,ApiInfo,ApiInfoMapper> {
@Autowired
ApiSourceService apiSourceService;
/**
* 分页查询
*/
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);
}
/**
* 列表查询 示例
*/
public List<ApiInfoModel> queryForApiInfoListByApiSource(String apiSource) {
return this.queryForList("" , false,apiSource);
}
/**
* 删除多个模板
*/
public Boolean[] deleteByIds(String sequenceNbr){
String[] arr = sequenceNbr.split(",");
Long[] seq = (Long[]) ConvertUtils.convert(arr, Long.class);
Boolean[] arr2 = new Boolean[arr.length];
for (int i = 0;i < arr.length;i++){
arr2[i] = this.removeById(seq[i]);
}
return arr2;
}
}
package com.yeejoin.amos.api.tool.face.service;
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.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ApiSourceService extends BaseService<ApiSourceModel, ApiSource, ApiSourceMapper> {
/**
* 列表查询 示例
*/
public List<ApiSourceModel> queryForApiSourceList() {
return this.queryForList("", false);
}
public String queryCodeById(Long sequenceNbr){
ApiSourceModel model = this.queryModelByParams(sequenceNbr);
return model.getCode();
}
}
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.DataBaseModel;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBase;
import com.yeejoin.amos.api.tool.face.util.AESUtils;
import org.apache.commons.beanutils.ConvertUtils;
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 DataBaseService extends BaseService<DataBaseModel, DataBase, DataBaseMapper> {
@Autowired
private DataBaseMapper dataBaseMapper;
/**
* 分页查询
*/
public Page<DataBaseModel> queryForDataBasePage(Page<DataBaseModel> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<DataBaseModel> queryForDataBaseList() {
return this.queryForList("", false);
}
public List<DataBaseModel> queryForDbInfoListByApiSource(String apiSource) {
return this.queryForList("", false, apiSource);
}
public Long[] stringToLong(String sequenceNbrs) {
String[] seqs = sequenceNbrs.split(",");
Long[] seq = new Long[seqs.length];
for (int i = 0; i < seqs.length; i++) {
seq[i] = Long.parseLong(seqs[i]);
}
return seq;
}
public String[] getDataBaseName(Connection connection) throws ClassNotFoundException, 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<DataBaseModel> refreshDataBase(DataBaseModel dataBaseModel) throws Exception {
this.remove(new QueryWrapper<>());
//连接数据库
String url = "jdbc:mysql://" + dataBaseModel.getIp() + ":" + dataBaseModel.getPort() + "/";
String user = dataBaseModel.getUserName();
String pwd = dataBaseModel.getPassWord();
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection = DriverManager.getConnection(url, user, pwd);
pwd = AESUtils.encrypt(pwd);
if (connection == null)
return null;
List<DataBaseModel> dataBaseModels = new ArrayList<>();
Collection<DataBase> dataBases = new ArrayList<>();
String[] dataBaseName = this.getDataBaseName(connection);
for (String name : dataBaseName) {
if (name == null)
break;
DataBaseModel model = new DataBaseModel(name, dataBaseModel.getIp(), dataBaseModel.getPort(), name, user, pwd);
dataBaseModels.add(model);
DataBase dataBase = this.prepareEntity(model);
dataBases.add(dataBase);
}
this.saveBatch(dataBases);
connection.close();
return dataBaseModels;
}
public Connection connectNewDatabase(DataBaseModel dataBaseModel) throws Exception {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 连接新增的数据库
String dbUrl = "jdbc:mysql://" + dataBaseModel.getIp() + ":" + dataBaseModel.getPort() + "/" + dataBaseModel.getDbName();
dataBaseModel.setPassWord(AESUtils.decrypt(dataBaseModel.getPassWord()));
return DriverManager.getConnection(dbUrl, dataBaseModel.getUserName(), dataBaseModel.getPassWord());
}
}
package com.yeejoin.amos.api.tool.face.service;
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 org.springframework.beans.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.HashMap;
import java.util.List;
@Service
public class RelationService extends BaseService<RelationModel, Relation, RelationMapper> {
@Autowired
DataBaseService dataBaseService;
/**
* 删除数据库
*/
public String deleteDataBase(Connection connection, String agencyCode) throws SQLException {
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
if (!connection.isClosed())
System.out.println("Succeeded connecting to the Database!");
//通过连接获取relation表树形结构
List<RelationTreeModel> trees = this.createRelationTree(connection);
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),connection));
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
connection.close();
return null;
}
/**
* 执行sql
*/
public int statementSql(StringBuilder sql, Connection connection) {
int count = 0;
try {
Statement statement = connection.createStatement();
count = statement.executeUpdate(sql.toString());
statement.close();
return count;
} catch (SQLException e) {
e.printStackTrace();
}
return count;
}
/**
* 获取关系表转化为map
*/
public List<HashMap<String, String>> queryRelation(Connection connection) throws SQLException {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM relation ;");
ResultSetMetaData data = resultSet.getMetaData();
List<HashMap<String, String>> maps = new ArrayList<>();
while (resultSet.next()) {
HashMap<String, String> map = new HashMap<>();
for (int i = 1; i <= data.getColumnCount(); i++) {
map.put(data.getColumnName(i), resultSet.getString(data.getColumnName(i)));
}
maps.add(map);
}
resultSet.close();
statement.close();
return maps;
}
/**
* 递归建立树形结构 (算法)
*/
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();
if (map.get("TABLE1") == null)
model = new RelationTreeModel(map.get("TABLE2"), map.get("TABLE2_FIELD"), map.get("TABLE1_FIELD"), "", null);
else
model = new RelationTreeModel(map.get("TABLE2"), map.get("TABLE2_FIELD"), map.get("TABLE1_FIELD"), map.get("TABLE1"), null);
relationTreeModels.add(model);
}
return relationTreeModels;
}
/**
* 创建关系表树
*/
public List<RelationTreeModel> createRelationTree(Connection connection) throws SQLException {
List<HashMap<String, String>> maps = this.queryRelation(connection);
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()).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()).append(" = '").append(agencyCode).append("' ;");
}
return sql;
}
/**
* 列表节点生成(递归)
*/
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;
}
}
package com.yeejoin.amos.api.tool.face.service;
import com.yeejoin.amos.api.tool.face.model.TplCateModel;
import com.yeejoin.amos.api.tool.face.orm.dao.TplCateMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.TplCate;
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 TplCateService extends BaseService<TplCateModel, TplCate, TplCateMapper> {
@Autowired
VisualDesignerService visualDesignerService;
/**
* 列表查询 示例
*/
public List<TplCateModel> queryForTplCateList() {
return this.queryForList("", false);
}
}
package com.yeejoin.amos.api.tool.face.service;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.PicModel;
import com.yeejoin.amos.api.tool.face.model.TplModel;
import com.yeejoin.amos.api.tool.face.model.TplVoModel;
import com.yeejoin.amos.api.tool.face.orm.dao.TplMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.Tpl;
import com.yeejoin.amos.api.tool.face.util.PicUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.utils.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.List;
import java.util.UUID;
@Service
public class TplService extends BaseService<TplModel, Tpl, TplMapper> {
@Autowired
TplService tplService;
@Autowired
TplCateService tplCateService;
@Autowired
VisualDesignerService visualDesignerService;
/**
* 分页查询
*/
public Page<TplModel> queryForTplPage(Page<TplModel> page, Long categorySeq, String displayName) {
return this.queryForPage(page, null, false, categorySeq, displayName);
}
/**
* 列表查询
*/
public List<TplModel> queryForTplListByCategorySeq(Long categorySeq) {
return this.queryForList("", false, categorySeq);
}
/**
* 列表查询
*/
public List<TplModel> queryForTplList() {
return this.queryForList("", false);
}
/**
* TplVoModel转化TplModel
*/
public TplModel convertModel(TplVoModel tplVoModel, TplModel tplModel) throws NoSuchFieldException, IllegalAccessException {
BeanUtils.copyProperties(tplVoModel, tplModel, "thumbs", "sketches", "contentStr");
//判定thumbs为空
if (tplVoModel.getThumbs().size() != 0)
tplModel.setThumb(PicUtil.objectListToUrl(tplVoModel.getThumbs()));
// tplModel.setThumb(tplVoModel.getThumbs().get(0).getUrl());
// 判定sketch为空
if (tplVoModel.getSketches().size() != 0)
tplModel.setSketch(PicUtil.objectListToUrl(tplVoModel.getSketches()));
// tplModel.setSketch(tplVoModel.getSketches().get(0).getUrl());
tplModel.setContent(JSON.parseObject(tplVoModel.getContentStr()));
return tplModel;
}
/**
* 删除多个模板
*/
public void deleteByIds(String sequenceNbr) {
String[] seqs = sequenceNbr.split(",");
Long[] seq = new Long[seqs.length];
for (int i = 0; i < seq.length; i++) {
seq[i] = Long.parseLong(seqs[i]);
this.removeById(seq[i]);
}
}
/**
* 读取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();
}
public TplVoModel convertVoModel(TplModel tplModel){
TplVoModel tplVoModel = new TplVoModel();
BeanUtils.copyProperties(tplModel, tplVoModel);
if(tplModel.getSketch() != null)
tplVoModel.setSketches(this.urlToPicModel(tplModel.getSketch()));
if (tplModel.getThumb() != null)
tplVoModel.setThumbs(this.urlToPicModel(tplModel.getThumb()));
System.out.println(tplVoModel.getThumbs());
return tplVoModel;
}
public String getUid(){
UUID uuid= UUID.randomUUID();
String str = uuid.toString();
return str.replace("-", "");
}
public List<PicModel> urlToPicModel(String url){
List<PicModel> picModels = new ArrayList<>();
PicModel picModel = new PicModel("", this.getUid(), url, "done");
picModels.add(picModel);
return picModels;
}
}
package com.yeejoin.amos.api.tool.face.service;
import com.yeejoin.amos.api.tool.face.model.TplCateModel;
import com.yeejoin.amos.api.tool.face.model.TplCateTreeModel;
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.beans.factory.annotation.Autowired;
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> {
@Autowired
TplCateService tplCateService;
@Autowired
VisualDesignerService visualDesignerService;
/**
* 列表查询 示例
*/
// 父List
public List<VisualDesignerModel> queryForVisualDesignerList() {
return this.queryForList("", false);
}
public List<TplCateTreeModel> getList() {
List<TplCateTreeModel> treeList = new ArrayList<>();
List<TplCateModel> tplCateModels = tplCateService.queryForTplCateList();
List<VisualDesignerModel> visualDesignerModels = visualDesignerService.queryForVisualDesignerList();
for(int i = 0; i < visualDesignerModels.size();i++){
TplCateTreeModel tplCateTreeModel1 = new
TplCateTreeModel(visualDesignerModels.get(i).getSequenceNbr(), 0L,
visualDesignerModels.get(i).getDesignerName(),visualDesignerModels.get(i).getDesignerType());
for (int j = 0, index =0 ;j < tplCateModels.size();j++){
if(tplCateModels.get(j).getDesignerType().equals(tplCateTreeModel1.getDesignerType())){
TplCateTreeModel tplCateTreeModel2 = new
TplCateTreeModel(tplCateModels.get(j).getSequenceNbr(), tplCateTreeModel1.getSequenceNbr(),
tplCateModels.get(j).getCateName(),tplCateTreeModel1.getDesignerType(),null);
tplCateTreeModel1.getChildren().add(index++,tplCateTreeModel2);
}
}
treeList.add(i,tplCateTreeModel1);
}
return treeList;
}
}
\ No newline at end of file
package com.yeejoin.amos.api.tool.face.util;
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
package com.yeejoin.amos.api.tool.face.util;
import java.lang.reflect.Field;
import java.util.List;
public class PicUtil {
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();
}
// public static List<Object> urlToObjectList(String url){
// List<Object> picUtils = new ArrayList<>();
// String uid= (int)((Math.random()*9+1)*100000)+"";
// PicUtil picUtil = new PicUtil("", uid, url, "done");
// picUtils.add(picUtil);
// return picUtils;
// }
}
#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_studio_delete?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
...@@ -13,30 +14,44 @@ spring.datasource.hikari.max-lifetime=1800000 ...@@ -13,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://admin:a1234560@172.16.3.18: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
#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
spring.application.name=AMOS-API-TOOL spring.application.name=DemoProject
server.port=30201 server.servlet.context-path=/jcs
server.servlet.context-path=/tool server.port=20000
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
...@@ -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>
<?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>
<?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.ApiInfoMapper">
</mapper>
\ No newline at end of file
<?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.ApiSourceMapper">
</mapper>
<?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.RelationMapper">
</mapper>
<?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.TplCateMapper">
</mapper>
<?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.TplMapper">
</mapper>
<?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.VisualDesignerMapper">
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment