增加配置增删改查 增加查询数据库名和表名 完善字段查询

master
Yueng 2024-08-25 20:07:56 +08:00
parent b3d0a758b7
commit a5aeb3cc31
32 changed files with 48360 additions and 2111 deletions

View File

@ -2,11 +2,14 @@ package com.muyu.common.domain;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
import java.util.Optional;
import java.util.function.Supplier;
/**
* @Author
* @Packagecom.muyu.common.domain
@ -21,21 +24,35 @@ import lombok.experimental.SuperBuilder;
public class Connect extends BaseEntity {
/**
*
* id
*/
private String driver = "com.mysql.cj.jdbc.Driver";
private Integer id;
/**
*
*/
private String accSourName;
/**
*
*/
private String dataSourSystemName;
//jdbc:mysql://127.0.0.1:3306/test
/**
*
*/
private String tableName;
/**
* ip+
* ip
*/
private String ipAddress;
/**
*
*/
private String port;
/**
*
*/
@ -52,9 +69,63 @@ public class Connect extends BaseEntity {
private String password;
/**
*
*
*/
private String[] like;
private String initialization;
/**
*
*/
private String notes;
/**
*
*/
private String dataConnParam;
/**
*
*/
private Integer initSize;
/**
*
*/
private Integer maxNumConn;
/**
*
*/
private Integer maxWaitTime;
/**
*
*/
private Integer maxWaitTimes;
/**
* 5
*/
private List<Connect> connectList;
public static Connect connectBuild(Connect connect1, Supplier<List<Connect>> function) {
return Connect.builder()
.id(connect1.getId())
.accSourName(connect1.getAccSourName())
.dataSourSystemName(connect1.getDataSourSystemName())
.tableName(connect1.getTableName())
.ipAddress(connect1.getIpAddress())
.port(connect1.getPort())
.databaseName(connect1.getDatabaseName())
.userName(connect1.getUserName())
.password(connect1.getPassword())
.initialization(connect1.getInitialization())
.notes(connect1.getNotes())
.dataConnParam(connect1.getDataConnParam())
.initSize(connect1.getInitSize())
.maxNumConn(connect1.getMaxNumConn())
.maxWaitTime(connect1.getMaxWaitTime())
.maxWaitTimes(connect1.getMaxWaitTimes())
.connectList(function.get())
.build();
}
}

View File

@ -0,0 +1,88 @@
package com.muyu.common.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.function.Supplier;
/**
* @Authoryang
* @Packagecom.muyu.common.domain
* @Projectcloud-property
* @nameTableField
* @Date2024/8/23 11:39
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName("TableFie")
public class TableFie extends BaseEntity {
private Integer id;
@TableField(value = "field")
private String fieId;
private String type;
private String collation;
private String nullable;
@TableField(value = "primarys")
private String primary;
private String annotation;
public static TableFie customerBuild(TableFie tableFie, Supplier<TableFie> function) {
return com.muyu.common.domain.TableFie.builder()
.fieId(tableFie.getFieId())
.type(tableFie.getType())
.collation(tableFie.getCollation())
.nullable(tableFie.getNullable())
.primary(tableFie.getPrimary())
.annotation(tableFie.getAnnotation())
.build();
}
/**
* spring
* @param req
* @return
*/
public static TableFie addBuild(TableFie req) {
return com.muyu.common.domain.TableFie.builder()
.type(req.getType())
.collation(req.getCollation())
.nullable(req.getNullable())
.primary(req.getPrimary())
.annotation(req.getAnnotation())
.build();
}
/**
* spring
* @param req
* @return
*/
public static TableFie updBuild(TableFie req, Supplier<String> idSupplier) {
return com.muyu.common.domain.TableFie.builder()
.fieId(idSupplier.get())
.type(req.getType())
.collation(req.getCollation())
.nullable(req.getNullable())
.primary(req.getPrimary())
.annotation(req.getAnnotation())
.build();
}
public TableFie buildTableField() {
return com.muyu.common.domain.TableFie.builder()
.fieId(this.getFieId())
.type(this.getType())
.collation(this.getCollation())
.nullable(this.getNullable())
.primary(this.getPrimary())
.annotation(this.getAnnotation())
.build();
}
}

View File

