Commit 8ead23de authored by 王军虎's avatar 王军虎

提交代码

parent e12a962d
...@@ -4,6 +4,7 @@ target/ ...@@ -4,6 +4,7 @@ target/
!**/src/test/**/target/ !**/src/test/**/target/
### IntelliJ IDEA ### ### IntelliJ IDEA ###
.idea
.idea/modules.xml .idea/modules.xml
.idea/jarRepositories.xml .idea/jarRepositories.xml
.idea/compiler.xml .idea/compiler.xml
......
...@@ -39,6 +39,17 @@ ...@@ -39,6 +39,17 @@
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>
<!-- Hive JDBC 驱动 --> <!-- Hive JDBC 驱动 -->
...@@ -153,4 +164,16 @@ ...@@ -153,4 +164,16 @@
</dependency> </dependency>
</dependencies> </dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>21</source>
<target>21</target>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>
\ No newline at end of file
package com.ediagnosis.cdr.controller;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceQueryDTO;
import com.ediagnosis.cdr.model.param.BusinessDataSourceQueryParam;
import com.ediagnosis.cdr.model.vo.BusinessDataSourceVo;
import com.ediagnosis.cdr.service.BusinessDataSourceService;
import com.ediagnosis.cdr.util.PageConvertUtils;
import com.ediagnosis.cdr.value.PageVo;
import com.ediagnosis.cdr.value.Response;
import com.mybatisflex.core.paginate.Page;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author monojun
* @description 数据源接口
* @createTime 2025年07月31日
*/
@RestController
@RequestMapping("/dataSource")
public class BusinessDataSourceController {
@Autowired
private BusinessDataSourceService dataSourceService;
@PostMapping("/page")
public Response<PageVo<BusinessDataSourceVo>> page(@RequestBody BusinessDataSourceQueryParam queryParam) {
BusinessDataSourceQueryDTO queryDTO = new BusinessDataSourceQueryDTO();
BeanUtils.copyProperties(queryParam, queryDTO);
Page<BusinessDataSourceDTO> dataSourcePage = dataSourceService.queryPage(queryDTO);
PageVo<BusinessDataSourceVo> systemVoPageInfo = PageConvertUtils.copyPageInfo(dataSourcePage, dataSourceDTO -> {
BusinessDataSourceVo vo = new BusinessDataSourceVo();
BeanUtils.copyProperties(dataSourceDTO, vo);
vo.setBizSystemId(dataSourceDTO.getBusinessId());
vo.setBizSystemName(dataSourceDTO.getBusinessName());
return vo;
});
return Response.success(systemVoPageInfo);
}
}
package com.ediagnosis.cdr.controller;
import com.ediagnosis.cdr.dao.entity.BusinessDataSystem;
import com.ediagnosis.cdr.model.dto.BusinessDataSystemQueryDTO;
import com.ediagnosis.cdr.model.param.BusinessDataSystemQueryParam;
import com.ediagnosis.cdr.model.vo.BusinessDataSystemVo;
import com.ediagnosis.cdr.service.BusinessDataSystemService;
import com.ediagnosis.cdr.util.PageConvertUtils;
import com.ediagnosis.cdr.value.Response;
import com.ediagnosis.cdr.value.PageVo;
import com.mybatisflex.core.paginate.Page;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author monojun
* @description 业务系统接口
* @createTime 2025年07月31日
*/
@RestController
@RequestMapping("/dataSystem")
public class BusinessDataSystemController {
@Autowired
private BusinessDataSystemService dataSystemService;
@PostMapping("/page")
public Response<PageVo<BusinessDataSystemVo>> page(@RequestBody BusinessDataSystemQueryParam queryParam) {
BusinessDataSystemQueryDTO queryDTO = new BusinessDataSystemQueryDTO();
BeanUtils.copyProperties(queryParam, queryDTO);
Page<BusinessDataSystem> dataSystemPage = dataSystemService.queryPage(queryDTO);
PageVo<BusinessDataSystemVo> systemVoPageInfo = PageConvertUtils.copyPageInfo(dataSystemPage, dataSystem -> {
BusinessDataSystemVo vo = new BusinessDataSystemVo();
BeanUtils.copyProperties(dataSystem, vo);
return vo;
});
return Response.success(systemVoPageInfo);
}
}
package com.ediagnosis.cdr.controller;
import com.ediagnosis.cdr.model.dto.BusinessDataTableDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataTableQueryDTO;
import com.ediagnosis.cdr.model.param.BusinessDataTableQueryParam;
import com.ediagnosis.cdr.model.vo.BusinessDataTableVo;
import com.ediagnosis.cdr.service.BusinessDataTableService;
import com.ediagnosis.cdr.util.PageConvertUtils;
import com.ediagnosis.cdr.value.PageVo;
import com.ediagnosis.cdr.value.Response;
import com.mybatisflex.core.paginate.Page;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author monojun
* @description 数据表接口
* @createTime 2025年07月31日
*/
@RestController
@RequestMapping("/dataTable")
public class BusinessDataTableController {
@Autowired
private BusinessDataTableService dataTableService;
@PostMapping("/page")
public Response<PageVo<BusinessDataTableVo>> page(@RequestBody BusinessDataTableQueryParam queryParam) {
BusinessDataTableQueryDTO queryDTO = new BusinessDataTableQueryDTO();
BeanUtils.copyProperties(queryParam, queryDTO);
Page<BusinessDataTableDTO> dataTablePage = dataTableService.queryPage(queryDTO);
PageVo<BusinessDataTableVo> dataTableVoPageInfo = PageConvertUtils.copyPageInfo(dataTablePage, dataTable -> {
BusinessDataTableVo vo = new BusinessDataTableVo();
BeanUtils.copyProperties(dataTable, vo);
return vo;
});
return Response.success(dataTableVoPageInfo);
}
}
package com.ediagnosis.cdr.controller;
import com.ediagnosis.cdr.dao.entity.BusinessDataTableField;
import com.ediagnosis.cdr.model.dto.BusinessDataTableFieldQueryDTO;
import com.ediagnosis.cdr.model.param.BusinessDataTableFieldQueryParam;
import com.ediagnosis.cdr.model.vo.BusinessDataTableFieldVo;
import com.ediagnosis.cdr.service.BusinessDataTableFieldService;
import com.ediagnosis.cdr.util.PageConvertUtils;
import com.ediagnosis.cdr.value.PageVo;
import com.ediagnosis.cdr.value.Response;
import com.mybatisflex.core.paginate.Page;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author monojun
* @description 数据表字段接口
* @createTime 2025年07月31日
*/
@RestController
@RequestMapping("/dataTableField")
public class BusinessDataTableFieldController {
@Autowired
private BusinessDataTableFieldService dataTableFieldService;
@PostMapping("/page")
public Response<PageVo<BusinessDataTableFieldVo>> page(@RequestBody BusinessDataTableFieldQueryParam queryParam) {
BusinessDataTableFieldQueryDTO queryDTO = new BusinessDataTableFieldQueryDTO();
BeanUtils.copyProperties(queryParam, queryDTO);
Page<BusinessDataTableField> dataTableFieldPage = dataTableFieldService.queryPage(queryDTO);
PageVo<BusinessDataTableFieldVo> tableFieldVoPageInfo = PageConvertUtils.copyPageInfo(dataTableFieldPage, dataTableField -> {
BusinessDataTableFieldVo vo = new BusinessDataTableFieldVo();
BeanUtils.copyProperties(dataTableField, vo);
return vo;
});
return Response.success(tableFieldVoPageInfo);
}
}
package com.ediagnosis.cdr.dao; package com.ediagnosis.cdr.dao;
import com.ediagnosis.cdr.value.Page; import com.ediagnosis.cdr.value.PageVo;
import com.mybatisflex.core.row.Row; import com.mybatisflex.core.row.Row;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -19,7 +19,7 @@ public class DwsRepository { ...@@ -19,7 +19,7 @@ public class DwsRepository {
this.hiveQueryExecutor = hiveQueryExecutor; this.hiveQueryExecutor = hiveQueryExecutor;
} }
public Page<Map<String, String>> queryPage(String sql, int pageNo,int pageSize) { public PageVo<Map<String, String>> queryPage(String sql, int pageNo, int pageSize) {
com.mybatisflex.core.paginate.Page<Row> rowPage = hiveQueryExecutor.selectByFullSql(sql, pageNo, pageSize); com.mybatisflex.core.paginate.Page<Row> rowPage = hiveQueryExecutor.selectByFullSql(sql, pageNo, pageSize);
List<Map<String, String>> result = rowPage.getRecords().stream() List<Map<String, String>> result = rowPage.getRecords().stream()
.map(row -> { .map(row -> {
...@@ -41,7 +41,7 @@ public class DwsRepository { ...@@ -41,7 +41,7 @@ public class DwsRepository {
.filter(map -> !map.isEmpty()) // 可选:过滤掉空 map .filter(map -> !map.isEmpty()) // 可选:过滤掉空 map
.toList(); .toList();
return new Page<>(pageNo, pageSize, rowPage.getTotalRow(), result); return new PageVo<>(pageNo, pageSize, rowPage.getTotalRow(), result);
} }
......
package com.ediagnosis.cdr.dao.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 业务系统数据源表
* @createTime 2025年07月31日
*/
@Data
@Table(value = "business_data_source")
public class BusinessDataSource implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 数据源名称
*/
@Column(value = "name")
private String name;
/**
* 数据源类型
*/
@Column(value = "type")
private String type;
/**
* IP地址
*/
@Column(value = "ip_address")
private String ipAddress;
/**
* 属性信息
*/
@Column(value = "properties")
private String properties;
/**
* 业务系统id
*/
@Column(value = "business_id")
private Long businessId;
/**
* 描述
*/
@Column(value = "description")
private String description;
/**
* 连接状态: 0-未知 1-已连接 2-未连接
*/
@Column(value = "status")
private Integer status;
/**
* 创建时间
*/
@Column(value = "create_time")
private Date createTime;
/**
* 创建人
*/
@Column(value = "create_user_id")
private Long createUserId;
/**
* 更新时间
*/
@Column(value = "update_time")
private Date updateTime;
/**
* 更新人
*/
@Column(value = "update_user_id")
private Long updateUserId;
/**
* 是否删除: 0-未删除 1-已删除
*/
@Column(value = "is_deleted", isLogicDelete = true)
private Integer isDeleted;
}
\ No newline at end of file
package com.ediagnosis.cdr.dao.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import java.util.Date;
/**
* @author monojun
* @description 业务系统表
* @createTime 2025年07月31日
*/
@Data
@Table("business_data_system")
public class BusinessDataSystem {
/**
* 主键id
*/
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 业务系统名称
*/
@Column(value = "name")
private String name;
/**
* 描述
*/
@Column(value = "description")
private String description;
/**
* 创建时间
*/
@Column(value = "create_time")
private Date createTime;
/**
* 创建人
*/
@Column(value = "create_user_id")
private Long createUserId;
/**
* 更新时间
*/
@Column(value = "update_time")
private Date updateTime;
/**
* 更新人
*/
@Column(value = "update_user_id")
private Long updateUserId;
/**
* 是否删除 0-未删除 1-已删除
*/
@Column(value = "is_deleted", isLogicDelete = true)
private Integer isDeleted;
}
\ No newline at end of file
package com.ediagnosis.cdr.dao.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 业务表信息表
* @createTime 2025年07月31日
*/
@Data
@Table(value = "business_data_table")
public class BusinessDataTable implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 业务表名称
*/
@Column(value = "name")
private String name;
/**
* 业务表编号
*/
@Column(value = "table_no")
private String tableNo;
/**
* 业务系统id
*/
@Column(value = "business_id")
private Long businessId;
/**
* 业务数据源id
*/
@Column(value = "source_id")
private Long sourceId;
/**
* 描述
*/
@Column(value = "description")
private String description;
/**
* 创建时间
*/
@Column(value = "create_time")
private Date createTime;
/**
* 创建人
*/
@Column(value = "create_user_id")
private Long createUserId;
/**
* 更新时间
*/
@Column(value = "update_time")
private Date updateTime;
/**
* 更新人
*/
@Column(value = "update_user_id")
private Long updateUserId;
/**
* 是否删除: 0-未删除 1-已删除
*/
@Column(value = "is_deleted", isLogicDelete = true)
private Byte isDeleted;
}
\ No newline at end of file
package com.ediagnosis.cdr.dao.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 业务字段信息表
* @createTime 2025年07月31日
*/
@Data
@Table(value = "business_data_table_field")
public class BusinessDataTableField implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@Id(value = "id", keyType = KeyType.Auto)
private Long id;
/**
* 字段名称
*/
@Column(value = "field_name")
private String fieldName;
/**
* 字段类型
*/
@Column(value = "field_type")
private String fieldType;
/**
* 业务表id
*/
@Column(value = "table_id")
private Long tableId;
/**
* 描述
*/
@Column(value = "description")
private String description;
/**
* 创建时间
*/
@Column(value = "create_time")
private Date createTime;
/**
* 创建人
*/
@Column(value = "create_user_id")
private Long createUserId;
/**
* 更新时间
*/
@Column(value = "update_time")
private Date updateTime;
/**
* 更新人
*/
@Column(value = "update_user_id")
private Long updateUserId;
/**
* 是否删除: 0-未删除 1-已删除
*/
@Column(value = "is_deleted", isLogicDelete = true)
private Byte isDeleted;
}
\ No newline at end of file
package com.ediagnosis.cdr.dao.mapper;
import com.ediagnosis.cdr.dao.entity.BusinessDataSource;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceQueryDTO;
import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.paginate.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author monojun
* @description 数据源mapper
* @createTime 2025年07月31日
*/
@Mapper
public interface BusinessDataSourceMapper extends BaseMapper<BusinessDataSource> {
int batchInsert(@Param("list") List<BusinessDataSource> list);
Page<BusinessDataSourceDTO> queryAll(Page<?> page, @Param("queryDTO")BusinessDataSourceQueryDTO queryDTO);
}
\ No newline at end of file
package com.ediagnosis.cdr.dao.mapper;
import com.ediagnosis.cdr.dao.entity.BusinessDataSystem;
import java.util.List;
import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author monojun
* @description 业务系统mapper
* @createTime 2025年07月31日
*/
@Mapper
public interface BusinessDataSystemMapper extends BaseMapper<BusinessDataSystem> {
int batchInsert(@Param("list") List<BusinessDataSystem> list);
}
\ No newline at end of file
package com.ediagnosis.cdr.dao.mapper;
import com.ediagnosis.cdr.dao.entity.BusinessDataTableField;
import java.util.List;
import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author monojun
* @description 业务表字段mapper
* @createTime 2025年07月31日
*/
@Mapper
public interface BusinessDataTableFieldMapper extends BaseMapper<BusinessDataTableField> {
int batchInsert(@Param("list") List<BusinessDataTableField> list);
}
\ No newline at end of file
package com.ediagnosis.cdr.dao.mapper;
import com.ediagnosis.cdr.dao.entity.BusinessDataTable;
import java.util.List;
import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author monojun
* @description 业务表mapper
* @createTime 2025年07月31日
*/
@Mapper
public interface BusinessDataTableMapper extends BaseMapper<BusinessDataTable> {
int batchInsert(@Param("list") List<BusinessDataTable> list);
}
\ No newline at end of file
package com.ediagnosis.cdr.enums;
import lombok.Getter;
/**
* @author monojun
* @description 数据源类型枚举
* @createTime 2025年07月31日
*/
@Getter
public enum DataSourceTypeEnum {
Mysql("Mysql", "mysql"),
Oracle("Oracle", "oracle"),
PostgreSQL("PostgreSQL", "postgreSQL"),
SQLServer("SQLServer", "sqlserver"),
H2("H2", "h2"),
SQLite("SQLite", "sqlite");
private final String key;
private final String value;
DataSourceTypeEnum(String key, String value) {
this.key = key;
this.value = value;
}
}
package com.ediagnosis.cdr.enums;
import lombok.Getter;
/**
* @author monojun
* @description 字段类型枚举
* @createTime 2025年08月01日
*/
@Getter
public enum FieldTypeEnum {
varchar("varchar", "String"),
text("text", "String"),
decimal("decimal", "BigDecimal"),
integer("integer", "Integer"),
int4("int4", "Integer"),
int8("int8", "Integer"),
number("number", "Long"),
datetime("datetime", "Date"),
timestamp("timestamp", "Date"),
bool("boolean", "Boolean");
private final String key;
private final String value;
FieldTypeEnum(String key, String value) {
this.key = key;
this.value = value;
}
}
package com.ediagnosis.cdr.model.dto;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 数据源dto
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataSourceDTO implements Serializable {
@Serial
private static final long serialVersionUID = -447329639545048136L;
/**
* 主键id
*/
private Long id;
/**
* 数据源名称
*/
private String name;
/**
* 数据源类型
*/
private String type;
/**
* IP地址
*/
private String ipAddress;
/**
* 属性信息
*/
private String properties;
/**
* 业务系统id
*/
private Long businessId;
/**
* 业务系统名称
*/
private String businessName;
/**
* 描述
*/
private String description;
/**
* 连接状态: 0-未知 1-已连接 2-未连接
*/
private Integer status;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private Long createUserId;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人
*/
private Long updateUserId;
}
package com.ediagnosis.cdr.model.dto;
import com.ediagnosis.cdr.model.param.PageQuery;
import com.mybatisflex.annotation.Column;
import lombok.Data;
import java.io.Serial;
import java.util.List;
/**
* @author monojun
* @description 业务数据源查询dto
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataSourceQueryDTO extends PageQuery {
@Serial
private static final long serialVersionUID = 4373837873599613512L;
/**
* 业务系统id列表
*/
private List<Long> businessIds;
/**
* 数据源名称
*/
private String name;
/**
* ip地址
*/
private String ipAddress;
/**
* 数据源类型
*/
private String type;
/**
* 连接状态: 0-未知 1-已连接 2-未连接
*/
private Integer status;
}
package com.ediagnosis.cdr.model.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 业务系统dto
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataSystemDTO implements Serializable {
@Serial
private static final long serialVersionUID = 8024021126762424795L;
/**
* 主键id
*/
private Long id;
/**
* 业务系统名称
*/
private String name;
/**
* 描述
*/
private String description;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private Long createUserId;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人
*/
private Long updateUserId;
}
package com.ediagnosis.cdr.model.dto;
import com.ediagnosis.cdr.model.param.PageQuery;
import lombok.Data;
/**
* @author monojun
* @description 业务系统查询参数
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataSystemQueryDTO extends PageQuery {
private static final long serialVersionUID = -725393158125223566L;
/**
* 业务系统名称
*/
private String name;
}
package com.ediagnosis.cdr.model.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 业务数据源名称
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataTableDTO implements Serializable {
@Serial
private static final long serialVersionUID = -1723613352839697417L;
/**
* 主键id
*/
private Long id;
/**
* 业务表名称
*/
private String name;
/**
* 业务表编号
*/
private String tableNo;
/**
* 业务系统id
*/
private Long businessId;
/**
* 业务系统名称
*/
private String businessName;
/**
* 业务数据源id
*/
private Long sourceId;
/**
* 业务数据源名称
*/
private String sourceName;
/**
* 描述
*/
private String description;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private Long createUserId;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人
*/
private Long updateUserId;
}
package com.ediagnosis.cdr.model.dto;
import com.ediagnosis.cdr.model.param.PageQuery;
import lombok.Data;
import java.io.Serial;
/**
* @author monojun
* @description 业务数据表dto
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataTableFieldQueryDTO extends PageQuery {
@Serial
private static final long serialVersionUID = -7409716170936124466L;
/**
* 字段名称
*/
private String fieldName;
/**
* 字段类型
*/
private String fieldType;
/**
* 业务表id
*/
private Long tableId;
}
package com.ediagnosis.cdr.model.dto;
import com.ediagnosis.cdr.model.param.PageQuery;
import lombok.Data;
import java.io.Serial;
import java.util.List;
/**
* @author monojun
* @description 业务数据表dto
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataTableQueryDTO extends PageQuery {
@Serial
private static final long serialVersionUID = 2568845339056229745L;
/**
* 业务系统id
*/
private List<Long> businessIds;
/**
* 业务数据源id列表
*/
private List<Long> sourceIds;
/**
* 业务表名称
*/
private String name;
/**
* 业务表编号
*/
private String tableNo;
}
package com.ediagnosis.cdr.model.param;
import lombok.Data;
import java.io.Serial;
import java.util.List;
/**
* @author monojun
* @description 数据源查询参数
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataSourceQueryParam extends PageQuery {
@Serial
private static final long serialVersionUID = 4384878864788101913L;
/**
* 业务系统id列表
*/
private List<Long> businessIds;
/**
* 数据源名称
*/
private String name;
/**
* ip地址
*/
private String ipAddress;
/**
* 数据源类型
*/
private String type;
}
package com.ediagnosis.cdr.model.param;
import lombok.Data;
import java.io.Serial;
/**
* @author monojun
* @description 业务系统分页查询参数
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataSystemQueryParam extends PageQuery {
@Serial
private static final long serialVersionUID = 5408831076545737168L;
/**
* 业务系统名称
*/
private String name;
}
package com.ediagnosis.cdr.model.param;
import lombok.Data;
import java.io.Serial;
/**
* @author monojun
* @description 表字段查询参数
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataTableFieldQueryParam extends PageQuery{
@Serial
private static final long serialVersionUID = 5419533067070233483L;
/**
* 字段名称
*/
private String fieldName;
/**
* 字段类型
*/
private String fieldType;
/**
* 业务表id
*/
private Long tableId;
}
package com.ediagnosis.cdr.model.param;
import lombok.Data;
import java.io.Serial;
import java.util.List;
/**
* @author monojun
* @description 表信息查询参数
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataTableQueryParam extends PageQuery {
@Serial
private static final long serialVersionUID = -6012405803243067316L;
/**
* 业务系统id列表
*/
private List<Long> businessIds;
/**
* 业务数据源id列表
*/
private List<Long> sourceIds;
/**
* 业务表名称
*/
private String name;
/**
* 业务表编号
*/
private String tableNo;
}
package com.ediagnosis.cdr.model.param;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 可以传入一个实体T类型来接收该类型属性值。
*
* @author wangziqiao
*/
@Data
public class PageQuery implements Serializable {
@Serial
private static final long serialVersionUID = -1808475912533720127L;
private int pageNo = 1;
private int pageSize = 10;
public int getOffset() {
return (pageNo - 1) * pageSize;
}
}
package com.ediagnosis.cdr.model.vo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 数据源信息
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataSourceVo implements Serializable {
@Serial
private static final long serialVersionUID = -4205114103165887164L;
/**
* 主键id
*/
private Long id;
/**
* 数据源名称
*/
private String name;
/**
* 数据源类型(mysql、oracle、postgreSQL、sqlserver、h2、sqlite)
*/
private String type;
/**
* IP地址
*/
private String ipAddress;
/**
* 业务系统id
*/
private Long bizSystemId;
/**
* 业务系统名称
*/
private String bizSystemName;
/**
* 描述
*/
private String description;
/**
* 属性
*/
private String properties;
/**
* 连接状态
*/
private Integer status;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private Long createUserId;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人
*/
private Long updateUserId;
}
package com.ediagnosis.cdr.model.vo;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 业务系统信息
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataSystemVo implements Serializable {
@Serial
private static final long serialVersionUID = 1995094555769215993L;
/**
* 主键id
*/
private Long id;
/**
* 业务系统名称
*/
private String name;
/**
* 描述
*/
private String description;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private Long createUserId;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人
*/
private Long updateUserId;
}
package com.ediagnosis.cdr.model.vo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 表字段信息
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataTableFieldVo implements Serializable {
@Serial
private static final long serialVersionUID = 3062177923173755855L;
/**
* 主键id
*/
private Long id;
/**
* 字段名称
*/
private String fieldName;
/**
* 字段类型
*/
private String fieldType;
/**
* 业务表id
*/
private Long tableId;
/**
* 描述
*/
private String description;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private Long createUserId;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人
*/
private Long updateUserId;
}
package com.ediagnosis.cdr.model.vo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author monojun
* @description 表信息
* @createTime 2025年07月31日
*/
@Data
public class BusinessDataTableVo implements Serializable {
@Serial
private static final long serialVersionUID = 8791629491093128048L;
/**
* 主键id
*/
private Long id;
/**
* 业务表名称
*/
private String name;
/**
* 业务表编号
*/
private String tableNo;
/**
* 业务系统id
*/
private Long businessId;
/**
* 业务系统名称
*/
private String businessName;
/**
* 业务数据源id
*/
private Long sourceId;
/**
* 业务数据源名称
*/
private String sourceName;
/**
* 描述
*/
private String description;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private Long createUserId;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人
*/
private Long updateUserId;
}
package com.ediagnosis.cdr.service;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceQueryDTO;
import com.mybatisflex.core.paginate.Page;
/**
* @author monojun
* @description 业务数据源service
* @createTime 2025年07月31日
*/
public interface BusinessDataSourceService {
/**
* 分页查询业务数据源信息
*
* @param queryDTO 查询dto
* @return PageInfo<BusinessDataSource>
*/
Page<BusinessDataSourceDTO> queryPage(BusinessDataSourceQueryDTO queryDTO);
}
package com.ediagnosis.cdr.service;
import com.ediagnosis.cdr.dao.entity.BusinessDataSystem;
import com.ediagnosis.cdr.model.dto.BusinessDataSystemDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataSystemQueryDTO;
import com.mybatisflex.core.paginate.Page;
/**
* @author monojun
* @description 业务系统service
* @createTime 2025年07月31日
*/
public interface BusinessDataSystemService {
/**
* 新增业务系统
*
* @param dataSystemDTO 业务系统dto
* @return 主键id
*/
Long addDataSystem(BusinessDataSystemDTO dataSystemDTO);
/**
* 更新业务系统
*
* @param dataSystemDTO 业务系统dto
* @return Long
*/
Long updateDataSystem(BusinessDataSystemDTO dataSystemDTO);
/**
* 删除业务系统
*
* @param dataSystemId 任务主键id
*/
void deleteDataSystem(Long dataSystemId);
/**
* 分页查询业务系统信息
*
* @param queryDTO 查询dto
* @return PageInfo<BusinessDataSystem>
*/
Page<BusinessDataSystem> queryPage(BusinessDataSystemQueryDTO queryDTO);
}
package com.ediagnosis.cdr.service;
import com.ediagnosis.cdr.dao.entity.BusinessDataTableField;
import com.ediagnosis.cdr.model.dto.BusinessDataTableFieldQueryDTO;
import com.mybatisflex.core.paginate.Page;
/**
* @author monojun
* @description 业务表字段service
* @createTime 2025年07月31日
*/
public interface BusinessDataTableFieldService {
/**
* 分页查询业务表字段信息
*
* @param queryDTO 查询dto
* @return PageInfo<BusinessDataTableField>
*/
Page<BusinessDataTableField> queryPage(BusinessDataTableFieldQueryDTO queryDTO);
}
package com.ediagnosis.cdr.service;
import com.ediagnosis.cdr.model.dto.BusinessDataTableDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataTableQueryDTO;
import com.mybatisflex.core.paginate.Page;
/**
* @author monojun
* @description 业务表service
* @createTime 2025年07月31日
*/
public interface BusinessDataTableService {
/**
* 分页查询业务表信息
*
* @param queryDTO 查询dto
* @return PageInfo<BusinessDataTable>
*/
Page<BusinessDataTableDTO> queryPage(BusinessDataTableQueryDTO queryDTO);
}
package com.ediagnosis.cdr.service.impl;
import com.ediagnosis.cdr.dao.entity.BusinessDataSource;
import com.ediagnosis.cdr.dao.entity.BusinessDataSystem;
import com.ediagnosis.cdr.dao.mapper.BusinessDataSourceMapper;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceQueryDTO;
import com.ediagnosis.cdr.service.BusinessDataSourceService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
/**
* @author monojun
* @description 业务数据源service
* @createTime 2025年07月31日
*/
@Service
public class BusinessDataSourceServiceImpl implements BusinessDataSourceService {
@Autowired
private BusinessDataSourceMapper dataSourceMapper;
@Override
public Page<BusinessDataSourceDTO> queryPage(BusinessDataSourceQueryDTO queryDTO) {
QueryWrapper queryWrapper = QueryWrapper.create()
.select("d.*", "ds.name as businessName")
.from(BusinessDataSource.class).as("d")
.leftJoin(BusinessDataSystem.class).as("ds")
.on(BusinessDataSource::getBusinessId, BusinessDataSystem::getId)
.orderBy(BusinessDataSource::getId, false);
if (!CollectionUtils.isEmpty(queryDTO.getBusinessIds())) {
queryWrapper.in(BusinessDataSource::getBusinessId, queryDTO.getBusinessIds());
}
if (StringUtils.hasText(queryDTO.getName())) {
queryWrapper.like(BusinessDataSource::getName, queryDTO.getName());
}
if (StringUtils.hasText(queryDTO.getIpAddress())) {
queryWrapper.like(BusinessDataSource::getIpAddress, queryDTO.getIpAddress());
}
if (StringUtils.hasText(queryDTO.getType())) {
queryWrapper.eq(BusinessDataSource::getType, queryDTO.getType());
}
if (queryDTO.getStatus() != null) {
queryWrapper.eq(BusinessDataSource::getStatus, queryDTO.getStatus());
}
return dataSourceMapper.paginateAs(queryDTO.getPageNo(), queryDTO.getPageSize(), queryWrapper, BusinessDataSourceDTO.class);
}
}
package com.ediagnosis.cdr.service.impl;
import com.ediagnosis.cdr.dao.entity.BusinessDataSystem;
import com.ediagnosis.cdr.dao.mapper.BusinessDataSystemMapper;
import com.ediagnosis.cdr.model.dto.BusinessDataSystemDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataSystemQueryDTO;
import com.ediagnosis.cdr.service.BusinessDataSystemService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.Date;
/**
* @author monojun
* @description 业务系统service
* @createTime 2025年07月31日
*/
@Service
public class BusinessDataSystemServiceImpl implements BusinessDataSystemService {
@Autowired
private BusinessDataSystemMapper dataSystemMapper;
@Override
public Long addDataSystem(BusinessDataSystemDTO dataSystemDTO) {
BusinessDataSystem dataSystem = new BusinessDataSystem();
BeanUtils.copyProperties(dataSystemDTO, dataSystem);
dataSystem.setCreateTime(new Date());
dataSystem.setUpdateTime(new Date());
dataSystemMapper.insert(dataSystem);
return dataSystem.getId();
}
@Override
public Long updateDataSystem(BusinessDataSystemDTO dataSystemDTO) {
BusinessDataSystem dataSystem = new BusinessDataSystem();
BeanUtils.copyProperties(dataSystemDTO, dataSystem);
dataSystem.setUpdateTime(new Date());
dataSystemMapper.update(dataSystem);
return dataSystem.getId();
}
@Override
public void deleteDataSystem(Long dataSystemId) {
dataSystemMapper.deleteById(dataSystemId);
}
@Override
public Page<BusinessDataSystem> queryPage(BusinessDataSystemQueryDTO queryDTO) {
QueryWrapper queryWrapper = QueryWrapper.create();
if (StringUtils.hasText(queryDTO.getName())) {
queryWrapper.like(BusinessDataSystem::getName, queryDTO.getName());
}
queryWrapper.orderBy(BusinessDataSystem::getId, false);
return dataSystemMapper.paginate(queryDTO.getPageNo(), queryDTO.getPageSize(), queryWrapper);
}
}
package com.ediagnosis.cdr.service.impl;
import com.ediagnosis.cdr.dao.entity.BusinessDataTableField;
import com.ediagnosis.cdr.dao.mapper.BusinessDataTableFieldMapper;
import com.ediagnosis.cdr.model.dto.BusinessDataTableFieldQueryDTO;
import com.ediagnosis.cdr.service.BusinessDataTableFieldService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
/**
* @author monojun
* @description 业务表字段service
* @createTime 2025年07月31日
*/
@Service
public class BusinessDataTableFieldServiceImpl implements BusinessDataTableFieldService {
@Autowired
private BusinessDataTableFieldMapper dataTableFieldMapper;
@Override
public Page<BusinessDataTableField> queryPage(BusinessDataTableFieldQueryDTO queryDTO) {
QueryWrapper queryWrapper = QueryWrapper.create();
if (StringUtils.hasText(queryDTO.getFieldName())) {
queryWrapper.like(BusinessDataTableField::getFieldName, queryDTO.getFieldName());
}
if (StringUtils.hasText(queryDTO.getFieldType())) {
queryWrapper.like(BusinessDataTableField::getFieldType, queryDTO.getFieldType());
}
if (queryDTO.getTableId() != null) {
queryWrapper.eq(BusinessDataTableField::getTableId, queryDTO.getTableId());
}
queryWrapper.orderBy(BusinessDataTableField::getId, false);
return dataTableFieldMapper.paginate(queryDTO.getPageNo(), queryDTO.getPageSize(), queryWrapper);
}
}
package com.ediagnosis.cdr.service.impl;
import com.ediagnosis.cdr.dao.entity.BusinessDataSource;
import com.ediagnosis.cdr.dao.entity.BusinessDataSystem;
import com.ediagnosis.cdr.dao.entity.BusinessDataTable;
import com.ediagnosis.cdr.dao.mapper.BusinessDataTableMapper;
import com.ediagnosis.cdr.model.dto.BusinessDataTableDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataTableQueryDTO;
import com.ediagnosis.cdr.service.BusinessDataTableService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
/**
* @author monojun
* @description 业务表service
* @createTime 2025年07月31日
*/
@Service
public class BusinessDataTableServiceImpl implements BusinessDataTableService {
@Autowired
private BusinessDataTableMapper dataTableMapper;
@Override
public Page<BusinessDataTableDTO> queryPage(BusinessDataTableQueryDTO queryDTO) {
QueryWrapper queryWrapper = QueryWrapper.create()
.select("t.*, d.id as sourceId, d.name as sourceName, ds.id as businessId, ds.name as businessName")
.from(BusinessDataTable.class).as("t")
.leftJoin(BusinessDataSource.class).as("d")
.on(BusinessDataTable::getSourceId, BusinessDataSource::getId)
.leftJoin(BusinessDataSystem.class).as("ds")
.on(BusinessDataSource::getBusinessId, BusinessDataSystem::getId)
.orderBy(BusinessDataTable::getId, false);
if (StringUtils.hasText(queryDTO.getName())) {
queryWrapper.like(BusinessDataTable::getName, queryDTO.getName());
}
if (!CollectionUtils.isEmpty(queryDTO.getBusinessIds())) {
queryWrapper.in(BusinessDataTable::getBusinessId, queryDTO.getBusinessIds());
}
if (!CollectionUtils.isEmpty(queryDTO.getSourceIds())) {
queryWrapper.in(BusinessDataTable::getSourceId, queryDTO.getSourceIds());
}
if (StringUtils.hasText(queryDTO.getTableNo())) {
queryWrapper.like(BusinessDataTable::getTableNo, queryDTO.getTableNo());
}
return dataTableMapper.paginateAs(queryDTO.getPageNo(), queryDTO.getPageSize(), queryWrapper, BusinessDataTableDTO.class);
}
}
package com.ediagnosis.cdr.util;
import com.ediagnosis.cdr.value.PageVo;
import com.mybatisflex.core.paginate.Page;
import org.springframework.beans.BeanUtils;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author monojun
* @description 拷贝工具
* @createTime 2025年07月03日
*/
public class PageConvertUtils {
/**
* 拷贝 Page<T> 到 PageVo<R>
*
* @param source 原始分页数据
* @param function 转换函数 T -> R
* @param <T> 源类型
* @param <R> 目标类型
* @return PageInfo<R>
*/
public static <T, R> PageVo<R> copyPageInfo(Page<T> source, Function<T, R> function) {
PageVo<R> result = new PageVo<>();
// 拷贝分页信息(排除list)
BeanUtils.copyProperties(source, result, "list");
result.setPageNo(source.getPageNumber());
result.setPageSize(source.getPageSize());
result.setTotalCount(source.getTotalRow());
result.setTotalPage(source.getTotalPage());
List<R> collect = source.getRecords().stream()
.map(function)
.collect(Collectors.toList());
result.setContent(collect);
return result;
}
}
...@@ -2,18 +2,18 @@ package com.ediagnosis.cdr.value; ...@@ -2,18 +2,18 @@ package com.ediagnosis.cdr.value;
import java.util.List; import java.util.List;
public class Page<T> { public class PageVo<T> {
private long pageNo; private long pageNo;
private long pageSize; private long pageSize;
private long totalCount; private long totalCount;
private List<T> content; private List<T> content;
private long totalPage; private long totalPage;
public Page() { public PageVo() {
} }
public Page(long pageNo, long pageSize, public PageVo(long pageNo, long pageSize,
long totalCount, List<T> content) { long totalCount, List<T> content) {
this.pageNo = pageNo; this.pageNo = pageNo;
this.pageSize = pageSize; this.pageSize = pageSize;
this.totalCount = totalCount; this.totalCount = totalCount;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
mybatis-flex: mybatis-flex:
datasource: datasource:
ds-mysql: ds-mysql:
url: jdbc:mysql://10.11.4.21:33063/cdr url: jdbc:mysql://10.11.4.21:33063/cdr_v1
username: root username: root
password: Admin123456# password: Admin123456#
ds-hive: ds-hive:
......
<?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.ediagnosis.cdr.dao.mapper.BusinessDataSourceMapper">
<resultMap id="BaseResultMap" type="com.ediagnosis.cdr.dao.entity.BusinessDataSource">
<!--@mbg.generated-->
<!--@Table business_data_source-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="type" jdbcType="VARCHAR" property="type" />
<result column="ip_address" jdbcType="VARCHAR" property="ipAddress" />
<result column="properties" jdbcType="LONGVARCHAR" property="properties" />
<result column="business_id" jdbcType="BIGINT" property="businessId" />
<result column="description" jdbcType="LONGVARCHAR" property="description" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_user_id" jdbcType="BIGINT" property="createUserId" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="update_user_id" jdbcType="BIGINT" property="updateUserId" />
<result column="is_deleted" jdbcType="INTEGER" property="isDeleted" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, `name`, `type`, ip_address, properties, business_id, description, `status`, create_time,
create_user_id, update_time, update_user_id, is_deleted
</sql>
<sql id="Column_List_DTO">
d.id, d.`name`, d.`type`, d.ip_address, d.properties, d.business_id, ds.name as businessName, d.description, d.`status`, d.create_time,
d.create_user_id, d.update_time, d.update_user_id
</sql>
<insert id="batchInsert" parameterType="map">
<!--@mbg.generated-->
insert into business_data_source
(id, `name`, `type`, ip_address, properties, business_id, description, `status`,
create_time, create_user_id, update_time, update_user_id, is_deleted)
values
<foreach collection="list" item="item" separator=",">
(#{item.id,jdbcType=BIGINT}, #{item.name,jdbcType=VARCHAR}, #{item.type,jdbcType=VARCHAR},
#{item.ipAddress,jdbcType=VARCHAR}, #{item.properties,jdbcType=LONGVARCHAR}, #{item.businessId,jdbcType=BIGINT},
#{item.description,jdbcType=LONGVARCHAR}, #{item.status,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP},
#{item.createUserId,jdbcType=BIGINT}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.updateUserId,jdbcType=BIGINT},
#{item.isDeleted,jdbcType=INTEGER})
</foreach>
</insert>
<select id="queryAll" resultType="com.ediagnosis.cdr.model.dto.BusinessDataSourceDTO">
select
<include refid="Column_List_DTO"/>
from business_data_source d left join business_data_system ds on d.business_id = ds.id
<where>
<if test="queryDTO.businessIds != null and queryDTO.businessIds.size() != 0">
and d.business_id in
<foreach collection="queryDTO.businessIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="queryDTO.name != null and queryDTO.name != ''">
and d.name like concat('%', #{queryDTO.name,jdbcType=VARCHAR}, '%')
</if>
<if test="queryDTO.ipAddress != null and queryDTO.ipAddress != ''">
and d.ip_address like concat('%', #{queryDTO.ipAddress,jdbcType=VARCHAR}, '%')
</if>
<if test="queryDTO.type != null and queryDTO.type != ''">
and d.type = #{queryDTO.type,jdbcType=VARCHAR}
</if>
<if test="queryDTO.status != null">
and d.status = #{queryDTO.status,jdbcType=INTEGER}
</if>
</where>
order by d.update_time desc, id desc
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ediagnosis.cdr.dao.mapper.BusinessDataSystemMapper">
<resultMap id="BaseResultMap" type="com.ediagnosis.cdr.dao.entity.BusinessDataSystem">
<!--@mbg.generated-->
<!--@Table business_data_system-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="description" jdbcType="LONGVARCHAR" property="description" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_user_id" jdbcType="BIGINT" property="createUserId" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="update_user_id" jdbcType="BIGINT" property="updateUserId" />
<result column="is_deleted" jdbcType="INTEGER" property="isDeleted" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, name, description, create_time, create_user_id, update_time, update_user_id,
is_deleted
</sql>
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into business_data_system
(name, description, create_time, create_user_id, update_time, update_user_id, is_deleted
)
values
<foreach collection="list" item="item" separator=",">
(#{item.name,jdbcType=VARCHAR}, #{item.description,jdbcType=LONGVARCHAR}, #{item.createTime,jdbcType=TIMESTAMP},
#{item.createUserId,jdbcType=BIGINT}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.updateUserId,jdbcType=BIGINT},
#{item.isDeleted,jdbcType=INTEGER})
</foreach>
</insert>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ediagnosis.cdr.dao.mapper.BusinessDataTableFieldMapper">
<resultMap id="BaseResultMap" type="com.ediagnosis.cdr.dao.entity.BusinessDataTableField">
<!--@mbg.generated-->
<!--@Table business_data_table_field-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="field_name" jdbcType="VARCHAR" property="fieldName" />
<result column="field_type" jdbcType="VARCHAR" property="fieldType" />
<result column="table_id" jdbcType="BIGINT" property="tableId" />
<result column="description" jdbcType="LONGVARCHAR" property="description" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_user_id" jdbcType="BIGINT" property="createUserId" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="update_user_id" jdbcType="BIGINT" property="updateUserId" />
<result column="is_deleted" jdbcType="INTEGER" property="isDeleted" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, field_name, field_type, table_id, description, create_time, create_user_id, update_time,
update_user_id, is_deleted
</sql>
<insert id="batchInsert" parameterType="map">
<!--@mbg.generated-->
insert into business_data_table_field
(id, field_name, field_type, table_id, description, create_time, create_user_id,
update_time, update_user_id, is_deleted)
values
<foreach collection="list" item="item" separator=",">
(#{item.id,jdbcType=BIGINT}, #{item.fieldName,jdbcType=VARCHAR}, #{item.fieldType,jdbcType=VARCHAR},
#{item.tableId,jdbcType=BIGINT}, #{item.description,jdbcType=LONGVARCHAR}, #{item.createTime,jdbcType=TIMESTAMP},
#{item.createUserId,jdbcType=BIGINT}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.updateUserId,jdbcType=BIGINT},
#{item.isDeleted,jdbcType=INTEGER})
</foreach>
</insert>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ediagnosis.cdr.dao.mapper.BusinessDataTableMapper">
<resultMap id="BaseResultMap" type="com.ediagnosis.cdr.dao.entity.BusinessDataTable">
<!--@mbg.generated-->
<!--@Table business_data_table-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="table_no" jdbcType="VARCHAR" property="tableNo" />
<result column="business_id" jdbcType="BIGINT" property="businessId" />
<result column="source_id" jdbcType="BIGINT" property="sourceId" />
<result column="description" jdbcType="LONGVARCHAR" property="description" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_user_id" jdbcType="BIGINT" property="createUserId" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="update_user_id" jdbcType="BIGINT" property="updateUserId" />
<result column="is_deleted" jdbcType="INTEGER" property="isDeleted" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, `name`, table_no, business_id, source_id, description, create_time, create_user_id,
update_time, update_user_id, is_deleted
</sql>
<insert id="batchInsert" parameterType="map">
<!--@mbg.generated-->
insert into business_data_table
(id, `name`, table_no, business_id, source_id, description, create_time, create_user_id,
update_time, update_user_id, is_deleted)
values
<foreach collection="list" item="item" separator=",">
(#{item.id,jdbcType=BIGINT}, #{item.name,jdbcType=VARCHAR}, #{item.tableNo,jdbcType=VARCHAR},
#{item.businessId,jdbcType=BIGINT}, #{item.sourceId,jdbcType=BIGINT}, #{item.description,jdbcType=LONGVARCHAR},
#{item.createTime,jdbcType=TIMESTAMP}, #{item.createUserId,jdbcType=BIGINT}, #{item.updateTime,jdbcType=TIMESTAMP},
#{item.updateUserId,jdbcType=BIGINT}, #{item.isDeleted,jdbcType=INTEGER})
</foreach>
</insert>
</mapper>
\ No newline at end of file
package com.ediagnosis.cdr.dao;
import com.alibaba.fastjson.JSON;
import com.ediagnosis.cdr.CdrApplication;
import com.ediagnosis.cdr.dao.entity.BusinessDataSource;
import com.ediagnosis.cdr.dao.entity.BusinessDataSystem;
import com.ediagnosis.cdr.dao.mapper.BusinessDataSourceMapper;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataSourceQueryDTO;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @author monojun
* @description MapperTest
* @createTime 2025年07月31日
*/
@SpringBootTest(classes = CdrApplication.class)
public class MapperTest {
@Autowired
private BusinessDataSourceMapper dataSourceMapper;
@Test
public void test1() {
BusinessDataSourceQueryDTO queryDTO = new BusinessDataSourceQueryDTO();
QueryWrapper queryWrapper = QueryWrapper.create()
.select("d.*, ds.name as businessName")
.from("business_data_source").as("d")
.leftJoin("business_data_system").as("ds")
.on("d.business_id = ds.id");
Page<BusinessDataSourceDTO> dataSourceDTOPage = dataSourceMapper.paginateAs(1, 10, queryWrapper, BusinessDataSourceDTO.class);
System.out.println(JSON.toJSON(dataSourceDTOPage));
}
@Test
public void test2() {
QueryWrapper queryWrapper = QueryWrapper.create()
.select("d.*", "ds.id as businessId, ds.name as businessName")
.from(BusinessDataSource.class).as("d")
.leftJoin(BusinessDataSystem.class).as("ds")
.on(BusinessDataSource::getBusinessId, BusinessDataSystem::getId);
queryWrapper.in(BusinessDataSource::getBusinessId, 1);
Page<BusinessDataSourceDTO> dataSourceDTOPage = dataSourceMapper.paginateAs(1, 10, queryWrapper, BusinessDataSourceDTO.class);
System.out.println(JSON.toJSON(dataSourceDTOPage));
}
}
package com.ediagnosis.cdr.demo;
import com.alibaba.fastjson.JSON;
import com.ediagnosis.cdr.CdrApplication;
import com.ediagnosis.cdr.dao.entity.BusinessDataSystem;
import com.ediagnosis.cdr.model.dto.BusinessDataSystemDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataSystemQueryDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataTableDTO;
import com.ediagnosis.cdr.model.dto.BusinessDataTableQueryDTO;
import com.ediagnosis.cdr.service.BusinessDataSystemService;
import com.ediagnosis.cdr.service.BusinessDataTableService;
import com.mybatisflex.core.paginate.Page;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @author monojun
* @description ServiceTest
* @createTime 2025年07月31日
*/
@SpringBootTest(classes = CdrApplication.class)
public class DemoTest {
@Autowired
private BusinessDataTableService tableService;
@Autowired
private BusinessDataSystemService dataSystemService;
@Test
public void test1() {
BusinessDataTableQueryDTO queryDTO = new BusinessDataTableQueryDTO();
Page<BusinessDataTableDTO> businessDataTableDTOPage = tableService.queryPage(queryDTO);
System.out.println(JSON.toJSONString(businessDataTableDTOPage));
}
@Test
public void test2() {
BusinessDataSystemQueryDTO queryDTO = new BusinessDataSystemQueryDTO();
Page<BusinessDataSystem> dataSystemPage = dataSystemService.queryPage(queryDTO);
System.out.println(JSON.toJSONString(dataSystemPage));
}
@Test
public void test3() {
BusinessDataSystemDTO dataSystemDTO = new BusinessDataSystemDTO();
dataSystemDTO.setName("业务系统demo3");
dataSystemDTO.setDescription("业务系统demo3描述");
Long l = dataSystemService.addDataSystem(dataSystemDTO);
System.out.println(l);
BusinessDataSystemDTO updateDataSystemDTO = new BusinessDataSystemDTO();
updateDataSystemDTO.setId(l);
updateDataSystemDTO.setDescription("业务系统demo3描述1");
dataSystemService.updateDataSystem(updateDataSystemDTO);
}
}
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