refactor: 代码合并

main
wu.jian2 1 year ago
commit 896bd38b88

@ -6,14 +6,14 @@
<parent>
<groupId>com.gccloud</groupId>
<artifactId>dataroom</artifactId>
<version>1.0.1.2023092701.Alpha</version>
<version>1.0.1.2023100901.Alpha</version>
</parent>
<artifactId>dataroom-core</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
@ -24,10 +24,6 @@
<artifactId>dataset-core</artifactId>
<version>${dataset.core.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>

@ -71,11 +71,12 @@ public interface IBasePageService extends ISuperService<PageEntity> {
default boolean checkNameRepeat(PageEntity entity) {
AssertUtils.isTrue(StringUtils.isNotBlank(entity.getName()), "名称不能为空");
LambdaQueryWrapper<PageEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(PageEntity::getId);
queryWrapper.eq(StringUtils.isNotBlank(entity.getAppCode()), PageEntity::getAppCode, entity.getAppCode())
.eq(PageEntity::getName, entity.getName())
.eq(PageEntity::getType, entity.getType())
.ne(StringUtils.isNotBlank(entity.getId()), PageEntity::getId, entity.getId());
return getBaseMapper().selectCount(queryWrapper) > 0;
return getBaseMapper().selectList(queryWrapper).size() > 0;
}
/**
@ -89,11 +90,12 @@ public interface IBasePageService extends ISuperService<PageEntity> {
default boolean checkNameRepeat(String appCode, String name, String id, String type) {
AssertUtils.isTrue(StringUtils.isNotBlank(name), "名称不能为空");
LambdaQueryWrapper<PageEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(PageEntity::getId);
queryWrapper.eq(StringUtils.isNotBlank(appCode), PageEntity::getAppCode, appCode)
.eq(PageEntity::getName, name)
.eq(PageEntity::getType, type)
.ne(StringUtils.isNotBlank(id), PageEntity::getId, id);
return getBaseMapper().selectCount(queryWrapper) > 0;
return getBaseMapper().selectList(queryWrapper).size() > 0;
}
@ -105,11 +107,12 @@ public interface IBasePageService extends ISuperService<PageEntity> {
default boolean checkCodeRepeat(PageEntity entity) {
AssertUtils.isTrue(StringUtils.isNotBlank(entity.getCode()), "编码不能为空");
LambdaQueryWrapper<PageEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(PageEntity::getId);
queryWrapper.eq(StringUtils.isNotBlank(entity.getAppCode()), PageEntity::getAppCode, entity.getAppCode())
.eq(PageEntity::getCode, entity.getCode())
.eq(PageEntity::getType, entity.getType())
.ne(StringUtils.isNotBlank(entity.getId()), PageEntity::getId, entity.getId());
return getBaseMapper().selectCount(queryWrapper) > 0;
return getBaseMapper().selectList(queryWrapper).size() > 0;
}
}

@ -1,6 +1,8 @@
package com.gccloud.dataroom.core.module.biz.component.controller;
import com.gccloud.common.permission.ApiPermission;
import com.gccloud.common.utils.BeanConvertUtils;
import com.gccloud.dataroom.core.module.biz.component.dto.BizComponentDTO;
import com.gccloud.dataroom.core.module.biz.component.dto.BizComponentSearchDTO;
import com.gccloud.dataroom.core.module.biz.component.entity.BizComponentEntity;
import com.gccloud.dataroom.core.module.biz.component.service.IBizComponentService;
@ -46,7 +48,8 @@ public class BizComponentController {
@ApiPermission(permissions = {Permission.Component.ADD})
@PostMapping("/add")
@ApiOperation(value = "新增", notes = "新增", produces = MediaType.APPLICATION_JSON_VALUE)
public R<String> add(@ApiParam(name = "新增", value = "传入新增的业务条件", required = true) @RequestBody BizComponentEntity entity) {
public R<String> add(@ApiParam(name = "新增", value = "传入新增的业务条件", required = true) @RequestBody BizComponentDTO dto) {
BizComponentEntity entity = BeanConvertUtils.convert(dto, BizComponentEntity.class);
String code = bizComponentService.add(entity);
return R.success(code);
}
@ -55,7 +58,8 @@ public class BizComponentController {
@ApiPermission(permissions = {Permission.Component.UPDATE})
@PostMapping("/update")
@ApiOperation(value = "修改", notes = "修改", produces = MediaType.APPLICATION_JSON_VALUE)
public R<Void> update(@ApiParam(name = "修改", value = "传入修改的业务条件", required = true) @RequestBody BizComponentEntity entity) {
public R<Void> update(@ApiParam(name = "修改", value = "传入修改的业务条件", required = true) @RequestBody BizComponentDTO dto) {
BizComponentEntity entity = BeanConvertUtils.convert(dto, BizComponentEntity.class);
bizComponentService.update(entity);
return R.success();
}
@ -87,8 +91,8 @@ public class BizComponentController {
@ApiPermission(permissions = {Permission.Component.VIEW})
@PostMapping("/name/repeat")
@ApiOperation(value = "名称查重", notes = "名称查重", produces = MediaType.APPLICATION_JSON_VALUE)
public R<Boolean> nameRepeat(@RequestBody BizComponentEntity entity) {
return R.success(bizComponentService.checkName(entity.getId(), entity.getName()));
public R<Boolean> nameRepeat(@RequestBody BizComponentDTO dto) {
return R.success(bizComponentService.checkName(dto.getId(), dto.getName()));
}
}

@ -0,0 +1,49 @@
package com.gccloud.dataroom.core.module.biz.component.dto;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.gccloud.common.utils.EmptyAsNullDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author hongyang
* @version 1.0
* @date 2023/6/5 11:41
*/
@Data
public class BizComponentDTO {
@JsonDeserialize(using = EmptyAsNullDeserializer.class)
@ApiModelProperty(notes = "主键")
private String id;
@ApiModelProperty(notes = "业务组件中文名称")
private String name;
@ApiModelProperty(notes = "业务组件编码,页面唯一标识符")
@TableField(updateStrategy = FieldStrategy.NEVER)
private String code;
@ApiModelProperty(notes = "业务组件所属分组")
private String type;
@ApiModelProperty(notes = "组件封面")
private String coverPicture;
@ApiModelProperty(notes = "vue组件内容")
private String vueContent;
@ApiModelProperty(notes = "组件配置内容")
private String settingContent;
@ApiModelProperty(notes = "备注")
private String remark;
@ApiModelProperty(notes = "排序")
private Integer orderNum;
@ApiModelProperty(notes = "模块编码")
private String moduleCode;
}

@ -248,10 +248,11 @@ public class BizComponentServiceImpl extends ServiceImpl<DataRoomBizComponentDao
@Override
public boolean checkName(String id, String name) {
LambdaQueryWrapper<BizComponentEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(BizComponentEntity::getId);
queryWrapper.eq(BizComponentEntity::getName, name);
if (StringUtils.isNotBlank(id)) {
queryWrapper.ne(BizComponentEntity::getId, id);
}
return this.count(queryWrapper) > 0;
return this.list(queryWrapper).size() > 0;
}
}

@ -32,9 +32,6 @@ public class DataRoomFileServiceImpl extends ServiceImpl<DataRoomFileDao, DataRo
queryWrapper.eq(StringUtils.isNotBlank(searchDTO.getModule()), DataRoomFileEntity::getModule, searchDTO.getModule());
queryWrapper.eq(StringUtils.isNotBlank(searchDTO.getExtension()), DataRoomFileEntity::getExtension, searchDTO.getExtension());
queryWrapper.orderByDesc(DataRoomFileEntity::getCreateDate);
Map<String, String> aliasMap = Maps.newHashMap();
aliasMap.put("space", "size");
QueryWrapperUtils.wrapperSort(null, DataRoomFileEntity.class, queryWrapper, searchDTO, aliasMap, DataRoomFileEntity::getOriginalName, DataRoomFileEntity::getCreateDate, DataRoomFileEntity::getSize, DataRoomFileEntity::getDownloadCount);
return page(searchDTO, queryWrapper);
}