@ -1,85 +0,0 @@
package com.muyu.common.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.enums.SysPayType;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.function.Supplier;
/**
* @Authoryang
* @Packagecom.muyu.common.domain
* @Projectcloud-property
* @nameTableField
* @Date2024/8/23 11:39
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName("TableField")
public class TableField extends BaseEntity {
private Long fieId;
private String type;
private String collation;
private String Null;
private String key;
private String comment;
public static TableField customerBuild(TableField tableField, Supplier<TableField> function) {
return TableField.builder()
.fieId(tableField.getFieId())
.type(tableField.getType())
.collation(tableField.getCollation())
.Null(tableField.getNull())
.key(tableField.getKey())
.comment(tableField.getComment())
.build();
}
/**
* spring
* @param req
* @return
*/
public static TableField addBuild(TableField req) {
return TableField.builder()
.type(req.getType())
.collation(req.getCollation())
.Null(req.getNull())
.key(req.getKey())
.comment(req.getComment())
.build();
}
/**
* spring
* @param req
* @return
*/
public static TableField updBuild(TableField req, Supplier<Long> idSupplier) {
return TableField.builder()
.fieId(idSupplier.get())
.type(req.getType())
.collation(req.getCollation())
.Null(req.getNull())
.key(req.getKey())
.comment(req.getComment())
.build();
}
public TableField buildTableField() {
return TableField.builder()
.fieId(this.getFieId())
.type(this.getType())
.collation(this.getCollation())
.Null(this.getNull())
.key(this.getKey())
.comment(this.getComment())
.build();
}
}

View File

@ -0,0 +1,31 @@
package com.muyu.common.domain;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Authoryang
* @Packagecom.muyu.common.domain
* @Projectcloud-property
* @nameTableName
* @Date2024/8/25 15:12
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@com.baomidou.mybatisplus.annotation.TableName("TableNames")
public class TableNames extends BaseEntity {
/**
*
*/
private String[] tableName;
/**
*
*/
private String[] dataName;
}

View File

@ -21,18 +21,12 @@ public class ConnectReq {
/**
*
*/
private String driver = "com.mysql.cj.jdbc.Driver";
private String DRIVER = "com.mysql.cj.jdbc.Driver";
//jdbc:mysql://127.0.0.1:3306/test
/**
*
*/
private final String url = "jdbc:mysql://";
/**
*
*/
private String tableName = "/";
private final String URL = "jdbc:mysql://";
}

View File

@ -0,0 +1,61 @@
package com.muyu.common.domain.req;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Author
* @Packagecom.muyu.common.domain
* @Projectcloud-integration
* @nameConnection
* @Date2024/8/21 1:00
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ConnectResp extends BaseEntity {
/**
*
*/
private String accSourName;
/**
*
*/
private String dataSourSystemName;
/**
*
*/
private String clazzName;
/**
* ip
*/
private String ipAddress;
/**
*
*/
private String port;
/**
*
*/
private String databaseName;
/**
*
*/
private Integer initialization;
/**
*
*/
private String notes;
}

View File

