From a9a2168a52fe1930c8148b49de0dc0a93370ddc7 Mon Sep 17 00:00:00 2001 From: 86191 <2160251938@qq.com> Date: Sat, 3 Aug 2024 20:51:28 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B8=A0=E9=81=93=E6=9E=9A=E4=B8=BE=E5=92=8C=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B8=A0=E9=81=93=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/common/core/enums/SysPayType.java | 52 +++++++++++++++++++ .../core/validation/IsSystemPayType.java | 24 +++++++++ .../validation/SystemPayTypeValidator.java | 15 ++++++ 3 files changed, 91 insertions(+) create mode 100644 src/main/java/com/muyu/common/core/enums/SysPayType.java create mode 100644 src/main/java/com/muyu/common/core/validation/IsSystemPayType.java create mode 100644 src/main/java/com/muyu/common/core/validation/SystemPayTypeValidator.java diff --git a/src/main/java/com/muyu/common/core/enums/SysPayType.java b/src/main/java/com/muyu/common/core/enums/SysPayType.java new file mode 100644 index 0000000..ccaa65b --- /dev/null +++ b/src/main/java/com/muyu/common/core/enums/SysPayType.java @@ -0,0 +1,52 @@ +package com.muyu.common.core.enums; + +import java.util.Arrays; + +/** + * 系统支付枚举 + */ +public enum SysPayType { + ALI_PAY("aliPay","支付宝"), + WECHAT_PAY("wechatPay","微信支付"), + JD_PAY("jdPay","京东支付"), + ; + + private final String code; + private final String info; + + + SysPayType (String code, String info) { + this.code = code; + this.info = info; + } + + public String getCode(){ + return code; + } + + public String getInfo(){ + return info; + } + + + /** + * 鉴别code是否合法 + * @param code 传code + * @return 如果存在code则返回true,不存在则返回false + */ + public static boolean isCode(String code) { + return Arrays.stream(values()) + .map(SysPayType::getCode) + .anyMatch(s -> s.equals(code)); + } + + + public static String getInfoByCode(String code){ + return Arrays.stream(values()) + .filter(s -> s.getCode().equals(code)) + .map(SysPayType::getInfo) + .findFirst() + .orElseGet(() -> "-"); + } + +} diff --git a/src/main/java/com/muyu/common/core/validation/IsSystemPayType.java b/src/main/java/com/muyu/common/core/validation/IsSystemPayType.java new file mode 100644 index 0000000..cfe73ea --- /dev/null +++ b/src/main/java/com/muyu/common/core/validation/IsSystemPayType.java @@ -0,0 +1,24 @@ +package com.muyu.common.core.validation; + +import jakarta.validation.Constraint; +import jakarta.validation.Payload; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * validation自定义支付渠道校验 + */ +@Target({ElementType.FIELD}) +@Retention(RUNTIME) +@Documented +@Constraint(validatedBy = {SystemPayTypeValidator.class}) +public @interface IsSystemPayType { + String message() default "[支付渠道] - 参数不合法"; + Class[] groups() default {}; + Class[] payload() default {}; +} diff --git a/src/main/java/com/muyu/common/core/validation/SystemPayTypeValidator.java b/src/main/java/com/muyu/common/core/validation/SystemPayTypeValidator.java new file mode 100644 index 0000000..c625271 --- /dev/null +++ b/src/main/java/com/muyu/common/core/validation/SystemPayTypeValidator.java @@ -0,0 +1,15 @@ +package com.muyu.common.core.validation; + +import com.muyu.common.core.enums.SysPayType; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; + +/** + * 是否支付渠道的校验器 + */ +public class SystemPayTypeValidator implements ConstraintValidator { + @Override + public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { + return SysPayType.isCode(value); + } +}