From 2a23f12188c3be0d41af6c1f8347b7341892d724 Mon Sep 17 00:00:00 2001 From: Owen <595466820@qq.com> Date: Sun, 15 Dec 2024 14:40:51 +0800 Subject: [PATCH] Feat: Code gen V1 --- .../V1_product1/codegen-SuperiorApi.zip | Bin 0 -> 37970 bytes .../codegen-SuperiorApiDevConfig.zip | Bin 0 -> 18197 bytes .../codegen-SuperiorApiSkuConfig.zip | Bin 0 -> 18597 bytes .../codegen-SuperiorProductConfig.zip | Bin 0 -> 18378 bytes .../superiorapi/SuperiorApiController.java | 2 +- .../vo/SuperiorApiDevConfigPageReqVO.java | 13 +++++++++++-- .../vo/SuperiorApiDevConfigRespVO.java | 18 +++++------------- .../vo/SuperiorApiDevConfigSaveReqVO.java | 12 ++++-------- .../vo/SuperiorProductConfigPageReqVO.java | 7 ++----- .../vo/SuperiorProductConfigRespVO.java | 15 +++++---------- .../vo/SuperiorProductConfigSaveReqVO.java | 18 +++++++++--------- .../superiorapi/SuperiorApiDevConfigDO.java | 8 -------- .../SuperiorProductConfigDO.java | 8 +------- .../SuperiorApiDevConfigMapper.java | 5 ++++- .../SuperiorProductConfigMapper.java | 1 - .../superiorapi/SuperiorApiService.java | 2 +- .../SuperiorApiDevConfigServiceImplTest.java | 12 ++++++++++++ .../SuperiorProductConfigServiceImplTest.java | 4 ---- .../src/main/resources/application.yaml | 3 +++ ...3.0.10__create_superior_product_config.sql | 7 +++---- ...V3.0.8__create_superior_api_dev_config.sql | 1 - 21 files changed, 61 insertions(+), 75 deletions(-) create mode 100644 code_gen_history/V1_product1/codegen-SuperiorApi.zip create mode 100644 code_gen_history/V1_product1/codegen-SuperiorApiDevConfig.zip create mode 100644 code_gen_history/V1_product1/codegen-SuperiorApiSkuConfig.zip create mode 100644 code_gen_history/V1_product1/codegen-SuperiorProductConfig.zip diff --git a/code_gen_history/V1_product1/codegen-SuperiorApi.zip b/code_gen_history/V1_product1/codegen-SuperiorApi.zip new file mode 100644 index 0000000000000000000000000000000000000000..9f17ba36dd25423118043e1ce6c13235deb1e8ca GIT binary patch literal 37970 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 literal 0 HcmV?d00001 diff --git a/code_gen_history/V1_product1/codegen-SuperiorApiSkuConfig.zip b/code_gen_history/V1_product1/codegen-SuperiorApiSkuConfig.zip new file mode 100644 index 0000000000000000000000000000000000000000..0a6c8849305e7e4e8208df7fc136c9a338edb2f8 GIT binary patch literal 18597 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 literal 0 HcmV?d00001 diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/SuperiorApiController.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/SuperiorApiController.java index 74be9d037a..694b8264de 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/SuperiorApiController.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/SuperiorApiController.java @@ -185,7 +185,7 @@ public class SuperiorApiController { @GetMapping("/superior-product-config/page") @Operation(summary = "获得产品对接上游配置分页") - @Parameter(name = "haokaSuperiorApiId", description = "上游接口ID") + @Parameter(name = "haokaSuperiorApiId", description = "ID") @PreAuthorize("@ss.hasPermission('haoka:superior-api:query')") public CommonResult> getSuperiorProductConfigPage(PageParam pageReqVO, @RequestParam("haokaSuperiorApiId") Long haokaSuperiorApiId) { diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigPageReqVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigPageReqVO.java index a7dca55ffc..eb094860df 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigPageReqVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigPageReqVO.java @@ -15,18 +15,27 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class SuperiorApiDevConfigPageReqVO extends PageParam { - @Schema(description = "ID", example = "2733") + @Schema(description = "ID", example = "627") private Long haokaSuperiorApiId; @Schema(description = "标识") private String code; - @Schema(description = "名字", example = "赵六") + @Schema(description = "名字", example = "王五") private String name; @Schema(description = "值") private String value; + @Schema(description = "说明") + private String remarks; + + @Schema(description = "输入类型", example = "2") + private Integer inputType; + + @Schema(description = "选项(逗号,分割)") + private String inputSelectValues; + @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigRespVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigRespVO.java index 6bf81cc06b..68c7b1dce8 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigRespVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigRespVO.java @@ -6,19 +6,17 @@ import java.util.*; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import com.alibaba.excel.annotation.*; -import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; -import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; @Schema(description = "管理后台 - 上游API接口开发配置 Response VO") @Data @ExcelIgnoreUnannotated public class SuperiorApiDevConfigRespVO { - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10380") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4692") @ExcelProperty("ID") private Long id; - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2733") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "627") @ExcelProperty("ID") private Long haokaSuperiorApiId; @@ -26,7 +24,7 @@ public class SuperiorApiDevConfigRespVO { @ExcelProperty("标识") private String code; - @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @ExcelProperty("名字") private String name; @@ -34,18 +32,12 @@ public class SuperiorApiDevConfigRespVO { @ExcelProperty("值") private String value; - @Schema(description = "是否必填", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty(value = "是否必填", converter = DictConvert.class) - @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 - private Boolean required; - @Schema(description = "说明") @ExcelProperty("说明") private String remarks; - @Schema(description = "输入类型") - @ExcelProperty(value = "输入类型", converter = DictConvert.class) - @DictFormat("haoka_superior_api_input_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + @Schema(description = "输入类型", example = "2") + @ExcelProperty("输入类型") private Integer inputType; @Schema(description = "选项(逗号,分割)") diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigSaveReqVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigSaveReqVO.java index 9ecae211bd..e3098270a5 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigSaveReqVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/vo/SuperiorApiDevConfigSaveReqVO.java @@ -9,10 +9,10 @@ import jakarta.validation.constraints.*; @Data public class SuperiorApiDevConfigSaveReqVO { - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10380") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4692") private Long id; - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2733") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "627") @NotNull(message = "ID不能为空") private Long haokaSuperiorApiId; @@ -20,7 +20,7 @@ public class SuperiorApiDevConfigSaveReqVO { @NotEmpty(message = "标识不能为空") private String code; - @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @NotEmpty(message = "名字不能为空") private String name; @@ -28,14 +28,10 @@ public class SuperiorApiDevConfigSaveReqVO { @NotEmpty(message = "值不能为空") private String value; - @Schema(description = "是否必填", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "是否必填不能为空") - private Boolean required; - @Schema(description = "说明") private String remarks; - @Schema(description = "输入类型") + @Schema(description = "输入类型", example = "2") private Integer inputType; @Schema(description = "选项(逗号,分割)") diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigPageReqVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigPageReqVO.java index 404783d341..bb2a8a6147 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigPageReqVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigPageReqVO.java @@ -15,10 +15,10 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class SuperiorProductConfigPageReqVO extends PageParam { - @Schema(description = "上游接口ID", example = "7050") + @Schema(description = "上游接口ID", example = "31755") private Long haokaSuperiorApiId; - @Schema(description = "产品", example = "26555") + @Schema(description = "产品ID", example = "320") private Long haokaProductId; @Schema(description = "是否已配置") @@ -27,9 +27,6 @@ public class SuperiorProductConfigPageReqVO extends PageParam { @Schema(description = "值") private String config; - @Schema(description = "是否必填") - private Boolean required; - @Schema(description = "说明") private String remarks; diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigRespVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigRespVO.java index 64b0c1b08b..50648768f1 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigRespVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigRespVO.java @@ -14,16 +14,16 @@ import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; @ExcelIgnoreUnannotated public class SuperiorProductConfigRespVO { - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21785") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28128") @ExcelProperty("ID") private Long id; - @Schema(description = "上游接口ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7050") + @Schema(description = "上游接口ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31755") @ExcelProperty("上游接口ID") private Long haokaSuperiorApiId; - @Schema(description = "产品", requiredMode = Schema.RequiredMode.REQUIRED, example = "26555") - @ExcelProperty("产品") + @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "320") + @ExcelProperty("产品ID") private Long haokaProductId; @Schema(description = "是否已配置", requiredMode = Schema.RequiredMode.REQUIRED) @@ -35,12 +35,7 @@ public class SuperiorProductConfigRespVO { @ExcelProperty("值") private String config; - @Schema(description = "是否必填") - @ExcelProperty(value = "是否必填", converter = DictConvert.class) - @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 - private Boolean required; - - @Schema(description = "说明", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "说明") @ExcelProperty("说明") private String remarks; diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigSaveReqVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigSaveReqVO.java index 4325b08f4a..ac830ac0f1 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigSaveReqVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigSaveReqVO.java @@ -9,26 +9,26 @@ import jakarta.validation.constraints.*; @Data public class SuperiorProductConfigSaveReqVO { - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21785") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28128") private Long id; - @Schema(description = "上游接口ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7050") + @Schema(description = "上游接口ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31755") @NotNull(message = "上游接口ID不能为空") private Long haokaSuperiorApiId; - @Schema(description = "产品", requiredMode = Schema.RequiredMode.REQUIRED, example = "26555") - @NotNull(message = "产品不能为空") + @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "320") + @NotNull(message = "产品ID不能为空") private Long haokaProductId; + @Schema(description = "是否已配置", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否已配置不能为空") + private Boolean isConfined; + @Schema(description = "值", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "值不能为空") private String config; - @Schema(description = "是否必填") - private Boolean required; - - @Schema(description = "说明", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "说明不能为空") + @Schema(description = "说明") private String remarks; } \ No newline at end of file diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/superiorapi/SuperiorApiDevConfigDO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/superiorapi/SuperiorApiDevConfigDO.java index 37badac33f..03e4f6bae6 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/superiorapi/SuperiorApiDevConfigDO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/superiorapi/SuperiorApiDevConfigDO.java @@ -43,20 +43,12 @@ public class SuperiorApiDevConfigDO extends BaseDO { * 值 */ private String value; - /** - * 是否必填 - * - * 枚举 {@link TODO infra_boolean_string 对应的类} - */ - private Boolean required; /** * 说明 */ private String remarks; /** * 输入类型 - * - * 枚举 {@link TODO haoka_superior_api_input_type 对应的类} */ private Integer inputType; /** diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/superiorproductconfig/SuperiorProductConfigDO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/superiorproductconfig/SuperiorProductConfigDO.java index 50669f5219..eeff6adf7a 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/superiorproductconfig/SuperiorProductConfigDO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/superiorproductconfig/SuperiorProductConfigDO.java @@ -32,7 +32,7 @@ public class SuperiorProductConfigDO extends BaseDO { */ private Long haokaSuperiorApiId; /** - * 产品 + * 产品ID */ private Long haokaProductId; /** @@ -45,12 +45,6 @@ public class SuperiorProductConfigDO extends BaseDO { * 值 */ private String config; - /** - * 是否必填 - * - * 枚举 {@link TODO infra_boolean_string 对应的类} - */ - private Boolean required; /** * 说明 */ diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/superiorapi/SuperiorApiDevConfigMapper.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/superiorapi/SuperiorApiDevConfigMapper.java index b2e7994dbc..cb2f8e8f3f 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/superiorapi/SuperiorApiDevConfigMapper.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/superiorapi/SuperiorApiDevConfigMapper.java @@ -21,9 +21,12 @@ public interface SuperiorApiDevConfigMapper extends BaseMapperX selectPage(SuperiorApiDevConfigPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(SuperiorApiDevConfigDO::getHaokaSuperiorApiId, reqVO.getHaokaSuperiorApiId()) - .likeIfPresent(SuperiorApiDevConfigDO::getCode, reqVO.getCode()) + .eqIfPresent(SuperiorApiDevConfigDO::getCode, reqVO.getCode()) .likeIfPresent(SuperiorApiDevConfigDO::getName, reqVO.getName()) .eqIfPresent(SuperiorApiDevConfigDO::getValue, reqVO.getValue()) + .eqIfPresent(SuperiorApiDevConfigDO::getRemarks, reqVO.getRemarks()) + .eqIfPresent(SuperiorApiDevConfigDO::getInputType, reqVO.getInputType()) + .eqIfPresent(SuperiorApiDevConfigDO::getInputSelectValues, reqVO.getInputSelectValues()) .betweenIfPresent(SuperiorApiDevConfigDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(SuperiorApiDevConfigDO::getId)); } diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/superiorproductconfig/SuperiorProductConfigMapper.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/superiorproductconfig/SuperiorProductConfigMapper.java index 7edc59f0ce..690e4e5923 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/superiorproductconfig/SuperiorProductConfigMapper.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/superiorproductconfig/SuperiorProductConfigMapper.java @@ -24,7 +24,6 @@ public interface SuperiorProductConfigMapper extends BaseMapperX getSuperiorProductConfigPage(PageParam pageReqVO, Long haokaSuperiorApiId); diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiDevConfigServiceImplTest.java b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiDevConfigServiceImplTest.java index 38ce8783ad..ce0ff8c911 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiDevConfigServiceImplTest.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiDevConfigServiceImplTest.java @@ -114,6 +114,9 @@ public class SuperiorApiDevConfigServiceImplTest extends BaseDbUnitTest { o.setCode(null); o.setName(null); o.setValue(null); + o.setRemarks(null); + o.setInputType(null); + o.setInputSelectValues(null); o.setCreateTime(null); }); superiorApiDevConfigMapper.insert(dbSuperiorApiDevConfig); @@ -125,6 +128,12 @@ public class SuperiorApiDevConfigServiceImplTest extends BaseDbUnitTest { superiorApiDevConfigMapper.insert(cloneIgnoreId(dbSuperiorApiDevConfig, o -> o.setName(null))); // 测试 value 不匹配 superiorApiDevConfigMapper.insert(cloneIgnoreId(dbSuperiorApiDevConfig, o -> o.setValue(null))); + // 测试 remarks 不匹配 + superiorApiDevConfigMapper.insert(cloneIgnoreId(dbSuperiorApiDevConfig, o -> o.setRemarks(null))); + // 测试 inputType 不匹配 + superiorApiDevConfigMapper.insert(cloneIgnoreId(dbSuperiorApiDevConfig, o -> o.setInputType(null))); + // 测试 inputSelectValues 不匹配 + superiorApiDevConfigMapper.insert(cloneIgnoreId(dbSuperiorApiDevConfig, o -> o.setInputSelectValues(null))); // 测试 createTime 不匹配 superiorApiDevConfigMapper.insert(cloneIgnoreId(dbSuperiorApiDevConfig, o -> o.setCreateTime(null))); // 准备参数 @@ -133,6 +142,9 @@ public class SuperiorApiDevConfigServiceImplTest extends BaseDbUnitTest { reqVO.setCode(null); reqVO.setName(null); reqVO.setValue(null); + reqVO.setRemarks(null); + reqVO.setInputType(null); + reqVO.setInputSelectValues(null); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); // 调用 diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/superiorproductconfig/SuperiorProductConfigServiceImplTest.java b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/superiorproductconfig/SuperiorProductConfigServiceImplTest.java index 2fab6ae02c..5a04b7c5c3 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/superiorproductconfig/SuperiorProductConfigServiceImplTest.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/superiorproductconfig/SuperiorProductConfigServiceImplTest.java @@ -114,7 +114,6 @@ public class SuperiorProductConfigServiceImplTest extends BaseDbUnitTest { o.setHaokaProductId(null); o.setIsConfined(null); o.setConfig(null); - o.setRequired(null); o.setRemarks(null); o.setCreateTime(null); }); @@ -127,8 +126,6 @@ public class SuperiorProductConfigServiceImplTest extends BaseDbUnitTest { superiorProductConfigMapper.insert(cloneIgnoreId(dbSuperiorProductConfig, o -> o.setIsConfined(null))); // 测试 config 不匹配 superiorProductConfigMapper.insert(cloneIgnoreId(dbSuperiorProductConfig, o -> o.setConfig(null))); - // 测试 required 不匹配 - superiorProductConfigMapper.insert(cloneIgnoreId(dbSuperiorProductConfig, o -> o.setRequired(null))); // 测试 remarks 不匹配 superiorProductConfigMapper.insert(cloneIgnoreId(dbSuperiorProductConfig, o -> o.setRemarks(null))); // 测试 createTime 不匹配 @@ -139,7 +136,6 @@ public class SuperiorProductConfigServiceImplTest extends BaseDbUnitTest { reqVO.setHaokaProductId(null); reqVO.setIsConfined(null); reqVO.setConfig(null); - reqVO.setRequired(null); reqVO.setRemarks(null); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 1a4af4cbdc..3ae960181d 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -15,6 +15,9 @@ spring: max-file-size: 16MB # 单个文件大小 max-request-size: 32MB # 设置总上传的文件大小 + flyway: + out-of-order: true + # Jackson 配置项 jackson: serialization: diff --git a/yudao-server/src/main/resources/db/migration/V3.0.10__create_superior_product_config.sql b/yudao-server/src/main/resources/db/migration/V3.0.10__create_superior_product_config.sql index 1e88e1a67d..3bfe04115f 100644 --- a/yudao-server/src/main/resources/db/migration/V3.0.10__create_superior_product_config.sql +++ b/yudao-server/src/main/resources/db/migration/V3.0.10__create_superior_product_config.sql @@ -2,13 +2,12 @@ DROP TABLE IF EXISTS `haoka_superior_product_config`; CREATE TABLE `haoka_superior_product_config` ( `id` bigint(20) NOT NULL PRIMARY KEY COMMENT 'ID', - `haoka_superior_api_id` bigint(20) NOT NULL COMMENT 'ID', - `haoka_product_id` bigint(20) NOT NULL COMMENT 'ID', + `haoka_superior_api_id` bigint(20) NOT NULL COMMENT '上游接口ID', + `haoka_product_id` bigint(20) NOT NULL COMMENT '产品ID', `is_confined` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已配置', `config` text NOT NULL COMMENT '值', - `required` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否必填', - `remarks` text NOT NULL COMMENT '说明', + `remarks` text COMMENT '说明', `dept_id` bigint(20) COMMENT '部门ID', `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', diff --git a/yudao-server/src/main/resources/db/migration/V3.0.8__create_superior_api_dev_config.sql b/yudao-server/src/main/resources/db/migration/V3.0.8__create_superior_api_dev_config.sql index 5a3a044ae9..5184ab6d9c 100644 --- a/yudao-server/src/main/resources/db/migration/V3.0.8__create_superior_api_dev_config.sql +++ b/yudao-server/src/main/resources/db/migration/V3.0.8__create_superior_api_dev_config.sql @@ -6,7 +6,6 @@ CREATE TABLE `haoka_superior_api_dev_config` `code` varchar(512) NOT NULL DEFAULT '' COMMENT '标识', `name` varchar(512) NOT NULL DEFAULT '' COMMENT '名字', `value` varchar(1024) NOT NULL DEFAULT '' COMMENT '值', - `required` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否必填', `remarks` text COMMENT '说明', `input_type` int(11) NOT NULL DEFAULT 1 COMMENT '输入类型', -- 枚举:haoka_superior_api_input_type:输入,单选,多选 `input_select_values` varchar(1024) NOT NULL DEFAULT '' COMMENT '选项(逗号,分割)',