From 9ba2334129f08f4477139021821c3eff5712e473 Mon Sep 17 00:00:00 2001 From: "hong.yang" Date: Mon, 9 Oct 2023 14:31:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20-=20=E5=8D=87=E7=BA=A7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E6=8F=92=E4=BB=B6=E7=89=88=E6=9C=AC=E8=87=B3?= =?UTF-8?q?1.0.1.2023100901.Alpha=EF=BC=8C=E5=85=B6=E4=B8=AD=EF=BC=9A=20?= =?UTF-8?q?=20=20-=20=E5=8D=87=E7=BA=A7mybatis-plus=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E8=87=B33.5.3.2=20=20=20=20=20-=20=E6=96=B0=E5=A2=9E=E4=BA=86?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=BA=8F=E5=88=97=E5=8C=96=E7=B1=BB?= =?UTF-8?q?EmptyAsNullDeserializer=EF=BC=8C=E8=A7=A3=E5=86=B3=E4=B8=BB?= =?UTF-8?q?=E9=94=AE=E8=87=AA=E5=A2=9E=E6=97=B6=E4=BD=BF=E7=94=A8=E7=A9=BA?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E9=97=AE=E9=A2=98=EF=BC=88https://g?= =?UTF-8?q?ithub.com/baomidou/mybatis-plus/pull/3592/files=EF=BC=89=20=20?= =?UTF-8?q?=20=20=20-=20=E7=A7=BB=E9=99=A4=E9=A1=B9=E7=9B=AE=E4=B8=AD?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84mybatis-plus=E7=9A=84count=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E5=85=A8=E9=83=A8=E9=87=87=E7=94=A8list.size?= =?UTF-8?q?=EF=BC=8C=E8=A7=A3=E5=86=B3mybatis-plus=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=BF=AE=E6=94=B9=E4=BA=86count=E7=9A=84=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=80=BC=E7=B1=BB=E5=9E=8B=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E4=B8=8D=E5=90=8C=E7=89=88=E6=9C=AC=E7=9A=84?= =?UTF-8?q?mybatis-plus=20=20=20-=20=E5=8D=87=E7=BA=A7Springboot=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E8=87=B32.7.16=20-=20=E4=BC=98=E5=8C=96pom=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=EF=BC=8C=E4=B8=8D=E5=9C=A8=E4=BB=A5spring-boot-starte?= =?UTF-8?q?r-parent=E4=BD=9C=E4=B8=BAparent=E3=80=82=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=A4=9A=E4=BD=99=E6=88=96=E9=87=8D=E5=A4=8D=E7=9A=84=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataRoom/dataroom-core/pom.xml | 8 +-- .../basic/service/IBasePageService.java | 9 ++-- .../controller/BizComponentController.java | 12 +++-- .../biz/component/dto/BizComponentDTO.java | 49 +++++++++++++++++ .../service/impl/BizComponentServiceImpl.java | 3 +- .../service/impl/DataRoomFileServiceImpl.java | 3 -- .../module/manage/dto/DataRoomPageDTO.java | 7 ++- .../core/module/map/dto/DataRoomMapDTO.java | 3 ++ .../module/template/dto/PageTemplateDTO.java | 3 ++ .../core/module/type/dto/TypeDTO.java | 3 ++ .../type/service/impl/TypeServiceImpl.java | 6 ++- DataRoom/dataroom-server/pom.xml | 8 +-- DataRoom/pom.xml | 52 +++++-------------- 13 files changed, 103 insertions(+), 63 deletions(-) create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/dto/BizComponentDTO.java diff --git a/DataRoom/dataroom-core/pom.xml b/DataRoom/dataroom-core/pom.xml index 7aa08a34..21b09f78 100644 --- a/DataRoom/dataroom-core/pom.xml +++ b/DataRoom/dataroom-core/pom.xml @@ -12,8 +12,8 @@ dataroom-core - 8 - 8 + 1.8 + 1.8 UTF-8 @@ -24,10 +24,6 @@ dataset-core ${dataset.core.version} - - org.springframework.boot - spring-boot-starter - org.springframework.boot spring-boot-starter-web diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java index 343b3b42..b6917eb6 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java @@ -71,11 +71,12 @@ public interface IBasePageService extends ISuperService { default boolean checkNameRepeat(PageEntity entity) { AssertUtils.isTrue(StringUtils.isNotBlank(entity.getName()), "名称不能为空"); LambdaQueryWrapper 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 { default boolean checkNameRepeat(String appCode, String name, String id, String type) { AssertUtils.isTrue(StringUtils.isNotBlank(name), "名称不能为空"); LambdaQueryWrapper 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 { default boolean checkCodeRepeat(PageEntity entity) { AssertUtils.isTrue(StringUtils.isNotBlank(entity.getCode()), "编码不能为空"); LambdaQueryWrapper 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; } } diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/controller/BizComponentController.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/controller/BizComponentController.java index 525ec945..511ddf8f 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/controller/BizComponentController.java +++ b/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 add(@ApiParam(name = "新增", value = "传入新增的业务条件", required = true) @RequestBody BizComponentEntity entity) { + public R 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 update(@ApiParam(name = "修改", value = "传入修改的业务条件", required = true) @RequestBody BizComponentEntity entity) { + public R 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 nameRepeat(@RequestBody BizComponentEntity entity) { - return R.success(bizComponentService.checkName(entity.getId(), entity.getName())); + public R nameRepeat(@RequestBody BizComponentDTO dto) { + return R.success(bizComponentService.checkName(dto.getId(), dto.getName())); } } diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/dto/BizComponentDTO.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/dto/BizComponentDTO.java new file mode 100644 index 00000000..0ce65a72 --- /dev/null +++ b/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; +} diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/service/impl/BizComponentServiceImpl.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/service/impl/BizComponentServiceImpl.java index abe2503c..4d856111 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/biz/component/service/impl/BizComponentServiceImpl.java +++ b/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 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; } } diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/file/service/impl/DataRoomFileServiceImpl.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/file/service/impl/DataRoomFileServiceImpl.java index 8920e5fe..dba0863e 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/file/service/impl/DataRoomFileServiceImpl.java +++ b/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 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); } diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DataRoomPageDTO.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DataRoomPageDTO.java index 7e0c323d..5a47715e 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DataRoomPageDTO.java +++ b/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; diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/dto/DataRoomMapDTO.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/dto/DataRoomMapDTO.java index 8e30df45..265b1088 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/dto/DataRoomMapDTO.java +++ b/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; diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/template/dto/PageTemplateDTO.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/template/dto/PageTemplateDTO.java index 0ed35a79..9fcb5f31 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/template/dto/PageTemplateDTO.java +++ b/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; diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/dto/TypeDTO.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/dto/TypeDTO.java index b0026525..98e70029 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/dto/TypeDTO.java +++ b/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; diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/service/impl/TypeServiceImpl.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/service/impl/TypeServiceImpl.java index afd69768..85e7075e 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/service/impl/TypeServiceImpl.java +++ b/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 im @Override public boolean checkCodeRepeat(String id, String type, String code) { LambdaQueryWrapper 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 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; } } diff --git a/DataRoom/dataroom-server/pom.xml b/DataRoom/dataroom-server/pom.xml index 422a5d93..5cd1a467 100644 --- a/DataRoom/dataroom-server/pom.xml +++ b/DataRoom/dataroom-server/pom.xml @@ -12,9 +12,10 @@ dataroom-server - 8 - 8 + 1.8 + 1.8 UTF-8 + true @@ -29,7 +30,7 @@ com.gccloud dataroom-core - 1.0.1.2023092701.Alpha + ${project.parent.version} @@ -51,7 +52,6 @@ org.springframework.boot spring-boot-starter-test - 2.3.12.RELEASE diff --git a/DataRoom/pom.xml b/DataRoom/pom.xml index abaa9188..cfea1cb8 100644 --- a/DataRoom/pom.xml +++ b/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"> 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.3.12.RELEASE - - - com.gccloud dataroom 1.0.1.2023092701.Alpha pom + dataroom 基于G2Plot、Echarts的大屏设计服务端,具备设计、预览能力,支持MySQL、Oracle、PostgreSQL、Groovy等数据集接入 https://github.com/gcpaas/DataRoom @@ -26,7 +20,16 @@ http://www.apache.org/licenses/LICENSE-2.0.txt - + + https://github.com/gcpaas/DataRoom + + + + gcpaas + gcpaas + tech@ustcinfo.com + + dataroom-core dataroom-server @@ -36,42 +39,15 @@ 1.8 UTF-8 UTF-8 - 2.3.12.RELEASE - 1.5.20 - 1.9.6 + 2.7.16 2.9.2 1.5.21 - 3.3.2 - 3.5.6 - 2.0.6 - 3.10 - 4.1 - 3.2.2 - portable-1.7.8 - 5.3.1 - 20.0 2.13.3 20220320 - 1.2.11 - 3.9.0 - 12.2.0.1 - 5.1.49 - 42.3.3 - 0.3.2 - 2.2 - 4.9.1 - 1.0.1.2023092201.Alpha + 1.0.1.2023100901.Alpha + 2.22.2 - - - - com.alibaba - easyexcel - 2.2.5 - - - From 37ca36a871b304dd6a8774805c8c68babf7207b0 Mon Sep 17 00:00:00 2001 From: "hong.yang" Date: Mon, 9 Oct 2023 14:32:16 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20-=20=E9=80=82=E9=85=8Dmybatis-plus?= =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E5=99=A8=E6=B3=A8=E5=85=A5=20-=20=E9=80=82=E9=85=8Dsp?= =?UTF-8?q?ringboot=E6=96=B0=E7=89=88=E6=9C=AC=20=20=20-=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9spring.resources.static-locations=E4=B8=BAspring.web.r?= =?UTF-8?q?esources.static-locations=20=20=20-=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=B7=A8=E8=B6=8A=E9=85=8D=E7=BD=AEallowedOrigins=E4=B8=BAallo?= =?UTF-8?q?wedOriginPatterns=20=20=20-=20=E8=A7=A3=E5=86=B3springfox?= =?UTF-8?q?=E4=B8=8Espringboot=E6=96=B0=E7=89=88=E6=9C=AC=E4=B8=8D?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gccloud/DataRoomApplication.java | 11 +++-- .../dataroom/config/CorsBeanConfig.java | 5 ++- .../config/SwaggerBootstrapConfig.java | 45 +++++++++++++++++++ .../src/main/resources/application.yml | 8 +++- 4 files changed, 62 insertions(+), 7 deletions(-) diff --git a/DataRoom/dataroom-server/src/main/java/com/gccloud/DataRoomApplication.java b/DataRoom/dataroom-server/src/main/java/com/gccloud/DataRoomApplication.java index 0250d3fa..ff0812ae 100644 --- a/DataRoom/dataroom-server/src/main/java/com/gccloud/DataRoomApplication.java +++ b/DataRoom/dataroom-server/src/main/java/com/gccloud/DataRoomApplication.java @@ -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; } } diff --git a/DataRoom/dataroom-server/src/main/java/com/gccloud/dataroom/config/CorsBeanConfig.java b/DataRoom/dataroom-server/src/main/java/com/gccloud/dataroom/config/CorsBeanConfig.java index 9aa25d97..f7ecdbde 100644 --- a/DataRoom/dataroom-server/src/main/java/com/gccloud/dataroom/config/CorsBeanConfig.java +++ b/DataRoom/dataroom-server/src/main/java/com/gccloud/dataroom/config/CorsBeanConfig.java @@ -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改为allowedOriginPatterns,springboot新版本中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()])); } } -} \ No newline at end of file +} diff --git a/DataRoom/dataroom-server/src/main/java/com/gccloud/dataroom/config/SwaggerBootstrapConfig.java b/DataRoom/dataroom-server/src/main/java/com/gccloud/dataroom/config/SwaggerBootstrapConfig.java index 3191d93a..6a79d3c8 100644 --- a/DataRoom/dataroom-server/src/main/java/com/gccloud/dataroom/config/SwaggerBootstrapConfig.java +++ b/DataRoom/dataroom-server/src/main/java/com/gccloud/dataroom/config/SwaggerBootstrapConfig.java @@ -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 void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + assert field != null; + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + + } diff --git a/DataRoom/dataroom-server/src/main/resources/application.yml b/DataRoom/dataroom-server/src/main/resources/application.yml index 2f457e18..30a49ace 100644 --- a/DataRoom/dataroom-server/src/main/resources/application.yml +++ b/DataRoom/dataroom-server/src/main/resources/application.yml @@ -17,6 +17,7 @@ spring: # 字符串转允许List,否则导致 @RequestBody List 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 From a7ccb4940183258130246b59d80caf4d21d4e7a3 Mon Sep 17 00:00:00 2001 From: "hong.yang" Date: Mon, 9 Oct 2023 15:05:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E5=8F=91=E5=B8=83=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=89=88=E6=9C=AC1.0.1.2023100901.Alpha=EF=BC=8C?= =?UTF-8?q?=E4=B8=BB=E8=A6=81=E9=92=88=E5=AF=B9jdk8-21=E5=81=9A=E4=BA=86?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataRoom/dataroom-core/pom.xml | 2 +- DataRoom/dataroom-server/pom.xml | 2 +- DataRoom/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DataRoom/dataroom-core/pom.xml b/DataRoom/dataroom-core/pom.xml index 21b09f78..ab81adf3 100644 --- a/DataRoom/dataroom-core/pom.xml +++ b/DataRoom/dataroom-core/pom.xml @@ -6,7 +6,7 @@ com.gccloud dataroom - 1.0.1.2023092701.Alpha + 1.0.1.2023100901.Alpha dataroom-core diff --git a/DataRoom/dataroom-server/pom.xml b/DataRoom/dataroom-server/pom.xml index 5cd1a467..dad9ffdc 100644 --- a/DataRoom/dataroom-server/pom.xml +++ b/DataRoom/dataroom-server/pom.xml @@ -6,7 +6,7 @@ com.gccloud dataroom - 1.0.1.2023092701.Alpha + 1.0.1.2023100901.Alpha dataroom-server diff --git a/DataRoom/pom.xml b/DataRoom/pom.xml index cfea1cb8..c8952996 100644 --- a/DataRoom/pom.xml +++ b/DataRoom/pom.xml @@ -5,7 +5,7 @@ com.gccloud dataroom - 1.0.1.2023092701.Alpha + 1.0.1.2023100901.Alpha pom dataroom