@ -0,0 +1,117 @@
package com.muyu.server.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.domain.Connect;
import com.muyu.server.service.ConnectService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.controller
* @Projectcloud-property
* @nameConnectReqController
* @Date2024/8/25 16:12
*/
@RestController
@RequestMapping("/connect")
@Tag(name = "查询数据",description = "从配置表查询数据")
@AllArgsConstructor
public class ConnectController {
private final ConnectService connectService;
/**
*
* @param connect
* @return
*/
@PostMapping("/selectConnect")
@Operation(summary = "查询数据",description = "查询数据")
public Result<List<Connect>> selectConnect(
@Validated @RequestBody Connect connect
){
return Result.success(connectService.selectConnect(connect));
}
/**
*
* @param connect
* @return
*/
@PostMapping("/add")
@Operation(summary = "添加配置表",description = "添加配置信息,添加添加成功之后才可以使用配置类的产品")
public Result<Integer> save(
@Validated @RequestBody Connect connect
){
return connectService.save(connect)
?Result.success(200,"添加成功")
:Result.error(500,"添加失败");
}
/**
*
* @param connect
* @return
*/
@PutMapping("/upd")
@Operation(summary = "修改方法",description = "根据ID进行修改配置信息")
public Result<Integer> update(
@Schema(title = "配置ID",type = "Integer",defaultValue = "1",description = "修改配置需要唯一条件")
@Validated @RequestBody Connect connect
){
return connectService.updateById(connect)
?Result.success(200,"修改成功")
:Result.error(500,"修改失败");
}
/**
*
* @param id ID
* @return
*/
@DeleteMapping("/del/{id}")
@Operation(summary = "客户信息删除",description = "通过ID删除客户信息")
public Result<Integer> delete(@PathVariable("id") Integer id){
return connectService.removeById(id)
?Result.success(200,"删除成功")
:Result.error(500,"删除失败");
}
/**
* ID
* @param id ID
* @return
*/
@GetMapping("/updInit/{id}")
@Operation(summary = "通过ID改变初始化状态",description = "通过ID改变初始化后将可以被初始化")
public Result<Integer> updInitDisable(
@PathVariable Integer id){
return connectService.updInitDisable(id)
?Result.success(200,"更改成功")
:Result.error(500,"更改失败");
}
/**
* ID
* @param id ID
* @return
*/
@GetMapping("/updInit/{id}")
@Operation(summary = "通过ID改变初始化状态",description = "通过ID改变初始化后将不再被初始化")
public Result<Integer> updInitEnable(
@PathVariable Integer id){
return connectService.updInitEnable(id)
?Result.success(200,"更改成功")
:Result.error(500,"更改失败");
}
}

View File

