rnlZOOXBg$q`Ym
zyYP<+*%p7#`7M{O*i3Cm7A#Q@)!)AaH7J*`#ul+mw#Zu*u}Y4JC9*{>_*z
z^#N<@W)UR5;?e_pDj!_p6oG7uJS>SV_S7o8D$80cd1XbVR&iOkflYPB!Ee7)
z5}ai&;=zpnhQP5qSQ}VZLMN-BaSL=gbbATw0~;K=rG#K$qeFKHooDiUQl0vCcWleX_boX?hK0E&FpI?3hFpF9YN05yo
zf*Z2jlx0Jf&rRHlQQns2jx1lu@}>BHCEC}bePiNo4EvF_;E3F`kQ14=;EKFwVM}De
zLQ&+liTfr>8mvo>=PbESMT4EGRNUHf$*I@fx`uGMzNI0ty6t@Hq)Sd^E1mUf#md&a
z2D9GC<=i@*v^yH~Ts7}f%}~uVn}*Y?xoSCGc1oqR)9?!Ee6{QpE9p#r*{S813vTZI
zYVn@CQ5|bt&YY3+#Y)k;z(u}zZ^eo?g9tJqS%hOa(=JO--4QpFdwyMdD%0BV3!Cj1ke7py1QGW^!zuB)
zJ(XSE+;(%`yg;E<_YxyG(qL4*f?Ff2WFBLRKvA_7=xW>NNX*~&je)G^eSu4JY~=s*O+Zk&QG?**J|eHl{IS@t}{q@r(12J}XcHBx{!*nl>cF{KIiJ#X9x%t}T%i
zis}f-9I1t5luB}%N^+o-1K?C~l52`qno^@QCZ0ljtlY-AM$~2$6Vz?r0h5@bMI120
zb#L&`2>sL%JlHds4CxUZe$){>)H9gO>JhAW1`qcPCJ%cA8=Ykz?iu_Z-Y1~a^BiS}
zGBPpw1ffpEVk&yb_XrRZG-V_jK46@o(TLOd5a+s59({svzbR$9?UbV``8y(O
zQxi>?%A{gV@%MwA(TLKBwv5<1t=ODC{U`P%^=CM^3wt`LH?gl3YtI>UvF9R5Lwq97
zkl4jQ(nv;HPKrWdykx#V$18qy?KwWgA}+F>LB2~%{2D@h;VxmBdtpk^FY*I)IG7b`
z2DWe%m#IbYF}pmDeWvv{_M5n3+s`p%BEvsRdyd1t8f^o$NT76iQUmPI@lqk3AqaKS
z{Z-Bx?OF|1D76NhTT;;T8RiygtPL`s!Hl=!^XK)2k@$Q;K>iL^{OT@@xO2C)7rnc{
zli0er5MnDnxeIf;i2=25&*^fI)PoaCfalSO6xj{vtbb=vWEeNGswih5i#2NUiJiha
z3lH-*jH_IA1)ht@3*sIocp6_U?FIV?jF4DwLRUvbQk{lhv6aIhjFv;oN8h_eHzwsj
z4j&?HvmALE7k|b6+fQ*I5pUw4U_p^c_`21^8;L`{9&KVUG34uZ6T^wa)SF0lzA*m0
b{8x1`fFgv?cvA@1*$5Ehy+_HK5k&t59LW2X
literal 0
HcmV?d00001
diff --git a/mall_auth/target/classes/com/mall/auth/domain/IdCardPeopleVO$CardRegionDTO.class b/mall_auth/target/classes/com/mall/auth/domain/IdCardPeopleVO$CardRegionDTO.class
new file mode 100644
index 0000000000000000000000000000000000000000..9077260ecc7f118b47683070d477de7dbb759842
GIT binary patch
literal 2202
zcmb7FT~ixX7=BK&n{2|;rhG@yR*M=4XOy)ZfNX%G{<=+vA=f*b$lzF$to6AdF(L)=E_({41!d4O#gF%!Q6OPM&$Jtt(t+=P_B!StS3`3{kmIQ
zH9VtXk|4s7F7!;8-?j{!=fShSE8Dwf)t?^!g6z1m>eFsSSESGN>!!yDvidRhEEy=I
z6skyTq@vWj?z15kV=v&0GZM5~s~XON1R$W*jb=ThojoWs{_0w}vOoZo6Q0>@*}gzb
zhL4Rgpys>lzGpc*0s|f7gj!OUUUyqw)x2-X#`Smdd_xwbBa4@G^kYEB2nLc^7q}&-
z=zldy$2*wN@j9;S7?;wRl-|XA0>h`Yg{bbfEW0L2yLt{zN85AzvpP2LP%d&9C$AmM
zl812}v*3tkPNRm+5V-yVsL7(Sw`V#vfx_8dM|_=~uMV(evcvv(HqOjMr#)Wdd++17
zA;uq)3l0}gJ=}-*H{7H$CJDcIF@hA8>-5N%{7
zA#N#!RJ}#5%6UcRB5MMUA$}w^=#|X>k5EGkZ@Ne!(?)Ch{_fVCi{O?e{
zgBm}|{|2QpInjn194RE0C%KfA!XN0#Do=6c5PBi2w2?fv&`K&zv{E9gN}I$}^c|u%
zt7a3&M#>R$#c|r*38!N-8R>
zaoGGjnb*28T0XL6;-;%obny#enEQcF?#y+HhN{jZCvWR9Lk!MGnCu7
ga{j@EgAhLTTvS&K9|leMh%E&x;)jxBa22Wl0P`1zM*si-
literal 0
HcmV?d00001
diff --git a/mall_auth/target/classes/com/mall/auth/domain/IdCardPeopleVO$FaceRectDTO$CenterDTO.class b/mall_auth/target/classes/com/mall/auth/domain/IdCardPeopleVO$FaceRectDTO$CenterDTO.class
new file mode 100644
index 0000000000000000000000000000000000000000..5020b0d4bbb4d20a406e435d3bb7b356e37e74c6
GIT binary patch
literal 2297
zcmbVNT~ixX7=BK&n`|JoDc@1FRiX`_TeVe5pjuK8kN^Ur^vWe!$>L@gH=7Rp6@P%-
zaG^6wXLQEVn>yof@Mm~wt?|DC-_j%vl{o|jXegSY7k2=teQVI$l
z%4IHz`3~+M$z?&_ElO!gN*^b&+<^|1G?eAOB9~PSYZ^Y0;(8Jr0^&fRXL-+fZ0NS(
z?COh-Z|<62Q6RhCbbPCBZdna$$2K20j_Vt~WJ^FPxmDg=U$z``rCHxGy-kA&
z1-h5rieYaVo+ZzbQt@k6BZ*H1I_Hgwxo%echnuSc=|#sey^?J-8YU5@N+v7uf~#VH
zwr<$AZZ!RxUUln+<>-smlHpa?On2Wlw^nm4(Q;?bM6T?b{^tUH`H{9X$?I)eH3F;t
zd>bQKWTtHTHMhEEct+hMFhZ0r^h}svHw~NTzEiRX)
zV+2V_j*UzP3MqvuaviBCb#3_UQrXxKh~(e|{nsjnGbaHEXf>lz3wy!FEHeJu`eJ#G
z04OIsv(dDDftU;*%Q2wlyBoe|IlBVA7sv^RU+c?KBJ1?|#zKuNM
zLFPhGI&qGU{fO9Q+@-*~pEk0R5Vw>{lq|@zE2g!I45@Wt>YvnfM)@S>-8i93efC
zRZfsRwa^MGO|(KHt4f>1Q*4gZmkWSI%_C)CGzx+3>IRhdUC@p
zxiV>UKT0fJKQZskwXjy{cC5&t;+5BJ->yk=NU$dT;v-V>i-ujLuIIG>+V(E5~>k(9ltRtx$Ws%!He99onM3c-3AESjiQ8FC>~B7B-4mvfVia
zi6|>}y%N=mg|M>JnNYb}$l@gnUFf#Zk8Xh*stNx`Q7zoSn1vy{VPRBBZz}11ObYa!kQxEI
z({QR~Md`>HM5mf%B5sykMEJCYE!OW>f
zzU{p|>6Qh?Pxnbo=;=mnN`+K6*&p@QseU?ZKllRB@ETvAPQFwL{;@`2`*PLBxtITa
zbt)68Zs#}pk*1Qx<@hpv@|*={edIC358;sm98;n4E?%K*MFw~kgIoz!OODOXKO*t{
z8RxZ@&Mbcm=j2)Edo7*cLJr9=av@BeI7dc*LgFm$<&-8f_h)ps07iWWWWpv~_=-R>PZ_vJlo;(=+723+!$RYG_
zNg=g5#-X5%|Bkk-_7s=)VU1_CLl{REW(y_u^-lde{rxUn>v|;{@
z3kI$~L$87N_%p>b^haV^AZBNr>}cwJh{>2_NL4ajv7nG9&LNFzsvjfOiBBPoPt5Z~
zp)KSu5>9{9Pn;OajJ#%K!
zTCs}$m9-@SW8QHrZ?K^h(|F?W(nI*X)gob;)sD-}G(QsR`s3if%P`ckZ!)hhBWft$(TqkGl
z3gxcxyzIH#mgj#pz%*qf*sqF|Mq4szBK``N
znsDj0-LMCSyF@K9>|M0{vRhgYK>H8hW|$<(!NGxVJ=hqH`Pc*8cJAS
z*UbvU>u*hEX=978s4#L%K)AB-&1Vs@*vGD4wmgB9Y=BJkfO>+<-BZA7^tlo88pmY7
ztOW&0g{<&!VAba%S~RzV4&!hL-nL#eovSid_D$KWmBS`w$Idg9<(2uxtBjR&!n11i
zicg{ug_dc!R5PIm-FH`g&vrHijb0F-qMGbs}yn!){8<>>T8RQJSi?aqk2J<=Agg%V!a^0?!B=CbBVYN(%
z;h-GT1}dn^#bNu6oep7`X7`MpmOzjaBLpb;ve}muC
zHD1PK{r55k$zV_HWef%C>>je-p|Koy!Cf7F3h@((7>2nfg3AjSA#H>L7)6#RA)AG3
zyYkP7{n(*A)m54O)kQhpsXWtFnSI$sS?N^1*j4!)-XoAQ>^zf>B&HQ
zAe4xbmVkr>n4q32c<9|*3xW6XK{p@qm-P|WGV(FF*T*2!KaUIDd?+vLBW#Pv$IxCM
zL-fH>!2F4oxWGNhoF8RJe}Jky$^HrTd#Ldz**~Bzj*adh5gbWq*T=ZzmGQsOlUAPL
z@M9R`X=Mj`Ln4`1DU!@5(yEk6JVW1O97wC_M2k==uTdzK*VCF5(jy@)tv7^}Ck!aw
z(x+j`Zij*Hmh2G=rsRT#XATE>A
z;Nc`@N$I#kpII21{tpgnxcVFe8s_-X#d91F$z&_Zznej)6o|0&5&=qRMbKKRL{cWw
z`rul7Pu)#KW%x3Y$l^3D3OSy+$`YNSi3APZ=q*es(?KCl^%lx3gWj8c3~hV|J$L1O
zGOtKRT8TKiEKbNu<<)@2x&%skS`ApIxzIVLaqp*92>GD`bZB$j9qYf5(BQkY@#
zHz&jncNnT1e-ppKxcL+Z`VQ{kkc4mty?uv6Iw|SCkWNYZ2Y~I^k70}C$V|w$p(QKMDx*fo5
z7`9zBT7JD)a~p=`6w9@F!>g^C?w)OKt&VkxM8L|9>3=3Lm>ciPj=X+At7c#|lh>;cnjZh0Ou3SQ)6PU!q|){4rpE}9
zi81ys87QO_sz`C9qSU+LvpE%GFW`^!60}{b8qR_QAfVNaW<6{H`%z~6we@mkfdD8c
zJhR!deSw$^9~)yp&389^&vJGI20F+IwWKb+;kLZ0xoF8I_II*b!_4j
zxyT`%ym~N8PR4c2f}@)`jU6^d;M#LkKt_$dJ=3WP6wdZN;_mFMbwDPo9rnj_a%Mg{
z?eQw#1ATmF#P}i6;Gpr;!+nUq;U<+aN&dx)5u~VOhq%5-pCWg`U7dIY@naBjlxreT
zeu0-L>!AT&W?E2YH@J2>|Ag2N=bX2@IJTBP^ezOl*?Dzqu#5*YgwK
zLsgFQzeD*BYWyhw8p>wq>xyd?raHkI1;ql(J>2
zWI-a0T|gT4R6Rke5}!mGMJzC)knabslHR`vU`xS@_@d+(yn@t!M(mM5
literal 0
HcmV?d00001
diff --git a/mall_auth/target/classes/com/mall/auth/domain/IdCardPeopleVO$IdCardPeopleVOBuilder.class b/mall_auth/target/classes/com/mall/auth/domain/IdCardPeopleVO$IdCardPeopleVOBuilder.class
new file mode 100644
index 0000000000000000000000000000000000000000..83cc50f1f52ea024355bc2f14865651bc8a12ec8
GIT binary patch
literal 5311
zcmbtYSyLNF5bhO7S{;Bae8f5Nkr*&W7&~!n*(L^a2!kQukT@4vq(v-9E4;fRCU>06
zx$iqaBB^rhs<z_aVB%$hZjTc&F=y~DkCWqMDh_htG(rt30&DAPwWeJs-_GJPu3XEJ>*(-$&*$-ZAj>FX$c
zBT;No$*Z}tQdA{MPb@2IN~Waf#muZ_XnHXVhXp0S;y6T=Lcvf?Q=%|@N?6ifwnx4rOILx$KSuLq^QwKN2%${Y`
zd_`Z>ia4P}G9Q0N&0A6WPNKw!(-ZJV1I4dfg4n5AygAjdw7hCY>3d|U=2ROM@h@!Y
zJU*essUn&=qO3H0lEF%)q$)Z#)~qXKOeTD4mwVW?NCs%hm47%|nW
z5=G5w9(za5Bd0Z8v(93ovuh4fhAIU_X`9e=^*XA!WSk+1e6}is_%CGNY9B8Vu?&>+WwQE}uQlI5R5OWy;wy2nJy;?41mhn!^ik?wir_4C|(?(?#cVQh{4zDStDv~u_
zzxCRy+1}nKosb)^YkTo_Z~mU^tF>=>tr2KzuW)<2OE9m@8xFC=?e{!y@`Khp1Kokz
zE5bv}Zf`GwK(Uv+CDHY*C8xHTI(ER5-rly-i=Z;Gt@$;FiW)9njT^Ry6V=T5MZr69
zheqZ#@JM)pU%5nwIs=8rAXY-0+bns{z0NW
zjoWs~uAwaTZr;A**2y1D)Y>yi`jLJ@3GC@`>+cy9)SeEf1fwIP!&O-L{w(^U?qaH?
zr-Pq}U3$?+7`N!5o9O9aB(8htwQuxlHxQ$-o({XBz>fBGaQT4M%9dL}Fc85&wG0Cg
zZXL15QA%K7%T6^xN9syak?_mlWPqF=^vw}!>_(EO7M8`sI~pY1re6Z!?;vYxPg4}^
z6L+(smP%eJovUYjr&xKf`2UX7>coFJZ7{!&$K7n4DbWt$8?r_lJ}4XCWot+DuBw6Y
zZ;yzwx~l5nlp{XL^b&^iq`)kj{Oub9a&6pf&7bz+2lrw8mQPWLsRUMt*+gg%iqPN`
zp+PG`gIP$TM}>V7{va7)gJ*;W)wuJ6mvX!qgYDb)QdOz-mD
zwu`eI&LSTYU4nO*qookD*FR=c;Fz3SH)gMhnL*4Z?>?IY$K>zi#>^n*Q`m9>Lvv_P
zn<968^o$=!I4}rb0vDvu3(|+#e*cq10)y}kb3yvOApMvXi2mdv{tk>v=rKoTh#7fqHMkzb1NKvTsruF
zg9;h{&TZOx`4;U;@4iWU5Gw?gzQ?wk*xqZ~&1~Om+u@sZU;2LAj_~*cwjJg12W?yC
z@rP_X#^W8f9cO!=Z70~?Z`(9C|;B!(;dwCn!dzq0c}+0eud-8~RC#{R^acjt>9;
literal 0
HcmV?d00001
diff --git a/mall_auth/target/classes/com/mall/auth/domain/IdCardPeopleVO.class b/mall_auth/target/classes/com/mall/auth/domain/IdCardPeopleVO.class
new file mode 100644
index 0000000000000000000000000000000000000000..e66443790893d0b13a08dc9eaba4f0cb4bf6be9a
GIT binary patch
literal 11837
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
literal 0
HcmV?d00001
diff --git a/mall_auth/target/classes/com/mall/auth/domain/IdCardValidateVo$DataBean.class b/mall_auth/target/classes/com/mall/auth/domain/IdCardValidateVo$DataBean.class
new file mode 100644
index 0000000000000000000000000000000000000000..80c88ec0f7c792e3e6dd7fa3c178f102668fc990
GIT binary patch
literal 3153
zcmb7FTXR!Y6#jN{Zb?r|DZLOtC|I;tf_OnvD$)W{Z2>7%!5gQ^p$Vi(Nl#IH@zwFc
z@!1D`ab$+!L1(1Q=#1zK&iI=|{MJ4vNt+&K>P)isy6?T#xAs1N|NHCj0A4|m#%^3r
z!N$Ch_k_GJn
z4$2OeL|3sf)JLnN7_pU0nCzP+WNy9p%h7d^DkjfYjh-IAUw`Mb2n$8
zk=Y5V;TS5U=c=o2w4~7A|4j*B_T(I%wSBRul3?gu9nILL1X`>v)1QzFuZ{iE^eVFL}qBT
zUx1t7tc>=vHDuaG`|Hi2lpgJm+CxDNxwwcdr?I(xI1UO2w^SPZfG~n
zaa0%Y+8$nnXPVh|n{N_eA|Z&7O9&`>B`$g;GDPF&;f%Op`-*R(v88tAaTDXxHmSK@Wuoue`*Qtiw)*P!~`3y!8>DvIY}|W
zW@~UJHkcC_6Ku5x?}`n6nV+A8Zdi_Mf~8u+yB{FY+U{;0-5YvD?G`8mSA|y@XL20)
zWl?wyM>nM$d4S|rQ_6@mQts6$Uyn~|Y&E4!TO(z^PI)XorMcCVGPsSD`*q4(d`fGp
zDdi3{QXbGL`PhWLR9|szW1An14F3qzxIgkI>~CQv?~nWedvEhzvwiHl5mYPR14|
zCvvhg&N`=#oNV2ZOJ`Ezl#ZNInRMOBkeir9^BRY9wH%h#n5##az#HsE5ANXvuXciO
z?bmpdx+Hu2B~Fqva0xdtNzTMo_?RMR;SSE=6geAT(El_!2jB4}IzujnANU@yxwo0-23M
zO_nExMi=OW2Ay9Ms`!YhZ(Cw@3jeytB6F^=^VKWdu$EcwBF4b
zV#pYg#SyGSQ+v+TCc>u8o~{KlB{JG=gArD`4L>#H4(P57CciTa(u9CuA{{)f4yc?KIFU{_=tS9;F8U0hqxylCxT7P-?E4
zcgo97tt4`w)V*Sfxes<%v(&TZdQ!QDBbm|eqPBJ#WB9x@yPMG++Krd$i($j;hb_wk
z{gx=R?>Ob9pmnnz7IQT7e`}FhCFfnQSS?(3YRpuiLN^@{IN>JT5cZwbZTMbF9KoOd=90(fT#Y@#~vRL)7AWQ$I{=yzjWzLJ|i
z$D!2RdZX;IqTs>$h<`J(ZH!^u#`Ac=#(s?0
zIDi*z97M*(C`L3K=;{X9xPo&wUdAgnUd3@6FX4!dv!XkSV>V6*S;TP-d)kq9rco*v
zWVD0r^<`wtGd4cOXF@(_^Ap2tc7}~j3nm-L@z9cMK+4I|Li;!O4!ngms7DSbN#K
zItFJk&8^75vOFU^V`Jm@5NRKGLPZby9>KU}6|z?iCmCmG6p|EXaH>R>rL2UY;V?}OK&!oHpD0P0I5y%rj2xLi&J0Lq*GtkN}J+j1x{w#3Y`@0
zqj-E>ef+HWEwu2niSu}aJrCdxF7OIRIKdKf)J6H;&f`sTIvjdkBxhiaIG7_B!`B4c
zJUJ8JU>_F9S-8aUOrp=U{wBd?+kS{a6L0ZnX%Dg2XX9Jh5V+?#Y+b${0VGbaCbfgDFQ+_!?
z{ZVXSNg>)m1#gp!@P84@>?w-Ve5<}gPR9!N;9YWt8ulGnkGQ)ihpq8dtvzD1fe;bt
z8R*Ky$t!Dgi>w?5V1y2#kG@?MxW%@(J@#zZ(wPQc$PqY4)K2haF9N}
literal 0
HcmV?d00001
diff --git a/mall_auth/target/classes/com/mall/auth/domain/request/IdCardRequest.class b/mall_auth/target/classes/com/mall/auth/domain/request/IdCardRequest.class
new file mode 100644
index 0000000000000000000000000000000000000000..0d651082d60a6c88feae72e6db0e17667c919261
GIT binary patch
literal 3232
zcma)7TW?fV6#n+~+-BxXI}{3x7N}CSS4I&sxE@b=hbB{P(9{0UW_v
z3XkAI5;iW1cvHk%A})!zY~$?|*LOs`E7bP{y)WX52w%jq7z#FuDP(cMK_Kf@2P+Or
z4$2O$Ik+ymij7r;HUEa6ulUuK{8FP{uC7dxuX)nedho$Uu-?ee>cbYp9WUmt1dW;2<#&yY
z#$8`nr&<{}+(yaRgbO;4v?!aYxa%Ep2Sy$aD=B8@gGQ-VJm=RLqY>1ZfOxi_#qHKv
zgwa`|Y@TH?8^1!=j#JJqUkeJ2snN>{inVQTOJq_oYmHJ+SLl`64YxJ1PaE1bA*HR2
z5v5I&(ov%Bro#x)E~!mn!&9Lp++;$ZW-h&vTT_u)YOwJ0{+ezxhgT1rQ}C;2Bx}x3
z$zLyplfto?Wm4xBXXno_YhtS&tZ!5r3aR#7Qp0VxwuYlSn#19hlEbZubQ-mAh8bb0
zwoxwxGi5!29dmR@Cf>zkc-+OK7<92u#C{P6L=0h2VQl+z>EabU?_va_E}j!KCTLv5
zgosHIuY&pQ>3(acHp-Qvv~+LB4M&>2opwe
zaHn|aB1Sp1twX~}Vx9f9wV+y5n2a0rhh{&zh<9vVMAH3H8b<
za_xhXLQ@{(F3(kQHOFp4eWz)|l$KUHc!Jms33w7uai^rJl%38$An|RNb0*fAjfipX
z>2}@`>&ynmI2+y01F_C*e2lZ%?VO8s=D@@_Tiwq4Vx14M$_ZUCk8488J2w6!67l8U
z9WtVFODm+W3QyC|RNQ2_c_uz&&vrw~h%`g)(;*MXhcvbuQl_mLa=#AwYzwg=5`C|4n3aX3lCOxt>ju>p3}F
zNKQnub50v6<0VPTc&S`cNU4aF%%$2$y?h2%ygqAikfi>dXX`+0v9rreyj
zdpL?0Sfc^_j$?fC33_}FkGdXyM!&%nk-_il=QvJeVjiDjn#e*0*KvZ#MjZiOBy#Wt
zX7CbG5?^vXNtD7Szdxsl()fkre45C`%e>o3^xMuq=(Ta?K6cxf;m=X`u{VUt|A$+T
zdQ9sT{A*eQ+Y(!VRjX~6>_=DXY3
hzdOVk!Fxj7D|j!(CUV{XAMJm*b5Y9_mh`}${|^X?52XMA
literal 0
HcmV?d00001
diff --git a/mall_modules/mall_server/src/main/java/com/mall/server/monitor/SpikesMonitor.java b/mall_modules/mall_server/src/main/java/com/mall/server/monitor/SpikesMonitor.java
index 2c1c8ed..49cec22 100644
--- a/mall_modules/mall_server/src/main/java/com/mall/server/monitor/SpikesMonitor.java
+++ b/mall_modules/mall_server/src/main/java/com/mall/server/monitor/SpikesMonitor.java
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mall.common.domain.OrderItemEntity;
import com.mall.server.config.DelayConfig;
+import com.mall.server.config.MqConfig;
import com.mall.server.constant.SpikesConstant;
import com.mall.server.service.OrderItemService;
import com.rabbitmq.client.Channel;
@@ -48,7 +49,39 @@ public class SpikesMonitor {
try {
channel.basicAck(deliveryTag,false);
} catch (IOException e) {
- throw new RuntimeException(e);
+ try {
+ if(deliveryTag<3){
+ Thread.sleep(3000);
+ channel.basicNack(deliveryTag,false,true);
+ }else {
+ channel.basicNack(deliveryTag,false,false);
+ }
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ }
+
+ @RabbitListener(queues = MqConfig.DXQUEUE)
+ public void orderConsumer(String meg, Message message, Channel channel){
+ log.info("下订单"+meg);
+ long deliveryTag = message.getMessageProperties().getDeliveryTag();
+
+ orderItemService.save(JSON.parseObject(meg,OrderItemEntity.class));
+
+ try {
+ channel.basicAck(deliveryTag,false);
+ } catch (IOException e) {
+ try {
+ if(deliveryTag<3){
+ Thread.sleep(3000);
+ channel.basicNack(deliveryTag,false,true);
+ }else {
+ channel.basicNack(deliveryTag,false,false);
+ }
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
}
}
diff --git a/mall_modules/mall_server/src/main/java/com/mall/server/service/impl/SpikesServiceImpl.java b/mall_modules/mall_server/src/main/java/com/mall/server/service/impl/SpikesServiceImpl.java
index dd30bc9..84d8da0 100644
--- a/mall_modules/mall_server/src/main/java/com/mall/server/service/impl/SpikesServiceImpl.java
+++ b/mall_modules/mall_server/src/main/java/com/mall/server/service/impl/SpikesServiceImpl.java
@@ -1,6 +1,5 @@
package com.mall.server.service.impl;
-import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mall.common.constant.TokenConstants;
@@ -14,6 +13,7 @@ import com.mall.common.result.Result;
import com.mall.common.utils.IdUtils;
import com.mall.common.utils.StringUtils;
import com.mall.server.config.DelayConfig;
+import com.mall.server.config.MqConfig;
import com.mall.server.constant.SpikesConstant;
import com.mall.server.domain.SkuEntity;
import com.mall.server.domain.SpikesEntity;
@@ -21,12 +21,10 @@ import com.mall.server.mapper.SpikesMapper;
import com.mall.server.service.OrderItemService;
import com.mall.server.service.SkuService;
import com.mall.server.service.SpikesService;
-import com.mall.server.service.SpuService;
import org.redisson.api.RSemaphore;
import org.redisson.api.RedissonClient;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -39,7 +37,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
- *秒杀serviceImpl
+ * 秒杀serviceImpl
*/
@Service
public class SpikesServiceImpl extends ServiceImpl
@@ -69,14 +67,15 @@ public class SpikesServiceImpl extends ServiceImpl
/**
* 添加秒杀信息
+ *
* @param spikesRequest
* @return
*/
@Transactional
@Override
public Result add(SpikesRequest spikesRequest) {
- if(spikesRequest.getCreateTime().getMinutes()%60!=0){
- throw new BizException(500,"不是整点");
+ if (spikesRequest.getCreateTime().getMinutes() % 60 != 0) {
+ throw new BizException(500, "不是整点");
}
//一天后的0点
Date date = Date.from(
@@ -84,8 +83,8 @@ public class SpikesServiceImpl extends ServiceImpl
.withSecond(0).withNano(0)
.plusDays(1).atZone(ZoneId.systemDefault()).toInstant()
);
- if(spikesRequest.getCreateTime().compareTo(date)<0){
- throw new BizException(500,"时间必须是第二天0点");
+ if (spikesRequest.getCreateTime().compareTo(date) < 0) {
+ throw new BizException(500, "时间必须是第二天0点");
}
//秒杀表信息
int spikesId = spikesMapper.insert(
@@ -103,13 +102,13 @@ public class SpikesServiceImpl extends ServiceImpl
);
//修改sku商品信息
skuService.updateBatchById(
- spikesRequest.getSkuList().stream().map(c->
- SkuEntity.builder()
- .id(c.getSkuId())
- .inventoryRestrict(c.getInventoryRestrict())
- .activityPrice(c.getActivityPrice())
- .spikesId(spikesId).build()
- ).collect(Collectors.toList())
+ spikesRequest.getSkuList().stream().map(c ->
+ SkuEntity.builder()
+ .id(c.getSkuId())
+ .inventoryRestrict(c.getInventoryRestrict())
+ .activityPrice(c.getActivityPrice())
+ .spikesId(spikesId).build()
+ ).collect(Collectors.toList())
);
//遍历修改后的sku商品信息作转换
List activitySkuVoList = skuService.list(
@@ -135,28 +134,29 @@ public class SpikesServiceImpl extends ServiceImpl
.groupId(c.getGroupId())
.startTime(spikesRequest.getCreateTime())
.endTime(spikesRequest.getEndTime()).build()
- ).collect(Collectors.toList());
+ ).collect(Collectors.toList());
//后期存入redis放入查询列表中
- activitySkuVoList.forEach(c->{
+ activitySkuVoList.forEach(c -> {
//redis秒杀信息存在时间
long expire = (c.getEndTime().getTime() - System.currentTimeMillis()) / 60000;
- redisCache.setCacheObject(SpikesConstant.SPIKES_SKUID +c.getId(),c,expire, TimeUnit.MINUTES);
+ redisCache.setCacheObject(SpikesConstant.SPIKES_SKUID + c.getId(), c, expire, TimeUnit.MINUTES);
});
- return Result.success(true,"添加秒杀成功");
+ return Result.success(true, "添加秒杀成功");
}
/**
* 秒杀
+ *
* @param skuId
* @return
*/
@Override
public Result spike(Long skuId) {
UserInfo login = getLogin();
- if(redisCache.hasKey("spike_"+login.getId()+skuId)){
- throw new BizException(500,"禁止重复抢购欧");
+ if (redisCache.hasKey("spike_" + login.getId() + skuId)) {
+ throw new BizException(500, "禁止重复抢购欧");
}
- redisCache.setCacheObject("spike_"+login.getId()+skuId,IdUtils.genId().toString(),1L,TimeUnit.MINUTES);
+ redisCache.setCacheObject("spike_" + login.getId() + skuId, IdUtils.genId().toString(), 1L, TimeUnit.MINUTES);
SkuEntity skuEntity = skuService.getOne(
new LambdaQueryWrapper()
.eq(skuId != null, SkuEntity::getId, skuId)
@@ -165,42 +165,47 @@ public class SpikesServiceImpl extends ServiceImpl
new LambdaQueryWrapper()
.eq(skuEntity.getSpikesId() != null, SpikesEntity::getSpikesId, skuEntity.getSpikesId())
);
- if(spikesEntity.getCreateTime().compareTo(new Date())>0 || spikesEntity.getEndTime().compareTo(new Date())<0){
- throw new BizException(500,skuEntity.getName()+"该商品不在抢购时间内");
+ if (spikesEntity.getCreateTime().compareTo(new Date()) > 0 || spikesEntity.getEndTime().compareTo(new Date()) < 0) {
+ throw new BizException(500, skuEntity.getName() + "该商品不在抢购时间内");
}
RSemaphore semaphore = redissonClient.getSemaphore(SpikesConstant.SPIKES_INVENTORY + skuId);
- if(!semaphore.tryAcquire(1)){
- throw new BizException(500,"系统繁忙,商品已抢购完");
+ if (!semaphore.tryAcquire(1)) {
+ throw new BizException(500, "系统繁忙,商品已抢购完");
}
String orderSn = IdUtils.genId();
- orderItemService.save(
- OrderItemEntity.builder()
- .userId(login.getId())
- .orderSn(orderSn)
- .skuId(skuId)
- .skuName(skuEntity.getName())
- .skuPic(skuEntity.getDefaultImage())
- .skuPrice(skuEntity.getPrice())
+ OrderItemEntity orderItem = OrderItemEntity.builder()
+ .userId(login.getId())
+ .orderSn(orderSn)
+ .skuId(skuId)
+ .skuName(skuEntity.getName())
+ .skuPic(skuEntity.getDefaultImage())
+ .skuPrice(skuEntity.getPrice())
// .promotionAmount()
// .couponAmount()
// .integrationAmount()
- .realAmount(skuEntity.getActivityPrice())
- .status(0).build()
- );
+ .realAmount(skuEntity.getActivityPrice())
+ .status(0).build();
+ //异步下订单
+ rabbitTemplate.convertAndSend(MqConfig.DXEXCHANGE, MqConfig.ROUTINGKEY, orderItem.toString(),
+ message -> {
+ message.getMessageProperties().setMessageId(IdUtils.genId());
+ return message;
+ });
+
rabbitTemplate.convertAndSend(
- DelayConfig.EXCHANGE, DelayConfig.ROUKEYCZK, skuId + "," +orderSn ,
+ DelayConfig.EXCHANGE, DelayConfig.ROUKEYCZK, skuId + "," + orderSn,
message -> {
message.getMessageProperties().setMessageId(IdUtils.genId());
return message;
}
);
- return Result.success(skuId,"下单成功");
+ return Result.success(skuId, "下单成功");
}
- public UserInfo getLogin(){
+ public UserInfo getLogin() {
String token = request.getHeader(TokenConstants.TOKEN);
- if (StringUtils.isBlank(token)){
- throw new BizException(401,"未登录");
+ if (StringUtils.isBlank(token)) {
+ throw new BizException(401, "未登录");
}
UserInfo userInfo = redisCache.getCacheObject(TokenConstants.TOKEN + token);
return userInfo;