@ -1,10 +1,12 @@
package com.gccloud.dataroom.core.module.manage.dto;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.gccloud.common.utils.EmptyAsNullDeserializer;
import com.gccloud.common.validator.group.Insert;
import com.gccloud.common.validator.group.Update;
import com.gccloud.dataroom.core.constant.PageDesignConstant;
import com.gccloud.dataroom.core.module.basic.dto.BasePageDTO;
import com.gccloud.dataroom.core.module.chart.bean.Chart;
import com.gccloud.common.validator.group.Insert;
import com.gccloud.common.validator.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -20,6 +22,7 @@ import java.util.List;
@Data
public class DataRoomPageDTO extends BasePageDTO {
@JsonDeserialize(using = EmptyAsNullDeserializer.class)
@NotBlank(message = "id不能为空", groups = Update.class)
@ApiModelProperty(notes = "主键id")
private String id;

@ -1,5 +1,7 @@
package com.gccloud.dataroom.core.module.map.dto;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.gccloud.common.utils.EmptyAsNullDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -11,6 +13,7 @@ import lombok.Data;
@Data
public class DataRoomMapDTO {
@JsonDeserialize(using = EmptyAsNullDeserializer.class)
@ApiModelProperty(notes = "主键")
private String id;

@ -1,5 +1,7 @@
package com.gccloud.dataroom.core.module.template.dto;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.gccloud.common.utils.EmptyAsNullDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -11,6 +13,7 @@ import lombok.Data;
@Data
public class PageTemplateDTO {
@JsonDeserialize(using = EmptyAsNullDeserializer.class)
@ApiModelProperty(notes = "主键")
private String id;

@ -1,5 +1,7 @@
package com.gccloud.dataroom.core.module.type.dto;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.gccloud.common.utils.EmptyAsNullDeserializer;
import com.gccloud.dataroom.core.constant.PageDesignConstant;
import com.gccloud.common.validator.group.Insert;
import com.gccloud.common.validator.group.Update;
@ -17,6 +19,7 @@ import javax.validation.constraints.NotBlank;
public class TypeDTO {
@ApiModelProperty(notes = "主键")
@JsonDeserialize(using = EmptyAsNullDeserializer.class)
@NotBlank(message = "id不能为空", groups = Update.class)
private String id;

@ -79,18 +79,20 @@ public class TypeServiceImpl extends ServiceImpl<DataRoomTypeDao, TypeEntity> im
@Override
public boolean checkCodeRepeat(String id, String type, String code) {
LambdaQueryWrapper<TypeEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(TypeEntity::getId);
queryWrapper.eq(TypeEntity::getType, type);
queryWrapper.eq(TypeEntity::getCode, code);
queryWrapper.ne(StringUtils.isNotBlank(id), TypeEntity::getId, id);
return this.count(queryWrapper) > 0;
return this.list(queryWrapper).size() > 0;
}
@Override
public boolean checkNameRepeat(String id, String type, String name) {
LambdaQueryWrapper<TypeEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(TypeEntity::getId);
queryWrapper.eq(TypeEntity::getName, name);
queryWrapper.eq(TypeEntity::getType, type);
queryWrapper.ne(StringUtils.isNotBlank(id), TypeEntity::getId, id);
return this.count(queryWrapper) > 0;
return this.list(queryWrapper).size() > 0;
}
}

@ -6,15 +6,16 @@
<parent>
<groupId>com.gccloud</groupId>
<artifactId>dataroom</artifactId>
<version>1.0.1.2023092701.Alpha</version>
<version>1.0.1.2023100901.Alpha</version>
</parent>
<artifactId>dataroom-server</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 版本发布时,跳过该模块 -->
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
@ -29,7 +30,7 @@
<dependency>
<groupId>com.gccloud</groupId>
<artifactId>dataroom-core</artifactId>
<version>1.0.1.2023092701.Alpha</version>
<version>${project.parent.version}</version>
</dependency>
<dependency>
@ -51,7 +52,6 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.3.12.RELEASE</version>
</dependency>
</dependencies>

@ -1,6 +1,7 @@
package com.gccloud;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.gccloud.common.constant.CommonConst;
import com.gccloud.dataroom.core.constant.DataRoomConst;
import com.gccloud.dataset.constant.DatasetConstant;
@ -28,10 +29,12 @@ public class DataRoomApplication {
/**
*
*
* @return
* @return PaginationInterceptor
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}

@ -22,7 +22,8 @@ public class CorsBeanConfig implements WebMvcConfigurer {
Cors cors = new Cors();
CorsRegistration corsRegistration = registry.addMapping(cors.getMapping());
corsRegistration
.allowedOrigins(cors.getAllowedOrigins().toArray(new String[cors.getAllowedOrigins().size()]))
// change 由allowedOrigins改为allowedOriginPatternsspringboot新版本中allowedOrigins不允许设置*,只能设置具体的域名
.allowedOriginPatterns(cors.getAllowedOrigins().toArray(new String[cors.getAllowedOrigins().size()]))
.allowCredentials(cors.getAllowCredentials())
.allowedMethods(cors.getAllowedMethods().toArray(new String[cors.getAllowedMethods().size()]))
.maxAge(cors.getMaxAge());
@ -34,4 +35,4 @@ public class CorsBeanConfig implements WebMvcConfigurer {
corsRegistration.exposedHeaders(exposedHeaders.toArray(new String[exposedHeaders.size()]));
}
}
}
}

@ -6,12 +6,17 @@ import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrap
import com.google.common.base.Predicates;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
@ -20,9 +25,12 @@ import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ResponseMessage;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
/**
* Swagger2
@ -81,4 +89,41 @@ public class SwaggerBootstrapConfig implements WebMvcConfigurer {
registry.addResourceHandler("doc.html")
.addResourceLocations("classpath:/META-INF/resources/");
}
// NOTE 解决springfox与springboot新版本不兼容问题
@Bean
public BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
return new BeanPostProcessor() {
@Override
public Object postProcessAfterInitialization(@NonNull Object bean, @NonNull String beanName) throws BeansException {
if (bean instanceof WebMvcRequestHandlerProvider ) {
customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
}
return bean;
}
private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {
List<T> copy = mappings.stream()
.filter(mapping -> mapping.getPatternParser() == null)
.collect(Collectors.toList());
mappings.clear();
mappings.addAll(copy);
}
@SuppressWarnings("unchecked")
private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {
try {
Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
assert field != null;
field.setAccessible(true);
return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
} catch (IllegalArgumentException | IllegalAccessException e) {
throw new IllegalStateException(e);
}
}
};
}
}

@ -17,6 +17,7 @@ spring:
# 字符串转允许List否则导致 @RequestBody List<T> list 类型无法解析
ACCEPT_SINGLE_VALUE_AS_ARRAY: true
resources:
# 自springboot 2.5.5之后该属性已经被废弃使用web.resources.static-locations代替
static-locations: classpath:/static/,classpath:/META-INF/resources/,classpath:/META-INF/resources/webjars/,file:${gc.starter.file.basePath}
# 静态资源配置
mvc:
@ -26,6 +27,11 @@ spring:
view:
prefix: classpath:/static/
suffix: .html
pathmatch:
matching-strategy: ANT_PATH_MATCHER
web:
resources:
static-locations: classpath:/static/,classpath:/META-INF/resources/,classpath:/META-INF/resources/webjars/,file:${gc.starter.file.basePath}
mybatis-plus:
# mybatis plus xml配置文件扫描多个通过分号隔开
@ -35,4 +41,4 @@ mybatis-plus:
global-config:
db-config:
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"唯一ID";
id-type: 0
id-type: AUTO

@ -3,18 +3,12 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.gccloud</groupId>
<artifactId>dataroom</artifactId>
<version>1.0.1.2023092701.Alpha</version>
<version>1.0.1.2023100901.Alpha</version>
<packaging>pom</packaging>
<name>dataroom</name>
<description>基于G2Plot、Echarts的大屏设计服务端具备设计、预览能力支持MySQL、Oracle、PostgreSQL、Groovy等数据集接入
</description>
<url>https://github.com/gcpaas/DataRoom</url>
@ -26,7 +20,16 @@
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<scm>
<url>https://github.com/gcpaas/DataRoom</url>
</scm>
<developers>
<developer>
<id>gcpaas</id>
<name>gcpaas</name>
<email>tech@ustcinfo.com</email>
</developer>
</developers>
<modules>
<module>dataroom-core</module>
<module>dataroom-server</module>
@ -36,42 +39,15 @@
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.12.RELEASE</spring-boot.version>
<swagger.annotations.version>1.5.20</swagger.annotations.version>
<swagger.bootstrap.version>1.9.6</swagger.bootstrap.version>
<spring-boot.version>2.7.16</spring-boot.version>
<swagger.version>2.9.2</swagger.version>
<swagger-models.version>1.5.21</swagger-models.version>
<mybatis.plus.version>3.3.2</mybatis.plus.version>
<mybatis.version>3.5.6</mybatis.version>
<mybatis-spring.version>2.0.6</mybatis-spring.version>
<commons-lang3.version>3.10</commons-lang3.version>
<commons-collections4.version>4.1</commons-collections4.version>
<commons-collections.version>3.2.2</commons-collections.version>
<hanlp.version>portable-1.7.8</hanlp.version>
<hutool.version>5.3.1</hutool.version>
<guava.version>20.0</guava.version>
<jackson.version.core>2.13.3</jackson.version.core>
<json.version>20220320</json.version>
<druid.version>1.2.11</druid.version>
<p6spy.version>3.9.0</p6spy.version>
<oracle-database.version>12.2.0.1</oracle-database.version>
<mysql.version>5.1.49</mysql.version>
<postgresql.version>42.3.3</postgresql.version>
<clickhouse.version>0.3.2</clickhouse.version>
<commons-io.version>2.2</commons-io.version>
<okhttp3.version>4.9.1</okhttp3.version>
<dataset.core.version>1.0.1.2023092201.Alpha</dataset.core.version>
<dataset.core.version>1.0.1.2023100901.Alpha</dataset.core.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
</properties>
<dependencies>
<!-- excel解析 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.5</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>

Loading…
Cancel
Save