From f5934210fa7e1b10897f17926132a55cbd3704c1 Mon Sep 17 00:00:00 2001 From: laker <935009066@qq.com> Date: Fri, 25 Nov 2022 23:23:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E7=B1=BB=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=92=8C=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laker/admin/framework/ext/mvc/IEnum.java | 10 ++++++++ .../admin/framework/ext/mvc/IEnumConvert.java | 12 ---------- .../ext/mvc/StringToEnumConvertFactory.java | 8 +++---- .../laker/admin/module/enums/DemoEnum.java | 24 ------------------- .../laker/admin/module/enums/Distance.java | 8 ++++--- .../module/ext/controller/DemoController.java | 18 +++++++------- .../laker/admin/module/ext/vo/qo/City.java | 12 ++++++++++ .../laker/admin/module/ext/vo/qo/DemoQo.java | 2 -- 8 files changed, 40 insertions(+), 54 deletions(-) create mode 100644 src/main/java/com/laker/admin/framework/ext/mvc/IEnum.java delete mode 100644 src/main/java/com/laker/admin/framework/ext/mvc/IEnumConvert.java delete mode 100644 src/main/java/com/laker/admin/module/enums/DemoEnum.java create mode 100644 src/main/java/com/laker/admin/module/ext/vo/qo/City.java diff --git a/src/main/java/com/laker/admin/framework/ext/mvc/IEnum.java b/src/main/java/com/laker/admin/framework/ext/mvc/IEnum.java new file mode 100644 index 0000000..790d5d8 --- /dev/null +++ b/src/main/java/com/laker/admin/framework/ext/mvc/IEnum.java @@ -0,0 +1,10 @@ +package com.laker.admin.framework.ext.mvc; + +import java.io.Serializable; + +/** + * @author laker + */ +public interface IEnum { + T getValue(); +} diff --git a/src/main/java/com/laker/admin/framework/ext/mvc/IEnumConvert.java b/src/main/java/com/laker/admin/framework/ext/mvc/IEnumConvert.java deleted file mode 100644 index 87e64e3..0000000 --- a/src/main/java/com/laker/admin/framework/ext/mvc/IEnumConvert.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.laker.admin.framework.ext.mvc; - -/** - * @author: laker - * @date: 2022/11/25 - **/ -public interface IEnumConvert { - - String getValue(); - - -} diff --git a/src/main/java/com/laker/admin/framework/ext/mvc/StringToEnumConvertFactory.java b/src/main/java/com/laker/admin/framework/ext/mvc/StringToEnumConvertFactory.java index 714a5a6..c9824f4 100644 --- a/src/main/java/com/laker/admin/framework/ext/mvc/StringToEnumConvertFactory.java +++ b/src/main/java/com/laker/admin/framework/ext/mvc/StringToEnumConvertFactory.java @@ -15,18 +15,18 @@ public class StringToEnumConvertFactory implements ConditionalGenericConverter { @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { - return IEnumConvert.class.isAssignableFrom(targetType.getObjectType()) && sourceType.getObjectType() == String.class; + return IEnum.class.isAssignableFrom(targetType.getObjectType()) && sourceType.getObjectType() == String.class; } @Override public Set getConvertibleTypes() { - return null;// NOSONAR + return null; } @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { - IEnumConvert[] enums = (IEnumConvert[]) targetType.getObjectType().getEnumConstants(); - for (IEnumConvert anEnum : enums) { + IEnum[] enums = (IEnum[]) targetType.getObjectType().getEnumConstants(); + for (IEnum anEnum : enums) { if (Objects.equals(anEnum.getValue(), source)) { return anEnum; } diff --git a/src/main/java/com/laker/admin/module/enums/DemoEnum.java b/src/main/java/com/laker/admin/module/enums/DemoEnum.java deleted file mode 100644 index fb5c771..0000000 --- a/src/main/java/com/laker/admin/module/enums/DemoEnum.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.laker.admin.module.enums; - -import com.fasterxml.jackson.annotation.JsonValue; -import com.laker.admin.framework.ext.mvc.IEnumConvert; -import lombok.Getter; - -@Getter -public enum DemoEnum implements IEnumConvert { - START(1, "start"), STOP(0, "stop"); - - DemoEnum(int code, String descp) { - this.code = code; - this.descp = descp; - } - - private final int code; - private final String descp; - - @Override - @JsonValue - public String getValue() { - return descp; - } -} diff --git a/src/main/java/com/laker/admin/module/enums/Distance.java b/src/main/java/com/laker/admin/module/enums/Distance.java index 7ee238a..844af31 100644 --- a/src/main/java/com/laker/admin/module/enums/Distance.java +++ b/src/main/java/com/laker/admin/module/enums/Distance.java @@ -1,12 +1,13 @@ package com.laker.admin.module.enums; -import com.laker.admin.framework.ext.mvc.IEnumConvert; +import com.fasterxml.jackson.annotation.JsonValue; +import com.laker.admin.framework.ext.mvc.IEnum; -public enum Distance implements IEnumConvert { + +public enum Distance implements IEnum { KILOMETER("km", 1000), MILE("miles", 1609.34), METER("meters", 1); - private String unit; private final double meters; @@ -16,6 +17,7 @@ public enum Distance implements IEnumConvert { } @Override + @JsonValue public String getValue() { return unit; } diff --git a/src/main/java/com/laker/admin/module/ext/controller/DemoController.java b/src/main/java/com/laker/admin/module/ext/controller/DemoController.java index d86ec01..5669c24 100644 --- a/src/main/java/com/laker/admin/module/ext/controller/DemoController.java +++ b/src/main/java/com/laker/admin/module/ext/controller/DemoController.java @@ -1,9 +1,9 @@ package com.laker.admin.module.ext.controller; import com.github.xiaoymin.knife4j.annotations.ApiSupport; -import com.laker.admin.module.enums.DemoEnum; import com.laker.admin.module.enums.DemoTypeEnum; -import com.laker.admin.module.ext.vo.qo.DemoQo; +import com.laker.admin.module.enums.Distance; +import com.laker.admin.module.ext.vo.qo.City; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -36,21 +36,21 @@ public class DemoController { @GetMapping("/1") @ApiOperation(value = "枚举 - querystring") - public void pageAll2(DemoEnum type) { - log.info(type.toString()); + public void pageAll2(Distance distance) { + log.info(distance.toString()); } @GetMapping("/2") @ApiOperation(value = "实体 - querystring") - public void pageAll3(DemoQo type) { - log.info(type.toString()); + public void pageAll3(City city) { + log.info(city.toString()); } @PostMapping("/3") @ApiOperation(value = "实体 - json") - public DemoQo pageAll4(@RequestBody DemoQo type) { - log.info(type.toString()); - return type; + public City pageAll4(@RequestBody City city) { + log.info(city.toString()); + return city; } } \ No newline at end of file diff --git a/src/main/java/com/laker/admin/module/ext/vo/qo/City.java b/src/main/java/com/laker/admin/module/ext/vo/qo/City.java new file mode 100644 index 0000000..a1235fb --- /dev/null +++ b/src/main/java/com/laker/admin/module/ext/vo/qo/City.java @@ -0,0 +1,12 @@ +package com.laker.admin.module.ext.vo.qo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.laker.admin.module.enums.Distance; +import lombok.Data; + +@Data +public class City { + private String id; + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + private Distance distance; +} diff --git a/src/main/java/com/laker/admin/module/ext/vo/qo/DemoQo.java b/src/main/java/com/laker/admin/module/ext/vo/qo/DemoQo.java index 62be0e2..a1f89aa 100644 --- a/src/main/java/com/laker/admin/module/ext/vo/qo/DemoQo.java +++ b/src/main/java/com/laker/admin/module/ext/vo/qo/DemoQo.java @@ -1,12 +1,10 @@ package com.laker.admin.module.ext.vo.qo; -import com.laker.admin.module.enums.DemoEnum; import com.laker.admin.module.enums.Distance; import lombok.Data; @Data public class DemoQo { - private DemoEnum demo; private Distance distance; private String city; private Integer value; -- GitLab