Commit fdab2426 authored by rjb's avatar rjb

Merge branch 'develop' of http://39.98.45.134:8090/tool/amos-tool into develop

parents c75e61af 6598a771
...@@ -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>
...@@ -36,6 +36,12 @@ ...@@ -36,6 +36,12 @@
<version>1.4.5.RELEASE</version> <version>1.4.5.RELEASE</version>
</dependency> </dependency>
<!--JSqlparser(高效的SQL解析工具)-->
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>4.4</version>
</dependency>
<!-- easy-poi --> <!-- easy-poi -->
<dependency> <dependency>
...@@ -233,7 +239,21 @@ ...@@ -233,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>
......
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel;
import com.yeejoin.amos.api.tool.face.service.AmosToolTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.doc.TycloudResource;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import java.util.List;
@RestController
@TycloudResource(module = "iot", value = "amosToolTemplate")
@RequestMapping(value = "/v1/iot/AmosToolTemplate")
@Api(tags = "丝袜哥测试")
public class AmosToolTemplateController {
private final Logger logger = LogManager.getLogger(AmosToolTemplateController.class);
@Resource
private AmosToolTemplateService amosToolTemplateService;
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN, needAuth = false)
@PostMapping("/save")
@ApiOperation(value = "新增", notes = "新增")
public ResponseModel<AmosToolTemplateModel> saveOne(@RequestBody AmosToolTemplateModel amosToolTemplateModel) {
amosToolTemplateModel = amosToolTemplateService.createWithModel(amosToolTemplateModel);
return ResponseHelper.buildResponse(amosToolTemplateModel);
}
/**
* 根据字段查询
*/
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN, needAuth = false)
@PostMapping("/select/all")
@ApiOperation(value = "查询大全")
public ResponseModel<List<AmosToolTemplateModel>> query(@RequestParam(value = "templateScene") String templateScene,
@RequestParam(value = "miniSences") String miniSences) {
return ResponseHelper.buildResponse(amosToolTemplateService.query(templateScene, miniSences));
}
/**
* 查询所有
*/
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN, needAuth = false)
@PostMapping("/every")
@ApiOperation("查询所有")
public ResponseModel<List<AmosToolTemplateModel>> queryEvery() {
return ResponseHelper.buildResponse(amosToolTemplateService.queryEvery());
}
/**
* 根据ID删除
*/
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN, needAuth = false)
@PostMapping("/delete")
@ApiOperation(value = "删除")
public ResponseModel<Boolean> deleteById(@RequestParam(value = "templateId") Long templateId) {
return ResponseHelper.buildResponse(amosToolTemplateService.deleteBySeq(templateId));
}
/**
* 根据ID更新
*/
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN, needAuth = false)
@PostMapping("/update")
@ApiOperation(value = "更新")
public ResponseModel<Boolean> updateById(@RequestParam(value = "templateId") Long templateId) {
return ResponseHelper.buildResponse(amosToolTemplateService.updateTimes(templateId));
}
}
package com.yeejoin.amos.api.tool.controller; 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 com.yeejoin.amos.api.tool.face.service.RelationService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -10,6 +12,12 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation; ...@@ -10,6 +12,12 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
@CrossOrigin @CrossOrigin
@RestController @RestController
...@@ -18,20 +26,40 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel; ...@@ -18,20 +26,40 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
public class RelationResource { public class RelationResource {
@Autowired @Autowired
private RelationService relationService; private RelationService relationService;
@Autowired
DataBaseLinkService dataBaseLinkService;
/** /**
* 根据机构ID和数据库sequenceNbr批量删除数据库 * 根据机构ID和数据库sequenceNbr批量删除数据库
*
* @param agencyCodeId 机构ID * @param agencyCodeId 机构ID
* @param sequenceNbrs 多个主键 * @param sequenceNbrs 多个主键
* @return String * @return String
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/relation/{agencyCodeId}/{sequenceNbrs}") @DeleteMapping(value = "/relation/{agencyCodeId}/{sequenceNbrs}")
@ApiOperation(httpMethod = "DELETE", value = "机构删除", notes = "机构删除") @ApiOperation(httpMethod = "DELETE", value = "机构删除", notes = "机构删除")
public ResponseModel<String> deleteDataBase( public ResponseModel<String> deleteDataBase(
@PathVariable Long agencyCodeId, @PathVariable Long agencyCodeId,
@PathVariable String sequenceNbrs) throws Exception { @PathVariable String sequenceNbrs) throws Exception {
relationService.deleteAgency(agencyCodeId,sequenceNbrs); relationService.deleteAgency(agencyCodeId, sequenceNbrs);
return ResponseHelper.buildResponse("The data has been deleted !"); return ResponseHelper.buildResponse("The data has been deleted !");
} }
}
/**
* 导出SQL脚本
*
* @return String
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/output/{agencyCodeId}/{sequenceNbrs}")
@ApiOperation(httpMethod = "GET", value = "导出", notes = "导出")
public ResponseModel<String> genereteSQL(
@PathVariable Long agencyCodeId,
@PathVariable String sequenceNbrs,
HttpServletResponse response) throws Exception {
relationService.outputAgency(agencyCodeId, sequenceNbrs,response);
return ResponseHelper.buildResponse("yes");
}
}
\ No newline at end of file
...@@ -133,9 +133,9 @@ public class TemplateResource { ...@@ -133,9 +133,9 @@ public class TemplateResource {
* @return TemplateModel * @return TemplateModel
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@CrossOrigin
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr导入content", notes = "根据sequenceNbr导入content") @ApiOperation(httpMethod = "POST", value = "根据sequenceNbr导入content", notes = "根据sequenceNbr导入content")
@PostMapping(value = "/import") @PostMapping(value = "/import")
@CrossOrigin(methods = RequestMethod.POST)
public ResponseModel<TemplateModel> importTpl(@RequestParam("file") MultipartFile multipartFile) throws IOException { public ResponseModel<TemplateModel> importTpl(@RequestParam("file") MultipartFile multipartFile) throws IOException {
return ResponseHelper.buildResponse(templateService.createWithModel(templateService.fileToTpl(multipartFile))); return ResponseHelper.buildResponse(templateService.createWithModel(templateService.fileToTpl(multipartFile)));
} }
......
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.service.TransferDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.sql.SQLException;
@CrossOrigin
@RestController
@Api(tags = "数据迁移")
@RequestMapping(value = "/transfer_data")
public class TransferDataResource {
@Autowired
private TransferDataService transferDataService;
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PutMapping(value = "/relation/")
@ApiOperation(httpMethod = "Put", value = "数据迁移", notes = "数据迁移")
public ResponseModel<String> transferData( ) throws SQLException, ClassNotFoundException {
transferDataService.transferData();
return ResponseHelper.buildResponse("The data has been transferred !");
}
}
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.ViewModel;
import com.yeejoin.amos.api.tool.face.service.ViewService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.doc.TycloudResource;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import java.util.List;
@RestController
@TycloudResource(module = "iot", value = "view")
@RequestMapping(value = "/v1/iot/View")
@Api(tags = "测试")
public class ViewController {
private final Logger logger = LogManager.getLogger(ViewController.class);
@Resource
private ViewService viewService;
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN,needAuth = false)
@ApiOperation(value = "根据所属机构查询")
@GetMapping("/list")
public ResponseModel selectForList(@RequestParam(value = "agency") String agency) {
return ResponseHelper.buildResponse(viewService.queryForAViewList(agency));
}
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN,needAuth = false)
@PostMapping("/save")
@ApiOperation(value = "新增",notes = "新增")
public ResponseModel<ViewModel> save(@RequestBody ViewModel viewModel){
viewModel = viewService.createWithModel(viewModel);
return ResponseHelper.buildResponse(viewModel);
}
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN,needAuth = false)
@PostMapping("/sences/list")
@ApiOperation(value = "根据场景查询")
public ResponseModel selectByScene(@RequestParam(value = "sences") String sences){
return ResponseHelper.buildResponse(viewService.queryByScene(sences));
}
/**
* 根据字段查询
*/
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN,needAuth = false)
@PostMapping ("/select/all")
@ApiOperation(value = "查询大全")
public ResponseModel query(@RequestParam(value = "sences") String sences,@RequestParam(value = "miniSences") String miniSences){
return ResponseHelper.buildResponse(viewService.query(sences,miniSences));
}
/**
* 查询所有
*/
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN,needAuth = false)
@PostMapping("/every")
@ApiOperation("平台")
public ResponseModel<List<ViewModel>> queryEvery(){
return ResponseHelper.buildResponse(viewService.queryEvery());
}
/**
* 根据ID删除
*/
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN,needAuth = false)
@PostMapping("/delete")
@ApiOperation(value = "删除")
public ResponseModel<Boolean> deleteById(@RequestParam(value = "SEQUENCE_NBR") Long SEQUENCE_NBR){
return ResponseHelper.buildResponse(viewService.deleteBySeq(SEQUENCE_NBR));
}
/**
* 根据ID更新
*/
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN,needAuth = false)
@PostMapping("/update")
@ApiOperation(value = "更新")
public ResponseModel updateById(@RequestParam(value = "SEQUENCE_NBR") Long SEQUENCE_NBR){
return ResponseHelper.buildResponse(viewService.updateTimes(SEQUENCE_NBR));
}
}
package com.yeejoin.amos.api.tool.enums;
public enum SortType {
COMPREHENSIVE("综合排序", "templateId", "asc"),
LATEST("最新发布", "releaseTime", "desc"),
VIEW_TIMES("最多浏览", "viewTimes", "desc");
private final String name;
private final String field;
private final String direction;
SortType(String name, String field, String direction) {
this.name = name;
this.field = field;
this.direction = direction;
}
public String getName() {
return name;
}
public String getField() {
return field;
}
public String getDirection() {
return direction;
}
public static SortType fromName(String name) {
for (SortType sortType : SortType.values()) {
if (sortType.getName().equals(name)) {
return sortType;
}
}
// 默认返回综合排序
return COMPREHENSIVE;
}
}
...@@ -8,33 +8,37 @@ import java.sql.Timestamp; ...@@ -8,33 +8,37 @@ import java.sql.Timestamp;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
public class ViewModel extends BaseModel { public class AmosToolTemplateModel extends BaseModel {
/** /**
* 编号 * 模板ID
*/ */
private Long sequenceNbr; private Long templateId;
/** /**
* 名称 * 模板名称
*/ */
private String name; private String templateName;
/** /**
* 场景 * 场景类型
*/ */
private String sences; private String templateScene;
/** /**
* 所属机构 * 所属机构
*/ */
private String agency; private String agencyName;
/** /**
* 查看次数 * 查看次数
*/ */
private Integer times; private Integer viewTimes;
/** /**
* URL * 模板URL
*/ */
private String url; private String templateUrl;
/** /**
* 发布时间 * 发布时间
*/ */
private Timestamp release; private Timestamp releaseTime;
/**
* 是否删除
*/
private Boolean isDelete;
} }
...@@ -16,9 +16,6 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel; ...@@ -16,9 +16,6 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
@ApiModel(value = "DataBaseLinkModel", description = "") @ApiModel(value = "DataBaseLinkModel", description = "")
public class DataBaseLinkModel extends BaseModel { public class DataBaseLinkModel extends BaseModel {
@ApiModelProperty(value = "数据名称")
private String dataName = "";
@ApiModelProperty(value = "主机IP") @ApiModelProperty(value = "主机IP")
private String ip; private String ip;
...@@ -34,8 +31,7 @@ public class DataBaseLinkModel extends BaseModel { ...@@ -34,8 +31,7 @@ public class DataBaseLinkModel extends BaseModel {
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
private String passWord; private String passWord;
public DataBaseLinkModel(String dataName, String ip, String port, String dbName, String userName, String passWord) { public DataBaseLinkModel(String ip, String port, String dbName, String userName, String passWord) {
this.dataName = dataName;
this.ip = ip; this.ip = ip;
this.port = port; this.port = port;
this.dbName = dbName; this.dbName = dbName;
......
package com.yeejoin.amos.api.tool.face.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.typroject.tyboot.core.rdbms.model.BaseModel;
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@ApiModel(value = "DataBaseNameListModel", description = "")
public class DataBaseNameListModel extends BaseModel {
@ApiModelProperty(value = "数据库名")
private String dbName;
@ApiModelProperty(value = "连接id")
private String parentId;
}
...@@ -4,9 +4,11 @@ import io.swagger.annotations.ApiModel; ...@@ -4,9 +4,11 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
// import sun.reflect.generics.tree.Tree;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
//import java.util.TreeMap;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
......
package com.yeejoin.amos.api.tool.face.orm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel;
import com.yeejoin.amos.api.tool.face.orm.entity.AmosToolTemplate;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface AmosToolTemplateMapper extends BaseMapper<AmosToolTemplate> {
/**
* 全部
*/
@Select("select templateUrl,templateName,agencyName,viewTimes,releaseTime from amos_tool_template" +
" order by ${miniSences} ${way}")
List<AmosToolTemplateModel> listAll(@Param("miniSences") String miniSences,
@Param("way") String way);
/**
* 具体场景
*/
@Select("select templateUrl,templateName,agencyName,viewTimes,releaseTime from amos_tool_template" +
" where categoryScene=#{categoryScene} order by ${miniSences} ${way}")
List<AmosToolTemplateModel> queryByScenes(@Param("categoryScene") String categoryScene,
@Param("miniSences") String miniSences, @Param("way") String way);
@Select("select templateId,templateName,categoryScene,agencyName,viewTimes,templateUrl,releaseTime" +
" from amos_tool_template")
List<AmosToolTemplateModel> listAll();
/**
* 更新查看次数
*/
@Update("update amos_tool_template set viewTimes = viewTimes+1 where templateId = #{templateId}")
boolean updateById(Long templateId);
}
package com.yeejoin.amos.api.tool.face.orm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface DataBaseNameListMapper extends BaseMapper<DataBaseNameList> {
}
...@@ -13,6 +13,8 @@ import org.springframework.stereotype.Repository; ...@@ -13,6 +13,8 @@ import org.springframework.stereotype.Repository;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Mapper @Mapper
@Repository @Repository
public interface RelationMapper extends BaseMapper<Relation> { public interface RelationMapper extends BaseMapper<Relation> {
......
package com.yeejoin.amos.api.tool.face.orm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.tool.face.model.ViewModel;
import com.yeejoin.amos.api.tool.face.orm.entity.View;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface ViewMapper extends BaseMapper<View> {
/**
* 全部
*/
@Select("select url,name,agency,times,releasetime from view order by ${miniSences} ${way}")
List<ViewModel> queryAll(@Param("miniSences") String miniSences,@Param("way") String way);
/**
* 具体场景
*/
@Select("select url,name,agency,times,releasetime from view where sences=#{sences} order by ${miniSences} ${way}")
List<ViewModel> queryBySences(@Param("sences") String sences, @Param("miniSences") String miniSences, @Param("way") String way);
@Select("select SEQUENCE_NBR,name,sences,agency,times,url,releasetime from view")
List<ViewModel> queryEvery();
/**
* 更新查看次数
*/
@Update("update view set times = times+1 where SEQUENCE_NBR = #{SEQUENCE_NBR}")
boolean update(Long SEQUENCE_NBR);
}
...@@ -8,68 +8,54 @@ import lombok.Data; ...@@ -8,68 +8,54 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity; import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import java.util.Date;
import java.sql.Timestamp; import java.sql.Timestamp;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@TableName("view") @TableName("amos_tool_template")
public class View extends BaseEntity { public class AmosToolTemplate extends BaseEntity {
@TableId(
value = "SEQUENCE_NBR",
type = IdType.ID_WORKER
)
protected Long sequenceNbr;
/** /**
* 继承的无关字段 * 模板ID
*/ */
@TableField( @TableId(
value = "REC_DATE", value = "TEMPLATE_ID",
exist = false, type = IdType.ID_WORKER
select = false
)
protected Date recDate;
@TableField(
value = "REC_USER_ID",
exist = false,
select = false
) )
protected String recUserId; protected Long templateId;
/**
* 编号
*/
// @TableId(type = IdType.ID_WORKER_STR)
// private String vid;
/** /**
* 名称 * 模板名称
*/ */
@TableField("NAME") @TableField("TEMPLATE_NAME")
private String name; private String templateName;
/** /**
* 场景 * 场景类型
*/ */
@TableField("SENCES") @TableField("CATEGORY_SCENE")
private String sences; private String categoryScene;
/** /**
* 所属机构 * 所属机构
*/ */
@TableField("AGENCY") @TableField("AGENCY_NAME")
private String agency; private String agencyName;
/** /**
* 查看次数 * 查看次数
*/ */
@TableField("TIMES") @TableField("VIEW_TIMES")
private Integer times; private Integer viewTimes;
/** /**
* URL * 模板URL
*/ */
@TableField("URL") @TableField("TEMPLATE_URL")
private String url; private String templateUrl;
/** /**
* 发布时间 * 发布时间
*/ */
@TableField("RELEASE") @TableField("RELEASE_TIME")
private Timestamp release; private Timestamp releaseTime;
/**
* 是否删除
*/
@TableField("IS_DELETE")
private Boolean isDelete;
} }
...@@ -20,12 +20,6 @@ import lombok.experimental.Accessors; ...@@ -20,12 +20,6 @@ import lombok.experimental.Accessors;
public class DataBaseLink extends BaseEntity { public class DataBaseLink extends BaseEntity {
/** /**
*数据名称
*/
@TableField("dataName")
private String dataName;
/**
*主机IP *主机IP
*/ */
@TableField("ip") @TableField("ip")
......
package com.yeejoin.amos.api.tool.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("database_name_list")
public class DataBaseNameList extends BaseEntity {
/**
* 数据库名
*/
@TableField("dbName")
private String dbName;
/**
* 连接id
*/
@TableField("parentId")
private Long parentId;
}
package com.yeejoin.amos.api.tool.face.service;
import com.yeejoin.amos.api.tool.enums.SortType;
import com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel;
import com.yeejoin.amos.api.tool.face.orm.dao.AmosToolTemplateMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.AmosToolTemplate;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.annotation.Resource;
import java.util.List;
@Component
public class AmosToolTemplateService extends BaseService<AmosToolTemplateModel,
AmosToolTemplate, AmosToolTemplateMapper> {
@Resource
private AmosToolTemplateMapper amosToolTemplateMapper;
/**
* 查询所有
*/
public List<AmosToolTemplateModel> queryEvery() {
return amosToolTemplateMapper.listAll();
}
/**
* 查看次数更新
*/
public boolean updateTimes(Long templateId) {
return amosToolTemplateMapper.updateById(templateId);
}
/**
* 获取排序类型
*/
private SortType getSortType(String miniScenes) {
return SortType.fromName(miniScenes);
}
/**
* 统一处理
*/
public List<AmosToolTemplateModel> query(String categoryScene, String miniScenes) {
SortType sortType = getSortType(miniScenes);
if ("全部".equals(categoryScene)) {
return amosToolTemplateMapper.listAll(sortType.getField(), sortType.getDirection());
} else {
return amosToolTemplateMapper.queryByScenes(categoryScene, sortType.getField(), sortType.getDirection());
}
}
}
...@@ -76,7 +76,6 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase ...@@ -76,7 +76,6 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
DataBaseLinkModel model = new DataBaseLinkModel(); DataBaseLinkModel model = new DataBaseLinkModel();
BeanUtils.copyProperties(model, dataBaseLinkModel); BeanUtils.copyProperties(model, dataBaseLinkModel);
model.setDbName(name); model.setDbName(name);
model.setDataName(name);
dataBaseLinkModels.add(model); dataBaseLinkModels.add(model);
dataBaseLinks.add(this.prepareEntity(model)); dataBaseLinks.add(this.prepareEntity(model));
} }
......
package com.yeejoin.amos.api.tool.face.service;
import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseLinkMapper;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseNameListMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
@Service
public class DataBaseNameListService extends BaseService<DataBaseNameListModel, DataBaseNameList, DataBaseNameListMapper> {
}
...@@ -4,34 +4,62 @@ import com.alibaba.fastjson.JSON; ...@@ -4,34 +4,62 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.PictureModel;
import com.yeejoin.amos.api.tool.face.model.TemplateCategoryTreeModel;
import com.yeejoin.amos.api.tool.face.model.TemplateModel; import com.yeejoin.amos.api.tool.face.model.TemplateModel;
import com.yeejoin.amos.api.tool.face.model.TemplateVoModel; 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.dao.TemplateMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.Template; import com.yeejoin.amos.api.tool.face.orm.entity.Template;
import com.yeejoin.amos.api.tool.utils.ConvertUtil; import com.yeejoin.amos.api.tool.utils.ConvertUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.utils.StringUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.Reader; import java.io.Reader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.UUID; import java.util.UUID;
@Service @Service
public class TemplateService extends BaseService<TemplateModel, Template, TemplateMapper> { public class TemplateService extends BaseService<TemplateModel, Template, TemplateMapper> {
@Autowired
private TemplateCategoryService templateCategoryService;
/** /**
* 分页查询 * 分页查询
*/ */
public Page<TemplateModel> queryForTplPage(Page<TemplateModel> page, Long categorySeq, String displayName) { public Page<TemplateModel> queryForTplPage(Page<TemplateModel> page, Long categorySeq, String displayName) {
List<TemplateCategoryTreeModel> modelList = templateCategoryService.getTree();
List<TemplateModel> records = new ArrayList<>();
for (TemplateCategoryTreeModel visualDesigner : modelList) {
if (Objects.equals(categorySeq, visualDesigner.getSequenceNbr())) {
for (TemplateCategoryTreeModel category : visualDesigner.getChildren()) {
records.addAll(this.queryForTplListByCategorySeq(category.getSequenceNbr()));
}
return this.queryForPages(records, page);
}
}
return this.queryForPage(page, null, false, categorySeq, displayName); return this.queryForPage(page, null, false, categorySeq, displayName);
} }
public Page<TemplateModel> queryForPages(List<TemplateModel> records, Page<TemplateModel> page) {
Page<TemplateModel> entiryPage = new Page(page.getCurrent(), page.getSize());
if (!ValidationUtil.isEmpty(records)) {
page.setTotal(records.size());
page.setPages(entiryPage.getPages());
page.setCurrent(entiryPage.getCurrent());
page.setSize(entiryPage.getSize());
page.setRecords(records);
}
return page;
}
/** /**
* 列表查询 * 列表查询
*/ */
...@@ -42,9 +70,9 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa ...@@ -42,9 +70,9 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/** /**
* 根据模板分类ID获取模板sequenceNb's * 根据模板分类ID获取模板sequenceNb's
*/ */
public List<String> selectSeqsByCategorySeq(Long categorySeq){ public List<String> selectSeqsByCategorySeq(Long categorySeq) {
List<String> strings = new ArrayList<>(); List<String> strings = new ArrayList<>();
for (TemplateModel model : this.queryForTplListByCategorySeq(categorySeq)){ for (TemplateModel model : this.queryForTplListByCategorySeq(categorySeq)) {
strings.add(Long.toString(model.getSequenceNbr())); strings.add(Long.toString(model.getSequenceNbr()));
} }
return strings; return strings;
...@@ -61,7 +89,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa ...@@ -61,7 +89,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/** /**
* 根据sequenceNbr获取模板并转化为VO * 根据sequenceNbr获取模板并转化为VO
*/ */
public TemplateVoModel queryForTplVo(Long sequenceNbr){ public TemplateVoModel queryForTplVo(Long sequenceNbr) {
TemplateModel templateModel = this.queryBySeq(sequenceNbr); TemplateModel templateModel = this.queryBySeq(sequenceNbr);
TemplateVoModel templateVoModel = this.convertVoModel(templateModel); TemplateVoModel templateVoModel = this.convertVoModel(templateModel);
if (templateModel.getContent() != null) { if (templateModel.getContent() != null) {
...@@ -114,10 +142,10 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa ...@@ -114,10 +142,10 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/** /**
* model转化VO * model转化VO
*/ */
public TemplateVoModel convertVoModel(TemplateModel templateModel){ public TemplateVoModel convertVoModel(TemplateModel templateModel) {
TemplateVoModel tplVoModel = new TemplateVoModel(); TemplateVoModel tplVoModel = new TemplateVoModel();
BeanUtils.copyProperties(templateModel, tplVoModel); BeanUtils.copyProperties(templateModel, tplVoModel);
if(templateModel.getSketch() != null) if (templateModel.getSketch() != null)
tplVoModel.setSketches(this.urlToPicModel(templateModel.getSketch())); tplVoModel.setSketches(this.urlToPicModel(templateModel.getSketch()));
if (templateModel.getThumb() != null) if (templateModel.getThumb() != null)
tplVoModel.setThumbs(this.urlToPicModel(templateModel.getThumb())); tplVoModel.setThumbs(this.urlToPicModel(templateModel.getThumb()));
...@@ -128,8 +156,8 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa ...@@ -128,8 +156,8 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/** /**
* 生成随机UID * 生成随机UID
*/ */
public String getUid(){ public String getUid() {
UUID uuid= UUID.randomUUID(); UUID uuid = UUID.randomUUID();
String str = uuid.toString(); String str = uuid.toString();
return str.replace("-", ""); return str.replace("-", "");
} }
...@@ -137,7 +165,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa ...@@ -137,7 +165,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/** /**
* url转化图片 * url转化图片
*/ */
public List<PictureModel> urlToPicModel(String url){ public List<PictureModel> urlToPicModel(String url) {
List<PictureModel> pictureModels = new ArrayList<>(); List<PictureModel> pictureModels = new ArrayList<>();
PictureModel pictureModel = new PictureModel("", this.getUid(), url, "done"); PictureModel pictureModel = new PictureModel("", this.getUid(), url, "done");
pictureModels.add(pictureModel); pictureModels.add(pictureModel);
......
package com.yeejoin.amos.api.tool.face.service;
import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn;
import com.yeejoin.amos.api.tool.utils.TableUtils;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class TransferDataService {
private static String TABLE_DES = "mcb_warning_base_source_attribution";
private static String TABLE_ORI = "qms_explorer";
private static String DBNAME_DES = "amos_mcb";
private static String DBNAME_ORI = "amos_studio";
public Connection connectDataBase(String dataBaseName) throws ClassNotFoundException, SQLException {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 生成url
String dbUrl = "jdbc:mysql://172.16.3.18:3306/" + dataBaseName;
// 连接数据库
return DriverManager.getConnection(dbUrl, "root", "Yeejoin@2020");
}
public void transferData() throws SQLException, ClassNotFoundException {
Connection connection = this.connectDataBase(DBNAME_ORI);
List<Map<String,Object>> maps = TableUtils.getMaps("SELECT * FROM " + TABLE_ORI + " ;" , connection);
connection.close();
connection = this.connectDataBase(DBNAME_DES);
List<TableColumn> columns = TableUtils.getTableColumn(TABLE_DES,connection);
List<Map<String,Object>> dataList = this.convertDataMap(maps, columns);
System.out.println(TableUtils.getInsertSQL(dataList,columns,TABLE_DES));
}
public List<Map<String, Object>> convertDataMap(List<Map<String, Object>> maps, List<TableColumn> columns) {
List<Map<String, Object>> dataList = new ArrayList<>();
for (Map<String, Object> map : maps) {
Map<String, Object> data = new HashMap<>();
for (TableColumn column : columns) {
data.put(column.getColumnName(), null);
}
data.replace("SEQUENCE_NBR", map.get("SEQUENCE_NBR"));
data.replace("NAME", map.get("RESOURCE_NAME"));
data.replace("PARENT_ID", map.get("PARENT_ID"));
data.replace("CODE", map.get("AGENCY_CODE"));
data.replace("REC_USER_ID", map.get("REC_USER_ID"));
data.replace("REC_DATE", map.get("REC_DATE"));
dataList.add(data);
}
return dataList;
}
}
package com.yeejoin.amos.api.tool.face.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.ViewModel;
import com.yeejoin.amos.api.tool.face.orm.dao.ViewMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.View;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.annotation.Resource;
import java.util.List;
@Component
public class ViewService extends BaseService<ViewModel, View, ViewMapper> {
@Resource
ViewMapper viewMapper;
/**
* 根据所属机构分页查询
*/
public Page<ViewModel> queryForViewPageByAgency(Page page, String agency) {
return this.queryForPage(page, null, false, agency);
}
/**
* 查询所有
*/
public List<ViewModel> queryEvery(){
return viewMapper.queryEvery();
}
/**
* 根据所属机构列表查询
*/
public List<ViewModel> queryForAViewList(String agency) {
return this.queryForList("" , false, agency);
}
/**
* 根据场景分页查询
*/
public Page<ViewModel> queryByScene(Page page, String sences) {
return this.queryForPage(page, null, false, sences);
}
/**
* 根据场景列表查询
*/
public List<ViewModel> queryByScene(String sences) {
return this.queryForList("" , false, sences);
}
/**
* 查看次数更新
*/
public boolean updateTimes(Long SEQUENCE_NBR){
return viewMapper.update(SEQUENCE_NBR);
}
/**
* 统一处理
*/
public List<ViewModel> query(String sences,String miniSences){
if (sences.equals("全部")){
if (miniSences.equals("综合排序")){
return viewMapper.queryAll("SEQUENCE_NBR","asc");
}
else if (miniSences.equals("最新发布")){
return viewMapper.queryAll("releasetime","desc");
}
else
return viewMapper.queryAll("times","desc");
}
else{
if (miniSences.equals("综合排序")){
return viewMapper.queryBySences(sences,"SEQUENCE_NBR","asc");
}
else if (miniSences.equals("最新发布")){
return viewMapper.queryBySences(sences,"releasetime","desc");
}
else
return viewMapper.queryBySences(sences,"times","desc");
}
}
}
package com.yeejoin.amos.api.tool.utils;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn;
import org.springframework.util.ObjectUtils;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TableUtils {
/**
* 数据库备份路径
*/
public static final String BACKUP_PATH = "/db/";
/**
* 数据库备份文本前缀
*/
public static String ONESQL_PREFIX = "";
public static String SUFFIX = "sql";
public static String BR = "\r\n";
public static String SLASH = "/";
public static String BRANCH = ";";
private static String SPLIT = "`";
private static String SPACE = " ";
private static String INSERT_INTO = " INSERT INTO ";
private static String CREATE_INTO = " CREATE TABLE ";
private static String VALUES = "VALUES";
private static String LEFTBRACE = "(";
private static String RIGHTBRACE = ")";
private static String QUOTES = "'";
private static String COMMA = ",";
private static String DISABLEFOREIGN = "SET FOREIGN_KEY_CHECKS = 0;\r\n";
private static String ABLEFOREIGN = "SET FOREIGN_KEY_CHECKS = 1;\r\n";
public static String DELIMITER = "###################################";
/**
* 获取maps
*/
public static List<Map<String, Object>> getMaps(String sql, Connection connection) throws SQLException {
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(sql);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();
while (rs.next()) {
Map<String, Object> rowData = new HashMap<String, Object>();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
rs = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
/**
* 获取表单列名
*/
public static List<TableColumn> getTableColumn(String tableName, Connection connection) throws SQLException {
String columnSql = "" +
"\t\t SELECT\n" +
"\t\t table_name as table_name,\n" +
"\t\t\tcolumn_name as columnName,\n" +
"\t\t\t( CASE WHEN ( is_nullable = 'no' && column_key != 'PRI' ) THEN '1' ELSE NULL END ) AS isRequired,\n" +
"\t\t\t( CASE WHEN column_key = 'PRI' THEN '1' ELSE '0' END ) AS isPk,\n" +
"\t\t\tordinal_position AS sort,\n" +
"\t\t\tcolumn_comment as columnComment,\n" +
"\t\t\t( CASE WHEN extra = 'auto_increment' THEN '1' ELSE '0' END ) AS isIncrement,\n" +
"\t\t\tcolumn_type as columnType \n" +
"\t\tFROM\n" +
"\t\t\tinformation_schema.COLUMNS \n" +
"\t\tWHERE\n" +
"\t\t\ttable_schema = database()\n" +
"\t\t\tAND table_name = \"" + tableName + "\"\n" +
"\t\tORDER BY\n" +
"\t\t\tordinal_position\t";
List<Map<String, Object>> columnList = TableUtils.getMaps(columnSql, connection);
List<TableColumn> columns = new ArrayList<>();
for (Map<String, Object> map : columnList) {
TableColumn column = JSON.parseObject(JSON.toJSONString(map), TableColumn.class);
if(!column.getColumnName().equals("content"))
columns.add(column);
}
return columns;
}
/**
* 获取insert语句
*/
public static StringBuffer getInsertSQL(List<Map<String, Object>> dataList, List<TableColumn> columns, String tableName) {
StringBuffer sql = new StringBuffer();
for (Map<String, Object> map : dataList) {
sql.append(INSERT_INTO);
sql.append(SPACE).append(tableName).append(SPACE);
sql.append(LEFTBRACE);
for (TableColumn column : columns) {
sql.append(SPLIT);
sql.append(column.getColumnName());
sql.append(SPLIT);
sql.append(COMMA);
}
sql.deleteCharAt(sql.length() - 1);
sql.append(RIGHTBRACE);
sql.append(VALUES);
sql.append(LEFTBRACE);
for (TableColumn column : columns) {
if (column.getColumnType().contains("bigint") ||
column.getColumnType().contains("int") ||
column.getColumnType().contains("bit(1)")) {
if (!ObjectUtils.isEmpty(map.get(column.getColumnName()))) {
sql.append(map.get(column.getColumnName()));
} else {
sql.append("0");
}
} else {
if (!ObjectUtils.isEmpty(map.get(column.getColumnName()))) {
sql.append("'").append(map.get(column.getColumnName())).append("'");
} else {
sql.append("null");
}
}
sql.append(COMMA);
}
sql.deleteCharAt(sql.length() - 1);
sql.append(RIGHTBRACE);
sql.append(BRANCH).append(BR);
}
return sql;
}
}
spring.application.name=DemoProject spring.application.name=AMOS-ATL
server.servlet.context-path=/atl #server.servlet.context-path=/atl
#server.servlet.context-path=/jcs server.servlet.context-path=/jcs
server.port=30201 #server.port=30201
#server.port=20000 server.port=20000
spring.profiles.active=dev spring.profiles.active=dev
management.health.elasticsearch.enabled=false management.health.elasticsearch.enabled=false
......
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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.ViewMapper"> <mapper namespace="com.yeejoin.amos.api.tool.face.orm.dao.AmosToolTemplateMapper">
<!-- <select id="queryAll" parameterType="com.yeejoin.amos.api.tool.face.orm.dao.ViewMapper">--> <!-- <select id="queryAll" parameterType="com.yeejoin.amos.api.tool.face.orm.dao.AmosToolTemplateMappermplateMapper">-->
<!-- select * from view;--> <!-- select * from view;-->
<!-- </select>--> <!-- </select>-->
</mapper> </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