From c394b6fdbdf20f4d0bfd67eb7f65277f1c95821d Mon Sep 17 00:00:00 2001 From: Number7 <1845377266@qq.com> Date: Wed, 7 Aug 2024 10:18:08 +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 --- .idea/compiler.xml | 4 + .idea/encodings.xml | 2 + .idea/misc.xml | 6 + pom.xml | 1 - .../muyu/common/core/enums/SysPayType.java | 62 ++++++++ .../validation/custom/IsSystemPayType.java | 30 ++++ .../custom/SystemPayTypeValidator.java | 23 +++ .../core/domain/Result$ResultBuilder.class | Bin 2355 -> 2355 bytes .../com/muyu/common/core/domain/Result.class | Bin 6911 -> 7397 bytes .../muyu/common/core/enums/SysPayType.class | Bin 0 -> 3913 bytes .../validation/custom/IsSystemPayType.class | Bin 0 -> 876 bytes .../custom/SystemPayTypeValidator.class | Bin 0 -> 1142 bytes target/cloud-common-core-3.6.3.jar | Bin 145637 -> 149215 bytes target/maven-archiver/pom.properties | 2 +- .../compile/default-compile/createdFiles.lst | 3 + .../compile/default-compile/inputFiles.lst | 134 +++++++++--------- 16 files changed, 201 insertions(+), 66 deletions(-) create mode 100644 src/main/java/com/muyu/common/core/enums/SysPayType.java create mode 100644 src/main/java/com/muyu/common/core/validation/custom/IsSystemPayType.java create mode 100644 src/main/java/com/muyu/common/core/validation/custom/SystemPayTypeValidator.java create mode 100644 target/classes/com/muyu/common/core/enums/SysPayType.class create mode 100644 target/classes/com/muyu/common/core/validation/custom/IsSystemPayType.class create mode 100644 target/classes/com/muyu/common/core/validation/custom/SystemPayTypeValidator.class diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 08d283f..a043927 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -9,9 +9,13 @@ + + + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 63574ec..a154e1c 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -3,6 +3,8 @@ + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 681b54b..604d447 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,8 +5,14 @@ + diff --git a/pom.xml b/pom.xml index dc483c3..15bb0fc 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,6 @@ 4.0.0 cloud-common-core - 3.6.3 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..81272f4 --- /dev/null +++ b/src/main/java/com/muyu/common/core/enums/SysPayType.java @@ -0,0 +1,62 @@ +package com.muyu.common.core.enums; + +import java.util.Arrays; + +/** + * @Author:liuxinyue + * @Package:com.muyu.common.core.enums + * @Project:cloud-common-core + * @name:SysPayType + * @Date:2024/8/6 21:07 + */ +public enum SysPayType { + + ALIPAY("aliPay","支付宝"), + WEI_PAY("weichatPay","微信支付"), + 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(c -> c.equals(code)); + } + + + /** + * 通过code获取支付渠道 + * @param code code编码 + * @return 支付渠道 + */ + public static String getInfoByCode(String code) { + + return Arrays.stream(values()) + .filter(s->s.getCode().equals(code)) + .findFirst() + .map(SysPayType::getInfo) + .orElseGet(() -> "-"); + + } + +} diff --git a/src/main/java/com/muyu/common/core/validation/custom/IsSystemPayType.java b/src/main/java/com/muyu/common/core/validation/custom/IsSystemPayType.java new file mode 100644 index 0000000..f7ddc73 --- /dev/null +++ b/src/main/java/com/muyu/common/core/validation/custom/IsSystemPayType.java @@ -0,0 +1,30 @@ +package com.muyu.common.core.validation.custom; + +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; + +/** + * @Author:liuxinyue + * @Package:com.muyu.common.core.validation.custom + * @Project:cloud-common-core + * @name:IsSystemPayType validation自定义支付渠道校验 + * @Date:2024/8/6 21:21 + */ +@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/custom/SystemPayTypeValidator.java b/src/main/java/com/muyu/common/core/validation/custom/SystemPayTypeValidator.java new file mode 100644 index 0000000..29c55b9 --- /dev/null +++ b/src/main/java/com/muyu/common/core/validation/custom/SystemPayTypeValidator.java @@ -0,0 +1,23 @@ +package com.muyu.common.core.validation.custom; + + + +import com.muyu.common.core.enums.SysPayType; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; + +/** + * @Author:liuxinyue + * @Package:com.muyu.common.core.validation.custom + * @Project:cloud-common-core + * @name:SystemPayTypeValidator + * @Date:2024/8/6 23:12 + */ +public class SystemPayTypeValidator implements ConstraintValidator { + + + @Override + public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) { + return SysPayType.isCode(s); + } +} diff --git a/target/classes/com/muyu/common/core/domain/Result$ResultBuilder.class b/target/classes/com/muyu/common/core/domain/Result$ResultBuilder.class index a883239c39f187b27d09127ef0ab5a4ba803385b..4843b190a08e36b925e49d06f0e67c68346f3227 100644 GIT binary patch delta 43 qcmdliv{`7w4mL)S$vfEsfFu`tE|9DMlh4>&fb49JWFUE-BLx5=VhrQ} delta 43 qcmdliv{`7w4mL)i$vfEsfFu`tE|9DMlh4>&fb49JWFUE-BLx5A6Ngci&)oL{Frmn+-FYv;@MjdpbM2V=)2IQ_lV65zInFpgd!kmP>SZL+^Hdryfn} zsiEkGZQG5w)zagcidmUNYN%yt?>9?qkxE_@!EC9awx*+}S4y1|K^3a0&9-bJIcQ`A zRyGvFZHdzGF14$r9JQDm#Zk4-k zj^GyD%J|tS=QlhkFt=f=zX%PtMeqaski9>9B4NOPH!ylJ1RQEAA7xc0}J{bf!~r-P)3{xU6cC?R}rZ;L+NVFoPkh z%J4JXAI1Z+gfV??^3C8}>GQ~~_Q>c-S;ml&VLZh#7={tSgVGXDJUJA!E|IeASdxN= zWm(e0*iNWz7!&De%*Z74Wa43cTaxjnZRyy&UZBDiY;O$$fqRL(X_F2Z88eYi-P6;> zlDaNL(Bz*GsN0-PS&0#2AYmrRtRt05vucx+s5SRel(|bEqT11&w?@;t8P)Ry(Gg=X zp+{r!VPiyRd`1S12X&TjHw$iAv4Xl;yGN;FIA`0eLBot^5~EUvz{bfJKe%||;H6Jq zn0V#2saM7)&b~19%-H0fy;Dc_Hc#vuyLjQ{ORv8(_2$`2C(cZsdTjF5rzg%oHZeZl zeCfp7laKG??4@ISCr|9ZIR5VB^KVV;KPoWKVdk=#I`qWk{{5FeIY|vC4?cJC!mE={ z9hi9LFhfuUD+@&|F_hw2m66HY-!E-ZOeSAEIr-dsRNr*#h^BILc5fnOtj~^YGcx_k z2_3Edt3BR!BC5Tps?|!F?UZ`EU)B{FYQ-E4t_kaWOz^;R1!n^B7?@e7tK;cv88R}NG|%$_z^_cV*bKUT zJH=Kt_!O#Q@F!aRGiY>`99^umU3!L@x@89LjE`?AAe=C}l{ z*oww?^y#Bc{Lchc5t0>4?@8e{3IZEuz^E8i3tJ#pam^Y|FgZgFOYO20Hr?hxV=p+s z62=Mp6fQWh-AE>Z+@a3Y0t)xQlPnr!igO^+6qL4xWusdvgJ|mkZY7RF0^rTPhU61vX!@ceNC|rEm53Gt+ZQ~8~l>NlV2Vq>ikF@yGmQ*NvCsa z_jl0cJk`v!la|_-$I{tM+*p&4=k6@k=P#G1G9QS(;k2~$Av4;q50Q(OV%Zg#J+bfj z#J*GNsF~PvUSRpu`{$<49iBGd%&Cjxdz>Tb$oYx$`zM~v) zhfpzHtEUE&hPk9So!*fhZSi2|gq>%mU}HbeA0P7jJoK(dJyQ;gPCc27B`l+*6rTxP zr;z6}=%CRin(G;;@**RsO|bKi^rTWorZcIVra@dP3LeP9_=ms^m%-p?T^L^oEc$v< zhO&YJi`mQeK_J04u}(hivc;;C&y@Cc2d@H2jsqCMe58=h-H&pPtvv5DT(9NTL=cvV zEOwgMg@;V+CJB4|X(U{DSknDM(*2So?DP5kD_hDVHn&+eHz9dEibW{H9^62Zy(C#o zA@Z+GoJLTLqwFMa1Rmpe39rD-4yVWMZBLL~ZtLb%u9h`=wgo-gZo@tiJQDzMse) z@NwcCJ^}eebD*sB)q4wT0xPAJ0QR6855*6gz zEPl&f9lT1cLX97w^*9IK*lh5q7{bfb(2+9|9U)&j`LJux2ZK7Xnu=t{7fy~%UhO)j zvs+#iJLRQA)bAC%>agwQRf1L0xZp#yo|Sn+s= zJY*$UjPh{le{oG1TI5Ul>p>s?OU0L%r-o%Y_}(CVntXq&V6(GC#$8C_H9gt9Vdo~B zEIUW3lya78+T65r!tSUY5q$AVBAL+tp)C0hv8%GBRcl*V*)lAh@Iaf5zPu&&rIk&` z5MDNhd+hm5t2Mb$r#UO7(j#12=#TVD#os|X$P)4=yFCu!4!p}z05w>FKU3`>mf>0) z=ScHZ)h-8BiRC(IU&-E_SPDV-_}cR;Zp+^Xo&m|jH`>1brdsI<6 z>>&cC@mkYJc6LE(Y-Yh|T;`L|b8YU8ir!I{J99^84eD7xWQf(+2W!w1%r%ZFYV8q9 zml4F{R2D8-SMtezf?hnCvo~rZ$>a1iemaJ2?<05`L-wFTTCbi-%5A9&c^K9+g;dQr zh0|OQ;C=g9M^?uVc=w@+G5NrA2IE}SI9rR4IFe6TXZiUQf8|{jDQmg% F_kTS7afko_ literal 6911 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/muyu/common/core/validation/custom/IsSystemPayType.class b/target/classes/com/muyu/common/core/validation/custom/IsSystemPayType.class new file mode 100644 index 0000000000000000000000000000000000000000..5ae68d197943d22514230a53f40b5f9cbf715776 GIT binary patch literal 876 zcma))OKTKC5XY-Gk1>glM58fk+|@%!3_1tF%lbgG8(3I1?5?>i9y+t-&~c`F=|^CW zdh#L)8t~{hQ1B8I`~ZHAWWg^XR%gXs&43=7?yCCLzq_jI+mFv*0pJ!C11K=K5vepx zUFJeMq)O7JG2G^f=x{5%?TjU)W}2C?n6C4zm31+IQ3lgne4B>}mvQ)Ta|&q&c0TUyzTAKPqW5Ws!Fa5d>zV`E_K@ys!i^!>iKd7pw@%Z|b4$yIkegR- z6BTrMmMGp~a6OM%A>pT7TRz+*>WWV(`~1nKayr5_k@y1t>f1G6Era=nlUAg-A&l5e za8NEieqre4Lk(p#iEYqe^o! literal 0 HcmV?d00001 diff --git a/target/classes/com/muyu/common/core/validation/custom/SystemPayTypeValidator.class b/target/classes/com/muyu/common/core/validation/custom/SystemPayTypeValidator.class new file mode 100644 index 0000000000000000000000000000000000000000..e1008e6490dc2e3b9d3dd9a5ef25a3aa9af775bb GIT binary patch literal 1142 zcmbtTO>fgc5Pj<;H8FvPK>28)v_Pw-Mfk!kZ4nAWLJCkRRSvyvl2y7Tw$XZBkw3t% z;lc$F2gI2lg?NtLl0cCfaq!O0?!NbC#xp;De*Feu2kRaj6kHT5C}B>ZdL)mfKa}CX zf89M&Ju5J`twU{h1qvJWj)w~E~kFADr186`e9K@`#$<*P6WV!u6#_vC1Q z^j48W$IYnE&B8|Ow?f+*9S$1x0~eR4q_YbTRa|jVtKcfG3GAGybu5RvFRf0slh`sG z>RJ`#(w*!&G6JrS$DY8mGlF1PZ=|u(pCD{TVQh`mp*^MHkyY>PIOgjD>*qrW6tnc_ zTRK#)lAx>1zU&TJkXkG1$zewto%;D<(H`np;7RMhQf>$cvef>rxWHoXpScP6GZusY z?xnJaQGZVw87Qj^Wv7aq^-^O--ui(+xvdAGw25J@-cMvQ8{_tQEBPXxYM(UXlX=Ly zb(dxJ+EHS9>bXw;;L;T0v{N3XNUXAl9kA~?Z3S8m8P^;1d|E+U+WZXhksAj$xu(}3 z=oZ&X_5h1mq9@WZ;Hwneq*tIVZGD0JftyM2!Wg`gJ;=d)ircu86E5Q}5i7)%9UcSA vlzdA5)tvt^!70DDx%C~F9)807pCXeHdb!96VU>jZ9NZ&?gZp?ewrjrt;CC@* literal 0 HcmV?d00001 diff --git a/target/cloud-common-core-3.6.3.jar b/target/cloud-common-core-3.6.3.jar index 8bd643dd902d3d7fd00ef4ff4a316a70b6e0325d..c122c828a7a1017447280f8e3be10b5b53b886ed 100644 GIT binary patch delta 12910 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 C&8j;9 delta 9597 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