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 @@
<groupId>com.yeejoin.amos</groupId>
<artifactId>amos-api-tool</artifactId>
<packaging>jar</packaging>
<version>1.9.0-SNAPSHOT</version>
<version>1.0.0-SNAPSHOT</version>
<name>amos-api-tool</name>
<description>amos-api-tool</description>
......@@ -36,6 +36,12 @@
<version>1.4.5.RELEASE</version>
</dependency>
<!--JSqlparser(高效的SQL解析工具)-->
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>4.4</version>
</dependency>
<!-- easy-poi -->
<dependency>
......@@ -233,7 +239,21 @@
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.9</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
<mainClass>com.yeejoin.amos.Application</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
......
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;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseLinkService;
import com.yeejoin.amos.api.tool.face.service.RelationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -10,6 +12,12 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
@CrossOrigin
@RestController
......@@ -18,20 +26,40 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
public class RelationResource {
@Autowired
private RelationService relationService;
@Autowired
DataBaseLinkService dataBaseLinkService;
/**
* 根据机构ID和数据库sequenceNbr批量删除数据库
*
* @param agencyCodeId 机构ID
* @param sequenceNbrs 多个主键
* @return String
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/relation/{agencyCodeId}/{sequenceNbrs}")
@ApiOperation(httpMethod = "DELETE", value = "机构删除", notes = "机构删除")
public ResponseModel<String> deleteDataBase(
@PathVariable Long agencyCodeId,
@PathVariable String sequenceNbrs) throws Exception {
relationService.deleteAgency(agencyCodeId,sequenceNbrs);
relationService.deleteAgency(agencyCodeId, sequenceNbrs);
return ResponseHelper.buildResponse("The data has been deleted !");
}
}
/**
* 导出SQL脚本
*
* @return String
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/output/{agencyCodeId}/{sequenceNbrs}")
@ApiOperation(httpMethod = "GET", value = "导出", notes = "导出")
public ResponseModel<String> genereteSQL(
@PathVariable Long agencyCodeId,
@PathVariable String sequenceNbrs,
HttpServletResponse response) throws Exception {
relationService.outputAgency(agencyCodeId, sequenceNbrs,response);
return ResponseHelper.buildResponse("yes");
}
}
\ No newline at end of file
......@@ -133,9 +133,9 @@ public class TemplateResource {
* @return TemplateModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@CrossOrigin
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr导入content", notes = "根据sequenceNbr导入content")
@PostMapping(value = "/import")
@CrossOrigin(methods = RequestMethod.POST)
public ResponseModel<TemplateModel> importTpl(@RequestParam("file") MultipartFile multipartFile) throws IOException {
return ResponseHelper.buildResponse(templateService.createWithModel(templateService.fileToTpl(multipartFile)));
}
......
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;
@EqualsAndHashCode(callSuper = true)
@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;
@ApiModel(value = "DataBaseLinkModel", description = "")
public class DataBaseLinkModel extends BaseModel {
@ApiModelProperty(value = "数据名称")
private String dataName = "";
@ApiModelProperty(value = "主机IP")
private String ip;
......@@ -34,8 +31,7 @@ public class DataBaseLinkModel extends BaseModel {
@ApiModelProperty(value = "密码")
private String passWord;
public DataBaseLinkModel(String dataName, String ip, String port, String dbName, String userName, String passWord) {
this.dataName = dataName;
public DataBaseLinkModel(String ip, String port, String dbName, String userName, String passWord) {
this.ip = ip;
this.port = port;
this.dbName = dbName;
......
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;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
// import sun.reflect.generics.tree.Tree;
import java.util.ArrayList;
import java.util.List;
//import java.util.TreeMap;
@Data
@NoArgsConstructor
......
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;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
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;
import lombok.EqualsAndHashCode;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import java.util.Date;
import java.sql.Timestamp;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("view")
public class View extends BaseEntity {
@TableName("amos_tool_template")
public class AmosToolTemplate extends BaseEntity {
@TableId(
value = "SEQUENCE_NBR",
type = IdType.ID_WORKER
)
protected Long sequenceNbr;
/**
* 继承的无关字段
* 模板ID
*/
@TableField(
value = "REC_DATE",
exist = false,
select = false
)
protected Date recDate;
@TableField(
value = "REC_USER_ID",
exist = false,
select = false
@TableId(
value = "TEMPLATE_ID",
type = IdType.ID_WORKER
)
protected String recUserId;
/**
* 编号
*/
// @TableId(type = IdType.ID_WORKER_STR)
// private String vid;
protected Long templateId;
/**
* 名称
* 模板名称
*/
@TableField("NAME")
private String name;
@TableField("TEMPLATE_NAME")
private String templateName;
/**
* 场景
* 场景类型
*/
@TableField("SENCES")
private String sences;
@TableField("CATEGORY_SCENE")
private String categoryScene;
/**
* 所属机构
*/
@TableField("AGENCY")
private String agency;
@TableField("AGENCY_NAME")
private String agencyName;
/**
* 查看次数
*/
@TableField("TIMES")
private Integer times;
@TableField("VIEW_TIMES")
private Integer viewTimes;
/**
* URL
* 模板URL
*/
@TableField("URL")
private String url;
@TableField("TEMPLATE_URL")
private String templateUrl;
/**
* 发布时间
*/
@TableField("RELEASE")
private Timestamp release;
@TableField("RELEASE_TIME")
private Timestamp releaseTime;
/**
* 是否删除
*/
@TableField("IS_DELETE")
private Boolean isDelete;
}
......@@ -20,12 +20,6 @@ import lombok.experimental.Accessors;
public class DataBaseLink extends BaseEntity {
/**
*数据名称
*/
@TableField("dataName")
private String dataName;
/**
*主机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
DataBaseLinkModel model = new DataBaseLinkModel();
BeanUtils.copyProperties(model, dataBaseLinkModel);
model.setDbName(name);
model.setDataName(name);
dataBaseLinkModels.add(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;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.PictureModel;
import com.yeejoin.amos.api.tool.face.model.TemplateCategoryTreeModel;
import com.yeejoin.amos.api.tool.face.model.TemplateModel;
import com.yeejoin.amos.api.tool.face.model.TemplateVoModel;
import com.yeejoin.amos.api.tool.face.orm.dao.TemplateMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.Template;
import com.yeejoin.amos.api.tool.utils.ConvertUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.utils.StringUtil;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@Service
public class TemplateService extends BaseService<TemplateModel, Template, TemplateMapper> {
@Autowired
private TemplateCategoryService templateCategoryService;
/**
* 分页查询
*/
public Page<TemplateModel> queryForTplPage(Page<TemplateModel> page, Long categorySeq, String displayName) {
List<TemplateCategoryTreeModel> modelList = templateCategoryService.getTree();
List<TemplateModel> records = new ArrayList<>();
for (TemplateCategoryTreeModel visualDesigner : modelList) {
if (Objects.equals(categorySeq, visualDesigner.getSequenceNbr())) {
for (TemplateCategoryTreeModel category : visualDesigner.getChildren()) {
records.addAll(this.queryForTplListByCategorySeq(category.getSequenceNbr()));
}
return this.queryForPages(records, page);
}
}
return this.queryForPage(page, null, false, categorySeq, displayName);
}
public Page<TemplateModel> queryForPages(List<TemplateModel> records, Page<TemplateModel> page) {
Page<TemplateModel> entiryPage = new Page(page.getCurrent(), page.getSize());
if (!ValidationUtil.isEmpty(records)) {
page.setTotal(records.size());
page.setPages(entiryPage.getPages());
page.setCurrent(entiryPage.getCurrent());
page.setSize(entiryPage.getSize());
page.setRecords(records);
}
return page;
}
/**
* 列表查询
*/
......@@ -42,9 +70,9 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 根据模板分类ID获取模板sequenceNb's
*/
public List<String> selectSeqsByCategorySeq(Long categorySeq){
public List<String> selectSeqsByCategorySeq(Long categorySeq) {
List<String> strings = new ArrayList<>();
for (TemplateModel model : this.queryForTplListByCategorySeq(categorySeq)){
for (TemplateModel model : this.queryForTplListByCategorySeq(categorySeq)) {
strings.add(Long.toString(model.getSequenceNbr()));
}
return strings;
......@@ -61,7 +89,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 根据sequenceNbr获取模板并转化为VO
*/
public TemplateVoModel queryForTplVo(Long sequenceNbr){
public TemplateVoModel queryForTplVo(Long sequenceNbr) {
TemplateModel templateModel = this.queryBySeq(sequenceNbr);
TemplateVoModel templateVoModel = this.convertVoModel(templateModel);
if (templateModel.getContent() != null) {
......@@ -114,10 +142,10 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* model转化VO
*/
public TemplateVoModel convertVoModel(TemplateModel templateModel){
public TemplateVoModel convertVoModel(TemplateModel templateModel) {
TemplateVoModel tplVoModel = new TemplateVoModel();
BeanUtils.copyProperties(templateModel, tplVoModel);
if(templateModel.getSketch() != null)
if (templateModel.getSketch() != null)
tplVoModel.setSketches(this.urlToPicModel(templateModel.getSketch()));
if (templateModel.getThumb() != null)
tplVoModel.setThumbs(this.urlToPicModel(templateModel.getThumb()));
......@@ -128,8 +156,8 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 生成随机UID
*/
public String getUid(){
UUID uuid= UUID.randomUUID();
public String getUid() {
UUID uuid = UUID.randomUUID();
String str = uuid.toString();
return str.replace("-", "");
}
......@@ -137,7 +165,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* url转化图片
*/
public List<PictureModel> urlToPicModel(String url){
public List<PictureModel> urlToPicModel(String url) {
List<PictureModel> pictureModels = new ArrayList<>();
PictureModel pictureModel = new PictureModel("", this.getUid(), url, "done");
pictureModels.add(pictureModel);
......
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
server.servlet.context-path=/atl
#server.servlet.context-path=/jcs
server.port=30201
#server.port=20000
spring.application.name=AMOS-ATL
#server.servlet.context-path=/atl
server.servlet.context-path=/jcs
#server.port=30201
server.port=20000
spring.profiles.active=dev
management.health.elasticsearch.enabled=false
......
<?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.ViewMapper">
<!-- <select id="queryAll" parameterType="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.AmosToolTemplateMappermplateMapper">-->
<!-- select * from view;-->
<!-- </select>-->
</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