Prechádzať zdrojové kódy

fix:
- 升级数据集插件版本至1.0.1.2023100901.Alpha,其中:
- 升级mybatis-plus版本至3.5.3.2
- 新增了自定义序列化类EmptyAsNullDeserializer,解决主键自增时使用空字符串问题(https://github.com/baomidou/mybatis-plus/pull/3592/files)
- 移除项目中使用的mybatis-plus的count方法,全部采用list.size,解决mybatis-plus新版本修改了count的返回值类型问题,兼容不同版本的mybatis-plus
- 升级Springboot版本至2.7.16
- 优化pom依赖,不在以spring-boot-starter-parent作为parent。移除多余或重复的依赖项

hong.yang 1 rok pred
rodič
commit
9ba2334129

+ 2 - 6
DataRoom/dataroom-core/pom.xml

@@ -12,8 +12,8 @@
     <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>

+ 6 - 3
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java

@@ -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;
     }
 
 }

+ 8 - 4
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/controller/BizComponentController.java

@@ -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()));
     }
 
 }

+ 49 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/dto/BizComponentDTO.java

@@ -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;
+}

+ 2 - 1
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/service/impl/BizComponentServiceImpl.java

@@ -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;
     }
 }

+ 0 - 3
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/file/service/impl/DataRoomFileServiceImpl.java

@@ -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);
     }
 

+ 5 - 2
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DataRoomPageDTO.java

@@ -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;

+ 3 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/dto/DataRoomMapDTO.java

@@ -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;
 

+ 3 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/template/dto/PageTemplateDTO.java

@@ -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;
 

+ 3 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/dto/TypeDTO.java

@@ -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;
 

+ 4 - 2
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/service/impl/TypeServiceImpl.java

@@ -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;
     }
 }

+ 4 - 4
DataRoom/dataroom-server/pom.xml

@@ -12,9 +12,10 @@
     <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>
 

+ 14 - 38
DataRoom/pom.xml

@@ -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>
 
     <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>