From 2dcf3ff11955dc3fc78a81c3d24f2c463a1b7af4 Mon Sep 17 00:00:00 2001 From: ieaii <1069385070@qq.com> Date: Thu, 17 Oct 2024 02:32:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin-hanhai-vue/src/assets/logo.svg | Bin 13377 -> 55924 bytes admin-hanhai-vue/src/views/system/GoodsList.vue | 5 - .../src/views/system/HotelAddressList.vue | 8 +- .../src/views/system/HotelBalanceLogList.vue | 8 +- .../src/views/system/HotelBannerList.vue | 2 +- .../src/views/system/HotelConfList.vue | 8 +- .../src/views/system/HotelCouponList.vue | 2 +- .../src/views/system/HotelLeaseLogList.vue | 8 +- .../src/views/system/HotelMemberAccountList.vue | 8 +- .../src/views/system/HotelNoticeList.vue | 2 +- .../src/views/system/HotelOrderFlowList.vue | 14 +- .../src/views/system/HotelOrderList.vue | 435 +++++- .../src/views/system/HotelShopList.vue | 21 +- .../src/views/system/HotelShoppingCatList.vue | 8 +- .../src/views/system/LeaseOrderList.vue | 554 ++++++++ .../src/views/system/RefundOrderList.vue | 435 +++++- .../src/views/system/ReplaceOrderList.vue | 522 +++++-- .../src/views/system/WashOrderList.vue | 469 +++++-- .../views/system/modules/HotelOrderDetailForm.vue | 172 +++ .../modules/HotelOrderDetailModal.Style#Drawer.vue | 84 ++ .../views/system/modules/HotelOrderDetailModal.vue | 60 + .../views/system/modules/HotelOrderFlowForm.vue | 2 +- .../src/views/system/modules/LeaseOrderForm.vue | 99 ++ .../modules/LeaseOrderModal.Style#Drawer.vue | 84 ++ .../src/views/system/modules/LeaseOrderModal.vue | 66 + .../src/views/system/modules/WashOrderForm.vue | 14 +- .../src/views/system/modules/WashOrderModal.vue | 2 +- .../target/jeecg-system-cloud-api-3.2.0.jar | Bin 9792 -> 9792 bytes .../hotelleaselog/entity/HotelLeaseLog.java | 3 + .../mapper/xml/HotelLeaseLogMapper.xml | 3 +- .../controller/HotelOrderController.java | 120 +- .../modules/hotelorder/entity/HotelOrder.java | 16 + .../hotelorder/mapper/HotelOrderMapper.java | 10 + .../hotelorder/mapper/xml/HotelOrderMapper.xml | 75 + .../hotelorder/service/IHotelOrderService.java | 7 + .../service/impl/HotelOrderServiceImpl.java | 13 + .../controller/HotelOrderDetailController.java | 171 +++ .../hotelorderdetail/entity/HotelOrderDetail.java | 104 ++ .../mapper/HotelOrderDetailMapper.java | 19 + .../mapper/xml/HotelOrderDetailMapper.xml | 9 + .../service/IHotelOrderDetailService.java | 14 + .../service/impl/HotelOrderDetailServiceImpl.java | 19 + .../hotelorderdetail/vue/HotelOrderDetailList.vue | 233 ++++ .../vue/modules/HotelOrderDetailForm.vue | 167 +++ .../modules/HotelOrderDetailModal.Style#Drawer.vue | 84 ++ .../vue/modules/HotelOrderDetailModal.vue | 60 + .../hotelorderdetail/vue3/HotelOrderDetail.api.ts | 61 + .../hotelorderdetail/vue3/HotelOrderDetail.data.ts | 149 ++ .../hotelorderdetail/vue3/HotelOrderDetailList.vue | 162 +++ .../vue3/components/HotelOrderDetailModal.vue | 58 + .../hotelorderflow/entity/HotelOrderFlow.java | 1 + .../mapper/HotelOrderFlowMapper.java | 2 + .../mapper/xml/HotelOrderFlowMapper.xml | 5 + .../hotelorderlog/entity/HotelOrderLog.java | 22 +- .../hotelorderlog/mapper/HotelOrderLogMapper.java | 7 + .../mapper/xml/HotelOrderLogMapper.xml | 68 + .../service/IHotelOrderLogService.java | 6 + .../service/impl/HotelOrderLogServiceImpl.java | 11 + .../mapper/xml/HotelShoppingCatMapper.xml | 2 +- .../target/jeecg-boot-base-core-3.2.0.jar | Bin 531879 -> 566592 bytes .../xcx/conf/controller/ConfController.java | 7 + .../modules/xcx/conf/service/IConfService.java | 6 + .../xcx/conf/service/impl/ConfServiceImpl.java | 15 + .../xcx/coupon/controller/CouponController.java | 21 + .../modules/xcx/goods/req/JoinShoppingCartReq.java | 2 +- .../xcx/goods/service/impl/GoodsServiceImpl.java | 5 +- .../xcx/order/controller/OrderController.java | 26 +- .../xcx/order/req/ConfirmAcceptOrderReq.java | 5 +- .../jeecg/modules/xcx/order/req/OrderPayReq.java | 2 + .../modules/xcx/order/req/SendLogisticsReq.java | 19 + .../modules/xcx/order/service/IOrderService.java | 49 +- .../xcx/order/service/impl/OrderServiceImpl.java | 1441 ++++++++++++++++---- 72 files changed, 5713 insertions(+), 658 deletions(-) create mode 100644 admin-hanhai-vue/src/views/system/LeaseOrderList.vue create mode 100644 admin-hanhai-vue/src/views/system/modules/HotelOrderDetailForm.vue create mode 100644 admin-hanhai-vue/src/views/system/modules/HotelOrderDetailModal.Style#Drawer.vue create mode 100644 admin-hanhai-vue/src/views/system/modules/HotelOrderDetailModal.vue create mode 100644 admin-hanhai-vue/src/views/system/modules/LeaseOrderForm.vue create mode 100644 admin-hanhai-vue/src/views/system/modules/LeaseOrderModal.Style#Drawer.vue create mode 100644 admin-hanhai-vue/src/views/system/modules/LeaseOrderModal.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/controller/HotelOrderDetailController.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/entity/HotelOrderDetail.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/mapper/HotelOrderDetailMapper.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/mapper/xml/HotelOrderDetailMapper.xml create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/service/IHotelOrderDetailService.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/service/impl/HotelOrderDetailServiceImpl.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/HotelOrderDetailList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailForm.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailModal.Style#Drawer.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailModal.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetail.api.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetail.data.ts create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetailList.vue create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/components/HotelOrderDetailModal.vue create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/req/SendLogisticsReq.java diff --git a/admin-hanhai-vue/src/assets/logo.svg b/admin-hanhai-vue/src/assets/logo.svg index 676115dc1d10bd325ac076c18ccf611eec428bda..72be06d8856a2cf21172d8656244148a4e654f31 100644 GIT binary patch literal 55924 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 OnH!Vy<+D3jllL#Q$MY`$ literal 13377 zcma*O*Rr!pwoYe@)_ zROU2ej5+lm|Lq+5zm8&AoA3Cqzp;Nq|Ng5Ovv1yv)xZAsJ?XzNfB&^^$(SeocP#$( z_xSz$zx`L}KmHHFaO%JQMyK=dzpnrB z|JUSO{ja}qmiTkDE}E*|{^#4HDSprIpG*Ei{{pA{dHz|pB<+j;k|tSKE#G|vlO2m6 zIOBgg2Tc0k*D1-sLQYGu7Ryom{a^q3>pz+ysfvHT-#@RwCj7q>`2XDgKWF-%^ZXn7 z3q0zjDF5|$o@~j#|8p%ejn)5^CTl@G{?8_On$8c^w`aH&vW*l z<4W4z%%2xeIe&V-$Z@)Cme%HUKX8zLwyvZa5crrQpN!8x*K@C2>=ss|KmT8bf$+eXwJ_fPKgt|CFtfplBl4k;ydUu^#`B}d@Ek4}@*XWSBR|})5+$vIe0t>? z@%MD?4y=5w@k-D6ovJ)l#kCvF?w_1nC9c?URi{RdsPH5E!l@VDgf>`GpBShRg~!I+ zSQjb>&g3{DvZ4*21Hy@|YJ0JCx7uJG#m6IbLL)Sa$1B2u_=WB8CNu$kh}WmtGoe#o ze-_xJ<0p<4(C#sZ?SBtzafoAS!my^}5q%ew`)-%PwpNv~WMa9wA>!DlbVsJs@9yqe zExD8^DSB))PAoFJ)M-KCMaB{Ft`;`4gJowfr&Z{cQHQl|vx_IZldXGlpzIn^skD5Y zdHh8adVbFI%?HYy7VGLC>!8TO01YdGFf5bPt9M^g%)6Wm7D#CX{j_TREd!ga>Z*^) zR(>O2M55%amAPj}KSoK_U#l7^>x6K@JNm7V75GB@C91hYn6XF>fe3<9#lLUdVNb)J zB0kz&k9#KdYBolhzY z4JkQ0?)iNDc$VOpI=w99dW>%rcrbPHWEoP0wx=H>SZg>y$9g-dgnZfDJMMi9VtTe` zun5-zF$tSqVrA-eVZEorv9a-DS5C5G|Hjgjm*@}`5C^7W#n$p|=RbQVnxE~g_E#|~ zN6w(zJMPt3Bpa_@_9x>)J{mZ%dExK>uMu~(swlmhvJynwO1*KD?oMnm5y?}OW=VBF zW#BaoAHAyT@_Vk!UAwxBC*P@O25w^gy4K`@cRU5|?ga6vKRZdip*jb%`cz>(dD>?m z`#Woy`fCpE66ne^k$e7z_i~@4;N>TyDelviOs_~i-zwNp6@(2%lab#C)(s4r-=?X? zY^Jj?{bbJKgE2eiZg10-b}T}uH`w_tADFX#lCQUsTy*XIF8%|8{0<`sy3d4;CDdU) zs~jQ>n$(+;rHtQWL5c0r$S6k{0khRCHt|leyZ3hrN~$u#x>D+o9=Xhzj8)S|c#|3? z8ls$8wah2aAa7B;_9GR;Jyg$R4;1&a+;}eewQ6NqiIn0;V+oNK$G3wEc<4;hYr69J zhsQlGes2L~D91zGYptIUMOS%E z)P`Y`#gykK4jj`TEM2ywEUB{=6tu}TZZpI=6qx8Waf`4J&bdjE+sl#5dLT2&0;cD+ z06*YN-%&DlYF8WjaKD?l$_{dZnfqqFpc|1%7WjkqG6Z_sJf~gnz2zl?*2_aP=guB4 z7;#ECm$0tX$eyv_dZs5eNZ+!TwPZ)w zRUFjm>vIH&iJ%n&WF2kd?WI?r-{R29Vp2=j=!62*8I%d~^;yXAGtTdNPDmr}&DSf`GboxsVBup7cu z1heM5@hXw)Sxn?!j9n^Tc0Yt1eaV<-g%S4}FO|6D7{ZBsC$wITL4u+=$9(3<2b<9H zA~N=$nXtCqZ7ko!$KgEWPUSY(#nx#rk-hdL{(GnHiV=msIV4mJYN!-LhM4|QD-L=g z`$5dP+^|mUC}{t?ufz^CmrLP(y_y4qUpTIOq+Yqe-nG=i48!*W8Fmc)Ah1_pHRo}&-#zREe?FoexZb00 z%2(obj{(X!_0VVn7O7Wl!Gq089o#wBi{K>?Ff9bVT+W+|KP<@*=VIuo!{iCzF0BA32#mUq<-huK0B$M6%2?La{tj zy;x*exN+nFmjI0A9#5L4qLGK}Ruc)D67sK9S=_bzJS=c?0Gr2mSg86UZul-??+_`LYFs-%|&>V~Z{8sdL0}Jid-A z)^et1cD*P;8#iB_1K8ajk}2pEttesQEK)41Iq{Q2|3r@hzPny=0ioc*wCUY{3T(C* z9NTLc-Zn|93ePVGs8iu~gJ#>6&OMrf#o-b}-`1A6E~KhPg#_bj`-5stuL-^YW=4mV z9Q^yx*=rMA@yUr#M}@6#M1qn zkEzn}ASqBc;D+$+Am_y0XHm4D1^!T6*G-Yu_ z%3I|_HA|QGA8K`(J;E;H0WI)ifG^A`d=4Bh_G{Z40eQ&uzUrpfIn5|Yn`jxtp!n`y zVjYPY4GVF7lC1QCKw(4yR>X#%zVQsTH2|5uyV=0m_}KC+Sl41UFJ!~WZ4tKsN8o-J z^79_Upf~QAAY`EyD_dSjKUP)xTr`qU-EZK}Dnx!~uY&9-U#6|0}DKTE{&mB-ucFkCUn zscM8K(@tTn+SO#UH1>F^s)Cv3TVZc2f4W3}MWMJYrpqS->@4VKPSI}2*gSSSEZ`9k zr5-BUi6QBk6vUVJ3L6@JKSh^&K4?tR=7s8a-?DBpvbX^MIs9N;Mq7pWbVIQzn7=y(-m}s ztP7KgY>8SvYnTLcw~As4?&NkAHi6M`slIWS_q%ewV6;uJgy}@r@8r0~G$=${J|02B zH5TmFIgjc!j}R$96(i|2sH zQDt(?k&xlf_s_f56ac-9*Gc+&xLrEiz|MxBbA4;H7{!T~p6>A8JGHm1GL^NVL-;P4 zRGvQUNj&~rpIViRt?I-Q>P z{#;={yu5h}_t?xq4g}Xw{L&3{+JE|l&8%X?9)3TNu#FG(3-WtSJS|W8b;|Wbf!9nh z;4pxeJo)k~1nd*=&3t(hZ~y&nGpC#0gUA}L_sofRhX3j_<%{wq(lP&)poR4KdWqd^ zW-90PeLH@=-bCCqrzhy&Q$4zm+#MV~NUywiUO(8S(E0>{WR$xl_VUdSurlp`Q^3BV z?x`~_QlRzok6jsiT$;2H`{E<#=}S78P#9aWP*otWlpRQWQC|~WSq4qoo0#JFYQk(W zu)_Jff1vIC#!l*u?TX`L)0}jiPyywDfM-21J|5p~`qTt&nQ~Q_CsS_ngrK_~3@n|o zcU6$^kHzG!3`j2mP04O=)5jkrT`|mb>#$tmWbX7aVf(adJs5cId{i9hLtVt+vf=De z{BWi78O%5a5)U9t8+(-bh^wuv3N1NZB0hVJr=)?B<)vJ(TC-}rE zYu$CbcN*8!?YqwSL>0bb*Jx9O;`K%_&Ak`$JE-X*q! zsa}`c(cAp{$YK~ux>gBf!V`dUl{khFe5}0NHK?9s&Dp6d&e!|CM3v`znM+aw`=rnX zq9$dQRr1#4_h|zCt9!|ahPl8<;Z*u9@#B-IKEtk$W{dVQExZjMmkUR?3SPv~RXX#@ zp>dtYD`dNlP}aNplV$C!i|Ag$hj^N|^0u3U)i)G__qxxZ{1C82v8p) zj@Oc%#yVx<3TEpUAGfh@#ephE1Q>soYw~GJTDS_&?4PW3Tb$F)&ytVD{fG97{AJ#Z zv?m(f-f(7d%u{pE&H^x-x`JW$c%zD-wA0-}TgB?_TO>=OKNJ9-DRJ@N%R62bBV$=P zv|(0jUMuhAm{~fSzkI$jHwg- zn{~b1VR&Zw7-!v&{1)GU+OuQ@`^1BaJ|o{XOgetgWltnkgMtlNSnT->$^2FB`{C{^ z=ZNSIpu(@Mk-%0AH)}h6Z((vA>Gcm5`BGP;@k3mJs64+=;vvd{KWY>t?c_jK<8-A+ z4VXV*9vBtHnfr_6UtCnhEqw9zbF7OfPI}&WGFRWl$LTvnNtIH?QgR4~Y&t+18zKGe za&X!D9>wa17~lQ?gj=hUsj-E_c0PWw?_dOl=V^DTK)ssMv!I)O2YC`HFD#QoZbO>) zt%+<51y*S{*vDw{{Off~Sawm~ryjy^ATa<%wPw9`HKo^qmoJ|=o-M(?UZD(_)1Fyn z|Koj8>-Jp7rpAY+8t#XF$ad4%fLsOZ?p_q?L>b?B``jszU4JlR8s3${l%^Mb{%VHa z+=kVu*R58{VN%^P!_TC!9Y|UZxTDq2_^gR#ZtmqsjU8@NA^^93Z;KH~u3_hU5hDwn zotXj(ZGItvEWZy1|LI{2t^tY6;gu?(EYl|q@OhY%qII`K>4l5MPG8q+q_G)DXus3w zW6yZJ?CF6QuP^pVN>!tN#801EyH-Q33fWqM!}kgy`&XVHj4OidW=dFXqYng#kp70# z`N&yU{_;xLGcd#SMdA)zv!QG8sc@uAs8yq2O7giMG>+r#G(!T`t@(P;3<6k*bUU|o zvaA`(Px6jk_a z?_Rrq7r)zT50-k;>Wb{vY9!fymHdhs(}pF6xYNVF9)}x-_;xH%-XG^Q94QXbcKuJ{;M7wosZP?}ATpP>vw5ZmMD2k@ z%om{}7{G&dJoJm4TWK9$$-At7*Rs_v$`i)GQ{#xt+Jzm_hg@91L5Fq+e21gJimo6VQ(O{8A{L!7bmt2x5(t3m+xg+O^S0;&aZg07#}v>Ll+cQaKsA~s@kmHQzIVY}Ph|T2iE8yu|aCjfyz013YHo(^HgE&&n@BDTyAUlxl$!dYGvF9RWd0`p6u7b_#+z}LO& zlRXdhX$IG4MD?6CyunEkAS3?n=zGgqZF=a`oC8eFI-p+LUO$3ln$qiP+!;1Yfq@iU zEjQv^N+p%sU8TbV8Hh`#boYq1oBSqoRpfpbZsqhz{RM3egmsRD)7yoNC1x)_G_KSSW;ua3zhTFDXDczinJrouj}na9qU)>2^S zJoh-0-{$x0RX-hSJ`%g92$_@-Ck+;yQ1!r9ny%*?9@+Qg!CA?(Gqe8SVZf>{vIYF( zF0j6--f@kmXB#k8;Aler86kC(+btYvV`hAo{^l-{njU*`Q^OK?8VAGg`P&WLl&w@m zsea6!Ckbk@X%Ya%RxWjNz;{<>3FDSz$oM_uinsuHR=l@f_!%-zU)6C-8-F6OO8_6W zK{V>?ybi77$LDN9b+4DsuZzFTYknzY?cKjEAHOZMAf>Sr%QXkl3A^4YVF24-v&s<8 zC|nItx`LgfOse`^yDe1T$@Vx3$?eC-q$u%yG%Kq6#wfmMCW5dOqw$M4&-+kCv^H8sfltmh`4o9)!%57 zuZg`>)JBPk3b&GLA2K2 zaYA^){?TMxG3hFRK2%$79)01u(FEj@!;*B2Q&ku5_CfYUSn}jceS*S_e%=L|1L+AM zB=cc3)Ibb^v1G>gtnbYMHAWQz(UO7h;`_jkBBU{g05!4n^IfEp3Gx~&Tq<2F>o`3~ z9IO{kTh}-HoqMbP)bULN>XifPQF~ubod?~Gn^KheGfSi`sILDuuU`N^j+B(CG@r3c zHp1wzWm}|?Sv=gnN27OcygL!BY)fk599Ln2MG4H~P)?0M0eOk5LIWbVhIIEJSjBC= z<m^m=ZAP=;7c0T&4-B-rrD+t;0bz<3u6#)>|e`3M3N zV&+GxG<{%5M)6JVCwVdsPLDZ)E>xPmB-Ce^w0!S`NBQ?kH#*J$v0*DfnM28cUm(jn z;x2`JWA`J39y>_aFWcVX;i|TFHcb*n27yt#6$kQTFSs{jp(K#KEX$+s%$$$I+KmEZ zK;6HxtAUKyxcQB?!$F|Ppzf!GdDVwjv0mpRd^0TkYjuF7Ol)=#+C6Y%R__y1dLMQU z-h)zD=j_!r<1;k77-jZ2;)Gpkh``@tdlEaSCWbF$`8q?-ySu(kvI`ik_!=`w(m>mQ zhefjs$bZ&Od3+^r6D`-hjU>BNf&&Ue|Y~nN5-HN?Ov$ z^h16H-sU@V#yHUaEqpSO5~krj>tDu4RVN?iqj%(xWoAKovG}fbbUF8`vL~Dv#cHd6 zMDPoPK|@P$JFFr{w51LlY$EguzoR+K?dVtap2!#1^LN%9ms~KRyrA{_9yE_3=h-Sf zCpXv~5a3-2E=TL3~S&J9b10k#|9m>TR@$5Gf`c z&;dy4&`AifTy_|Y^%=x=h`T|@6-^`jT2xkn!q zApA*CN&YTR=#iGHd1su{!&&aPD~QAN^LP0n()zXDlm8h0x&2U z|41}wgTNX=2hiX|0=70PdyDwH=RTZ5Ae4!2<^y_sU)sXB!@++VEw8(8Qn4P(*GA(FN0&GA1?Ez5-aQH9#zY1(`kro(_h^!QbkUohvXU0PIZ+$X@Hw$_WgL z@;R0Z|Ua-wW zr;1Z)i8%C!<^)2ds)1_sOf+jr92u4>`Pv zcERvDk)9g&ynx*Q$Qdllu}qwxiR7Kv2cFs!hyw*`XT~RFruc+=X_`h9(|~-6%_KsO zK!|RZ2q+f#Du2W?`qfMl;ciG<3WMAhykpQ71FrR}j^CM>TKJ|X^GiJwM|>E{YwN}r z^~DdOEwA@>Gz}>JIH39KDNDlR%T;U{DV%yg-~@U2=t)DVUyLtutg~v?ZLb+T{YzRA zC`K%j_aP1*P%Z)JZ@7+9zk_^$O^QVCGh-em<(FE06%0lH8B`)r2qut*pi3^jJ9bTX z?)Uch22|mI>IG~_d!1CS2Zb?WXN(RHZHP?m7|T=Z%a2w+&P?25sZCzKAfqm%TM1UO z`Z*atyAW}pVK$vUzLjz?KP_&q1 z)U)1yjNGPA6A8bz+?;<(-=MF^16I7>zfSmCD<_-hlQU5lP6bMUVM!pkcYGSbtc?t&=K>&8wZ+q*p zQL_P`bz-bUPER@GcQDV)ezjbK-1Nx;HZ7!VwL#W7y4v(wL+idk33Wg9T#mUNR7lra zFoxVM-!Z(lE*&CBT_;j6OD;F_)FZpZnI=1#MYDwT%P#lKGsc>Tlnex_@QiGnEt-WZ<)SKcgmjJl7phlonf2MbJ<6LSMx=! z=O4`nhmbt#DHq}lmvNTNw;At4zCyk2=Q?v}J5IS4W%o?Octt?-2Fw+s3VMcK^7w-Q zdNL0L4o;HFGcFqTlDi-4_ikyHnCV11B4_xitR4vxwqwa(WusLb_dVd+6ZwMJ7Hko#_lf zu%BZ#nqQuPKJz8t&jOY+j!A3?Z+y_az^(D|h7sSPc|eJkT<0P`1Wl{iSFj(%9#hS_ z4|jrW_iJopvj5!sZGw{8Ns>rVroqXJXQ%L$Oh8lmqUz1yZOtwB6@ zxP10tZTh?XhBwf9+tqWiu+3wj3N08$J~Co-h_b&n1kxV2lpWLfBJSPKtI$cJmx}_; zRlg>5T-@{ir>f1wd2*K>KlQiHm%89_kLi@AVivZ*q3w|j(= zr+gqRc%{GUNA&xtggo7CW!OELOZY@ad~1L&r5MnkOF|IKT2<95@89ik)_9hBNgcgk z!=2rhpB(lzr@u9oc^VRF3Hgd@c`1+=GJ*b9BMAJ_S zB2ITKE1=0+yL@0ypDFYjvG1Nj`EW!?;X&6ar>eXwIy&F?&9c6~-fz|7PDtuZ0qqWv zf2e6Et?oOpBhZG;+tn|RUs3!2TnGAwlqPyckUNr~%PCA^pI4r+CJ}XvxapC^F`vTq zm&@Mzu6;&}zB}qquf~s)e!HBNn5?`-#&O*xWqT|AeXvD`?k{nFLb=&B6Q#>L%3wfL z6@epcs@xKePFP`P*y@=H$5pK8laBDANWyLn5n6}8FW>>)M5tH^s@xFiV`lIy1I~XA z&x-w$;qIXUvdBG0tT<~uU}ew_uDuSHX9D#PYHCW7HCiKIpkm} zKZ&i4NqP~g(!-i1omgI7MeecYq@9ZYqKk{Fh@+BOu&9Rbzf56@ihXkts1fVi(2<9e zmVrA!J*b0l6`cI(7{8TQW_4y{R*VqY=2N_zTe&&VM*dp4RDnxSn|v9s8_P2PHbE8r z_pmCghh5aMVnEuUd3WJwwJggVGPKo9Ct}cE$1ui&=H?_E@{X+mf%A-p;nKAP)cCP* zuhc?x0&rm$nNkac@Ai_X`Uja0&|d(rc>!9)5%_$VHT=ec5-6C zEt-9@?aVZZm)d&1dk!FfcX?yFossF4TC+b)UVyPG5XOK1r_ugnd}UomjSkdMSLpxq zHyM2{1`(hzbuRl&`_*T4S$3jx2+`STl_{|fzgf@UrR diff --git a/admin-hanhai-vue/src/views/system/GoodsList.vue b/admin-hanhai-vue/src/views/system/GoodsList.vue index e888f06..d343906 100644 --- a/admin-hanhai-vue/src/views/system/GoodsList.vue +++ b/admin-hanhai-vue/src/views/system/GoodsList.vue @@ -104,11 +104,6 @@ - - - - - 查询 diff --git a/admin-hanhai-vue/src/views/system/HotelAddressList.vue b/admin-hanhai-vue/src/views/system/HotelAddressList.vue index b84cf06..f2aed78 100644 --- a/admin-hanhai-vue/src/views/system/HotelAddressList.vue +++ b/admin-hanhai-vue/src/views/system/HotelAddressList.vue @@ -4,6 +4,12 @@
+ + + + + +
@@ -17,7 +23,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelBalanceLogList.vue b/admin-hanhai-vue/src/views/system/HotelBalanceLogList.vue index b6e8316..8028a50 100644 --- a/admin-hanhai-vue/src/views/system/HotelBalanceLogList.vue +++ b/admin-hanhai-vue/src/views/system/HotelBalanceLogList.vue @@ -4,6 +4,12 @@
+ + + + + +
@@ -17,7 +23,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelBannerList.vue b/admin-hanhai-vue/src/views/system/HotelBannerList.vue index 48d7cd6..ddcc3a7 100644 --- a/admin-hanhai-vue/src/views/system/HotelBannerList.vue +++ b/admin-hanhai-vue/src/views/system/HotelBannerList.vue @@ -17,7 +17,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelConfList.vue b/admin-hanhai-vue/src/views/system/HotelConfList.vue index 7d30e81..8400e10 100644 --- a/admin-hanhai-vue/src/views/system/HotelConfList.vue +++ b/admin-hanhai-vue/src/views/system/HotelConfList.vue @@ -4,6 +4,12 @@
+ + + + + +
@@ -17,7 +23,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelCouponList.vue b/admin-hanhai-vue/src/views/system/HotelCouponList.vue index d9d28cf..8e0f40d 100644 --- a/admin-hanhai-vue/src/views/system/HotelCouponList.vue +++ b/admin-hanhai-vue/src/views/system/HotelCouponList.vue @@ -17,7 +17,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelLeaseLogList.vue b/admin-hanhai-vue/src/views/system/HotelLeaseLogList.vue index 305d07a..15736a8 100644 --- a/admin-hanhai-vue/src/views/system/HotelLeaseLogList.vue +++ b/admin-hanhai-vue/src/views/system/HotelLeaseLogList.vue @@ -4,6 +4,12 @@
+ + + + + +
@@ -17,7 +23,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelMemberAccountList.vue b/admin-hanhai-vue/src/views/system/HotelMemberAccountList.vue index 0a67a19..97d5ab7 100644 --- a/admin-hanhai-vue/src/views/system/HotelMemberAccountList.vue +++ b/admin-hanhai-vue/src/views/system/HotelMemberAccountList.vue @@ -4,6 +4,12 @@
+ + + + + +
@@ -17,7 +23,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelNoticeList.vue b/admin-hanhai-vue/src/views/system/HotelNoticeList.vue index 9013c71..a278ade 100644 --- a/admin-hanhai-vue/src/views/system/HotelNoticeList.vue +++ b/admin-hanhai-vue/src/views/system/HotelNoticeList.vue @@ -17,7 +17,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelOrderFlowList.vue b/admin-hanhai-vue/src/views/system/HotelOrderFlowList.vue index 5218098..f54783a 100644 --- a/admin-hanhai-vue/src/views/system/HotelOrderFlowList.vue +++ b/admin-hanhai-vue/src/views/system/HotelOrderFlowList.vue @@ -4,6 +4,12 @@
+ + + + + +
@@ -17,7 +23,7 @@ - + 删除 @@ -134,12 +140,14 @@ { title:'订单类型', align:"center", - dataIndex: 'pid' + dataIndex: 'pid_dictText', + sorter: true, }, { title:'排序', align:"center", - dataIndex: 'sort' + dataIndex: 'sort', + sorter: true, }, { title:'是否删除', diff --git a/admin-hanhai-vue/src/views/system/HotelOrderList.vue b/admin-hanhai-vue/src/views/system/HotelOrderList.vue index 5eda095..fc17eec 100644 --- a/admin-hanhai-vue/src/views/system/HotelOrderList.vue +++ b/admin-hanhai-vue/src/views/system/HotelOrderList.vue @@ -1,73 +1,95 @@ diff --git a/admin-hanhai-vue/src/views/system/HotelShopList.vue b/admin-hanhai-vue/src/views/system/HotelShopList.vue index b046f86..ea951a3 100644 --- a/admin-hanhai-vue/src/views/system/HotelShopList.vue +++ b/admin-hanhai-vue/src/views/system/HotelShopList.vue @@ -4,6 +4,24 @@
+ + + + + + + + + + + + + + + + + +
@@ -17,7 +35,8 @@ - + + 删除 diff --git a/admin-hanhai-vue/src/views/system/HotelShoppingCatList.vue b/admin-hanhai-vue/src/views/system/HotelShoppingCatList.vue index 5e9be5c..65f9f66 100644 --- a/admin-hanhai-vue/src/views/system/HotelShoppingCatList.vue +++ b/admin-hanhai-vue/src/views/system/HotelShoppingCatList.vue @@ -4,6 +4,12 @@
+ + + + + +
@@ -17,7 +23,7 @@ - + 删除 diff --git a/admin-hanhai-vue/src/views/system/LeaseOrderList.vue b/admin-hanhai-vue/src/views/system/LeaseOrderList.vue new file mode 100644 index 0000000..ee1828f --- /dev/null +++ b/admin-hanhai-vue/src/views/system/LeaseOrderList.vue @@ -0,0 +1,554 @@ + + + + \ No newline at end of file diff --git a/admin-hanhai-vue/src/views/system/RefundOrderList.vue b/admin-hanhai-vue/src/views/system/RefundOrderList.vue index 9362cc0..5dced2f 100644 --- a/admin-hanhai-vue/src/views/system/RefundOrderList.vue +++ b/admin-hanhai-vue/src/views/system/RefundOrderList.vue @@ -1,73 +1,95 @@ diff --git a/admin-hanhai-vue/src/views/system/ReplaceOrderList.vue b/admin-hanhai-vue/src/views/system/ReplaceOrderList.vue index 950065b..1b69058 100644 --- a/admin-hanhai-vue/src/views/system/ReplaceOrderList.vue +++ b/admin-hanhai-vue/src/views/system/ReplaceOrderList.vue @@ -1,76 +1,109 @@ diff --git a/admin-hanhai-vue/src/views/system/WashOrderList.vue b/admin-hanhai-vue/src/views/system/WashOrderList.vue index d3216f2..6c17a43 100644 --- a/admin-hanhai-vue/src/views/system/WashOrderList.vue +++ b/admin-hanhai-vue/src/views/system/WashOrderList.vue @@ -1,84 +1,102 @@ diff --git a/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailForm.vue b/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailForm.vue new file mode 100644 index 0000000..c654cec --- /dev/null +++ b/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailForm.vue @@ -0,0 +1,172 @@ + + + \ No newline at end of file diff --git a/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailModal.Style#Drawer.vue b/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailModal.Style#Drawer.vue new file mode 100644 index 0000000..de93c53 --- /dev/null +++ b/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailModal.vue b/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailModal.vue new file mode 100644 index 0000000..19dea2f --- /dev/null +++ b/admin-hanhai-vue/src/views/system/modules/HotelOrderDetailModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/admin-hanhai-vue/src/views/system/modules/HotelOrderFlowForm.vue b/admin-hanhai-vue/src/views/system/modules/HotelOrderFlowForm.vue index 832512d..aeece5c 100644 --- a/admin-hanhai-vue/src/views/system/modules/HotelOrderFlowForm.vue +++ b/admin-hanhai-vue/src/views/system/modules/HotelOrderFlowForm.vue @@ -15,7 +15,7 @@
- + diff --git a/admin-hanhai-vue/src/views/system/modules/LeaseOrderForm.vue b/admin-hanhai-vue/src/views/system/modules/LeaseOrderForm.vue new file mode 100644 index 0000000..d78030e --- /dev/null +++ b/admin-hanhai-vue/src/views/system/modules/LeaseOrderForm.vue @@ -0,0 +1,99 @@ + + + \ No newline at end of file diff --git a/admin-hanhai-vue/src/views/system/modules/LeaseOrderModal.Style#Drawer.vue b/admin-hanhai-vue/src/views/system/modules/LeaseOrderModal.Style#Drawer.vue new file mode 100644 index 0000000..a65baa9 --- /dev/null +++ b/admin-hanhai-vue/src/views/system/modules/LeaseOrderModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/admin-hanhai-vue/src/views/system/modules/LeaseOrderModal.vue b/admin-hanhai-vue/src/views/system/modules/LeaseOrderModal.vue new file mode 100644 index 0000000..e07bd67 --- /dev/null +++ b/admin-hanhai-vue/src/views/system/modules/LeaseOrderModal.vue @@ -0,0 +1,66 @@ + + + \ No newline at end of file diff --git a/admin-hanhai-vue/src/views/system/modules/WashOrderForm.vue b/admin-hanhai-vue/src/views/system/modules/WashOrderForm.vue index 2d4e7c7..54fc533 100644 --- a/admin-hanhai-vue/src/views/system/modules/WashOrderForm.vue +++ b/admin-hanhai-vue/src/views/system/modules/WashOrderForm.vue @@ -5,14 +5,14 @@ - - - - - - + + + + + + @@ -54,7 +54,7 @@ add: "/hotelorder/hotelOrder/add", edit: "/hotelorder/hotelOrder/edit", queryById: "/hotelorder/hotelOrder/queryById", - audit: "/hotelorder/hotelOrder/damage/audit" + audit: "/hotelorder/hotelOrder/take" } } }, diff --git a/admin-hanhai-vue/src/views/system/modules/WashOrderModal.vue b/admin-hanhai-vue/src/views/system/modules/WashOrderModal.vue index e57d3ac..92d332e 100644 --- a/admin-hanhai-vue/src/views/system/modules/WashOrderModal.vue +++ b/admin-hanhai-vue/src/views/system/modules/WashOrderModal.vue @@ -44,7 +44,7 @@ audit (record) { this.visible=true this.$nextTick(()=>{ - this.$refs.realForm.audit(record); + this.$refs.realForm.edit(record); }) }, close () { diff --git a/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/target/jeecg-system-cloud-api-3.2.0.jar b/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/target/jeecg-system-cloud-api-3.2.0.jar index 4a08719410d4479d7b8dd0cc03b930824e0fd824..433bbec5545fcd9d93a2b7f14309c53653811e4b 100644 GIT binary patch delta 194 zcmX@$bHIl;z?+$ci-CcIfq_pra3Ze?GmzS762}OlCr@QG2h-;n?ZLDllLMFzVbTKA zjZ98p`WRCrh~BKk+|2}LY+!xI17<7~lHmg@IiO$y7Wl592Qgbi$sH_Fq~s5#k0=Fz iX>nyMFdd>C1g2LiXM$-_l{_%rrjh}oH-A*|X9NIZz8V>GmzS762}OlCr@QG2h-;n?ZLDllLMFzVbTKA zjZ98p`WRCrh~BKk+|2}LY+!xI17<7~lHmg@IiO$y7Wl592Qgbi$sH_Fq~s5#k0=Fz iX>nyMFdd>C1g2LiXM$-_l{_%rrjh}oH-A*|X9NHTKR-AC diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/entity/HotelLeaseLog.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/entity/HotelLeaseLog.java index 6adf5c7..84bafb1 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/entity/HotelLeaseLog.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/entity/HotelLeaseLog.java @@ -103,4 +103,7 @@ public class HotelLeaseLog implements Serializable { private BigDecimal zujin; @TableField(exist = false) private BigDecimal washPrice; + @TableField(exist = false) + private String isWash; + private String orderDetailId; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/mapper/xml/HotelLeaseLogMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/mapper/xml/HotelLeaseLogMapper.xml index 221d53a..56052d5 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/mapper/xml/HotelLeaseLogMapper.xml +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelleaselog/mapper/xml/HotelLeaseLogMapper.xml @@ -6,7 +6,8 @@ SELECT a.*, (SELECT item_text from sys_dict_item where dict_id = (select id from sys_dict where dict_code = 'order_status') and item_value = a.status) status_dictText, @@ -16,4 +62,33 @@ FROM hotel_order a WHERE a.del_flag = 0 AND a.user_id = #{userId} AND a.id = #{id} + + + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorder/service/IHotelOrderService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorder/service/IHotelOrderService.java index 82a2c50..a4e6ad6 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorder/service/IHotelOrderService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorder/service/IHotelOrderService.java @@ -1,8 +1,11 @@ package org.jeecg.modules.hotelorder.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.hotelorder.entity.HotelOrder; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.hotelorderlog.entity.HotelOrderLog; /** * @Description: hotel_order @@ -15,4 +18,8 @@ public interface IHotelOrderService extends IService { HotelOrder getOrderOne(String id, String userId); HotelOrder getOrderOne2(String id, String userId); + + IPage getOrderLogPage(Page page, String userId, Integer type, String uid); + + HotelOrder getOrderByUserIdById(String userId,String id); } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorder/service/impl/HotelOrderServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorder/service/impl/HotelOrderServiceImpl.java index 2eef055..829ce23 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorder/service/impl/HotelOrderServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorder/service/impl/HotelOrderServiceImpl.java @@ -1,8 +1,11 @@ package org.jeecg.modules.hotelorder.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.hotelorder.entity.HotelOrder; import org.jeecg.modules.hotelorder.mapper.HotelOrderMapper; import org.jeecg.modules.hotelorder.service.IHotelOrderService; +import org.jeecg.modules.hotelorderlog.entity.HotelOrderLog; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -25,4 +28,14 @@ public class HotelOrderServiceImpl extends ServiceImpl getOrderLogPage(Page page, String userId, Integer type, String uid) { + return baseMapper.getOrderLogPage(page, userId, type, uid); + } + + @Override + public HotelOrder getOrderByUserIdById(String userId, String id) { + return baseMapper.getOrderByUserIdById(userId, id); + } } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/controller/HotelOrderDetailController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/controller/HotelOrderDetailController.java new file mode 100644 index 0000000..60ee877 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/controller/HotelOrderDetailController.java @@ -0,0 +1,171 @@ +package org.jeecg.modules.hotelorderdetail.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.hotelorderdetail.entity.HotelOrderDetail; +import org.jeecg.modules.hotelorderdetail.service.IHotelOrderDetailService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: hotel_order_detail + * @Author: jeecg-boot + * @Date: 2024-10-15 + * @Version: V1.0 + */ +@Api(tags="hotel_order_detail") +@RestController +@RequestMapping("/hotelorderdetail/hotelOrderDetail") +@Slf4j +public class HotelOrderDetailController extends JeecgController { + @Autowired + private IHotelOrderDetailService hotelOrderDetailService; + + /** + * 分页列表查询 + * + * @param hotelOrderDetail + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "hotel_order_detail-分页列表查询") + @ApiOperation(value="hotel_order_detail-分页列表查询", notes="hotel_order_detail-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(HotelOrderDetail hotelOrderDetail, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(hotelOrderDetail, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = hotelOrderDetailService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param hotelOrderDetail + * @return + */ + @AutoLog(value = "hotel_order_detail-添加") + @ApiOperation(value="hotel_order_detail-添加", notes="hotel_order_detail-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody HotelOrderDetail hotelOrderDetail) { + hotelOrderDetailService.save(hotelOrderDetail); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param hotelOrderDetail + * @return + */ + @AutoLog(value = "hotel_order_detail-编辑") + @ApiOperation(value="hotel_order_detail-编辑", notes="hotel_order_detail-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody HotelOrderDetail hotelOrderDetail) { + hotelOrderDetailService.updateById(hotelOrderDetail); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "hotel_order_detail-通过id删除") + @ApiOperation(value="hotel_order_detail-通过id删除", notes="hotel_order_detail-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + hotelOrderDetailService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "hotel_order_detail-批量删除") + @ApiOperation(value="hotel_order_detail-批量删除", notes="hotel_order_detail-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.hotelOrderDetailService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "hotel_order_detail-通过id查询") + @ApiOperation(value="hotel_order_detail-通过id查询", notes="hotel_order_detail-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + HotelOrderDetail hotelOrderDetail = hotelOrderDetailService.getById(id); + if(hotelOrderDetail==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(hotelOrderDetail); + } + + /** + * 导出excel + * + * @param request + * @param hotelOrderDetail + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, HotelOrderDetail hotelOrderDetail) { + return super.exportXls(request, hotelOrderDetail, HotelOrderDetail.class, "hotel_order_detail"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, HotelOrderDetail.class); + } + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/entity/HotelOrderDetail.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/entity/HotelOrderDetail.java new file mode 100644 index 0000000..5b6a78d --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/entity/HotelOrderDetail.java @@ -0,0 +1,104 @@ +package org.jeecg.modules.hotelorderdetail.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: hotel_order_detail + * @Author: jeecg-boot + * @Date: 2024-10-15 + * @Version: V1.0 + */ +@Data +@TableName("hotel_order_detail") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="hotel_order_detail对象", description="hotel_order_detail") +public class HotelOrderDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**订单编号*/ + @Excel(name = "订单编号", width = 15) + @ApiModelProperty(value = "订单编号") + private java.lang.String orderId; + /**商品编号*/ + @Excel(name = "商品编号", width = 15) + @ApiModelProperty(value = "商品编号") + private java.lang.String goodsId; + /**规格编号*/ + @Excel(name = "规格编号", width = 15) + @ApiModelProperty(value = "规格编号") + private java.lang.String skuId; + /**商品名*/ + @Excel(name = "商品名", width = 15) + @ApiModelProperty(value = "商品名") + private java.lang.String goodsName; + /**商品图*/ + @Excel(name = "商品图", width = 15) + @ApiModelProperty(value = "商品图") + private java.lang.String pic; + /**规格*/ + @Excel(name = "规格", width = 15) + @ApiModelProperty(value = "规格") + private java.lang.String sku; + /**押金*/ + @Excel(name = "押金", width = 15) + @ApiModelProperty(value = "押金") + private java.math.BigDecimal deposit; + /**租金*/ + @Excel(name = "租金", width = 15) + @ApiModelProperty(value = "租金") + private java.math.BigDecimal rentPay; + /**水洗费用*/ + @Excel(name = "水洗费用", width = 15) + @ApiModelProperty(value = "水洗费用") + private java.math.BigDecimal washPay; + /**优惠金额*/ + @Excel(name = "优惠金额", width = 15) + @ApiModelProperty(value = "优惠金额") + private java.math.BigDecimal discountPrice; + /**是否删除*/ + @TableLogic + @Excel(name = "是否删除", width = 15, dicCode = "is_delete") + @Dict(dicCode = "is_delete") + @ApiModelProperty(value = "是否删除") + private java.lang.Integer delFlag; + /**创建时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private java.util.Date createTime; + /**修改时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "修改时间") + private java.util.Date updateTime; + private Integer num; + /**应付金额*/ + private BigDecimal originalPrice; + /**实付金额*/ + private BigDecimal orderPay; + /**分类id*/ + private String categoryId; + private String leaseId; + /**0正常 1换货*/ + private Integer status; + private String orderDetailId; +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/mapper/HotelOrderDetailMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/mapper/HotelOrderDetailMapper.java new file mode 100644 index 0000000..bc41591 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/mapper/HotelOrderDetailMapper.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.hotelorderdetail.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.hotelorderdetail.entity.HotelOrderDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: hotel_order_detail + * @Author: jeecg-boot + * @Date: 2024-10-15 + * @Version: V1.0 + */ +public interface HotelOrderDetailMapper extends BaseMapper { + + List getOrderDetailList(@Param("id") String id); + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/mapper/xml/HotelOrderDetailMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/mapper/xml/HotelOrderDetailMapper.xml new file mode 100644 index 0000000..72859bd --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/mapper/xml/HotelOrderDetailMapper.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/service/IHotelOrderDetailService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/service/IHotelOrderDetailService.java new file mode 100644 index 0000000..4ea24c7 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/service/IHotelOrderDetailService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.hotelorderdetail.service; + +import org.jeecg.modules.hotelorderdetail.entity.HotelOrderDetail; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: hotel_order_detail + * @Author: jeecg-boot + * @Date: 2024-10-15 + * @Version: V1.0 + */ +public interface IHotelOrderDetailService extends IService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/service/impl/HotelOrderDetailServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/service/impl/HotelOrderDetailServiceImpl.java new file mode 100644 index 0000000..8f401dd --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/service/impl/HotelOrderDetailServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.hotelorderdetail.service.impl; + +import org.jeecg.modules.hotelorderdetail.entity.HotelOrderDetail; +import org.jeecg.modules.hotelorderdetail.mapper.HotelOrderDetailMapper; +import org.jeecg.modules.hotelorderdetail.service.IHotelOrderDetailService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: hotel_order_detail + * @Author: jeecg-boot + * @Date: 2024-10-15 + * @Version: V1.0 + */ +@Service +public class HotelOrderDetailServiceImpl extends ServiceImpl implements IHotelOrderDetailService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/HotelOrderDetailList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/HotelOrderDetailList.vue new file mode 100644 index 0000000..d2777c5 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/HotelOrderDetailList.vue @@ -0,0 +1,233 @@ + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailForm.vue new file mode 100644 index 0000000..f0a0e47 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailForm.vue @@ -0,0 +1,167 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailModal.Style#Drawer.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailModal.Style#Drawer.vue new file mode 100644 index 0000000..de93c53 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailModal.vue new file mode 100644 index 0000000..19dea2f --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue/modules/HotelOrderDetailModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetail.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetail.api.ts new file mode 100644 index 0000000..750d608 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetail.api.ts @@ -0,0 +1,61 @@ +import {defHttp} from '/@/utils/http/axios'; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/hotelorderdetail/hotelOrderDetail/list', + save='/hotelorderdetail/hotelOrderDetail/add', + edit='/hotelorderdetail/hotelOrderDetail/edit', + deleteOne = '/hotelorderdetail/hotelOrderDetail/delete', + deleteBatch = '/hotelorderdetail/hotelOrderDetail/deleteBatch', + importExcel = '/hotelorderdetail/hotelOrderDetail/importExcel', + exportXls = '/hotelorderdetail/hotelOrderDetail/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetail.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetail.data.ts new file mode 100644 index 0000000..1702519 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetail.data.ts @@ -0,0 +1,149 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '订单编号', + align:"center", + dataIndex: 'orderId' + }, + { + title: '商品编号', + align:"center", + dataIndex: 'goodsId' + }, + { + title: '规格编号', + align:"center", + dataIndex: 'skuId' + }, + { + title: '商品名', + align:"center", + dataIndex: 'goodsName' + }, + { + title: '商品图', + align:"center", + dataIndex: 'goodsPic', + customRender:render.renderAvatar, + }, + { + title: '规格', + align:"center", + dataIndex: 'sku' + }, + { + title: '押金', + align:"center", + dataIndex: 'depositPrice' + }, + { + title: '租金', + align:"center", + dataIndex: 'rentPrice' + }, + { + title: '水洗费用', + align:"center", + dataIndex: 'washPrice' + }, + { + title: '优惠金额', + align:"center", + dataIndex: 'discountPrice' + }, + { + title: '是否删除', + align:"center", + dataIndex: 'delFlag_dictText' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '订单编号', + field: 'orderId', + component: 'Input', + }, + { + label: '商品编号', + field: 'goodsId', + component: 'Input', + }, + { + label: '规格编号', + field: 'skuId', + component: 'Input', + }, + { + label: '商品名', + field: 'goodsName', + component: 'Input', + }, + { + label: '商品图', + field: 'goodsPic', + component: 'JImageUpload', + componentProps:{ + }, + }, + { + label: '规格', + field: 'sku', + component: 'Input', + }, + { + label: '押金', + field: 'depositPrice', + component: 'InputNumber', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入押金!'}, + ]; + }, + }, + { + label: '租金', + field: 'rentPrice', + component: 'InputNumber', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入租金!'}, + ]; + }, + }, + { + label: '水洗费用', + field: 'washPrice', + component: 'InputNumber', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入水洗费用!'}, + ]; + }, + }, + { + label: '优惠金额', + field: 'discountPrice', + component: 'InputNumber', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入优惠金额!'}, + ]; + }, + }, + { + label: '是否删除', + field: 'delFlag', + component: 'JDictSelectTag', + componentProps:{ + dictCode:"is_delete" + }, + }, +]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetailList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetailList.vue new file mode 100644 index 0000000..700a011 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/HotelOrderDetailList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/components/HotelOrderDetailModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/components/HotelOrderDetailModal.vue new file mode 100644 index 0000000..875b117 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderdetail/vue3/components/HotelOrderDetailModal.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/entity/HotelOrderFlow.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/entity/HotelOrderFlow.java index 45b1a28..6a6e79b 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/entity/HotelOrderFlow.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/entity/HotelOrderFlow.java @@ -44,6 +44,7 @@ public class HotelOrderFlow implements Serializable { @ApiModelProperty(value = "value") private java.lang.Integer value; /**订单类型*/ + @Dict(dicCode = "hotel_order_type") @Excel(name = "订单类型", width = 15) @ApiModelProperty(value = "订单类型") private java.lang.Integer pid; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/mapper/HotelOrderFlowMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/mapper/HotelOrderFlowMapper.java index ce2a2d2..0a70286 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/mapper/HotelOrderFlowMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/mapper/HotelOrderFlowMapper.java @@ -14,4 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface HotelOrderFlowMapper extends BaseMapper { + List getOrderFlowList(@Param("type") Integer type); + } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/mapper/xml/HotelOrderFlowMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/mapper/xml/HotelOrderFlowMapper.xml index 61569b7..6a2fdbd 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/mapper/xml/HotelOrderFlowMapper.xml +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderflow/mapper/xml/HotelOrderFlowMapper.xml @@ -2,4 +2,9 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/entity/HotelOrderLog.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/entity/HotelOrderLog.java index f748c17..72e676a 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/entity/HotelOrderLog.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/entity/HotelOrderLog.java @@ -4,12 +4,13 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableLogic; -import com.baomidou.mybatisplus.annotation.TableName; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.modules.hotelorder.entity.HotelOrder; +import org.jeecg.modules.hotelorderflow.entity.HotelOrderFlow; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecg.common.aspect.annotation.Dict; @@ -62,4 +63,17 @@ public class HotelOrderLog implements Serializable { private java.util.Date updateTime; /**购买人*/ private String userId; + /**优惠后的支付金额*/ + private BigDecimal discountOrderPay; + /**类型 0租赁 1水洗 2破损 3退货*/ + @Dict(dicCode = "hotel_order_type") + @Excel(name = "类型 0租赁 1水洗 2破损 3退货", width = 15) + @ApiModelProperty(value = "类型 0租赁 1水洗 2破损 3退货") + private Integer type; + private String shopId; + @TableField(exist = false) + private List details; + @TableField(exist = false) + private List hotelOrderFlows; + private String payInfo; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/mapper/HotelOrderLogMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/mapper/HotelOrderLogMapper.java index 5f2887f..bff2297 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/mapper/HotelOrderLogMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/mapper/HotelOrderLogMapper.java @@ -2,7 +2,10 @@ package org.jeecg.modules.hotelorderlog.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.hotelorder.entity.HotelOrder; import org.jeecg.modules.hotelorderlog.entity.HotelOrderLog; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +17,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface HotelOrderLogMapper extends BaseMapper { + IPage getOrderLogPage(Page page,@Param("userId") String userId,@Param("type") Integer type,@Param("uid") String uid); + + HotelOrderLog getOrderLogOne(@Param("userId") String userId,@Param("id") String id); + } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/mapper/xml/HotelOrderLogMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/mapper/xml/HotelOrderLogMapper.xml index ca12b93..a3e0be5 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/mapper/xml/HotelOrderLogMapper.xml +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/mapper/xml/HotelOrderLogMapper.xml @@ -1,5 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/service/IHotelOrderLogService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/service/IHotelOrderLogService.java index f30c4c8..a2f5fc5 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/service/IHotelOrderLogService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/service/IHotelOrderLogService.java @@ -1,5 +1,8 @@ package org.jeecg.modules.hotelorderlog.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.hotelorderlog.entity.HotelOrderLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -11,4 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IHotelOrderLogService extends IService { + IPage getOrderLogPage(Page page, String userId, Integer type,String uid); + + HotelOrderLog getOrderLogOne(String userId,String id); } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/service/impl/HotelOrderLogServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/service/impl/HotelOrderLogServiceImpl.java index 63dc0ae..55b9659 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/service/impl/HotelOrderLogServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelorderlog/service/impl/HotelOrderLogServiceImpl.java @@ -1,5 +1,7 @@ package org.jeecg.modules.hotelorderlog.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.hotelorderlog.entity.HotelOrderLog; import org.jeecg.modules.hotelorderlog.mapper.HotelOrderLogMapper; import org.jeecg.modules.hotelorderlog.service.IHotelOrderLogService; @@ -16,4 +18,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class HotelOrderLogServiceImpl extends ServiceImpl implements IHotelOrderLogService { + @Override + public IPage getOrderLogPage(Page page, String userId, Integer type,String uid) { + return baseMapper.getOrderLogPage(page, userId, type,uid); + } + + @Override + public HotelOrderLog getOrderLogOne(String userId, String id) { + return baseMapper.getOrderLogOne(userId, id); + } } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelshoppingcat/mapper/xml/HotelShoppingCatMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelshoppingcat/mapper/xml/HotelShoppingCatMapper.xml index 1f75d0f..d36425d 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelshoppingcat/mapper/xml/HotelShoppingCatMapper.xml +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelshoppingcat/mapper/xml/HotelShoppingCatMapper.xml @@ -3,7 +3,7 @@