From 3c8f2e0a1c1fe62ec986f769de60eef86b1f095d Mon Sep 17 00:00:00 2001 From: lzx_mac <2602107437@qq.com> Date: Mon, 2 Sep 2024 00:15:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E6=B2=B9=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/pay/MpWxPayService.java | 46 ++++++++++++++++ .../org/jeecg/common/system/api/ISysBaseAPI.class | Bin 11926 -> 12036 bytes .../system/api/fallback/SysBaseAPIFallback.class | Bin 12573 -> 12724 bytes .../target/jeecg-system-cloud-api-3.2.0.jar | Bin 9789 -> 9841 bytes .../target/jeecg-system-local-api-3.2.0.jar | Bin 3832 -> 3832 bytes .../java/org/jeecg/config/shiro/ShiroConfig.java | 10 ++++ .../org/jeecg/config/shiro/ShiroConfig.class | Bin 11438 -> 11585 bytes .../target/jeecg-boot-base-core-3.2.0.jar | Bin 479912 -> 506926 bytes .../compile/default-compile/createdFiles.lst | 32 +++++++++++ .../compile/default-compile/inputFiles.lst | 32 +++++++++++ .../target/jeecg-boot-base-tools-3.2.0.jar | Bin 29154 -> 29154 bytes .../noticeapicontroller/OrderApiController.java | 26 +++++++++ .../api/payController/PayApiIndexController.java | 6 ++ .../api/schoolcontroller/SchoolApiController.java | 6 -- .../schoolcontroller/SchoolLoginController.java | 58 ++++++++++++++++++++ .../jeecg/modules/apiservice/IndexApiService.java | 4 +- .../jeecg/modules/apiservice/OrderApiService.java | 12 ++++ .../apiservice/impl/IndexApiServiceImpl.java | 61 ++++++++++++++++++++- .../apiservice/impl/InfoApiServiceImpl.java | 32 ++++++++++- .../apiservice/impl/OrderApiServiceImpl.java | 52 ++++++++++++++++++ .../src/main/resources/pay_weixin.properties | 4 +- 21 files changed, 368 insertions(+), 13 deletions(-) create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/schoolcontroller/SchoolLoginController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/OrderApiService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/OrderApiServiceImpl.java diff --git a/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java b/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java index 3bd4e4c..9ab7705 100644 --- a/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java +++ b/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java @@ -119,6 +119,52 @@ public class MpWxPayService { + /** + * 微信吊起支付 + * @param productName + * @param clientIp + * @param productId + * @param price + * @param orderNo + * @param openId + * @param body + * @return + */ + public Object createOrderGo(String productName, String clientIp, + String productId, Integer price, String orderNo, + String openId, String body){ + WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); + request.setDeviceInfo("WEB"); //设备号 + request.setTradeType("JSAPI"); //交易类型 + request.setBody(productName); //商品描述 + request.setOutTradeNo(orderNo); //商户订单号 + request.setDetail(productName); //商品详情 + request.setTotalFee(price); //总金额|分计 + request.setSpbillCreateIp(clientIp); //终端IP +// request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径 + request.setNotifyUrl("http://h5.xzaiyp.top/a-notice-api/pay-api/info/notify");//设置回调路径 + request.setProductId(productId); //商品id + request.setOpenid(openId); //JSAPI OPENID + if (dev){ + request.setTotalFee(price); +// request.setNotifyUrl(wxPay.notifyUrlDev); + request.setNotifyUrl("http://h5.xzaiyp.top/a-notice-api/pay-api/info/notify");//设置回调路径 + } + try { + Object order = wxPayService.createOrder(request); + return order; + } catch (WxPayException e) { + e.printStackTrace(); + return e.getLocalizedMessage(); + } + } + + + + + + + diff --git a/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/target/classes/org/jeecg/common/system/api/ISysBaseAPI.class b/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/target/classes/org/jeecg/common/system/api/ISysBaseAPI.class index 9e14957abc08e5bba1cce4c98cd7aae50848541a..86eaa3b9573ab8c6f07ad3eb51614b235112fdb6 100644 GIT binary patch delta 1096 zcmZ`&TW?HJ6#n*^(a~w^(xW3{hB56hlTJrWL?ZDZBvLOtNha!&Ne%I!!FbT8zW4!T zCmtk?OI?dHM$w`dggQe}mx@an_dERqV(l~I>^)9BtekcBS?l}0{jGKOuHCiHWBl&! z0Wcq#} z59;1h>mW0#PcLJOG8HqK+tCV*?+?vz9dI%n#34R0>|t#@7ph{1c{CdHw9)wy9EAfV z#9yi*LXUjGF}^SCtq}#su@FwPpu&L@RM1XQO;JOk;UwP{(C3~)IlToOVDMA8Q&efC z?J}(zDBKNT zDO|JxbP~WN6`u^F%_22?anKjLHKv9E+%A|+!#9XOOOc=J9doXC z&9P`ti~F`ex}~ypYg?>+vJGxy}(Op-3ZB$*1Zze z&3Mg-(cxT=yNK5jb-apXuV+x;y?$7wr Nh_CoYc=@&d{s)lvvkU+L delta 1053 zcmZ{j$xjqP6vn^m28T@#3OD^ArtIrm??J;!Iev1jp&w3eo7pcUD>AE zZU*(>2wW^9uG~S6j}9n1iYoebj%>-Md=+;Ln+a5L%UvAj(@V?Je42w3vc*fTKdG}k z7XletMV^t7+iTn`fv0dd(R};!6ekB5c3Hb`EH4l`w!l0?yeffk{Cb z{S}NIq*b&-@Zrv|m@1{Ts2$9Zb1trv$R!Ps?q&>WmU~3%85Y=MjXY z6(ZueUhExBtaFTr(6|K>?%MEBe$S;l@5NMv47`sAX3-N-nTP+_+M^g?f`G?(Vh&Mh zousuzpr^kozjR#>mV)Nlez^*ooO4|w_^wC({>+!ZM5lGOpqGhbIh3G%~FUN z-U~H6@1;(&hd2A@@LtJ9uU-`7-gRm5TK$=u3jC$!h;r~o_p_Qe^OoQ5_`c8MgVH>Y PkGt^+pUL`lcqlP3q7RA*CMLXCurWM{Mt#tKVH^}t zK@pL<0Ac}!DhjUP3hw(ZxFz}rz&q3WwY=cN&Apj>&Y649OhZLiW%=+#Uq66l_-Vpy z45eZwhBe#~`K}rFa9_g%6%S2NF{EKcYUTAo!;*|-n@kYg4 z74JIByJuu&ZVm0;xGS`C<=%C{ZK0B2bxE*lQ{|rZJ3`fKwnS`cEo#bp3qIf@@3mK@ zeZprIUo7~FF$=~q7Rh&bSjsmGzT-!vBBPqIKxAa@sEy|=S#A7{1^B}!7kiBR!J+VU zuT#MUU+P`XYPi+qFxSvx33EodODKs8UD-NL3J^6eHB41O{%+ zb}CHc-fX+MPG{8fe$SkYI)c_yte_~QP;iJ8590{`F-;nEOvp93x zGaIFbxXZ}Us1uJ8@tA};B&;bJ)-(lnT*9&>tT`FhJOy?_!mbu6~MUJ z934~{r0G@z+DN>eqJx6roE*JCjLx^a)6Fq&JE?PCc8dOIQAEOur`x@V)Vk0ucV8uU z?}-no(5gwh_s~d*-7XOAqEufi)nlaia|&o|)?$M7qK`*?Ez`uW2CjMPvVzR-weF}ouoUl(^JV+7Lb*_=lb==^!{!(_6kNfk~ JThvo<`!Dj^!L0xQ delta 1033 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%0A^gkaRyL30tb+`jaH|K)|y<7);;8f-`hfG z=dJuyf+)u^)P|ztn_)?5{%+(D;5I@ofUvdP11UU>i}a4032n%kG1T^WGAS!DI&E7BF2B`3j(a6>^b_^gBI?rU{M(|?QkAKhubr}dhuC<0Ok%QXF0H!i7 zLvm{b;ANzpT~~#F2t_f#C*@9fS`iIOE0_xdZ30s%m{<FB(e_Vs@ncN z{F{sa6UaJ{jqhi=Z6HNbcW&3vP~vn{fKJB6PgDGTbdCe&0}6Q2(`!r%I8)e(YzKZj zg#MyW>p3cla11i^E99ns=gzz!C?c>Kk<#=mQv7D^INz6X{0|8hip>%L0iepQLNJL! zv@ih$F=&!lfP!>1dQRL!H@syi;L-$!AAwzqi6quuvO^V14Q<}g2M2nkrv#Tst2kPSqbc9{aY zT)*Jtv2EmRAM}%oLjX&#B@%!Z7_g-D^BR*sgblD9wXS4A!;hcOV!F10c1Jm}&PHqJ zA?5HRwcjy|T+Mk#t2(i~pwQ((>;DN!|{5ZzwW_ze-y@~^r$P7_M^Q_ zT95st%;JygFzY^A#%z!OZ(#Vp@klByiz(xOBLo1z^Z&*zC85lOsZbz&sth4f>Ie(o zWAT5!;6KG%G^rCb3aR2SPM{BcY7&qmH4(=7c%&{E4UmWNf0t-d=~$^TRvG{8{U2ct BSEK*{ delta 6592 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 WVu*h$?rHvC8OltJQbYUSng0j1{4jw4 diff --git a/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-local-api/target/jeecg-system-local-api-3.2.0.jar b/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-local-api/target/jeecg-system-local-api-3.2.0.jar index b52c2d9e8a21133639ba6a1706d155ea96df891f..109627c34ae985eaa0787e7c190a4799a30252a2 100644 GIT binary patch delta 204 zcmew%`$LvDz?+$ci-CcIfuS@*aU!n@Gl(+T0H&VHgQ&@zjH+PTkWmLrComd=>1mAS zVEO{17MT9a=me&nm?A;+=6OsD*&za4Tfp>BE)y_qz-Ab;o_v8(3rzoIbOO^(Opze@&GVQRvV#>macu!h{NyqL(+1r3VDTbueK5U*+Z0US o;kE(O(mc*!I+4d6tbR3*6_|d(69lGhc{9QCD|t_Y>2khC0LuPNS^xk5 diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index 9d0aa6c..d4650d4 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -79,6 +79,16 @@ public class ShiroConfig { filterChainDefinitionMap.put("/cheer/login/**", "anon"); filterChainDefinitionMap.put("/cheer/info/**", "anon"); + filterChainDefinitionMap.put("/api/order/**", "anon"); + filterChainDefinitionMap.put("/school/login/**", "anon"); + + filterChainDefinitionMap.put("/pay-api/info/notify", "anon"); + + + + + + diff --git a/jeecg-boot-base/jeecg-boot-base-core/target/classes/org/jeecg/config/shiro/ShiroConfig.class b/jeecg-boot-base/jeecg-boot-base-core/target/classes/org/jeecg/config/shiro/ShiroConfig.class index 7e83e9b3f9d25d8c86dbcce465b572a845b56da5..dfbd4e1f9f0a31b249fe3609a9021d24c431b111 100644 GIT binary patch delta 3500 zcmZ8j33L=y7QMHsld4oIAv6R`Mj;syFpE8dj1D+2r7c$f}*&9f*XR03*dqZnfI$3iS()d|NXcB``>?6wT0V< z^xA#4aVvnXnq}c}G#P{i4NWqT1~m(DXi7jeb&DRxS&XM)(PV;2%VHvJlSzq8Ufh3G z$Yc+bJx%s9+1upxCT}o#qsf~L=3BUl1B90Ia{UQ!=q$LqXDa~SoB^E|2jnN#f zhA}3`s=3tQI16RU$9M|?r4b-iYGo!TBr?FD!Ey_el%$#yg<^%tN;OZ?p(k}$)MS%W zl+EoHr?Sf89lSF!#JhO6!D$wzi>>fOLh&9&O;^;tikhLQnQFLCEoWJr%{gj0*Wf%0 z3sqk8Ei6Kl7vSPV@%f-Z$KVnROH@h@9}+drRl`!XeAwV47MF2(do@04aRpaeSk6_- zcD2E3i;wYfgHO~=(lR}*stvA@Gd8%^;FAU#m0(@`nmB8kBw(<{;JUh7Y=e3&o_9th zbq_tor-`=X{8RkC$&*UUeEFq;@g>FA`zyy5_{(iPi{}hJWAjB=0?^L z%#k2AH}M6+;|~M_64qvz^^$8WL7G@s!faV1>=M zxQ*!Ij7aF>9B(y9e*$Zqo~^G*c-!V)CArLbCo#Q)UqC7F2mE77Dr_9ZF`Mu3T|z4@ zwz*Fw^d2`mueZLs-C8_p@O_*6`GLU?ZGOa$q9(j z^E1JPpDXGMMSZD;uhjX;CJwO9=GQ8pPU54JvobX+^=Jx@wTS08Dg4&vcRX(Md;Z`Y zOdXz7%O7q2#1l4ZdD7|CrbEUln?I{)hxm)ZUv2&-VMKV^=I^R9{^<-iE_SZ<#G3~H zu=yv?)NN|BHeNr=CTG|s=|;5%;=i4p>2|le@Fl;~*5uK&cpJasH)l)x|IlaR-9*A2dUDE>e-gUb&cW9wpZ*Ol>1Cn(N z&h=h@p1k2adE+@Uf}09G^~leQ%i4qjZ{G&=(~uXR7U#V=g8qeR@jGF7YT(i9F(B$P zCoL|Ffw|s6-kW0#?=4{r&Qas7Ik{o9D9n+h1Qgi-^U%lnp@T2f57W>eb1^{r${?)9 z2!UjzY@rm}Fb;b#9{Z(DeufG7PTJ(J2vS2ilQ5ANp@Ns9l2=G0?1stgfhp{Z+c^YN zS%NB-L)szkhUxb{5OX^nVF z+kvOGy?9PLfc4rD)M-Bakg=NN@c$#o65)8a{?0oMavw|$c_Xdbc^*T%gAnldokhg{01k?+x+}NItjU}n!D!jU znEY%>eykcwv%TZO7@w`QqM5gGvpFo$KaBYOk@RepsXBA<63f&S*#Ueak!mEq zEHv35@ToAO@E#Hn4&kuymHQ0W7%(F!lO!f69$m1aUFf)bK#EpgDB(Yk9n2uH)P>g~ zf`C{C-GeD_hIVqum7kELPfF6K++;JNHh;m|!Ua>oYTyfeDL(g#&t|o8KD4~}BmtFR zxu~fMFj60hFnJyOvI4hmA30^7r zbZI#m^q?c-nt|ClmY-L^{Ys#g&kXf~l%NuxCj~)OlHaKCce&xEkKP@|wAYXtqrwO^ zgrp&18Kg+3OK$fT(MstBCI+?K{(dCZt3f+b@8P(7CBdCo_8 zI7i){M{3Z@HL1rkk-Ds$d>28txl04TNH9o&#a4n^Yh1xpbYmOzU|aN+#yyZ}@G~7{ z3|%bWy_ZNgZ!aA?Lq0$=v6PqM33fmoFT>01h&R~@``8)#c{vU<3rCoXqx88)(O-(< z3Un9XzY*XAQaInrdxFyUTH-jqm)mw&4l_zsAt-u3h~9LJ!H@V!m03s(qwme5B8VER zCaK=3QMD7IraI$gi0^m?J*5Uuo`&ZviiJ95;O7=iqN=&Q?-x-!_kx$JkYcH?glIva zkCcOZ2eTqrUMT(PQTeZs`de9#RSoj?z~BvH9=*!$y%H#zUtN{3`laJEewUEy4kT#! zF(n13Q{-~ukLV|Yuro!hehJ>{&3LR16P4%YH#S><`BQird}sd3_^hl|$;#)3rfY`g TK^hmxTA<)U=)9kc_`v@GMcyic delta 3341 zcmZ`*3z&^%9{>HmbLM>CeDlqij+tSmXr`5|nWLUntEFeRc30^#D7iEg%^*z7D3VJ# zq!eP(r;8eNA)<)U8RK-LTvAFYDkZ8dq*9S0W`FNF2fG< zb$J_yrExfKw>iSaT@n@g4nZ90GCGu_3^>{##~A2Nv)pBlV@2jTa~yB;ZWoh`UlUwR z!Qn8#Nk-{pn^SB);Nn5!QWd9)jpNNS%^a(2KIn2fA2N&Yat0rE@dzI=qL12q%(Xd_ zkK25rW}H=WIUXaW3cCeAeT9F0lEW$Ay#tBU0<}dA>jdODifXWXR)UF7cVs zyrw*3Rlr%u7d_0wv;GC)>qARDE@O>9J$!-i%RRotnEy^VFSC{_Jl2_IC1XTuzshdy zc#QL9qNQKZB-^iO?D+faRKI)UzvaDRL|^4=9$)7w4?FRt$JKm;xXQogj4Xee)25ln zHx1JoE+^9ZR8;mU?Kfi3u*%y!uH_29QP$+Z96ae)XZ=02&f|KazQ`(U@-_bB@hxs3 ztU>)ezHR(@hcEj1*%vi`3QybI=0+34cT3r?#SfMMj?Kg$*(+qP5JQ+zcq@V z%*pbPHuwDQIqlLHa+k;5+~Z*(zw>A1v}m^1(-G_MAV5 ze(|`U2Wrxq%nRlJ%7aAqImP9rBTCO7Tv{>U{LW?N{re8T_+0f_HGiww)a)Y5umTPRfbG6alt zN}0x%3j|KDIrFSFRy2+dCBa%;(JrNMIj#&}U58=|?LxUJ;f`^1D#;D4gB_fYV4xPA z>yQyZk4SDx4A-;@UmNb&fCzVq;kt-fyGB~Y&@EzY28~lJ#8rYXfrCqtj(;H=|3(4Y z<6K;Z*0>yg)!E@_H;hFOb$f5jKp%zcCSA4^FKJ}Gj=p#s{jdf7RmV4DF9zTs2GYVH zrlXuqaSQ*1!8{K`*cKIRk4kpdMCyrK*&o9=6vH_Nw{s#!aymw_8lyQMW4H`=@)gaQ z^%%>|QAD{NFzP5Nl9u*pn+Z^*)%qTLroupa+Fs*N=^*4kKSW4(>HY;4e1 zb&Yy7N6INwVXZ3Ir(hG3ZzGu0;8;8Kt(T4e!zZP(6n!hnNW3G~6zZl(v`L2UyHUS) zdx67rYeRW2S;lGx%R~rm#MKN3-M~MzSJH^pU`wi`axxqjTH@3QK}iMKN75$;KMpcr99B9SX5t4YvUosSZtNU6{0bEH7w_ zO?cnr1%HuuADB2xZZkfVpUrVPK2q%lk6moj|GZdKZH%q>ShA+Qduz9}=fzQ`OY|)+ zlJot{(!VHta|{EDOnW6=&q;Xmk*sf#=i3m*XK0Gg6P}u!OG|^Nj%Zu)i7c4`6c%lx z_D^+wH<}3VHU(ju#FI|sCxihfj)8JwP;!c#7&BiUpJPT1WpaB%V!BB(AY7w3$|ZSA zA~Azc3U@|={H=W6C7*X=aa7#-NtxqeZIlS639F4SutPdesSPvjlBV^(2{w@%DmHWH zbCzL9xS|e~mKtQJoVc~PNNK+=Y#U; zceKQzlY)6pgMVQ))J}XQvxHtn8I^hdq6nIj++)m-Oqkb99Tmgqwa9LOVi;4W*@Kx- zjou~K#&(QEleB0I<046Ld<=ItfD>Z4C!!j@H%Xbe0{1Db6Ku$j%Uh0U>pXW|>4gSGQc63Y>s36(v0nDzVvxx7bA3I*>) KfD?Hi@Bc5Zx%vhG diff --git a/jeecg-boot-base/jeecg-boot-base-core/target/jeecg-boot-base-core-3.2.0.jar b/jeecg-boot-base/jeecg-boot-base-core/target/jeecg-boot-base-core-3.2.0.jar index 9acaafcb318f226e0e82eba23216a94b644bb1b3..8919ebd5183c1ca6e1ce9a390a73417672ca5a02 100644 GIT binary patch delta 57808 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 P8U)=|!&kDJ@a6vjz_YBn diff --git a/jeecg-boot-base/jeecg-boot-base-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/jeecg-boot-base/jeecg-boot-base-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 5db6c40..f6232fb 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/jeecg-boot-base/jeecg-boot-base-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -8,6 +8,7 @@ org/jeecg/modules/hanHaiBank/service/IHanHaiBankService.class org/jeecg/common/util/YouBianCodeUtil.class org/jeecg/common/system/vo/SysCategoryModel.class org/jeecg/common/aspect/annotation/AutoLog.class +org/jeecg/modules/payShop/entity/PayShop.class org/jeecg/modules/atTrends/mapper/AtTrendsMapper.class org/jeecg/common/constant/ProvinceCityArea.class org/jeecg/common/system/vo/DictQuery.class @@ -21,10 +22,12 @@ org/jeecg/common/exception/JeecgBoot401Exception.class org/jeecg/common/util/oConvertUtils.class org/jeecg/modules/atTrends/controller/AtTrendsController.class org/jeecg/modules/bean/ConvertUtils.class +org/jeecg/modules/shcoolSub/entity/ShcoolSub.class org/jeecg/common/exception/JeecgBootExceptionHandler.class org/jeecg/config/shiro/filters/JwtFilter.class org/jeecg/common/util/encryption/EncryptedString.class org/jeecg/config/oss/MinioConfig.class +org/jeecg/modules/cheerRecharge/service/ICheerRechargeService.class org/jeecg/common/handler/IFillRuleHandler.class org/jeecg/modules/hanHanBanner/service/IHanHaiBannerService.class org/jeecg/modules/hanHaiConf/mapper/HanHaiConfMapper.class @@ -36,6 +39,7 @@ org/jeecg/modules/hanHaiWater/mapper/HanHaiWaterMapper.class org/jeecg/config/Swagger2Config.class org/jeecg/modules/atPromotion/service/impl/AtPromotionServiceImpl.class org/jeecg/common/aspect/PermissionDataAspect.class +org/jeecg/modules/cheerConf/service/impl/CheerConfServiceImpl.class org/jeecg/common/constant/ServiceNameConstants.class org/jeecg/config/thirdapp/ThirdAppTypeItemVo.class org/jeecg/common/api/dto/message/TemplateMessageDTO.class @@ -53,16 +57,21 @@ org/jeecg/common/util/security/entity/SecurityReq.class org/jeecg/modules/atComplaintReason/controller/AtComplaintReasonController.class org/jeecg/modules/hanHaiRealName/entity/HanHaiRealName.class org/jeecg/config/mybatis/MybatisPlusSaasConfig.class +org/jeecg/modules/payShop/controller/PayShopController.class org/jeecg/modules/hanHaiConf/service/impl/HanHaiConfServiceImpl.class org/jeecg/config/JeecgCloudCondition.class org/jeecg/common/util/PathMatcherUtil$1.class +org/jeecg/modules/cheerConf/controller/CheerConfController.class org/jeecg/modules/atPromotion/controller/AtPromotionController.class org/jeecg/common/aspect/AutoLogAspect$1.class org/jeecg/common/util/security/SecurityTools.class org/jeecg/common/util/HTMLUtils.class +org/jeecg/modules/cheerConf/entity/CheerConf.class org/jeecg/common/util/security/AbstractQueryBlackListHandler.class org/jeecg/modules/atComplaintReason/entity/AtComplaintReason.class org/jeecg/common/api/vo/Result.class +org/jeecg/modules/cheerRecharge/service/impl/CheerRechargeServiceImpl.class +org/jeecg/modules/cheerRecharge/entity/CheerRecharge.class org/jeecg/common/system/query/QueryCondition.class org/jeecg/common/util/DateUtils$5.class org/jeecg/modules/atTrends/service/impl/AtTrendsServiceImpl.class @@ -74,17 +83,22 @@ org/jeecg/common/util/DateUtils$4.class org/jeecg/common/util/oss/OssBootUtil.class org/jeecg/common/api/dto/FileUploadDTO.class org/jeecg/modules/atPerformer/service/IAtPerformerService.class +org/jeecg/modules/cheerWater/mapper/CheerWaterMapper.class org/jeecg/common/constant/enums/LowAppAopEnum.class org/jeecg/common/api/dto/message/TemplateDTO.class org/jeecg/common/constant/CommonSendStatus.class org/jeecg/modules/atTrends/service/IAtTrendsService.class +org/jeecg/modules/cheerRecharge/mapper/CheerRechargeMapper.class org/jeecg/common/util/DateUtils$1.class org/jeecg/common/constant/WebsocketConst.class org/jeecg/common/util/MinioUtil.class org/jeecg/common/es/QueryStringBuilder.class +org/jeecg/modules/payOrder/service/IPayOrderService.class org/jeecg/modules/atPerformer/service/impl/AtPerformerServiceImpl.class +org/jeecg/modules/cheerWater/entity/CheerWater.class org/jeecg/common/system/query/MatchTypeEnum.class org/jeecg/common/aspect/annotation/Dict.class +org/jeecg/modules/shcoolSub/service/impl/ShcoolSubServiceImpl.class org/jeecg/config/shiro/filters/CustomShiroFilterFactoryBean.class org/jeecg/config/WebSocketConfig.class org/jeecg/modules/atPromotion/mapper/AtPromotionMapper.class @@ -92,6 +106,7 @@ org/jeecg/config/vo/Shiro.class org/jeecg/config/thirdapp/ThirdAppConfig.class org/jeecg/common/aspect/DictAspect.class org/jeecg/modules/atPerformer/mapper/AtPerformerMapper.class +org/jeecg/modules/cheerWater/service/ICheerWaterService.class org/jeecg/common/util/DateUtils$2.class org/jeecg/modules/service/ApiLoginService.class org/jeecg/common/system/vo/DictModel.class @@ -99,12 +114,16 @@ org/jeecg/common/constant/VxeSocketConst.class org/jeecg/common/util/ImportExcelUtil.class org/jeecg/common/system/query/QueryGenerator.class org/jeecg/common/util/security/entity/MyKeyPair.class +org/jeecg/modules/service/AppletLoginService.class org/jeecg/common/util/filter/FileTypeFilter.class +org/jeecg/modules/cheerConf/mapper/CheerConfMapper.class +org/jeecg/modules/service/impl/AppletLoginServiceImpl.class org/jeecg/common/util/security/AbstractQueryBlackListHandler$QueryTable.class org/jeecg/common/util/PathMatcherUtil$Matcher.class org/jeecg/modules/atMasterPiece/service/impl/AtMasterPieceServiceImpl.class org/jeecg/common/api/dto/message/BusMessageDTO.class org/jeecg/common/constant/SymbolConstant.class +org/jeecg/modules/payShop/service/impl/PayShopServiceImpl.class org/jeecg/common/api/dto/message/BusTemplateMessageDTO.class org/jeecg/modules/hanHaiRealEnterprise/mapper/HanHaiRealEnterpriseMapper.class org/jeecg/modules/bean/HttpConf.class @@ -124,15 +143,19 @@ org/jeecg/modules/bean/LoginReq.class org/jeecg/modules/hanHaiRealEnterprise/entity/HanHaiRealEnterprise.class org/jeecg/modules/atComplaintReason/mapper/AtComplaintReasonMapper.class org/jeecg/common/system/query/QueryRuleEnum.class +org/jeecg/modules/cheerConf/service/ICheerConfService.class org/jeecg/common/aspect/annotation/OnlineAuth.class org/jeecg/common/util/RestDesformUtil.class org/jeecg/common/system/vo/DictModelMany.class +org/jeecg/modules/cheerRecharge/controller/CheerRechargeController.class +org/jeecg/modules/payShop/mapper/PayShopMapper.class org/jeecg/config/mybatis/MybatisInterceptor.class org/jeecg/config/sign/util/BodyReaderHttpServletRequestWrapper$1.class org/jeecg/common/util/BrowserUtils.class org/jeecg/modules/hanHaiWater/controller/HanHaiWaterController.class org/jeecg/modules/hanHaiWater/entity/HanHaiWater.class org/jeecg/common/util/CommonUtils.class +org/jeecg/modules/cheerWater/controller/CheerWaterController.class org/jeecg/common/util/DateUtils$3.class org/jeecg/modules/base/mapper/BaseCommonMapper.class org/jeecg/modules/hanHaiRealEnterprise/service/IHanHaiRealEnterpriseService.class @@ -161,6 +184,7 @@ org/jeecg/common/util/dynamic/db/DataSourceCachePool.class org/jeecg/common/constant/FillRuleConstant.class org/jeecg/common/system/query/QueryGenerator$1.class org/jeecg/common/util/ReflectHelper.class +org/jeecg/modules/payShop/service/IPayShopService.class org/jeecg/common/system/base/controller/JeecgController.class org/jeecg/modules/hanHaiMember/controller/HanHaiMemberController.class org/jeecg/modules/hanHaiWater/service/impl/HanHaiWaterServiceImpl.class @@ -186,6 +210,7 @@ org/jeecg/modules/hanHaiBank/entity/HanHaiBank.class org/jeecg/modules/atMasterPiece/entity/AtMasterPiece.class org/jeecg/common/util/IpUtils.class org/jeecg/common/aspect/annotation/PermissionData.class +org/jeecg/modules/cheerWater/service/impl/CheerWaterServiceImpl.class org/jeecg/modules/atMasterPiece/controller/AtMasterPieceController.class org/jeecg/common/system/vo/SysUserCacheInfo.class org/jeecg/modules/hanHanBanner/controller/HanHaiBannerController.class @@ -198,8 +223,11 @@ org/jeecg/config/StaticConfig.class org/jeecg/config/shiro/filters/ResourceCheckFilter.class org/jeecg/common/util/dynamic/db/DbTypeUtils.class org/jeecg/modules/hanHaiMember/mapper/HanHaiMemberMapper.class +org/jeecg/modules/shcoolSub/mapper/ShcoolSubMapper.class org/jeecg/common/api/CommonAPI.class +org/jeecg/modules/payOrder/service/impl/PayOrderServiceImpl.class org/jeecg/config/AutoPoiConfig.class +org/jeecg/modules/payOrder/entity/PayOrder.class org/jeecg/common/aspect/AutoLogAspect.class org/jeecg/config/sign/interceptor/SignAuthConfiguration.class org/jeecg/common/util/dynamic/db/FreemarkerParseFactory.class @@ -212,9 +240,11 @@ org/jeecg/modules/hanHaiRealEnterprise/controller/HanHaiRealEnterpriseController org/jeecg/common/util/dynamic/db/DynamicDBUtil.class org/jeecg/common/util/DySmsEnum.class org/jeecg/modules/atActorCollection/controller/AtActorCollectionController.class +org/jeecg/modules/payOrder/mapper/PayOrderMapper.class org/jeecg/modules/atActorCollection/entity/AtActorCollection.class org/jeecg/config/RestTemplateConfig.class org/jeecg/config/shiro/ShiroConfig.class +org/jeecg/modules/payOrder/controller/PayOrderController.class org/jeecg/modules/hanHaiWater/service/IHanHaiWaterService.class org/jeecg/common/util/SqlInjectionUtil.class org/jeecg/modules/hanHanBanner/entity/HanHaiBanner.class @@ -222,5 +252,7 @@ org/jeecg/common/system/vo/ComboModel.class org/jeecg/common/util/Md5Util.class org/jeecg/common/util/filter/StrAttackFilter.class org/jeecg/modules/hanHaiBank/controller/HanHaiBankController.class +org/jeecg/modules/shcoolSub/controller/ShcoolSubController.class org/jeecg/common/system/base/service/impl/JeecgServiceImpl.class +org/jeecg/modules/shcoolSub/service/IShcoolSubService.class org/jeecg/modules/hanHaiRealEnterprise/service/impl/HanHaiRealEnterpriseServiceImpl.class diff --git a/jeecg-boot-base/jeecg-boot-base-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/jeecg-boot-base/jeecg-boot-base-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 235eee3..a0970e7 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/jeecg-boot-base/jeecg-boot-base-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,3 +1,5 @@ +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerWater/controller/CheerWaterController.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/shcoolSub/service/impl/ShcoolSubServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/VxeSocketConst.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/DictQuery.java @@ -11,6 +13,7 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/service/impl/ApiLoginServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHanBanner/service/IHanHaiBannerService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerConf/controller/CheerConfController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SpringContextUtils.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/dynamic/db/FreemarkerParseFactory.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/RestTemplateConfig.java @@ -20,18 +23,23 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/WebsocketConst.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/security/entity/MyKeyPair.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payOrder/service/impl/PayOrderServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/dynamic/db/DynamicDBUtil.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiWater/mapper/HanHaiWaterMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/dynamic/db/DbTypeUtils.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/service/impl/AppletLoginServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/enums/OperateTypeEnum.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/DictModel.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/dto/message/TemplateMessageDTO.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/security/entity/SecurityResp.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/filters/CustomShiroFilterFactoryBean.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atMasterPiece/entity/AtMasterPiece.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerWater/service/impl/CheerWaterServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/SymbolConstant.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payOrder/controller/PayOrderController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/OnlineAuth.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atPerformer/controller/AtPerformerController.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/service/AppletLoginService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/thirdapp/ThirdAppTypeItemVo.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/JeecgTenantParser.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHanBanner/controller/HanHaiBannerController.java @@ -43,6 +51,7 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/BrowserType.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiWater/entity/HanHaiWater.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/dynamic/db/DataSourceCachePool.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/shcoolSub/controller/ShcoolSubController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/JeeccgBaseConfig.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/dto/OnlineAuthDTO.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atMasterPiece/mapper/AtMasterPieceMapper.java @@ -53,8 +62,10 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHanBanner/service/impl/HanHaiBannerServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/StaticConfig.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/PathMatcherUtil.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payShop/service/IPayShopService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryRuleEnum.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DySmsHelper.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/shcoolSub/service/IShcoolSubService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/interceptor/SignAuthInterceptor.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/entity/JeecgEntity.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/AutoPoiDictConfig.java @@ -64,6 +75,7 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atComplaintReason/service/IAtComplaintReasonService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/PmsUtil.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payOrder/mapper/PayOrderMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/service/impl/HanHaiMemberServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/MyClassLoader.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/JeecgService.java @@ -79,27 +91,34 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiWater/service/IHanHaiWaterService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atTrends/service/IAtTrendsService.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payOrder/service/IPayOrderService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/LoginUser.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/dto/LogDTO.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/dto/FileDownDTO.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SqlInjectionUtil.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerRecharge/mapper/CheerRechargeMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiBank/service/IHanHaiBankService.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerWater/service/ICheerWaterService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/encryption/EncryptedString.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atPromotion/controller/AtPromotionController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/bean/LoginReq.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiRealEnterprise/mapper/HanHaiRealEnterpriseMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/filters/JwtFilter.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerConf/service/impl/CheerConfServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atPromotion/service/IAtPromotionService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/JeecgCloudCondition.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/thirdapp/ThirdAppTypeConfig.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/DruidConfig.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payShop/service/impl/PayShopServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atMasterPiece/service/impl/AtMasterPieceServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atMasterPiece/controller/AtMasterPieceController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/interceptor/SignAuthConfiguration.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiRealName/mapper/HanHaiRealNameMapper.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payShop/mapper/PayShopMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonSendStatus.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/shcoolSub/entity/ShcoolSub.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebMvcConfiguration.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/DynamicDataSourceModel.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atPerformer/entity/AtPerformer.java @@ -123,6 +142,7 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DySmsEnum.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atComplaintReason/mapper/AtComplaintReasonMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atActorCollection/entity/AtActorCollection.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/shcoolSub/mapper/ShcoolSubMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/HTMLUtils.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/util/BodyReaderHttpServletRequestWrapper.java @@ -130,6 +150,7 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryCondition.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiBank/controller/HanHaiBankController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/JwtToken.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payShop/controller/PayShopController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/YouBianCodeUtil.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/BaseCommonServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atActorCollection/mapper/AtActorCollectionMapper.java @@ -142,6 +163,7 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/security/AbstractQueryBlackListHandler.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/security/entity/SecurityReq.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/enums/CgformEnum.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerWater/entity/CheerWater.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiConf/service/impl/HanHaiConfServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atActorCollection/service/IAtActorCollectionService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/CorsFilterCondition.java @@ -149,12 +171,16 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/filter/StrAttackFilter.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/BaseCommonMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/AutoPoiConfig.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerRecharge/entity/CheerRecharge.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/IpUtils.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/util/SignUtil.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/oss/MinioConfig.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payOrder/entity/PayOrder.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/SysCategoryModel.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/bean/HttpConf.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerRecharge/service/ICheerRechargeService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/enums/LowAppAopEnum.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerConf/mapper/CheerConfMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiWater/controller/HanHaiWaterController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHanBanner/entity/HanHaiBanner.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/SysDepartModel.java @@ -183,6 +209,7 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/oss/OssBootUtil.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JeecgDataAutorUtils.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/dto/message/BusMessageDTO.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerRecharge/service/impl/CheerRechargeServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TokenUtils.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atComplaintReason/service/impl/AtComplaintReasonServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FillRuleUtil.java @@ -195,13 +222,18 @@ /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SysAnnmentTypeEnum.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/service/ApiLoginService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/filter/FileTypeFilter.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerConf/entity/CheerConf.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/payShop/entity/PayShop.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/AutoDict.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/UUIDGenerator.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerWater/mapper/CheerWaterMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/mapper/HanHaiMemberMapper.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/atActorCollection/controller/AtActorCollectionController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/Md5Util.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerRecharge/controller/CheerRechargeController.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/superSearch/QueryRuleEnum.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java +/Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cheerConf/service/ICheerConfService.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiRealEnterprise/service/impl/HanHaiRealEnterpriseServiceImpl.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/PermissionData.java /Applications/hanhai-object/hanhai-a-notice-api/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiRealEnterprise/entity/HanHaiRealEnterprise.java diff --git a/jeecg-boot-base/jeecg-boot-base-tools/target/jeecg-boot-base-tools-3.2.0.jar b/jeecg-boot-base/jeecg-boot-base-tools/target/jeecg-boot-base-tools-3.2.0.jar index c9e04dfcfc1f9729dbfd3bd4b99232f96b0166a7..c5100ea852b2ad42f79c708b72f61da7eeef371c 100644 GIT binary patch delta 708 zcmaF#nDNnLM&1B#W)?061`Y;>;ta)!yeiBf%49ur5s-Q&527Y>Fsg!S14bP%9nWY8 zrYAERgXxou)?k{Q$p}o_FqwntGA2_ny^hHQOh09^0@ELu4JHRM3xnBffb4n3?33p+ zb3yrzP&LkQ`7{U1t^qS{fO#M|DCr69WSeD+7bgrk>&)Zb<^F! zba}cfnBJf60;btAyufr|ru5{z3=1&(Z-(^bBN=8;b|6$f7%q1x6Cx*&COug!OAYKk z`z$LkU6U0ArY~k?fYsY%M}g^?*#ThsO?D!f4#a o2ad4GU3uAH@gI3fU^+HG2TY&IPXp7Y1?gaVe!&4SomAKW0C585wg3PC delta 708 zcmaF#nDNnLM&1B#W)?061`Y;>hZ`g(@~SX{D3kTf4}jD&c@Q<3gHaVs8!+mC>3Bv% zFg=;k7)+mJv2*vdVEQSO6`20OY%n>9Ss2V-17y!LW}iHt znG4EygsO3d%crpjg4ywmN|VnQu%bG7@;VkRkeespW^n@33ak+z)tjqXZCSyL-CUAj zyEb2!^9jKfsRN zoN4DH0@k%7=sL3?(9+0=J*pG3nHU&&SQ!{>CNE?ZnLNRme{xBI%;x)HrBGucA3(fn zm9i1+;CCq|U|KcR9%R_$^i+K?Ju?*&d>2z~z)Nt()!+ zrpwb^!Sw!g7ckA1;RU7xGo>fzWmtgOe>0>fAIUI-vIC*=!Em`lnGiXFH0jA=S!!VS z*=JdS>6)w{FnuvA1FYUAI|@wC%nkt4Z?Y4?bU+S7es@kNm@k|g3#N;6W5D#KT!=pX oJaB|f?#jysi~q<=0@JbiIbixsej1oIEl3B`^9v4u>7>F20Ium8Z2$lO diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/noticeapicontroller/OrderApiController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/noticeapicontroller/OrderApiController.java index d6da348..3d22663 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/noticeapicontroller/OrderApiController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/noticeapicontroller/OrderApiController.java @@ -2,16 +2,42 @@ package org.jeecg.modules.api.noticeapicontroller; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.apiservice.LoginApiService; +import org.jeecg.modules.apiservice.OrderApiService; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + @Api(tags="小程序-订单相关接口") @RestController @RequestMapping("/api/order") @Slf4j public class OrderApiController { + //订单相关接口 + @Resource + private OrderApiService orderApiService; + + //创建订单 + @ApiOperation(value = "创建订单",notes = "创建订单") + @PostMapping("/createOrder") + public Result createOrder(){ + return orderApiService.createOrder(); + } + + //立即支付 + @ApiOperation(value = "立即支付",notes = "立即支付") + @PostMapping("/payOrder") + public Result payOrder(){ + return orderApiService.payOrder(); + } + + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/payController/PayApiIndexController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/payController/PayApiIndexController.java index 2393dc6..a179725 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/payController/PayApiIndexController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/payController/PayApiIndexController.java @@ -71,6 +71,12 @@ public class PayApiIndexController { } + //支付回调 + @PostMapping("/notify") + public Object createNotify(@RequestBody String requestBody){ + return indexApiService.createNotify(requestBody); + } + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/schoolcontroller/SchoolApiController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/schoolcontroller/SchoolApiController.java index d79e974..008ec1a 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/schoolcontroller/SchoolApiController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/schoolcontroller/SchoolApiController.java @@ -57,10 +57,4 @@ public class SchoolApiController { } - - - - - - } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/schoolcontroller/SchoolLoginController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/schoolcontroller/SchoolLoginController.java new file mode 100644 index 0000000..4b79a44 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/schoolcontroller/SchoolLoginController.java @@ -0,0 +1,58 @@ +package org.jeecg.modules.api.schoolcontroller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.apiservice.LoginApiService; +import org.jeecg.modules.bean.LoginReq; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +@Api(tags="小程序-学校报修登录相关接口") +@RestController +@RequestMapping("/school/login") +@Slf4j +public class SchoolLoginController { + + + //授权登录 + @Resource + private LoginApiService loginApiService; + + + //小程序授权登录 + @ApiOperation(value="小程序-登录接口", notes="小程序-登录接口") + @GetMapping("/login") + public Result login(LoginReq loginReq){ + return loginApiService.login(loginReq); + } + + + //获取用户协议 + @ApiOperation(value="小程序-获取用户协议", notes="小程序-获取用户协议") + @GetMapping("/getUserAgreement") + public Result getUserAgreement(){ + return loginApiService.getUserAgreement(); + } + + + //获取隐私政策 + @ApiOperation(value="小程序-获取隐私政策", notes="小程序-获取隐私政策") + @GetMapping("/getPrivacyPolicy") + public Result getPrivacyPolicy(){ + return loginApiService.getPrivacyPolicy(); + } + + + + + + + + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/IndexApiService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/IndexApiService.java index 259e59d..e9d5788 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/IndexApiService.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/IndexApiService.java @@ -61,8 +61,8 @@ public interface IndexApiService { Result getSchoolOrderPage(String state,WaterPageBean bean); - - + //支付回调 + Object createNotify(String requestBody); } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/OrderApiService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/OrderApiService.java new file mode 100644 index 0000000..a0c69b4 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/OrderApiService.java @@ -0,0 +1,12 @@ +package org.jeecg.modules.apiservice; + +import org.jeecg.common.api.vo.Result; + +public interface OrderApiService { + + //创建订单 + Result createOrder(); + + //立即支付 + Result payOrder(); +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/IndexApiServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/IndexApiServiceImpl.java index 6e5eefe..210a0ff 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/IndexApiServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/IndexApiServiceImpl.java @@ -1,12 +1,14 @@ package org.jeecg.modules.apiservice.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; import org.apache.commons.lang.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.RedisUtil; import org.jeecg.config.shiro.ShiroRealm; import org.jeecg.modules.apiBean.ActorSetPageBean; import org.jeecg.modules.apiBean.TrendsBean; +import org.jeecg.modules.apiUtils.printUtil; import org.jeecg.modules.apiservice.IndexApiService; import org.jeecg.modules.atActorCollection.entity.AtActorCollection; import org.jeecg.modules.atActorCollection.service.IAtActorCollectionService; @@ -20,18 +22,22 @@ import org.jeecg.modules.atPromotion.service.IAtPromotionService; import org.jeecg.modules.atTrends.entity.AtTrends; import org.jeecg.modules.atTrends.service.IAtTrendsService; import org.jeecg.modules.bean.WaterPageBean; +import org.jeecg.modules.cheerWater.entity.CheerWater; +import org.jeecg.modules.cheerWater.service.ICheerWaterService; import org.jeecg.modules.hanHaiBank.service.IHanHaiBankService; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; import org.jeecg.modules.hanHaiWater.entity.HanHaiWater; import org.jeecg.modules.hanHanBanner.entity.HanHaiBanner; import org.jeecg.modules.hanHanBanner.service.IHanHaiBannerService; +import org.jeecg.modules.pay.MpWxPayService; import org.jeecg.modules.payOrder.entity.PayOrder; import org.jeecg.modules.payOrder.service.IPayOrderService; import org.jeecg.modules.payShop.entity.PayShop; import org.jeecg.modules.payShop.service.IPayShopService; import org.jeecg.modules.shcoolSub.entity.ShcoolSub; import org.jeecg.modules.shcoolSub.service.IShcoolSubService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -72,6 +78,12 @@ public class IndexApiServiceImpl implements IndexApiService { //获取演员集 @Resource private IAtActorCollectionService atActorCollectionService; + //支付接口 + @Autowired + private MpWxPayService mpWxPayService; + //加油小程序 + @Resource + private ICheerWaterService cheerWaterService; @@ -196,9 +208,24 @@ public class IndexApiServiceImpl implements IndexApiService { order.setNum(num); order.setUserId(hanHaiMember.getId()); order.setTitle(byId.getTitle()+"购买"); - payOrderService.save(order); - return Result.OK("订单创建成功"); + + + //吊起微信支付 + String s = new BigDecimal(0.01).multiply(new BigDecimal(100)).toString(); + int i1 = Double.valueOf(s).intValue(); + Object appOrder = mpWxPayService.createOrder( + "购买"+order.getTitle() , + "127.0.0.1", + order.getId(), + i1, + order.getId(), + hanHaiMember.getAppletOpenid(), + order.toString()); + + + + return Result.OK("订单创建成功",appOrder); } @@ -256,4 +283,34 @@ public class IndexApiServiceImpl implements IndexApiService { } + + //支付回调 + @Override + public Object createNotify(String requestBody){ + WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody); + + String outTradeNo = notify.getOutTradeNo(); + + //开始处理业务逻辑 + CheerWater byId = cheerWaterService.getById(outTradeNo); + + if(byId!=null){ + if(!byId.getState().equals("1")){ + cheerWaterService.lambdaUpdate() + .set(CheerWater::getState,"1") + .eq(CheerWater::getId,outTradeNo) + .update(); + + + //拼接打印信息 + String content = printUtil.spellMessage(); + + //客户要求打印两次 + printUtil.printBill(content); + printUtil.printBill(content); + } + } + return null; + } + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/InfoApiServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/InfoApiServiceImpl.java index 77abc06..d4330f9 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/InfoApiServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/InfoApiServiceImpl.java @@ -28,6 +28,8 @@ import org.jeecg.modules.hanHaiRealName.entity.HanHaiRealName; import org.jeecg.modules.hanHaiRealName.service.IHanHaiRealNameService; import org.jeecg.modules.hanHaiWater.entity.HanHaiWater; import org.jeecg.modules.hanHaiWater.service.IHanHaiWaterService; +import org.jeecg.modules.pay.MpWxPayService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -77,6 +79,9 @@ public class InfoApiServiceImpl implements InfoApiService { private ICheerConfService cheerConfService; @Resource private ICheerRechargeService cheerRechargeService; + //支付接口 + @Autowired + private MpWxPayService mpWxPayService; @@ -352,6 +357,7 @@ public class InfoApiServiceImpl implements InfoApiService { Page page = new Page(bean.getPageNo(), bean.getPageSize()); Page page1 = cheerWaterService.lambdaQuery() .eq(CheerWater::getUserId, hanHaiMember.getId()) + .eq(CheerWater::getState, "1") .orderByDesc(CheerWater::getCreateTime) .page(page); @@ -397,9 +403,33 @@ public class InfoApiServiceImpl implements InfoApiService { cheerWaterService.save(cheerWater); - return Result.OK("支付成功"); + + //吊起微信支付 + String s = bean.getMoney().multiply(new BigDecimal(100)).toString(); + int i1 = Double.valueOf(s).intValue(); + Object appOrder = mpWxPayService.createOrderGo( + "购买"+cheerWater.getName() , + "127.0.0.1", + cheerWater.getId(), + i1, + cheerWater.getId(), + hanHaiMember.getAppletOpenid(), + cheerWater.toString()); + + + + return Result.OK("支付成功",appOrder); } + + + + + + + + + //获取充值套餐列表 @Override public Result getRechargePage(OrderRechargeBean bean) { diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/OrderApiServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/OrderApiServiceImpl.java new file mode 100644 index 0000000..2a78cce --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiservice/impl/OrderApiServiceImpl.java @@ -0,0 +1,52 @@ +package org.jeecg.modules.apiservice.impl; + +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.apiservice.OrderApiService; +import org.jeecg.modules.pay.MpWxPayService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; + + +@Service +public class OrderApiServiceImpl implements OrderApiService { + + + //支付接口 + @Autowired + private MpWxPayService mpWxPayService; + + + + //创建订单 + @Override + public Result createOrder() + { + return null; + } + + //立即支付 + @Override + public Result payOrder() + { + + String s = new BigDecimal(0.01).multiply(new BigDecimal(100)).toString(); + int i1 = Double.valueOf(s).intValue(); + Object appOrder = mpWxPayService.createOrder( + "购买测试" , + "127.0.0.1", + System.currentTimeMillis()+"", + i1, + System.currentTimeMillis()+"", + "ozfsp7eFo_CvJdX5jl5fi4pR5AhI", + "{}"); + //返回支付结果 + return Result.OK("微信支付回调成功",appOrder); + } + + + + + +} diff --git a/jeecg-boot-module-system/src/main/resources/pay_weixin.properties b/jeecg-boot-module-system/src/main/resources/pay_weixin.properties index e61ec46..0e4cd94 100644 --- a/jeecg-boot-module-system/src/main/resources/pay_weixin.properties +++ b/jeecg-boot-module-system/src/main/resources/pay_weixin.properties @@ -1,5 +1,5 @@ -pay.mchId=1681494138 -pay.appId=wx15be4225a7e41a1e +pay.mchId=1684030364 +pay.appId=wx3c24e397e3b132ea pay.mchKey=0fdb77429ffdf206c151af76a663041c pay.keyPath=classpath:apiclient_cert.pem pay.notifyUrl=http://h5.xzaiyp.top/massage-api/post/create