@ -3,17 +3,16 @@ package com.muyu.server.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.domain.Connect;
import com.muyu.common.domain.DataSourceList;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import com.muyu.server.service.DataSourceService;
import com.muyu.server.service.TableFieldService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Collections;
import java.util.List;
/**
@ -51,31 +50,45 @@ public class DataSourceController {
*/
@PostMapping("/tableField")
@Operation(summary = "抽取结构",description = "从数据源中抽取结构")
public Result<String> extractTableField(@RequestBody Connect connect){
List<TableField> tableFields = dataSourceService.extractTableField(connect);
if (CollectionUtils.isEmpty(tableFields)){
return Result.success(null,"未查询到结构,请检查数据");
public Result<List<TableFie>> extractTableField(@RequestBody Connect connect){
List<TableFie> tableFIES = dataSourceService.extractTableField(connect);
if (CollectionUtils.isEmpty(tableFIES)){
return Result.success(null,"未查询到结构,请检查数据来源");
}
for (TableField tableField : tableFields) {
tableFieldService.save(tableField);
for (TableFie tableFie : tableFIES) {
tableFieldService.save(tableFie);
}
return Result.success(null,"您的数据已成功获取");
return Result.success(tableFIES,"您的数据已成功获取");
}
// /**
// * 修改结构
// * @param id 实体类
// * @return 修改结果
// */
// @PutMapping("/update/{id}")
// @Operation(summary = "数据源信息修改",description = "通过ID修改数据源中修改数据")
// public Result<String> update(
// @Schema(title = "元数据Id",type = "Long",defaultValue = "1",description = "修改元数据信息需要依据的唯一条件")
// @PathVariable("id") Long id,
// @RequestBody DataSourceList dataSourceList){
//
// dataSourceService.updateById(DataSourceList.updBuild(dataSourceList,()->id));
// return Result.success(null,"您的数据已成功获取");
// }
/**
*
* @param connect
* @return
*/
@PostMapping("/dataName")
@Operation(summary = "获取数据库名",description = "从数据库中抽取数据库名称")
public Result<String[]> extractDataName(@RequestBody Connect connect){
String[] tableName = dataSourceService.extractDataName(connect);
if (StringUtils.isEmpty(tableName)){
return Result.success(null,"未查询到结构,请检查数据来源");
}
return Result.success(tableName,"您的数据已成功获取");
}
/**
*
* @param connect
* @return
*/
@PostMapping("/tableName")
@Operation(summary = "获取数据库表名",description = "从数据库中抽取数据库表名称")
public Result<String[]> extractTableName(@RequestBody Connect connect){
String[] tableFIES = dataSourceService.extractTableName(connect);
if (StringUtils.isEmpty(tableFIES)){
return Result.success(null,"未查询到结构,请检查数据来源");
}
return Result.success(tableFIES,"您的数据已成功获取");
}
}

View File

@ -1,7 +1,7 @@
package com.muyu.server.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import com.muyu.server.service.TableFieldService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
@ -29,33 +29,33 @@ public class TableFieldController {
/**
*
* @param tableField
* @param tableFie
* @return
*/
@RequestMapping(path = "/list" ,method = RequestMethod.POST)
@Operation(summary = "抽取数据字段",description = "所有数据字段列表请求参数")
public Result<List<TableField>> selectList(
@Validated @RequestBody TableField tableField){
public Result<List<TableFie>> selectList(
@Validated @RequestBody TableFie tableFie){
return Result.success(
tableFieldService.selectList(tableField)
tableFieldService.selectList(tableFie)
);
}
/**
*
* @param tableField
* @param tableFie
* @return
*/
@PostMapping("/add")
@Operation(summary = "数据字段添加",description = "添加数据字段信息,添加成功之后才可以使用数据字段")
public Result<String> save(@Validated @RequestBody TableField tableField){
tableFieldService.save(TableField.addBuild(tableField));
public Result<String> save(@Validated @RequestBody TableFie tableFie){
tableFieldService.save(com.muyu.common.domain.TableFie.addBuild(tableFie));
return Result.success(null,"操作成功");
}
/**
*
* @param tableField
* @param tableFie
* @return
*/
@PutMapping("/update/{fieId}")
@ -63,8 +63,8 @@ public class TableFieldController {
public Result<String> update(
@Schema(title = "数据字段ID",type = "Long",defaultValue = "1",description = "修改数据字段信息需要依据的唯一条件")
@PathVariable("fieId") Long fieId,
@RequestBody @Validated TableField tableField){
tableFieldService.updateById(TableField.updBuild(tableField,()->fieId));
@RequestBody @Validated TableFie tableFie){
tableFieldService.updateById(TableFie.updBuild(tableFie,()-> String.valueOf(fieId)));
return Result.success(null,"操作成功");
}

View File

@ -0,0 +1,16 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.common.domain.Connect;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authoryang
* @Packagecom.muyu.server.mapper
* @Projectcloud-property
* @nameConnectReqMapper
* @Date2024/8/25 16:16
*/
@Mapper
public interface ConnectMapper extends BaseMapper<Connect> {
}

View File

@ -0,0 +1,14 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.common.domain.Connect;
/**
* @Authoryang
* @Packagecom.muyu.server.mapper
* @Projectcloud-property
* @nameOrderConnectMapper
* @Date2024/8/25 19:04
*/
public interface OrderConnectMapper extends BaseMapper<Connect> {
}

View File

@ -1,12 +1,9 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import org.apache.ibatis.annotations.Mapper;
import java.util.ArrayList;
/**
* @Authoryang
* @Packagecom.muyu.server.service
@ -15,5 +12,5 @@ import java.util.ArrayList;
* @Date2024/8/23 14:00
*/
@Mapper
public interface TableFieldMapper extends BaseMapper<TableField> {
public interface TableFieldMapper extends BaseMapper<TableFie> {
}

View File

@ -1,8 +1,7 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.common.domain.TableField;
import jdk.jfr.MemoryAddress;
import com.muyu.common.domain.TableFie;
import org.apache.ibatis.annotations.Mapper;
/**
@ -13,5 +12,5 @@ import org.apache.ibatis.annotations.Mapper;
* @Date2024/8/23 20:18
*/
@Mapper
public interface TableFieldMapperlimt extends BaseMapper<TableField> {
public interface TableFieldMapperlimt extends BaseMapper<TableFie> {
}

View File

@ -0,0 +1,36 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.domain.Connect;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-property
* @nameConnectReqService
* @Date2024/8/25 16:14
*/
public interface ConnectService extends IService<Connect> {
/**
*
* @param connect
* @return
*/
List<Connect> selectConnect(Connect connect);
/**
* ID
* @param id ID
* @return
*/
boolean updInitDisable(Integer id);
/**
* ID
* @param id ID
* @return
*/
boolean updInitEnable(Integer id);
}

View File

@ -4,7 +4,7 @@ package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.domain.Connect;
import com.muyu.common.domain.DataSourceList;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import java.util.List;
@ -21,6 +21,24 @@ public interface DataSourceService extends IService<DataSourceList> {
void detailData(List<DataSourceList> dataSourceLists);
List<TableField> extractTableField(Connect connect);
/**
*
* @param connect
* @return
*/
List<TableFie> extractTableField(Connect connect);
/**
*
* @param connect
* @return
*/
String[] extractDataName(Connect connect);
/**
*
* @param connect
* @return
*/
String[] extractTableName(Connect connect);
}

View File

@ -0,0 +1,18 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.domain.Connect;
import java.util.List;
import java.util.Optional;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-property
* @nameorderConnectService
* @Date2024/8/25 19:01
*/
public interface OrderConnectService extends IService<Connect> {
List<Connect> selectConnectByAppCodeAndLimit(Integer id, int limit);
}

View File

@ -1,9 +1,8 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import java.util.ArrayList;
import java.util.List;
/**
@ -13,11 +12,11 @@ import java.util.List;
* @nameTableFieldService
* @Date2024/8/23 14:00
*/
public interface TableFieldService extends IService<TableField> {
public interface TableFieldService extends IService<TableFie> {
/**
*
* @param tableField
* @param tableFie
* @return
*/
List<TableField> selectList(TableField tableField);
List<TableFie> selectList(TableFie tableFie);
}

View File

@ -1,10 +1,9 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import java.util.List;
import java.util.Optional;
/**
* @Authoryang
@ -13,12 +12,12 @@ import java.util.Optional;
* @nameTableFieldServicelimt
* @Date2024/8/23 20:16
*/
public interface TableFieldServicelimt extends IService<TableField> {
public interface TableFieldServicelimt extends IService<TableFie> {
/**
* code
* @param fieId code
* @param limit
* @return
*/
List<TableField> selectOrderPayByAppCodeAndLimit(Long fieId, int limit);
List<TableFie> selectOrderPayByAppCodeAndLimit(String fieId, int limit);
}

View File

@ -0,0 +1,90 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.enums.SystemYesNo;
import com.muyu.common.domain.Connect;
import com.muyu.server.mapper.ConnectMapper;
import com.muyu.server.service.ConnectService;
import com.muyu.server.service.OrderConnectService;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-property
* @nameConnectReqServiceImpl
* @Date2024/8/25 16:15
*/
@Service
@AllArgsConstructor
public class ConnectServiceImpl
extends ServiceImpl<ConnectMapper, Connect>
implements ConnectService {
private final OrderConnectService orderConnectService;
private final ConnectService connectService;
/**
*
* @param connect
* @return
*/
@Override
public List<Connect> selectConnect(Connect connect) {
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(
StringUtils.isNotEmpty(connect.getAccSourName()),
Connect::getAccSourName, connect.getAccSourName()
);
queryWrapper.eq(
StringUtils.isNotEmpty(connect.getDataSourSystemName()),
Connect::getDataSourSystemName, connect.getDataSourSystemName()
);
queryWrapper.eq(
StringUtils.isNotEmpty(connect.getDatabaseName()),
Connect::getDatabaseName, connect.getDatabaseName()
);
List<Connect> connects = this.list(queryWrapper);
return connects.stream()
.map(connect1 -> Connect.connectBuild(connect1, () ->
orderConnectService.selectConnectByAppCodeAndLimit(connect1.getId(),5)
.stream()
.toList()
))
.toList();
}
/**
* ID
* @param id ID
* @return
*/
@Override
public boolean updInitDisable(Integer id) {
return this.settingStatus(id, SystemYesNo.YES.getCode());
}
/**
* ID
* @param id ID
* @return
*/
@Override
public boolean updInitEnable(Integer id) {
return this.settingStatus(id, SystemYesNo.YES.getCode());
}
private boolean settingStatus(Integer id, String initialization) {
return this.updateById(
Connect.builder()
.id(id)
.initialization(initialization)
.build()
);
}
}

View File

@ -1,21 +1,21 @@
package com.muyu.server.service.impl;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.domain.Connect;
import com.muyu.common.domain.DataSourceList;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import com.muyu.common.domain.TableNames;
import com.muyu.server.mapper.DataSourceMapper;
import com.muyu.server.service.DataSourceService;
import com.muyu.server.service.TableFieldService;
import com.muyu.server.util.JdbcHelper;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -62,16 +62,16 @@ public class DataSourceServiceImpl
try {
String sql = null;
Connection conn = JdbcHelper.getConn(connect);
DruidDataSource conn = JdbcHelper.getConn(connect);
String like = "";
for (String s : connect.getLike()) {
if (s.equals("Name") || s.equals("name")){
like += ",dashuju." + "`\uFEFFName`";
}else{
like += "," + s;
}
}
// for (String s : connect.getLike()) {
// if (s.equals("Name") || s.equals("name")){
// like += ",dashuju." + "`\uFEFFName`";
// }else{
// like += "," + s;
// }
//
// }
String substring = like.substring(1);
if (StringUtils.isNotEmpty(connect.getTableName())) {
sql = "select " + substring + " from " + connect.getTableName() +" LIMIT "+i+","+size;
@ -79,7 +79,8 @@ public class DataSourceServiceImpl
count=count+size;
count++;
}
PreparedStatement preparedStatement = conn.prepareStatement(sql);
DruidPooledConnection connection = conn.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet rs = preparedStatement.executeQuery();
while (rs.next()) {
@ -105,7 +106,7 @@ public class DataSourceServiceImpl
if (!rs.next()){
break;
}
JdbcHelper.close(conn, preparedStatement, rs);
JdbcHelper.close(connection, preparedStatement, rs);
} catch (Exception e) {
throw new RuntimeException(e);
@ -124,8 +125,13 @@ public class DataSourceServiceImpl
}
/**
*
* @param connect
* @return
*/
@Override
public List<TableField> extractTableField(Connect connect) {
public List<TableFie> extractTableField(Connect connect) {
if (StringUtils.isEmpty(connect.getIpAddress())){
@ -139,34 +145,129 @@ public class DataSourceServiceImpl
if (StringUtils.isEmpty(connect.getPassword())){
throw new RuntimeException("请输入数据库密码");
}
int count = 2;
for (int i = 1; i < count; i++) {
try {
String sql = null;
Connection conn = JdbcHelper.getConn(connect);
DruidDataSource druidDataSource = JdbcHelper.getConn(connect);
if (StringUtils.isNotEmpty(connect.getTableName())) {
sql = "SHOW FULL FIELDS FROM " + connect.getTableName();
}
try (Connection conn = druidDataSource.getConnection()) {
// 在这里执行你的数据库操作
PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet rs = preparedStatement.executeQuery();
ArrayList<TableField> tableFields = new ArrayList<>();
ArrayList<TableFie> tableFIES = new ArrayList<>();
while (rs.next()) {
TableField build = TableField.builder()
.fieId(rs.getLong("fieId"))
.type(rs.getString("type"))
.collation(rs.getString("collation"))
.Null(rs.getString("Null"))
.key(rs.getString("key"))
.comment(rs.getString("comment"))
String fieldId = rs.getString("Field"); // 使用正确的列名 Field
TableFie tableFie = TableFie.builder()
.fieId(fieldId) // 假设你修改了字段名为 fieldId以符合常规命名规范
.type(rs.getString("Type"))
.collation(rs.getString("Collation"))
.nullable(rs.getString("Null")) // 转换为布尔值,假设你想要这个字段
.primary(rs.getString("Key"))
.annotation(rs.getString("Comment"))
.build();
tableFields.add(build);
tableFIES.add(tableFie);
}
return tableFields;
}catch (Exception e){}
JdbcHelper.close(conn,preparedStatement,rs);
return tableFIES;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
*
* @param connect
* @return
*/
@Override
public String[] extractDataName(Connect connect) {
if (StringUtils.isEmpty(connect.getIpAddress())){
throw new RuntimeException("请输入ip地址+端口号! 格式:127.0.0.1:3306");
}
if (StringUtils.isEmpty(connect.getUserName())){
throw new RuntimeException("请输入数据库用户名!");
}
if (StringUtils.isEmpty(connect.getPassword())){
throw new RuntimeException("请输入数据库密码");
}
String sql = null;
DruidDataSource druidDataSource = JdbcHelper.getConn(connect);
if (StringUtils.isNotEmpty(connect.getTableName())) {
sql = "SHOW DATABASES;";
}
try (Connection conn = druidDataSource.getConnection()) {
// 在这里执行你的数据库操作
PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet rs = preparedStatement.executeQuery();
TableNames tableNames = new TableNames();
int count = 0;
while (rs.next()) {
String database = rs.getString("Database");
tableNames.getDataName()[count] = database;
count++;
System.out.println(tableNames);
}
JdbcHelper.close(conn,preparedStatement,rs);
return tableNames.getDataName();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
*
* @param connect
* @return
*/
@Override
public String[] extractTableName(Connect connect) {
if (StringUtils.isEmpty(connect.getIpAddress())){
throw new RuntimeException("请输入ip地址+端口号! 格式:127.0.0.1:3306");
}
if (StringUtils.isEmpty(connect.getUserName())){
throw new RuntimeException("请输入数据库用户名!");
}
if (StringUtils.isEmpty(connect.getPassword())){
throw new RuntimeException("请输入数据库密码");
}
String sql = null;
DruidDataSource druidDataSource = JdbcHelper.getConn(connect);
if (StringUtils.isNotEmpty(connect.getTableName())) {
sql = "SHOW tables;";
}
try (Connection conn = druidDataSource.getConnection()) {
// 在这里执行你的数据库操作
PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet rs = preparedStatement.executeQuery();
TableNames tableNames = new TableNames();
int count = 0;
while (rs.next()) {
String tables = rs.getString("Tables_in_core_data_warehouse");
tableNames.getTableName()[count] = tables;
count++;
System.out.println(tableNames);
}
JdbcHelper.close(conn,preparedStatement,rs);
return tableNames.getTableName();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}

View File

@ -0,0 +1,31 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.domain.Connect;
import com.muyu.server.mapper.OrderConnectMapper;
import com.muyu.server.service.OrderConnectService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-property
* @nameOrderConnectServiceImpl
* @Date2024/8/25 19:03
*/
@Service
public class OrderConnectServiceImpl extends ServiceImpl<OrderConnectMapper, Connect> implements OrderConnectService {
@Override
public List<Connect> selectConnectByAppCodeAndLimit(Integer id, int limit) {
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Connect::getId,id);
queryWrapper.orderBy(true,false,Connect::getCreateTime);
queryWrapper.last("limit "+limit);
return this.list(queryWrapper);
}
}

View File

@ -2,7 +2,7 @@ package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import com.muyu.server.mapper.TableFieldMapper;
import com.muyu.server.service.TableFieldService;
import com.muyu.server.service.TableFieldServicelimt;
@ -21,7 +21,7 @@ import java.util.List;
*/
@Service
public class TableFieldServiceImpl
extends ServiceImpl<TableFieldMapper,TableField>
extends ServiceImpl<TableFieldMapper, TableFie>
implements TableFieldService {
@Autowired
@ -29,23 +29,23 @@ public class TableFieldServiceImpl
/**
*
* @param tableField
* @param tableFie
* @return
*/
@Override
public List<TableField> selectList(TableField tableField) {
LambdaQueryWrapper<TableField> queryWrapper = new LambdaQueryWrapper<>();
public List<TableFie> selectList(TableFie tableFie) {
LambdaQueryWrapper<TableFie> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(
StringUtils.isNotEmpty(tableField.getType()),
TableField::getType,tableField.getType()
StringUtils.isNotEmpty(tableFie.getType()),
com.muyu.common.domain.TableFie::getType, tableFie.getType()
);
List<TableField> tableFieldList = this.list(queryWrapper);
return tableFieldList.stream()
.map(orderPaytableField -> TableField.customerBuild(
List<TableFie> tableFieList = this.list(queryWrapper);
return tableFieList.stream()
.map(orderPaytableField -> com.muyu.common.domain.TableFie.customerBuild(
orderPaytableField,
() -> (TableField) tableFieldServicelimt.selectOrderPayByAppCodeAndLimit(orderPaytableField.getFieId(),5)
() -> (TableFie) tableFieldServicelimt.selectOrderPayByAppCodeAndLimit(orderPaytableField.getFieId(),5)
.stream()
.map(TableField::buildTableField)
.map(com.muyu.common.domain.TableFie::buildTableField)
.toList()
)
)

View File

@ -1,9 +1,8 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.domain.TableField;
import com.muyu.common.domain.TableFie;
import com.muyu.server.mapper.TableFieldMapperlimt;
import com.muyu.server.service.TableFieldServicelimt;
import org.springframework.stereotype.Service;
@ -19,15 +18,15 @@ import java.util.List;
*/
@Service
public class TableFieldServicelimtImpl
extends ServiceImpl<TableFieldMapperlimt, TableField>
extends ServiceImpl<TableFieldMapperlimt, TableFie>
implements TableFieldServicelimt {
@Override
public List<TableField> selectOrderPayByAppCodeAndLimit(Long fieId, int limit) {
public List<TableFie> selectOrderPayByAppCodeAndLimit(String fieId, int limit) {
LambdaQueryWrapper<TableField> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
objectLambdaQueryWrapper.eq(TableField::getFieId, fieId);
objectLambdaQueryWrapper.orderBy(true,false,TableField::getFieId);
LambdaQueryWrapper<TableFie> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
objectLambdaQueryWrapper.eq(com.muyu.common.domain.TableFie::getFieId, fieId);
objectLambdaQueryWrapper.orderBy(true,false,TableFie::getFieId);
objectLambdaQueryWrapper.last("limit "+limit);
return this.list(objectLambdaQueryWrapper);

View File

@ -1,7 +1,9 @@
package com.muyu.server.util;
import com.alibaba.druid.pool.DruidDataSource;
import com.muyu.common.domain.Connect;
import com.muyu.common.domain.req.ConnectReq;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Component;
import java.sql.*;
@ -14,12 +16,31 @@ import java.sql.*;
* @Date2024/8/20 21:45
*/
@Component
@Log4j2
public class JdbcHelper {
public static Connection getConn( Connect connect) throws SQLException, ClassNotFoundException {
Class.forName(new ConnectReq().getDriver());
return DriverManager.getConnection(new ConnectReq().getUrl()+connect.getIpAddress()+"/"+connect.getDatabaseName(),connect.getUserName(),connect.getPassword());
public static DruidDataSource getConn( Connect connect) {
while (0<connect.getMaxWaitTimes()){
try {
DruidDataSource druidDataSource = new DruidDataSource();
String dcp = connect.getDataConnParam();
druidDataSource.setUrl(new ConnectReq().getURL()+connect.getIpAddress()+":"+connect.getPort()+"/"+connect.getDatabaseName() + (dcp != null && !dcp.isEmpty()? "?" + dcp : ""));
druidDataSource.setUsername(connect.getUserName());
druidDataSource.setPassword(connect.getPassword());
//"com.mysql.cj.jdbc.Driver"
druidDataSource.setDriverClassName(new ConnectReq().getDRIVER());
druidDataSource.setInitialSize(connect.getInitSize());
druidDataSource.setMaxActive(connect.getMaxNumConn());
druidDataSource.setMaxWait(connect.getMaxWaitTime());
return druidDataSource;
} catch (Exception e) {
log.error("异常为:{}"+e);
}
}
return null;
}
public static void close(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet) throws SQLException {

View File

@ -0,0 +1,39 @@
package com.muyu.server.util;
import jakarta.servlet.ServletContextEvent;
import jakarta.servlet.ServletContextListener;
import jakarta.servlet.annotation.WebListener;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @Authoryang
* @Packagecom.muyu.server.util
* @Projectcloud-property
* @nameThread
* @Date2024/8/24 21:01
*/
@WebListener
public class Thread {
@WebListener
public class ThreadManagerListener implements ServletContextListener {
private ExecutorService executorService;
@Override
public void contextInitialized(ServletContextEvent sce) {
// 初始化并启动线程
executorService = Executors.newSingleThreadExecutor();
executorService.submit(() -> {
// 你的线程任务
});
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// 停止线程
executorService.shutdownNow();
}
}
}

View File

@ -15,7 +15,7 @@ spring:
allow-bean-definition-overriding: true
application:
# 应用名称
name: cloud-integration
name: cloud-property
profiles:
# 环境配置
active: dev

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff