From 2b3cfeb61c5b763478630f72c089e83e74a31307 Mon Sep 17 00:00:00 2001 From: Y1NanPing <735289578@qq.com> Date: Wed, 6 Aug 2025 16:37:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC15=E5=A4=A9=20=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E4=B8=80=E5=8D=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/config/redis/RedissonConfig.class | Bin 0 -> 4501 bytes .../tingshu/model/order/OrderInfo.java | 32 +++- .../tingshu/model/order/OrderInfo.class | Bin 9537 -> 8937 bytes .../atguigu/tingshu/vo/order/TradeVo.class | Bin 3620 -> 3669 bytes .../tingshu/account/AccountFeignClient.java | 6 + .../impl/AccountDegradeFeignClient.java | 7 + .../tingshu/account/AccountFeignClient.class | Bin 753 -> 1187 bytes .../impl/AccountDegradeFeignClient.class | Bin 1108 -> 1503 bytes .../album/impl/AlbumDegradeFeignClient.java | 1 - .../album/impl/AlbumDegradeFeignClient.class | Bin 3279 -> 3279 bytes .../order/client/OrderFeignClient.java | 8 +- .../client/impl/OrderDegradeFeignClient.java | 9 ++ .../order/client/OrderFeignClient.class | Bin 349 -> 849 bytes .../client/impl/OrderDegradeFeignClient.class | Bin 512 -> 1197 bytes .../api/RechargeInfoApiController.java | 22 +++ .../api/RechargeInfoApiController.class | Bin 791 -> 3698 bytes .../album/task/RebuildBloomFilterTask.class | Bin 0 -> 3118 bytes .../target/classes/bootstrap.properties | 8 + .../com/atguigu/tingshu/CDCApplicaiton.class | Bin 0 -> 890 bytes .../tingshu/listener/AlbumListener.class | Bin 0 -> 2700 bytes .../tingshu/listener/UserListener.class | Bin 0 -> 2588 bytes .../listener/VipServiceConfigListener.class | Bin 0 -> 2786 bytes .../order/api/OrderInfoApiController.java | 33 +++- .../order/config/CanelOrderMqConfig.java | 35 +++++ .../tingshu/order/receiver/OrderReceiver.java | 41 +++++ .../order/service/AccountPayBizService.java | 11 ++ .../order/service/OrderInfoService.java | 8 + .../impl/AccountPayBizServiceImpl.java | 81 ++++++++++ .../service/impl/OrderInfoServiceImpl.java | 144 +++++++++++------- .../order/api/OrderInfoApiController.class | Bin 2754 -> 4574 bytes .../order/config/CanelOrderMqConfig.class | Bin 0 -> 2386 bytes .../order/pattern/TradeTypeStrategy.class | Bin 0 -> 290 bytes .../factory/TradeTypeStrategyFactory.class | Bin 0 -> 1632 bytes .../order/pattern/impl/AlbumTradeType.class | Bin 0 -> 7182 bytes .../order/pattern/impl/TrackTradeType.class | Bin 0 -> 6845 bytes .../order/pattern/impl/VIPTradeType.class | Bin 0 -> 5820 bytes .../order/receiver/OrderReceiver.class | Bin 0 -> 2008 bytes .../order/service/AccountPayBizService.class | Bin 0 -> 274 bytes .../order/service/OrderDerateService.class | Bin 0 -> 351 bytes .../order/service/OrderDetailService.class | Bin 0 -> 351 bytes .../order/service/OrderInfoService.class | Bin 893 -> 1502 bytes .../impl/AccountPayBizServiceImpl.class | Bin 0 -> 6626 bytes .../service/impl/OrderDerateServiceImpl.class | Bin 0 -> 986 bytes .../service/impl/OrderDetailServiceImpl.class | Bin 0 -> 986 bytes .../service/impl/OrderInfoServiceImpl.class | Bin 13230 -> 17669 bytes .../payment/service/PaymentInfoService.java | 8 + .../service/impl/PaymentInfoServiceImpl.java | 73 ++++++++- .../payment/service/PaymentInfoService.class | Bin 355 -> 527 bytes .../service/impl/PaymentInfoServiceImpl.class | Bin 804 -> 5473 bytes .../user/pattern/DeliveryStrategy.class | Bin 0 -> 266 bytes .../factory/DeliveryStrategyFactory.class | Bin 0 -> 1619 bytes .../user/pattern/impl/AlbumDelivery.class | Bin 0 -> 4103 bytes .../user/pattern/impl/TrackDelivery.class | Bin 0 -> 5386 bytes .../user/pattern/impl/VIPDelivery.class | Bin 0 -> 5808 bytes 54 files changed, 462 insertions(+), 65 deletions(-) create mode 100644 common/service-util/target/classes/com/atguigu/tingshu/common/config/redis/RedissonConfig.class create mode 100644 service/service-album/target/classes/com/atguigu/tingshu/album/task/RebuildBloomFilterTask.class create mode 100644 service/service-cdc/target/classes/bootstrap.properties create mode 100644 service/service-cdc/target/classes/com/atguigu/tingshu/CDCApplicaiton.class create mode 100644 service/service-cdc/target/classes/com/atguigu/tingshu/listener/AlbumListener.class create mode 100644 service/service-cdc/target/classes/com/atguigu/tingshu/listener/UserListener.class create mode 100644 service/service-cdc/target/classes/com/atguigu/tingshu/listener/VipServiceConfigListener.class create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/config/CanelOrderMqConfig.java create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/receiver/OrderReceiver.java create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/service/AccountPayBizService.java create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/AccountPayBizServiceImpl.java create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/config/CanelOrderMqConfig.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/pattern/TradeTypeStrategy.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/pattern/factory/TradeTypeStrategyFactory.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/pattern/impl/AlbumTradeType.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/pattern/impl/TrackTradeType.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/pattern/impl/VIPTradeType.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/receiver/OrderReceiver.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/service/AccountPayBizService.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderDerateService.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderDetailService.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/AccountPayBizServiceImpl.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderDerateServiceImpl.class create mode 100644 service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderDetailServiceImpl.class create mode 100644 service/service-user/target/classes/com/atguigu/tingshu/user/pattern/DeliveryStrategy.class create mode 100644 service/service-user/target/classes/com/atguigu/tingshu/user/pattern/factory/DeliveryStrategyFactory.class create mode 100644 service/service-user/target/classes/com/atguigu/tingshu/user/pattern/impl/AlbumDelivery.class create mode 100644 service/service-user/target/classes/com/atguigu/tingshu/user/pattern/impl/TrackDelivery.class create mode 100644 service/service-user/target/classes/com/atguigu/tingshu/user/pattern/impl/VIPDelivery.class diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/config/redis/RedissonConfig.class b/common/service-util/target/classes/com/atguigu/tingshu/common/config/redis/RedissonConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..58edf85a1e73ec018e23e69e4822f7ee1ac6278d GIT binary patch literal 4501 zcmbVPX?GOI6}=@*Pq#)bBm@Y?C|Cqxv@$lv1dk*ZffNK1Ry49?Y$Du@8cn0o^w8ZS zAd5}*ecudOoSiRx$Y#O8=OoS-=bZe4{1_bPR&~!JX~H4l&{I{f-h1`leM^=8`R|8+ z1u%l&>1Ysm%Jr5~p1tV!zFSCT-NF@TDRoK>2?)eYXow5Mhn<2G9202l>78qWfhHXZ z6U{IMj%3}Hloc$MoTXAKa0*L)u0%~MD^-Q+fYeNMOsJm9bFLoH32Z^Djy4lp(Js&}jkJnZHfKkQeZ~HK#Q$>O{ih9ywDg1kQ>*b|Y&S1IH~G=n&WZC)IMTj51tn2@ar+G&5ki2)1>>|C*yZR*Hc!MqdXIP(Lm5D?_Eb=)7)@!SjNNBlsAzM`nSFj+l^^y=Wqhq42ay z;P&-Q)K@-g`4TTykHUP!#4!o1QM7#jy6Y{=n5yd#EtemwIqTV0U<(}Yd0ZB5@YE_g)e_D-b|GM% zP9dh_yg*yEpkBIs)y@V9rq{HIPhf^9WUa#3wUU+JP(2|hYf>`Lns^y=L}$qkDtNQq zFc=12F>wK}GDzG!qq@d+7D4sQO5d2mMH8QthsIg*R^FG=mrT4arJE^TMp)7>o5+^6 zPO}1}JGO}{(hMVK`ON!8yPdU|lV#xuoU0R*%~outFljc~YJiQ(P@OTIO0hiElwCMX zd4YW!%e+niSh~_ic8N)+V4p9oT(-Sg>vEoyc6J^sKWBN4Tt~!MkaJixM<@Tkp3QQI zXH}L9bUrS11WaFbtFR^n>L=Rf>gEY8nZU{}Pg%vt=48~N=N#XmCnpO9H?U-xQ7ZBurTa~G#ADHYfrmB~$+1_YI5 z&KwZ#`r9eWR{_lpaE?(V|6dl#8Fi4L7TVP*S#CW_+}%7TWa8#1y+h zob9cY=dKp1Z0fE`Yu%xw5x8OIGn0n1`RI;LWZaUMwZ|Qq2HVPIA4cM!%tPMUPl{V8 zRq_6C2!9^>u4yp=ZFBzpe zKk%$#7$d(mjvpuR6TGG4wyeZEd=gaa$tkS5%Xah>puN1a#;t7NdN&2$sx8=vF;sfS zDlF!0zkAYkmrKQ=&GlJBStmGqvuM|0f31eU+}CPIk&07RKA&*{d&t1gm}Wwxg@IoP zys$n>Ju;<6#6VX$p(+;eDZPDAg?zy^8KJj-k}^5@~OeGm0un!(Df&DOBQ|y9-NKJ7% z`~b&q!yJ&)HH^;pKfw4OctRsw{vM>2z&={NAMLcLlRCQ5&(#2qVi3p4G0vNJ8qe}t zIfNp)yFv?b4IWnp=HMe>>mSE1l(0%qu9Ln64Uf>NLp;K;P7OCmi<9dnM<%tJOOMm! z7aYyL`{e%+A#ZfHkXIckQcsGb)T7Z+T{;*lkVgVL zYJ|0lFmJj#!owSdch(i=by!FEz((O@U146|b%YP!+hBIB&sDQOg(RITV<+*6_w~O6 zy^31sbelT5Lm?QCoR%?=c`5K|%4xjl39jI)s;$%vTrq)}#y$?OQLw${yyq1Bc6-oYDqlWy+7mvD;}+JNWa z;B%xk()}zx&shw!tky4ZrZJ08;ESBaS($q&^ConDyYXfI8mf{9(4rfUutkSqet-@g zQ~Ym;53nnoHq}ncdG!Y2jmbA{6tNd+l1x=i;<_=1-Ry$tR$5bA z43QEtlA7A;tdIJ!@aPEjMqI>KRB}l?zsgwyw&NVWM*ADtMGxWYoW*bkJMj(9G==MR z#6KkD{Hwqaf>1(;56NC#H%P(`Xk~^nPi#FYVvEcHg>ZxP+=49h@3a@ErJm?;XO(hn@s!FKcicgx=?LAOxRAI^=;A`@Evs> pv~u=cuD?gF@B8=xe#iyy4g83NpQ_)V<89L9ANjw;ukl+X{{uC%3Hty5 literal 0 HcmV?d00001 diff --git a/model/src/main/java/com/atguigu/tingshu/model/order/OrderInfo.java b/model/src/main/java/com/atguigu/tingshu/model/order/OrderInfo.java index 45b406a..5883f87 100644 --- a/model/src/main/java/com/atguigu/tingshu/model/order/OrderInfo.java +++ b/model/src/main/java/com/atguigu/tingshu/model/order/OrderInfo.java @@ -61,9 +61,33 @@ public class OrderInfo extends BaseEntity { @TableField(exist = false) private List orderDerateList; - @TableField(exist = false) - private String orderStatusName; - @TableField(exist = false) - private String payWayName; + +// @TableField(exist = false) +// private String orderStatusName; +// @TableField(exist = false) +// private String payWayName; + + //更改这个实体类 我们转json的任何框架都是通过获取get方法去改的 + //将get去掉获取属性名称 将get方法返回值作为属性值 + public String getOrderStatusName() { + if("0901".equals(orderStatus)){ + return "未支付"; + } else if ("0902".equals(orderStatus)) { + return "已支付"; + } else if ("0903".equals(orderStatus)) { + return "已取消"; + } + return null; + } + public String getPayWayName() { + if ("1101".equals(payWay)) { + return "微信"; + } else if ("1102".equals(payWay)) { + return "支付宝"; + } else if ("1103".equals(payWay)) { + return "余额"; + } + return ""; + } } \ No newline at end of file diff --git a/model/target/classes/com/atguigu/tingshu/model/order/OrderInfo.class b/model/target/classes/com/atguigu/tingshu/model/order/OrderInfo.class index 1b1df3393748c2015f4eeb8f97cc734af42529c7..0d5b6a6d1598b51cc0472cb80d1fd90957bfa505 100644 GIT binary patch literal 8937 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 literal 9537 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 diff --git a/model/target/classes/com/atguigu/tingshu/vo/order/TradeVo.class b/model/target/classes/com/atguigu/tingshu/vo/order/TradeVo.class index f3c8111e413f28c496a9a58b339ecf2550e4a6e5..1c65930be61a3a81599ae76b9e9cdd4bcf473b74 100644 GIT binary patch delta 274 zcmZ1?b5(}x)W2Q(7#J9A8OklYUkW#*-)6(#1Tmgg5`>lc@#7NzEw zR2HP_JLl&X zT9ez^`C0NA8MMHhBkY1KMT`uplN;Gonb{diCNpw;W8|E?o>O!(FQ+=AAeiOFsXlof zr`Y6npoj!e#1^Q+flGWc3zs#R6$It4;yMIm<#L|@l4d*$f#eOIA3*XVuc8@00~3P@ u10#cJF+&1FBG7|LK+FLYNCx6ehHM~D2&g27A&;TJL6V`6p_rkRK@tG*CPn1{ delta 257 zcmcaAvqXmL)W2Q(7#J9A8A>;DX|hdDU=!g>=3+=;NM&b8<6+QaNT1xqc7!o=vOBvy zOAaH0`Q&v>TEZ$psfDGPMX4#i`6)n!d5jENAaPMf1|C$ILPiGF$%Y(qTq-{K`Prof z>&A`ZD0>q}p3<(U0KtFK+IY~gA!H@;y2{AA+WHaP4 Q getRechargeInfo(@PathVariable String orderNo); + } diff --git a/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.java b/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.java index 13e5d93..8d8e5fa 100644 --- a/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.java +++ b/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.java @@ -3,6 +3,7 @@ package com.atguigu.tingshu.account.impl; import com.atguigu.tingshu.account.AccountFeignClient; import com.atguigu.tingshu.common.result.Result; +import com.atguigu.tingshu.model.account.RechargeInfo; import com.atguigu.tingshu.vo.account.AccountDeductVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -16,4 +17,10 @@ public class AccountDegradeFeignClient implements AccountFeignClient { log.error("[账户服务]checkAndDeduct服务调用失败"); return null; } + + @Override + public Result getRechargeInfo(String orderNo) { + log.error("[账户服务]getRechargeInfo服务调用失败"); + return null; + } } diff --git a/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/AccountFeignClient.class b/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/AccountFeignClient.class index 73b23f27521141f4eac236c36eb42e1dd69a4325..fa3ef6fc30705046b717d486d5c10c134fa70cc4 100644 GIT binary patch delta 350 zcmey!x|mbo)W2Q(7#J9A8RXd+m>3!KCI>RfY}A>?sLr3BS`w6+oRL_Rp6Z#Gme0sw zr{R;8SeB@tlbDyTA6!zDnU`*@IXQqybmDq(ZT9@4l++?Wpfb+j%=Em(lG377Mur01 zT0|!MGl?nW=BK3Q=qDy8=a=S{=p)-_ZD-BMU^2OzQPaXbwZu2Epa5haBZInr5t6I) z(Ojut4RuE?BZC=8GfzNbNk&*=QD$ONPU__Sj5ipWCeL6pNn~MU;AaqEU}0bf`ks}M zK@dm@0WlMUFasx$=3`)F5CLNDXa>e&22loHpcp$NP(Tc3!KCOa~TY*d-YIN5^vDkI}$J{A*I1||l6pb{nq f0R~PWEy}>iAjrVXz+KEB#2{SEAi^M;%pe8;k2wsE diff --git a/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.class b/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.class index a6bf8ae5cd2060a592f6e8969f56057d3ac458b4..f811a71d4e66eb8322fa0f39d597fe0f8f04f603 100644 GIT binary patch delta 560 zcmZutOD_Xq6g}Tmb+jX*iPo#ydY0nz+LbQEM$(ArO2lH)j#1GW88fyPHbSgwX(K@_ z6^Td053sfst5$!7xHFXy`YrCg=j5DobH7*d-RFJze0&BlgQ=odWV0dy41A?>dr{uM zE1w*d4o+89#avP{>$0IL^V*tTWh+;EAIF!avts4;+>2JUdC)GQ1D%C1TV!1~TTEwt zO@FKm$yjPb-jVsHtf@S08aYiZEDNJak8WfYV?k%|{}Ut_8qzsclTFJ|7`AFg#3!dy z89mQsQ?+uc#Z5}yUblE&&nlZ-&SZ2;Gx_g363Im2O*jmOz|amKB>ILrn%$_U8ZPX* z0s|4^Yy>nSN>y@ZH@eY7h@lsK5J>yv3hhRS@e%@>srwy$z`@eD-uCxnfP67hxfuaF zWDrAeAx!fe$?X8?8XkYk1DXV|E5ZUIRIA}Z>a8`xWjj5N;h*$4c}5)fC`9n;S%jk` gv0sBzvpT*}FaK~uoomD&y4l)kQ9MLQuY+Py^H^nsBn?Abvw~ehxOOxjo zMw6VfPPa6tYzvR2Zp9`}2XEL+L&AwLtdadRVl;3@N6I+oLauOpFHVBvm8@R*pqgMW z(yI&~ce{9=YB8v>GOvR|e3zaA`#MQY0vwl{YMs~tcIxh({W)2vXaDNu%Dam1t{I3! H=^-ou>{=O^ diff --git a/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.java b/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.java index 16ebc29..b804b64 100644 --- a/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.java +++ b/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.java @@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.List; -import java.util.Map; @Component @Slf4j diff --git a/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.class b/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.class index 8d1eff66c6b84997b92732646b78b79082643f42..d0946f72ea926016bf7c5e91131d8d77a61e1c84 100644 GIT binary patch delta 127 zcmX>vd0ukEZcax2$$L1RSw$GQ7(^$Z;}V}N&E?4|1>{MCc@03G0+6Q&1||kC1_mJM&ENy1*%%lZ Hd>I%3hEN&U delta 127 zcmX>vd0ukEZcavl$$L1RSw$JR7{n%@;}V}N&E?4|4dlsyc@03GB9Ny9I%3irg9K diff --git a/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/OrderFeignClient.java b/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/OrderFeignClient.java index 9fa7ea4..976a4e6 100644 --- a/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/OrderFeignClient.java +++ b/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/OrderFeignClient.java @@ -1,7 +1,11 @@ package com.atguigu.tingshu.order.client; +import com.atguigu.tingshu.common.result.Result; +import com.atguigu.tingshu.model.order.OrderInfo; import com.atguigu.tingshu.order.client.impl.OrderDegradeFeignClient; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; /** *

@@ -10,8 +14,10 @@ import org.springframework.cloud.openfeign.FeignClient; * * @author atguigu */ -@FeignClient(value = "service-order", fallback = OrderDegradeFeignClient.class) +@FeignClient(value = "service-order",path = "api/order", fallback = OrderDegradeFeignClient.class) public interface OrderFeignClient { + @GetMapping("/orderInfo/getOrderInfo/{orderNo}") + public Result getOrderInfo(@PathVariable String orderNo); } diff --git a/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.java b/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.java index 7025aa2..e45c7e2 100644 --- a/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.java +++ b/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.java @@ -1,10 +1,19 @@ package com.atguigu.tingshu.order.client.impl; +import com.atguigu.tingshu.common.result.Result; +import com.atguigu.tingshu.model.order.OrderInfo; import com.atguigu.tingshu.order.client.OrderFeignClient; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +@Slf4j @Component public class OrderDegradeFeignClient implements OrderFeignClient { + @Override + public Result getOrderInfo(String orderNo) { + log.error("[订单服务]提供远程调用方法getOrderInfo执行服务降级"); + return null; + } } diff --git a/service-client/service-order-client/target/classes/com/atguigu/tingshu/order/client/OrderFeignClient.class b/service-client/service-order-client/target/classes/com/atguigu/tingshu/order/client/OrderFeignClient.class index 9093347d14f44388dcf5930eb1f74dcebb83cb6b..f4c810233dfa495f1dad046c529ea6cf10c2a784 100644 GIT binary patch literal 849 zcmbtSO>YxH4E3~0w=E5nj{rTw2@Wu-RB;IuAy5%gN~=cdg_C#J*-SG#vzm|efcRq^ z_yPQ=s@_Qnsgwf}hZ)P3?f0JT-&a3>0l+)h%V15weqn2gp^B=CGAL8|NtD)=>D+Bz-f7g{Z+H z)7m?WCa9Xul~=i@560MlL0QB64u;lM(l@QxaZCHsx~aURT;|G@5*NAhGlgSpnsz7x zx--;~g*=-Bw)2zA!<64|bpH_W{5JezI=6Vd`DY%d7$)cF6tWa%vOTiV6?CLD)9EMS zOPhb)E|gDZW%okcSW4TF8Mn70m+H82&y$;}f?g#h0y+%?^BS>HbI}4e$EbCV#Z(8C#oElw2ZeQK)^a*Ie_3}?ZO6hAY-q~Fl@H?t-&_jVSATTclh3@(?`y749eS01rLEpn;cv8UAYndJh>;M1& delta 86 zcmcb}c9)6k)W2Q(7#J9A8F(jh`A?Q*Ql0F;C^OlK$wZK~EHS4vm63tBIJKxOGdWdv n@+78MMFs{Y23DX3CI&VJb|5Xlz{tP>hiMs;El#rNIFkredE{66p49v`J?%dI^cIAWU zLQIToa04rYvQSvy-rpgm{t4r`Q^X2H7B1#K&-u>xoqNuF`?fdmY&FbK-^=kReMtObF;wlVq$D0=Arz@4^ z7gdKJZx?npSDMg*)+ka*oWMyExIYv_gi9$TLt9_&kNQa^Nlqr6PoNzgQJhMm6I~1) z`~64Ff)a9`Ax=E1>=}A%p|XzY`lC;kKSNOq0iMo_mXSaa&YAQ2K zTw{Y&(A7RjOo~7j_^7Qj-W{49tnC3Uh@o>L@RaTHyzSfcBDXzHC{x+OBQgEeiYVzq zo7Ng13pr=_q?8LaU*bkqxFz9H7iG{xeOCvD)AV)e-lOiVr!_S#jb~_Q(9CF#^nV8X zNQ*k0rBPpl%+G~mXn^ws2Rgriiv*&bN65NPTYN$^b!-F86l;z4RSf-)0JTv9tszc( z)pi$0qhCTV;aw)H2%`;fC3Nm1*6BTlJs}k!o{D`z+d86}C97en*}%ee>ff$?3=9mm3?dV`^x4=MI2ajhC-*QaPRx>FW@q4<+{w6hvMqC&C_4ia z10w?`P$?r2vNEs%N$$xPn8l2FfMOsX0|N&GFOcK`vsoGV82EuaCI$g8DaarMq(SP0 G85jTwfDQ@( diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/api/RechargeInfoApiController.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/api/RechargeInfoApiController.java index 228bb98..c5d28a7 100644 --- a/service/service-account/src/main/java/com/atguigu/tingshu/account/api/RechargeInfoApiController.java +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/api/RechargeInfoApiController.java @@ -1,8 +1,14 @@ package com.atguigu.tingshu.account.api; import com.atguigu.tingshu.account.service.RechargeInfoService; +import com.atguigu.tingshu.common.result.Result; +import com.atguigu.tingshu.model.account.RechargeInfo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -15,5 +21,21 @@ public class RechargeInfoApiController { @Autowired private RechargeInfoService rechargeInfoService; + + /** + * 根据充值订单编号查询充值信息 + * @param orderNo + * @return + */ + @Operation(summary = "根据订单编号查询充值信息") + @GetMapping("/rechargeInfo/getRechargeInfo/{orderNo}") + public Result getRechargeInfo(@PathVariable String orderNo){ + RechargeInfo rechargeInfo = rechargeInfoService.getOne( + new LambdaQueryWrapper() + .eq(RechargeInfo::getOrderNo, orderNo) + ); + return Result.ok(rechargeInfo); + } + } diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/api/RechargeInfoApiController.class b/service/service-account/target/classes/com/atguigu/tingshu/account/api/RechargeInfoApiController.class index 098e309f21a9d9719b630b547825fc3c373230b6..d906e9a265b3c99721b795720a93801f0f498434 100644 GIT binary patch literal 3698 zcmbVP*>hA?8vmUvbZ9OlG$10#BpNgU;kpAhFcTwahGvn(C^CzuyAPd9Zr{_~B{A;K z49v>NEL!E$s8#bcRp?Yr!MK$A?1O)R&jS7fKFq^R&F|cMp>M)XTvC;L)^9oA_xqOq z?0+A83}7$bD53+M1$0^H#xjAvQ*uVyuJjuAk?JW`3k8<#aXcs7C(t=GJh>b_SYANU z!U|XdyKA~>%dinSjmQoiuMtc|wyf23^aNXr@3Ug&GrRldL) zKXW#&{28aF$g#2%%OJTnk8Mg?E?||wh@q}Z-E`_YvYT^N89G7BjRL!-eZ`MgcS1*d zfqgns{+wNr&1zjfZst$=vei<45i8MIqH$JRC}E92H@Dq6f%4FBtlQ$;L#^FuC$xj8 z)zW@wj~|G14G|njEt#MCCa(a84%c!r%qGXm3tjaSsWE{I|d8bV&M+l zDKL~r&Aq1fY+nVD8xk&Npy~Crz`h*QC!Sph8cBA9X=xJpW zkB)Sm=Ttobm%wToZLHaH52&ic@4TGH)c40SNrA|lE4FuNZJ@{$!j1Ajx*IcMn-OY`9zGZrqkWbihb{+`=()c2jzm zsFo46y?`eKZfm=CjM=Us-4VYLHI*0cf3~JtCMWdZNrBB{-VCu)?|0)o)L&Q3a4~wA zx3pKp1df}`{PY4Zrg#~i6xeW#xz=f_Nhffst{U+?9md4;{H}`j8+On#;5z9OceC1` zwyR1q|Ivk^W(Jhk3G9(5)U%GS>Sckh1Z2Gx$5V%+W>xtUlI#Ua6#{Yoy3JvyX}&c6Fr!F70msDG=4=SeYngT!1hd|KgM&la25U*cBM7E73vL5W%6XJO07-CjN`Bzqn_PqlKGgFT_H*1@`q4!^ z{3dpDK3X~u&$n~_Xz9oCe1P*x=}0_Z$NACHcsySoo9n#~F>$;!c?nN_LcX0D5A$oP@f`JhKEMljkq0kvk=W#Ayux)K c*RRs5zrk9esja4<4hPGXXon3_NNBUeVkA0S<4c0N>dpb zxDyL9^%Ikm^Gowe7!(=U8JK_?8G$4x0~e6y2J+Z|G!Iymk%1M=;|22cfuf8+npJB% z1LH;@gNcC;NP-kIFz_<)14$l;0tNvFL9o0Km=p#XD$5|vz|0^5R3KW+AjTjLl#u{( LB%>J^iy5Q<-p3fY diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/task/RebuildBloomFilterTask.class b/service/service-album/target/classes/com/atguigu/tingshu/album/task/RebuildBloomFilterTask.class new file mode 100644 index 0000000000000000000000000000000000000000..b0fbf5630a2d09f8112601928ca83171ee5fccee GIT binary patch literal 3118 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 literal 0 HcmV?d00001 diff --git a/service/service-cdc/target/classes/com/atguigu/tingshu/listener/UserListener.class b/service/service-cdc/target/classes/com/atguigu/tingshu/listener/UserListener.class new file mode 100644 index 0000000000000000000000000000000000000000..84676746198e6617495571e2693772d623548753 GIT binary patch literal 2588 zcmcImTT>iG6#kmqF0jC6RU(PGKoY}p$r#0mEG7~R2D7;s2&fpbneAN$W@ol$dK1v{ z-51N`!Kzf{FIZO86lxwUpZy=ie_{E}%(4v0mW2;K^zBTa``72ppMO939l$#6Q(tOI52> zHMHfF{MD*qTfSC~@{C))^76F<*=@HZkjcAV$?)ys*qV`dOC{yylIRvVvSb#_+kZX0 zzkTof?XMqgfBWF+!^cm*d-U|1A11#1suO7(NFbBK3wV)MJ}X0@#d3DxC;DnGF@RmXw|?(2v1vOm5z#o(v=U zN(x7CRN!D)uB&O+F{NI#^eT70mX7uXPR1<^`Qn0VCI?|Yo5&duGms5 zfj6QERs!FOo-C`ouD5O!q?Sf_(=c6688_ohxelDfsRUk4;WP#X&W7>(FA@j?215n< z_k?&Sps`q7bX{9XhdPrON?{lyWUf|dAejq;`F(~uxBrV_#;e-0jX9;mHE3t^H@z_jHtI}L4V27 z-sUdq`)*bpZI#u6jiYgLGbhjZ}gV#Z( zR$0`_BXiMGc7Zy3B4pIFBajSHdPOn*nHX$p$QS6%yKxUTD?47C*eh!CdFJ!9AbnNo zRkv_M22X>w(1!LotK>*s4V>Bd-vQXruIz%qxj4dV4=3is9!fo40b_E~v}-kZwE@Gv z(Kxy9L6~(4yL0uLKX`xv5=@gkF|T!B+msyz8!4EAeJhLu@P~dl=`5+y>W| zV)q+V&zgv7Y1?y_R&0)+GID{_6M@qcg3+0E*j>XCrThezS-YNdvXSixFlk5s{VHE> zp8A1T>0z3`7NFdu7Ydp&@T`_a?^xy&cSCO zgSR=Sq6?TnjweQIS+(N#v(yAB@~HC{_O-t^y55tP2uhW-ld#ga!=tRB~6nWnb(gC zc#q#Mkw~t;Xlwj!ZEsq?6dx-WBzy7OxsbA zrUH%&97)X9|g&p_yfQj zkSWB_mOwm>c6112=FA1tuuQvZT$q`YB`we~tZb!61lsy@#ZDyAnLsLybw~>wE;%*B z)YXQnHVm!osyEv(EahowOV=o>`h;{BR7s9Ic12YS%>_bPPE{aVaNMflS(QU`M!~68 zrJGM;gTU}qsa(49_nmJRZ~d@%_~Dn~=i(PPA3yx=v(Hxq zx4sGl>yW_<31riF5gX~yY83);Wmg=5+=yw=za@Hu9!kMHYM!7 zV6-Bk=9HynG`tox2((wFK2s(E{ke$7f^S$*Yb#Z;!G;QikVjzuu806tb zod)u-?k}v7^8DHl1i8`B$}%RT&ig?>03(4{(>RFN7@O63b;>Mh$GtAl$>4_BEYKTu zbKEjLFQ0ol=@U34kW-Fv?bB;>M#;2IE98H`bm~A`S z)Qb5baI9ryXGo@JR6-jKbNPTV*3iyX#hB+=7~@P@fv$qG<@rW!M!J(G;e$dgnO4zs zmH*uo#`UbCzN0OvUAFvLcL3FO%*YC}jG5FD;yD$>!|i58OP3%OC9N{;=n5-oIbs4a z#S+V`E--;)kl|+~W0j4pHmgRUyWm8Ld!Deq@H!k7frvcXd`Xw zoKRKU)D7R+8~=OqwzM->6gU#i&S&0tPdd#?AcMmttJxIl5fYXl{&OY|uQ~8O!Kn$S z;g;kn<)`M>XC>GHzkmhy7g|^o$^UV`+LkJd;OolLVjx*n=N4r-uy(8gz;@~9Hyv6pZ z$o>}BbQ5CSw5$oGCENGMbkrwgh!ljL4+(O0#^w(}Z~;m$0mh~GDNkEDkN{cV_WZ59 z143`v>5}}LVRPeqv;Tv_UK*ox7iEVz@8EcZW1J)ZcKANZFN34t*go(p#7~^WaExz% z8OY)|-|27zhLGo%@Y@mEg2Uevtb?+?pOMI}-#7R>y5bnTkC%qxJ@E(F0t~ee+{5;s z_WRg<*+*{+(7R~>u${;|sADHL?m{ni2iitL#HKc4W0-$xzBPRq;Vc%+M)4-Gve<|* zoS+q3=yoVw;Cb{7 getOrderInfo(@PathVariable String orderNo) { + OrderInfo orderInfo = orderInfoService.getOrderInfo(orderNo); + return Result.ok(orderInfo); + } + + @GuiGuLogin + @Operation(summary = "分页获取当前用户订单列表") + @GetMapping("/orderInfo/findUserPage/{page}/{limit}") + public Result> findUserOrderPage(@PathVariable Long page, @PathVariable Long limit){ + Page pageInfo =new Page<>(page,limit); + Long userId = AuthContextHolder.getUserId(); + Page pageModel =orderInfoService.findUserOrderPage(pageInfo,userId); + return Result.ok(pageModel); + + } + + + } diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/config/CanelOrderMqConfig.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/config/CanelOrderMqConfig.java new file mode 100644 index 0000000..750947d --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/config/CanelOrderMqConfig.java @@ -0,0 +1,35 @@ +package com.atguigu.tingshu.order.config; + +import com.atguigu.tingshu.common.rabbit.constant.MqConst; +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.CustomExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.HashMap; +import java.util.Map; + +@Configuration +public class CanelOrderMqConfig { + + @Bean + public Queue cancelQueue() { + // 第一个参数是创建的queue的名字,第二个参数是是否支持持久化 + return new Queue(MqConst.QUEUE_CANCEL_ORDER, true); + } + + @Bean + public CustomExchange cancelExchange() { + Map args = new HashMap(); + args.put("x-delayed-type", "direct"); + return new CustomExchange(MqConst.EXCHANGE_CANCEL_ORDER, "x-delayed-message", true, false, args); + } + + @Bean + public Binding bindingCancel() { + return BindingBuilder.bind(cancelQueue()).to(cancelExchange()).with(MqConst.ROUTING_CANCEL_ORDER).noargs(); + } + +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/receiver/OrderReceiver.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/receiver/OrderReceiver.java new file mode 100644 index 0000000..2c08c3a --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/receiver/OrderReceiver.java @@ -0,0 +1,41 @@ +package com.atguigu.tingshu.order.receiver; + +import com.atguigu.tingshu.common.rabbit.constant.MqConst; +import com.atguigu.tingshu.order.service.OrderInfoService; +import com.rabbitmq.client.Channel; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author: atguigu + * @create: 2025-08-05 14:03 + */ +@Slf4j +@Component +public class OrderReceiver { + + + @Autowired + private OrderInfoService orderInfoService; + + /** + * 延迟关单监听器 + * + * @param orderId + */ + @SneakyThrows + @RabbitListener(queues = MqConst.QUEUE_CANCEL_ORDER) + public void cancelOrder(Long orderId, Channel channel, Message message) { + if (orderId != null) { + log.info("[订单服务]监听到延迟关单消息:{}", orderId); + orderInfoService.cancelOrder(orderId); + } + channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); + } + + +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/service/AccountPayBizService.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/AccountPayBizService.java new file mode 100644 index 0000000..99de26f --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/AccountPayBizService.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.order.service; + +import com.atguigu.tingshu.model.order.OrderInfo; + +public interface AccountPayBizService { + /** + * 处理账户支付业务逻辑 + * @param orderInfo + */ + public void handlerAccountPay(OrderInfo orderInfo); +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderInfoService.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderInfoService.java index 1c6923c..c050094 100644 --- a/service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderInfoService.java +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderInfoService.java @@ -3,6 +3,7 @@ package com.atguigu.tingshu.order.service; import com.atguigu.tingshu.model.order.OrderInfo; import com.atguigu.tingshu.vo.order.OrderInfoVo; import com.atguigu.tingshu.vo.order.TradeVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import java.util.Map; @@ -15,4 +16,11 @@ public interface OrderInfoService extends IService { Map submitOrder(OrderInfoVo orderInfoVo, Long userId); OrderInfo saveOrderInfo(OrderInfoVo orderInfoVo, Long userId); + + OrderInfo getOrderInfo(String orderNo); + + Page findUserOrderPage(Page pageInfo, Long userId); + + void cancelOrder(Long orderId); + } diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/AccountPayBizServiceImpl.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/AccountPayBizServiceImpl.java new file mode 100644 index 0000000..d0784c7 --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/AccountPayBizServiceImpl.java @@ -0,0 +1,81 @@ +package com.atguigu.tingshu.order.service.impl; + +import com.atguigu.tingshu.account.AccountFeignClient; +import com.atguigu.tingshu.common.constant.SystemConstant; +import com.atguigu.tingshu.common.execption.GuiguException; +import com.atguigu.tingshu.common.result.Result; +import com.atguigu.tingshu.model.order.OrderDetail; +import com.atguigu.tingshu.model.order.OrderInfo; +import com.atguigu.tingshu.order.mapper.OrderInfoMapper; +import com.atguigu.tingshu.order.service.AccountPayBizService; +import com.atguigu.tingshu.order.service.OrderDetailService; +import com.atguigu.tingshu.user.client.UserFeignClient; +import com.atguigu.tingshu.vo.account.AccountDeductVo; +import com.atguigu.tingshu.vo.user.UserPaidRecordVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.seata.spring.annotation.GlobalTransactional; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class AccountPayBizServiceImpl implements AccountPayBizService { + @Autowired + private AccountFeignClient accountFeignClient; + @Autowired + private OrderInfoMapper orderInfoMapper; + @Autowired + private OrderDetailService orderDetailService; + @Autowired + private UserFeignClient userFeignClient; + + + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + public void handlerAccountPay(OrderInfo orderInfo) { + //余额扣减 + //4.1 远程调用账户服务扣减账户余额 + AccountDeductVo accountDeductVo = new AccountDeductVo(); + accountDeductVo.setAmount(orderInfo.getOrderAmount()); + accountDeductVo.setOrderNo(orderInfo.getOrderNo()); + accountDeductVo.setContent(orderInfo.getOrderTitle()); + accountDeductVo.setUserId(orderInfo.getUserId()); + + + Result result = accountFeignClient.checkAndDeduct(accountDeductVo); + //判断是否为扣减成功 + if (result.getCode().intValue() != 200) { + throw new GuiguException(result.getCode(), result.getMessage()); + } + //4.2 如果扣减余额成功,修改订单状态改为:已支付 + orderInfo.setOrderStatus(SystemConstant.ORDER_STATUS_PAID); + orderInfoMapper.updateById(orderInfo); + + //4.3 远程调用用户服务虚拟物品发货 + //4.3.1 构建虚拟发货VO对象 + UserPaidRecordVo userPaidRecordVo = new UserPaidRecordVo(); + userPaidRecordVo.setOrderNo(orderInfo.getOrderNo()); + userPaidRecordVo.setUserId(orderInfo.getUserId()); + userPaidRecordVo.setItemType(orderInfo.getItemType()); + //根据订单编号查询订单明细获取购买项目ID列表 + List orderDetailList = orderDetailService.list( + new LambdaQueryWrapper() + .eq(OrderDetail::getOrderId, orderInfo.getId()) + .select(OrderDetail::getItemId) + ); + List itemIdList = orderDetailList.stream() + .map(OrderDetail::getItemId).collect(Collectors.toList()); + userPaidRecordVo.setItemIdList(itemIdList); + //4.3.2 远程调用用户服务,发放用户权益 + result = userFeignClient.savePaidRecord(userPaidRecordVo); + //4.3.3 判断远程调用结果业务状态码是否为200 + if (result.getCode().intValue() != 200) { + throw new GuiguException(result.getCode(), result.getMessage()); + } + } +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.java index 1e8af2a..6deff01 100644 --- a/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.java +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.java @@ -3,25 +3,23 @@ package com.atguigu.tingshu.order.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import com.atguigu.tingshu.account.AccountFeignClient; import com.atguigu.tingshu.album.AlbumFeignClient; import com.atguigu.tingshu.common.constant.RedisConstant; import com.atguigu.tingshu.common.constant.SystemConstant; import com.atguigu.tingshu.common.execption.GuiguException; +import com.atguigu.tingshu.common.rabbit.constant.MqConst; +import com.atguigu.tingshu.common.rabbit.service.RabbitService; import com.atguigu.tingshu.common.result.Result; -import com.atguigu.tingshu.common.util.AuthContextHolder; -import com.atguigu.tingshu.model.album.AlbumInfo; -import com.atguigu.tingshu.model.album.TrackInfo; import com.atguigu.tingshu.model.order.OrderDerate; import com.atguigu.tingshu.model.order.OrderDetail; import com.atguigu.tingshu.model.order.OrderInfo; -import com.atguigu.tingshu.model.user.VipServiceConfig; import com.atguigu.tingshu.order.helper.SignHelper; import com.atguigu.tingshu.order.mapper.OrderInfoMapper; import com.atguigu.tingshu.order.pattern.TradeTypeStrategy; import com.atguigu.tingshu.order.pattern.factory.TradeTypeStrategyFactory; +import com.atguigu.tingshu.order.service.AccountPayBizService; import com.atguigu.tingshu.order.service.OrderDerateService; import com.atguigu.tingshu.order.service.OrderDetailService; import com.atguigu.tingshu.order.service.OrderInfoService; @@ -31,21 +29,20 @@ import com.atguigu.tingshu.vo.order.OrderDerateVo; import com.atguigu.tingshu.vo.order.OrderDetailVo; import com.atguigu.tingshu.vo.order.OrderInfoVo; import com.atguigu.tingshu.vo.order.TradeVo; -import com.atguigu.tingshu.vo.user.UserInfoVo; import com.atguigu.tingshu.vo.user.UserPaidRecordVo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import io.seata.spring.annotation.GlobalTransactional; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.stereotype.Service; -import java.math.BigDecimal; -import java.math.RoundingMode; import java.util.*; -import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @Slf4j @@ -69,6 +66,12 @@ public class OrderInfoServiceImpl extends ServiceImpl orderDetailList = orderDetailService.list( - new LambdaQueryWrapper() - .eq(OrderDetail::getOrderId, orderInfo.getId()) - .select(OrderDetail::getItemId) - ); - List itemIdList = orderDetailList.stream() - .map(OrderDetail::getItemId).collect(Collectors.toList()); - userPaidRecordVo.setItemIdList(itemIdList); - //4.3.2 远程调用用户服务,发放用户权益 - result = userFeignClient.savePaidRecord(userPaidRecordVo); - //4.3.3 判断远程调用结果业务状态码是否为200 - if (result.getCode().intValue() != 200) { - throw new GuiguException(result.getCode(), result.getMessage()); - } - + //4. 判断支付方式:余额扣减核心业务 + if (SystemConstant.ORDER_PAY_ACCOUNT.equals(payWay)) { + //进行提取 其他两个功能用分布式事务@GlobalTransactional去修饰 + accountPayBizService.handlerAccountPay(orderInfo); } //5.TODO 判断支付方式:微信 - //else if(SystemConstant.ORDER_PAY_WAY_WEIXIN.equals(payWay)){ + if(SystemConstant.ORDER_PAY_WAY_WEIXIN.equals(payWay)){ + //发送一个延时关闭的延时插件 + rabbitService.sendDealyMessage(MqConst.EXCHANGE_CANCEL_ORDER, + MqConst.ROUTING_CANCEL_ORDER, orderInfo.getId(), ttl); - //} + } //6.响应结果 return Map.of("orderNo", orderInfo.getOrderNo()); - } @Override @@ -215,4 +182,73 @@ public class OrderInfoServiceImpl extends ServiceImpl() + .eq(OrderInfo::getOrderNo, orderNo) + ); + Long orderInfoId = orderInfo.getId(); + + //2.根据订单ID查询订单明细 + List list = orderDetailService.list( + new LambdaQueryWrapper() + .eq(OrderDetail::getOrderId, orderInfoId) + ); + orderInfo.setOrderDetailList(list); + //3.根据订单ID查询订单减免列表 + List orderDerateList = orderDerateService.list( + new LambdaQueryWrapper() + .eq(OrderDerate::getOrderId, orderInfoId) + ); + orderInfo.setOrderDerateList(orderDerateList); + return orderInfo; + } + + @Override + public Page findUserOrderPage(Page pageInfo, Long userId) { + //2.TODO 方式二:单独分页查询订单,在根据订单ID集合查询订单明细,封装订单明细列表 + //先查出来订单的分页对象 + Page orderInfoPage = orderInfoMapper.selectPage(pageInfo, + new LambdaQueryWrapper() + .eq(OrderInfo::getId, userId) + .select(OrderInfo::getId, OrderInfo::getOrderNo, OrderInfo::getOrderStatus, + OrderInfo::getPayWay, OrderInfo::getOriginalAmount, OrderInfo::getOrderAmount, + OrderInfo::getDerateAmount) + .orderByDesc(OrderInfo::getId)); + + //根据分页对象查出订单的id,将其变成一个list + List orderIdList = orderInfoPage.getRecords().stream().map(OrderInfo::getId).collect(Collectors.toList()); + //4.查询所有订单明细列表 + List orderDetailList = orderDetailService.list( + new LambdaQueryWrapper() + .in(OrderDetail::getOrderId, orderIdList) + .select(OrderDetail::getOrderId, OrderDetail::getItemId, OrderDetail::getItemName, + OrderDetail::getItemPrice, OrderDetail::getItemUrl) + ); + //将所有订单明细表作为value存入一个map中,key为订单的id + Map> orderDetailListMap = orderDetailList.stream().collect(Collectors.groupingBy(OrderDetail::getOrderId)); + //遍历 将其都改成订单的明细列表 + for (OrderInfo record : orderInfoPage.getRecords()) { + record.setOrderDetailList(orderDetailListMap.get(record.getId())); + } + return orderInfoPage; + + } + + //关单 如果长时间没有支付的话我们就将订单的状态由未支付改为已取消 + @Override + public void cancelOrder(Long orderId) { + OrderInfo orderInfo = orderInfoMapper.selectById(orderId); + String orderStatus = orderInfo.getOrderStatus(); + if(SystemConstant.ORDER_STATUS_UNPAID.equals(orderStatus)){ + orderInfo.setOrderStatus(SystemConstant.ORDER_STATUS_CANCEL); + orderInfoMapper.updateById(orderInfo); + //TODO 关闭第三方支付平台(微信支付)支付订单 + + } + + } + } diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/api/OrderInfoApiController.class b/service/service-order/target/classes/com/atguigu/tingshu/order/api/OrderInfoApiController.class index da6d1fe7c3235068b5f9667fb19d0a36a9492c06..25f27575657d24f7c453916f5292003ecc5bea83 100644 GIT binary patch literal 4574 zcmcInYf}?f7=8~VL@-sfMN91k?+FN7@lpkf*Q#hh3YgZ~+lDM*HOa=kKpDqQJDp+B z8AXSx)R~Uewo^Z})=n>oBK_XKQ3CkMf6(c3&MqOqa#7n4$=P#x-}9X3y`A&dKlg`; z=uI*UD2H-=OP-Cv?r zK6=?tuh6TEHqWuUWvX#$k7c%VBPpMlhqO2h$0$Fhn8(0=U6j%CKrjnVNK3{9{Uv@{ zO=}n}HmpcOHO2869hryBY?h{Lb+!?h>gAN!Wu2ea(*{O<0LsWR+Lg^vv#G-YXJIIz zMU}W?$&7+(9|agyabhB}mQbUbB_+BdvZ)%WxMfISLP;7b%!6)BO&U^4MuT|_HOeui zfJ&*%N1OaqP8E!nOqz@H1ODP@!gAb#e<6Af7tls}ok!Yc_+8-e;b541@D@L9rEQFs zwW-M{r&|Ez`WcrXNz;!NMqy^NhGW>+Te<7MixQ92&_B@aTG zBptNWgI0)tVtp{AYLd|@$6}}(9a|(#HnM!hkdCGlUHBQ+`V1?Pko7J`J4f!F8~fox z`bu}Y@AJn)J>j~>k)iA9%l&_U_W8)YzVYG9_(*?y_tA}C9}k@yzjG^n;mX*9zOg&k z7;SU))=niNMG%8on@f$FVIm8qcxpk=cG$sOXr~fxJ;|vbYo-QA#yC@=Wa0ZZDW@&P zF!yTFF60@bxCDKdic)BpEu!QU?s~drj)}em3+=RHH(>iB3U#bQ7oUyAEG~#OBj{82A_NV zV{~f471RxxdtPwgi?bRSz486{&$nz=)4k{IkJ0{%V-LE^Muz%FzxXEIb8Y*K2d%EKa@?DxB+DuL-e00_B^;vAYFUo zDlSfp7V$36D2!}gpR(w~9k`}?e&b=J3U_!qRZnW(f&Y-7XQAN9aC668m+t9)bo2M| ziv#K2tLcY*>2nvxzPvr!GvK(Y5MQXT&$p3v-DQwfXc5i zt1{Vn$}^~fCsoA6JjKtHV}{fs^XlVCqTb^YY=auRb93xc_iQ&Ww@AV3!km1DL81Gl z&0SQKqsdB`&);_qU#FCH{AyC!uA0v~+;jFZjrz zo%rX|L@THY|6BnVtEL*XxEAA?>J`FG{H=qE%r{KeYv1`A86Z8MX>H#Y|S06)>fFI zK1i(~oI7EVq7L=Nq);1(F2a+Zo5KU?Jc?n=E6lM%7>KWG$0~cS9dq0;`8iNXP&Hv3 p)y+63v(A4?oFDGZ$UZ;+&!M>ZPh_N%nAZ$S(P>QR=-BKT{{mIPf(!rv delta 446 zcmZvYJ5B>Z5JcY$UXa#c>|jMef-!4g!8RXbKIUuwU@~VU++h#EA@&B`z;b{@KtRYL zI0{g+YpsMtFw@=DRoyl7Rr?71&+oT);E0Ez|6)h&Lf1>4W_|`Wfs+`P6ekqDv9Xy zbZe7>rk6F=IgeC9kUI&|{YGeoL;aE!)8m*EX-~y;FU^oMA!C;fH8PjI|6HEa>E$*r Z{@S!$N^H5xh1a6q#N2YH#(l2q{{mY`B@qAs diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/config/CanelOrderMqConfig.class b/service/service-order/target/classes/com/atguigu/tingshu/order/config/CanelOrderMqConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..ebfa4f83a861e51edbf233180ca0ea3fc7d2a2fc GIT binary patch literal 2386 zcmbVNZC4XV6n-X&ZkjAFMub9Z>$?dEYqhbqLE0oDT7xKPES}R3lVn_0v$JtuDxA|F z)qa7toYNoRkLu~2%|;T)A(0Q+*|~dj@AEwO&Ychc{qrw?d)Q1NhPZ}=j#D_zF#d-B z#*HSIrm1#^sHGFv$Sy5TD%g;xsQ8HO|Am%z80#zXFHt@2h1;)N&Fg?OGMN79Mc+RbbNs?8AcAGPy{013P_8)-Fe#r6}pf_mfTU3hOZcI z9IsnB@O;N!-mY(v{DkcSaXG+i3(w=GNZ~v#DHSdsLKCUbmAa$LtF|pvgt!!P)fBGc znuhB-vdA&q?pLNzb5)+#mT8o^6wNhNg|JLyVo0}(6IPqydNx-%o?hr!NMQ~)G|cN* zfH6>#k|i5d+fraPDK|r+Mh1qr*`aa`Lev}m%6;Kc-*Mk^B()-O3|!$7;H&sX$1U8Z z_Gwe@l!)QxK-RrQrD%EF(eRy)yZD}=bi8E40Az^y4#V$*BB1#&{ zI__hcVdW$=`oyIXBOUIV9z$+mzeFW35aqJd5Da4#ONu9fT@&teUTcyiQ*r9NS>>*! z_K`8+Z&{QeUpc{9rexFWf%Gj~R4vbQKk_!4yYSxJkd45klJtpw=N!7N~Wo!Lu)|| zb%r~`66*9us08KHA4xh4dPvgP`)+#rpUA{PwA}}$ulfRNQ$&70j6emapf<} z(sFYb-)7Rg_+b}69VU69i{w-vl5wn4uoyNzCVWo&7xbGU_<6d(szjkc>q}aTwElw6 F{s(z^tc3so literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/pattern/TradeTypeStrategy.class b/service/service-order/target/classes/com/atguigu/tingshu/order/pattern/TradeTypeStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..befe3716bf720d0530f9a0a8af2f360452723c4a GIT binary patch literal 290 zcmaKnv2MaZ5JYDowh3vd_=cp(6_kiJQlvyi*rH$Tr&jIzlu)^H$(|3Q yTqi=(_pKdaoVnH)@>cJ)e%j~%1%B;VV*+8QuLGp~5n|Pes)#V^mUz@T!1xE;DOG;} literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/pattern/factory/TradeTypeStrategyFactory.class b/service/service-order/target/classes/com/atguigu/tingshu/order/pattern/factory/TradeTypeStrategyFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..18a2507c08705ccf4c9b0086b5f49b86bda34503 GIT binary patch literal 1632 zcmbVMOK%)S5dM1C_UvPVoy8Aq2q6$V_8Kxk!pma}juQvOCPCP;fLnXEJ#J@rdezfI zun-4JCZTfgw9RvzA8=c?$&_Mc53dJXLqN z@gwO+j*)>MZbpvMRiT{*H%92d+2Ed0dfQpmyed|=8)C(1ZiK(R-1%c&^e7uwC?5r(2Pq8{7Lee!7$LpW%mWaCi`6WF~L41F@#Pz=YWE4xG}AR%+R zPFmF57M)QWV|a{Vm~cIa@EmV247ThdBWn&FxJ69haSKn_ID{t|4kU5fe+jOq0>fnx zz9Y67M!Ipdqkb5>c*@2RJWb?%K^jjz>|QTm3r87F?5}x`);UZu9Buw~wfV)B=C_xd zS9k7TztjBw%fD`2x%bTv_rBU`Ui<9+*O&kPbtjg1+QtmZ4E;iDrT4H%)tp(g@GQf` zuFUU6fsu7_=3`GZj8s7Zvp627Rk?uY@q&dHZJfYKhOxcR*2#oCiP3s{hRJS8mTEi< z-I?ALVaTsYKj0?Pg5muK-)g=~!FCe-5Aoaumtj1mw`h77N^a5dsI z+t9o&E-8J{SrYh25C zpC0y^O-b=iSN3PIU)fRYVN$y%QyAXv7QX%3{~=nU&bpm4}hMU<}A(BENOg=b`H&q=Kk_cusxH(-?x%-+Ue7UiEYLaXr%zQe(Eb2x)P z@yw6$t;yRsmcbp&eo&gciRbueHnlt2L^L|~Mlk6{YqRCf~zg3(r#6amGq(OKYMl<~lJ literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/pattern/impl/AlbumTradeType.class b/service/service-order/target/classes/com/atguigu/tingshu/order/pattern/impl/AlbumTradeType.class new file mode 100644 index 0000000000000000000000000000000000000000..57214e45e7d72c24b663c7e4c1ac0b0b98a6ef5a GIT binary patch literal 7182 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 S&!yscp2WC&f@l&aA^tz(rl}tQ literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/receiver/OrderReceiver.class b/service/service-order/target/classes/com/atguigu/tingshu/order/receiver/OrderReceiver.class new file mode 100644 index 0000000000000000000000000000000000000000..ccb59fabb76a30736f1f1856ffaf6d201154bab9 GIT binary patch literal 2008 zcmb7FOH&+G7(I7ppogJ(gb))F6D5W)1B51s8Z-Dn5)>Q)GB~kJxwz9@W-j#f9lCoU zl;y&ORVk}dr3*LFDoZzRQfiEaMlG{*;s2PJo&Uh{>+T7(NH8wC@1wuhIp3py|Ldn; z0la{>Qivh0A)%uQ%?zC@e4QH>w@b!caYdLOL-V+_rS~F3Je?`DAc+L5x$*9M zt?0x74P818qMM@MZImG)?PbN#pU&+d%X7K27?0;jBwj zFpT9M4%iKaLc9^JY%7l9n1;u79LEWU(f@CPq1EKJDXf4?hJ#TwIYn49g%qAduZEL4 zp28`HzJQ9V4|Lh#6|te5RfAX7s)nf?Vay8G>@T`vK zaE_tPQk9}wrCRhC;@hDEeKsPsvTY)piQF#KY)@9i#jB>MdQ#cM#(88ljO)~8 z)I5iGm*x~VJ>_gNv=HjB1t@D#N0SzJU2?KpGt1D^a95D7Brp@Utvv3#rPQ61of?r6wad0RnV>`w+h^m{<(3P@XC_> zjqcMEdk+EfbU6w%sNlfLLlT?a6Vkt`nYw^#=9IX~a43?RorE!H!El;hqVA4J1Od=T z^FbXQ-!~ePtUTzS{znXrN-Xbjb9I(i8}xO~3a_k|=DFXVo^XiDeQ<`%L=(3VG(k?f zp0H_r(x6_eiJITM-Hk~+91e})05dhmIJHYS%2Rn&b4)QMgXI2WLJ#}R!Z5HWF7o9F z-h9loW>uMXkgN`@`zQ-Zj z^~5lAW(!Yjp)Y<1g9&_vDwFhEL;I| xk;gpUwZ%yZBn}evLs{Hrr#CPKv~(qZ#PheI`3$iLLkGyin{*dLVVmU3z~3xEF+l(T literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/service/AccountPayBizService.class b/service/service-order/target/classes/com/atguigu/tingshu/order/service/AccountPayBizService.class new file mode 100644 index 0000000000000000000000000000000000000000..edaafc6ba5ec3aaca26106ef4ba1b483435b7a20 GIT binary patch literal 274 zcmZvXv2MaJ5QhJwg+RK{kvD)P-nvvB+M!Y<5J*Vu#yJwB#FiX8Qu}BOJOB@caN0^) zSWfy+clUjFxt`7d-td%QKzLEM7Sb0%7eRP!ilz+0x}2S8*tJ@*cvs2><2UmAL;r05 znh72W)1z#qsH7>xdVgf)3D2c8dBv{ZA!PIAJxFbHuKrQ$4)|pb_I0s~cUSC7n{T9( zHG6gqVe+fgO%T$p4Nmc=u9z_ENxfaxiH!(^hxjT$QFe$?%t=f`!nkW<66*lz4U)W1 AXaE2J literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderDerateService.class b/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderDerateService.class new file mode 100644 index 0000000000000000000000000000000000000000..52d15eab0628fc67286bffddc43f3166ddef693d GIT binary patch literal 351 zcmbV|O>V+K429nSB|tabaSObFU1(RRQY9o7Il&~chC#^;nxCk>S{FS)4^=e@5kf3k z*p_Yi(|i8?`~Cs&isu9)flXm+l0ikSA_Z-fKSr{yWJjJ|qYI`(*X`KJz}aP#U?T8x zl8vNF8bycv#6?Ij6+y3a@S#3+M27foc(zjG#k=f`9e%Dp2VtKP2WUe}0twn)x8&B;Mff15E&oJ-n F;vX9DaK-=t literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderDetailService.class b/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderDetailService.class new file mode 100644 index 0000000000000000000000000000000000000000..b194a40446914771e9f09f7d2b66041bc017a9d8 GIT binary patch literal 351 zcmbV|O-{o=429pcK-#il$1U&zb^%rh38_*SIl&~crmiM4XnrEN8Ve4bbTU~?rX@yy>68O2^xIQ# zx%~(9emXjJ*7=t0?C;1|`B*A!DxX8c&teA^*GJn~=FO;Uu&A&c;(T}_us|{871mST F`~VlLaKHcn literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderInfoService.class b/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderInfoService.class index c02e15a0042b21e5b387b527ebbcb005cfcb6d5b..a4292ccef8e289e660c153a90399f01d44fa7394 100644 GIT binary patch delta 412 zcmey%c8{Cu)W2Q(7#J9A85A~h6)>stq^Fkn7p0^YdFG|%Gcwp~_+%xPCF_?0iNBVPua(To(rOu4l^R3Z|8eY?GCkJ;PamY8gZr7#TQ$p~%X} wAj-f16cS?)XJ7&gaWXMT0A=`qm>-Cl7$kwxQVh}v9Wr2Hh@>oo9GE8$0Lf-=egFUf delta 48 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 literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderDetailServiceImpl.class b/service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderDetailServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..5460e0e8df52c28d4f2ea8edc45bbaa084ed96d6 GIT binary patch literal 986 zcmbVL&2AGh5dNH`-6RbZ!cQsXF9)QQ1HSaOX%Q-_gcLv`D0gS;Ze4cmmF+F$u@DCk z2OfY2;BgS+O)64SQHjIO?2Ko=8P9zF@$1`n0K4e5QA0gKqk|Q!GQ^3=`9zpp9h#Eo z(~0oP6NwDNll_5SuaLX%-P;0d3WDlNHJ zI(5e-H}+84^Du9M>xJ|}WebRHw6PYU)4>&7W!Nw_*r)3FHpy@dbg)s$Dgbw|Nmi49&XRjo k6wvBMU(x!E^#H)|2Vf0#Y>}^qd$?ce2Y5(206YSI1K2ws4gdfE literal 0 HcmV?d00001 diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.class b/service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.class index d15be6b118d2d7c74f231b71fc1b9e232a560be3..04f99b01ae8e874a2a7eb74364c3f9680787e1e7 100644 GIT binary patch literal 17669 zcmcIr31AfE^?z?Ro7pTw5;lSc6axk%5LggJO#lg(MnVt*p@3R9n@O^=*$ulJG-|b| z)z+hGMXRlCwbg3XR;(BZsNhwtwYIkPsJ8a-s7DX2+SYpgfA5Go(-EZv@HPIpGzyP9ITM7AT@nT?uf z=FC(!kxoUkW@cj|ZblRB9m!~e1=Qj@Q~vBkDv_JZ6qr=e7^V;v=oB_+7#U3Ef;pCJ z?M$?GMstZ&YqqU3x-lJ1XPV7SbY&*iY&NEuhP9fx+MLnI$%;o-RZH7v1l@u zYK=DJGMHCgK!sGKQ?WrKC}NY`AF+kC52edwq1seSx(~?*^|LiCs705^l%)1~{?WBRS zsu%(f15i~DqtP@*r-KbTgvK(>+&j?&a4-cS&t~Xw#Ux)E`m4U$pHz34tG>o`bp*Cs zX3#hq&vamWY`wW4or=eDs}s34e9PuysazHo=aolY8kXZ@Od%>~YE871Wz6P8c3M1^ zOimgP`Hrt#vS>}ix*4Zbl+Bq_RnL*9F3K3Z1Ic z=M6fIVoV3eQ_;509C)@ot_kiCosW-IursCtfmf!N#yXe|^Dg0IVi*K!5}8JtcK&Hz-BOkW>83)XGY2X0ijx zv?0-&IzfE}AMrLbzFzJyMeOw)QsB>F`11yXG6bI*o{eoZ-7t%&xR=1~4n;)v2;7de zepI%n5hU%5@6Lu1)=;NG8^s3;;8-UqA?kD{(-D4HY}nlU$Y#*$#NPk3~6xmLp37Y*7(=Oequ;_-B6O30X>ILj^;n2zzy zVwT*UI-|yCCX(re^d+4xGU#IZGSe(SmiCSYPSh4lH7CtX?;=do{8i*H=ZeMlZB+oSeib7s-G`}%cIdRzp!?{4rt$qkeLS5^ zqD+vqwE$mNsem6&Wb4zpMeQ9ql>VhQDGH^Gv4&SytQ|(XXtz!e8uSo73_112c8i(- z)FM%)PfD`|uG6DTll=^=zG%?z==U(gjEV9uZq_8>MaOtGIMAwnOv1hura#ahb^4P*f2Nn2 zM)y;gQbTRCMNkA1Zb+riXi1{*uSd-*wu5Tr#0W9HD!YQ$m=5=$hYm9%mL2RIcRV`>tJiZI<||ZGl*3AIXf_n_2b?hDa3Pu!C@YT02{Y_9GdZZzRgAN z9Ipl0qKB#QaDxlE2&qP?&~jflozB{WwLqh)m7>h0&%EkkJc1)Sml%A2#IPd=x0u0^ zNPI<2H$Rq(w;_`9D1#5|7fGe(VMWpi1?U6eX0*X$_~2e{WXS$-+0l{CXjO7w$iL<=J+E z-psQMKAMk#nK@zCvVSX$I<-LWl#0d(8kC@DEFXd7#EyLcowA@(Fyk6yVq9k!#wQZ1=knNYnK?mRTwwrMx>2A6!l z1$174DtS;D_V%99if%x~gNd}fG)TmfiL+u&Nz+ey;@@W(e72OQh0Z?5DqchU1*^iHDGQxv@E4_? z3U_u$*(wW#`Fy@W=L-$~l1v|`xKn{Gk=mGEZ@P<{%~pcI&KgU|3yh^^t}WecRoJum zVuQcTUx7d&3bd7_m5nO1HpG`&Z3=lyQQI7%$3t{$h|dnu#t>g+nV(AMc*a+wttQAZ z^rQ^lnS}TnYlPfcl}U!^>mkOzRw!7ONr+7+Yucsz5aMrmcz5n$zgmQ$3q_NrbyN8L zw!z;KQu{KpB#~0mxXIw}iYUflrjxy5Nokd3@cP13TelF;3)5UWN3eb0V70?6^B>zWFeUDF?g$B z8inP1wdh&zx)2#5x;Df;Lq{(14e?H-<3$7DC{?qF)0b-p{ykMmE${4;)1=bsz=6#oJxx@u1+ zTaG+ET9<9pH9efu?cfrkW4`GXxaM~=rSxCS3{!Gq3}!rmf~2lsk7a4kEzlZjT#rN={Fh} zB6gdx502^nIIOl})b9LwW&qET`z8w2-N&?`YQIAq!0qH;n1N*4DwAV!OR^K+$m7k5P**?6?#d=5erQJKswnNWEyHt{S z!%@t{*MnO{o~~(5Cs7qDqG+hdO<_zM{{Jjy&otUp3yst3P^o22c`hZ~R zQ!EKrNo8>Y0znxWQ7j24vq#hVvb z<(Jh47vpvYNt$*B9p}-7>;h*G&2p@js)ghI#vo)U40DG>LtjUCSp5tLEHNkqQctLXfEW=euot6KZZOZKq8-0NO$kavl`d&#{c zLqyD|%^>U!n?}=$Dwb{RH_G8|fU@|tWz=j*#F3G_q_FOI`+{;u#l3{G&;6reh_$ z_HAXvLF*N!@(3qETiaKp#q!>2-n4e0UGxFOw{iJOZPvNtL1KS1^s(z?!koMA?-14EMfuw`)xAO9mUo0-S7YK;=~( z(rVClk!?bi+7DE5NLzrOCo`B`6xJ4N$Lrb&hE}WLIGd+qVdJqv7C4F7XJ28Z*yi*? zPyX*2-=kFeJhWu(6bpAO*TcfSTHYAqJ^-=Cc|08woqtzA#>6T*c6jjms zg^K|pSH%{uYHimD;OuZvKBy?D#n2b*znI8B4-1{rb+=IJX=I{j=`7Gb%4$VM33Ri7v=UQ1D$SJ^#Xy=dcTH@V(p@# zE6YcoYFz}X+EmKSs2-%5)ipG^Ck%+ceqmMD(54@|=bk8_y_Jii|_fkJ}3A1dH(HydoS>d{qM;M>HhcRjKF|UvN*-a(&Q>XM$sYX?KrFmQMRAa%2 z_wV>zhVjcG^%eMC#7c$zNDG6F9k}>4{tH$K(nx-t-@pomX!F0xZ{eK6f%rRw|B5&H ze*>-{^J};;|DFGVTObGm#4k^9Z+GPmI+UnBa#&T~PMWZ08y#L1EDe_Cbupdh;)?}bko__Qy~^QuQb#{7ibju zihc7S+`Ke$RphGDP&Zu-;QDU**6PUj1iWQC-6mqoQ({|zACeHQ17D}$2Q|%rOd3Ni zG#-bH7gK`j>2x}kI`Cuz&IxDn-x+i^b16(Z z|BLZw(<1(mKf(`yHqmi782tv`q<;*Iqkzqt`3YuP<3A-`!y}qPfltAJu2Z2-HM+(+ z%~JnQ&~ZqeKB1#^GIiRFdt;T>3p9Qkntlg%CE;At@|3F<5^F*H<*y@-YdSc=;bzNB zwS4eUfU(a{iEIu);oIrX-L$!WD)hAl+S)3Hx}COPPo<@KfgXB5quumKH~pk4IJGp` zO+TF)d9s_H+D=bLo{c=;O)qSxmv+!AME3K)K!0ye?V-QJ5~f0(up0|qv^1}W-b0m| zzk~imIGp&AM%!8ILFI)Nc2((H_i!<0PU+^6VpEEcDDK)b`5>Q}AQ)xh0XvvM`C15i4PvyxVXXjKf5QG25(&HZ^t@|N z&)fD?NKYv12!N_xn#|1uEf;IU6uvg<&TF(k03hP-Bo>_sG zZU%9zjnWW-CD3YBPzGFzC5*l~#pQD@QKgbaS+RaUAGap3gK?{2O`eiv!!KQC9%avH8!x`#!N$QSlnF@oDR*=}oA3KxJ7ZDhrfl6OO z%Kjr<^Uw4&y-dHs_ZR6e^d7yzBk4`9ptrb^{;Jfz0;iQm(gE5*D&#^JjsfsAtyCK= z!5sIjVBSs-YGZIO0PHtu2P*@3ks7o^!~lT3N*jw1p07+nWn_ipP~fm;9_r34gLzmp z3!RzTID`eTL*=A>N}p0lf;lgjV2)4PrT#Z{UQal8T4}qXRtoZZqxg83*I|e_R$*}i zGKQ23QDt5|-03(UchyIpM36;d9a&kz=O8Z2kjfrD7m-lv7t5VSE0=f|f$%*9!uRQ5 z9FaYY{!P>9BPBZtD?sl^jG`*|U>`)|Y?mpagSB$FQ9yBqqUmFrX5}H$P8)Q34C% zl5;<}V;-Iy6+Ek0#!mE&yBx7}X6FHmW!b zxESy^6`Wr@Y|g>L3`)7D)P;~@i00w%3jDnU{?5VQ&k%1$L$PrAz%BTD5490uP!Qf6 zJP)$|R_MmyS8%zz<7!ivm^w_;Cr}tAG=B zFrva1+!AzExVq@30&vll0dUck0C3Ue0|2^iL6`S|3NAJ}IuVZ?bTkKmgN~*HaM00V z0Dx|rV4zU|9CTEm;-`%+?*=?_(B)kLz(JRHJ^%+@UMBztU0xdi2VLH}KIoR>k&A8~ z02kd%04}Oirqii-RG+cR2TmnbbK@jcbMhL032rd5CAT-#Q?ypqK*Rq997W2 zR0ZQu_c|Uq=;%cN4mu>TUUc*z0HCu%z*Yc`D(F^KDmmz`$0HZrWdK}s5)mEhCDAlc8?gvXdWJQ^LEq@k6^1z^znlwGyVQw5wVPdQdxDn}nc_ zA=tl`eM~u&>0GG(70Ey2Lz?#?)$i;7A5c9KGTNthZ{uVuA=4fR_-76_fAv?*F8%Aq3cGp1_ONW)6#3;V3}xVzHh zYNekJSm|b9xdkhIf6$d?*ee~O&4idj+L0({tbWZnDeLgBAX2!UpSXvADK!tPErcy- z3fddvqqJFgrfEkzy)5k*fCygbaFw8fXKkMPoUbiJm9s>v)0WxamTN1uM&MbZt#`-UmwefiiudP8+f)N@!==E1%V8> z_P_tN_C7b>#>X1{`@ZaZ62Mfec#Geg%YyJr(0nS%EZ54EIIy7 ze;2gES~ERmaQcF#XmiB4{=UN9C`%|zZ*7T2TB1f_y}~`%AQ6eer5%y>+AxtZxP<0V zOJn8i)|N&m_>BsiaBm{`#8jMe!AtTUpn*H}Tl(`V;y2qm}cVm&EZ1erDrQg~#x7 zqC~F{>oRTRY10T>mNUII93iqwbhmd{$d7s0qVPDj627LEXnm-;Q$}4SrM1T96AJM` znCC<~Izo*RA9@IP)wxv@4NiRu{RY0kAl~z%p=f7^S^Q3gC$US9ORY_Q3Qya3M&TED zR$rfbPN~1MEgXtQrY$qDW({n#gX-L?uZc87r7Na!pnF?Uz%Pg%zl-q(N)={ z`n`-`4i3VV0pgIt8+eoOgxcDgml0D+bSQh2Zp+HaHP+u&IBXc<5eRF;e$jeY;XV9H z*Jajt@IEnFEauDfU}^>|95ORLQ1}qP)6=t7r6l7c{K3W_6+XtF^yc()libZs9g-L` zO7taJ1-dRftHQ~T&S+C}O|@#(|*aB8W~g-=b?f7eH|M~jQk zaNNc}6h6lndO_Ni3SZ)+P1!)w(mT>F^nFIRqK94`NS~T5aM7ojM871)09>_UyEkh)_}12E0(ZS zf2=O{9buVbIV<#KDFq%@665riiZS}W6niGebAsYT!{ubNfx?Ws&=RQtT|8Uy9K#p` zfm1S^+Ti2l1kES-c`mDMPEq_f?F)>{=6M7we7t~wACovuaXM${S%F%`nf!*$S&Fs1 zP;U%W``nzZP{=v@y+HYxE_5g3DPF9237#dqO)bLdXa+o-FPq2(0&IysT$roRNgI~` z5$hGd$x>5S1mS6+Xu~42{)LK{%lc2G2UEP9Z}#aw6u-s))I}K=dqb?Zd9|>sJiA@; zYks7CX;VYQ&oCo4zpdD)KOAvheUsufPQEV+bu2Q~z{lo9r8BV9hJ9@Lr@|^+7yUNH z|1vu12D~M0&2u8rMXlkBnp&LE4#lWG8Z1o3`+l5+~f# zm3d))S8;{e2Q^@7dUL3w!^bY7Ob(B+x~kSgDTyX-f}-zbB*GirW6lV|Jtz4ExnW(CH*ITf{$^&T4pid7bC0Of6ADHYp0PmJw@#6* zO;B8qFBoB}@R-vXPo$ajIF&T@t>!=wle5l{HjcqmCqHIHqM@c{QyauY;&eP!Eo9YA z&i0w{t@{d!$@BF+MPv2uQR#xItv?=Hs*jG^WbtLartp~FFuGmOEn2m8dGTgfDnIq} z?>uJnGeg(oy1ML{(fnNY$OKd!Z4ZSb)lBvBgr8sXq-{Z2v@Bg*UaWJ*uN$6*rc{sR z5uh!vVhc8;Sw2%@w-jbO?k}j!(Vve`2`V!qMX?zhQoUBH7_-upm2PF|+2!wgEGZ}F z59xGQjmY&`QX4FaXKREX0V}BZ5&w{8jU=v+iDUEyrIUxrV4fMwSNsisn`Vs~9Nb@& zqz_k&&yr=-wzNdr9il}#Y^#VEtB;ls*C(rNeO~O7!rC$dYF$mzOwi;J}STjB#R&8&*2gs7xK6nZf+4B5BadX$j7-=x*h;r zH^4@!bUj|)hXSB3qo~^54}EOnwK3-RBerlmR#f|g{-7_88{)VnA>AIw9SP~qIPOYF z>*DyqxNW#E=u~BY86z$n0ORFdqosUtnW)mFU0Yp=)BaAgEIHEKD-W?8E?h$&TbrZ@5HYc zy87@NV169G?ZxjUmXu&hFaAvQ;cq}Mj#=oziC(%a?8cGmfEW(MX^-2+!VYnJ2(SXs2U?#pTJK2bDVF|)$k>56S zAd2N!iWT?{R*AG0*NTnn`JldM=Zj(M{OMwb KI9N+o$UBpW^fyykaKb`-eH{E zkt{avXAgUYJPR<7u|D=AMU0%y9U=t`Nd`G5(oSKO@K>ZKxl1@_^AYYA_PNB+gM3OP zH->Q&pXM{d*O_vV{esU*HiTKnJ$z0OS}q6q^V|y`R&W9uL?em&1if*Br34UTA72;> z;6(`_VQ#;eOBng3IDJVJX2W$-P_=CYY}D91U}KW=H`Ycua8f>D)EUQYL~L|9Q)9MV zs&O1UoJ2{oxHBe;lg}=`A|5OrbW+>YmRIHfwJX2|zAgZ?%N9z~%9JEodXmh2yDX#2 zwG)$iIC3|->MF|PEGUa}RJA+k?%|mA2nOA*UXBy)aeSOr)t-u=C(f@`WO9P)Uw^m4AGN`)}K+B;yfGU#^r9rX5b-WeD!)W%CeyO)=W zrUY|YwH>sbU@E28WQNha;xx@zA~}4L6<11r@+#x>6w~XGC5zoG+wwRvu?;~yfkOEv znSkw>EQxlWP8Hx+R#K`KDuU zG1~Z+kk%^!Oyb+d@*wdBe7zvPVhLx5g`Wu{?}(9v!n*^+%Yo|zCOZ^5asrKpNIdWb z&b4u5h(-w(rTO_DeGf8Ol>04C?GtQ;! zal17BJCpz8G-A?Np2_Q-M!Pg(nY_ViM5M7&S~okb%ba4mS^A8<3*|jzZ>ltg>{Ur) z$X<~&hU{faW96W^B&T9;?&mEFGkM!~-o8tsbve~jj&YH{mN*?_PI>Y0*L+`AWb!-% z-V+!jC^L|p`#I{4qfT&@t3?7=T$#WX*@DsP!4%}`IpyNMyWCLMa@+(A`Zyp}@MS5` zuQ={TIepm)-MBu*8*Ian9gM54qBgtF>Qo^{iOgBd(tNKU{sl zKMr{Mn17O;^zqN|%K8mkB&iH2KvG7ahj(q|26K}0pYf7&JyE2N@Dmxccy#C<@)w!< zSLvH2tN5E}{exe?W4SE1Wm`#>f1s6|XjuY`j3rx{X6{*5) { + /** + * 保存本地交易记录 + * + * @param paymentType:支付类型 1301-订单 1302-充值 + * @param orderNo: 订单编号 + * @return + */ + public PaymentInfo savePaymentInfo(String paymentType, String orderNo); } diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.java index 50ffb3a..229b0cb 100644 --- a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.java +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.java @@ -1,13 +1,84 @@ package com.atguigu.tingshu.payment.service.impl; +import com.atguigu.tingshu.account.AccountFeignClient; +import com.atguigu.tingshu.common.constant.SystemConstant; +import com.atguigu.tingshu.model.account.RechargeInfo; +import com.atguigu.tingshu.model.order.OrderInfo; import com.atguigu.tingshu.model.payment.PaymentInfo; +import com.atguigu.tingshu.order.client.OrderFeignClient; import com.atguigu.tingshu.payment.mapper.PaymentInfoMapper; import com.atguigu.tingshu.payment.service.PaymentInfoService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service -@SuppressWarnings({"all"}) +@SuppressWarnings("all") public class PaymentInfoServiceImpl extends ServiceImpl implements PaymentInfoService { + @Autowired + private OrderFeignClient orderFeignClient; + @Autowired + private AccountFeignClient accountFeignClient; + @Autowired + private PaymentInfoMapper paymentInfoMapper; + //保存本地的用户信息 + @Override + public PaymentInfo savePaymentInfo(String paymentType, String orderNo) { + //根据订单id去获取订单的支付信息 + PaymentInfo paymentInfo = paymentInfoMapper.selectOne( + new LambdaQueryWrapper() + .eq(PaymentInfo::getOrderNo, orderNo) + ); + if (paymentInfo != null) { + return paymentInfo; + } + //2.如果不存在,则构建本地交易记录对象 + paymentInfo = new PaymentInfo(); + //2.1 交易状态:1401-未支付 1402-已支付 + paymentInfo.setPaymentStatus(SystemConstant.PAYMENT_STATUS_UNPAID); + //2.2 交易编号(微信或支付) + paymentInfo.setPayWay(SystemConstant.ORDER_PAY_WAY_WEIXIN); + //2.3 支付类型:1301-订单 1302-充值 + paymentInfo.setPaymentType(paymentType); + //2.4 订单编号 + paymentInfo.setOrderNo(orderNo); + //处理支付类型为 订单 + if (SystemConstant.PAYMENT_TYPE_ORDER.equals(paymentType)){ + //远程调用订单服务获取订单信息,封装用户ID,交易金额,交易内容 + OrderInfo orderInfo = orderFeignClient.getOrderInfo(orderNo).getData(); + String orderStatus = orderInfo.getOrderStatus(); + if (!SystemConstant.ORDER_STATUS_UNPAID.equals(orderStatus)) { + throw new RuntimeException("订单状态有误!"); + } + //2.5 用户ID + paymentInfo.setUserId(orderInfo.getUserId()); + //2.6 交易金额 + paymentInfo.setAmount(orderInfo.getOrderAmount()); + //2.7 交易内容 + paymentInfo.setContent(orderInfo.getOrderTitle()); + + } + //处理支付类型为充值 + if (SystemConstant.PAYMENT_TYPE_RECHARGE.equals(paymentType)) { + //远程调用账户服务获取充值信息,封装用户ID,交易金额,交易内容 + RechargeInfo rechargeInfo = accountFeignClient.getRechargeInfo(orderNo).getData(); + String rechargeStatus = rechargeInfo.getRechargeStatus(); + if (!SystemConstant.ORDER_STATUS_UNPAID.equals(rechargeStatus)) { + throw new RuntimeException("充值状态有误!"); + } + //2.5 用户ID + paymentInfo.setUserId(rechargeInfo.getUserId()); + //2.6 交易金额 + paymentInfo.setAmount(rechargeInfo.getRechargeAmount()); + //2.7 交易内容 + paymentInfo.setContent("充值:" + rechargeInfo.getRechargeAmount()); + } + paymentInfoMapper.insert(paymentInfo); + return paymentInfo; + + + + } } diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/PaymentInfoService.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/PaymentInfoService.class index 46d7ef8ca354aff266efa38f75e890405719610d..ecdf61551e5a9b1ac9f6b34140f55b0d09f546b4 100644 GIT binary patch delta 173 zcmaFN)X&0o>ff$?3=9mm3<49mdad}26U$Nq5-W34^GZDP(()M@LN$D{63Y_xa}x8? z^@B@_GV{`{F-0_eCJKm5VwBQmWDxL8Ey>7F2}mqT%uOvxEh=VY;4Xle7*bh~%E-W; uUzCzsTWGY79gL2gMpEO6X*y|CI&7b#SO$v3_M_xmw^vV^8*0QcP#S& delta 51 zcmeBYdCVkm>ff$?3=9mm4BYGtOpFX>6EBKPR4JaU!?;tJfq{vE9Vo}dz`?)?rnvxI CrwO9~ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.class index e1c4e795acb15f37ca3abc503aec3a1253858d05..1ca06f5b42e05af085f1bbfbc6417cc1cefdcd19 100644 GIT binary patch literal 5473 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 literal 0 HcmV?d00001 diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/pattern/factory/DeliveryStrategyFactory.class b/service/service-user/target/classes/com/atguigu/tingshu/user/pattern/factory/DeliveryStrategyFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..3c5f4f3a7b1e7e3021ba9040daa4387d9ab4e8c6 GIT binary patch literal 1619 zcmb7EOK%)S5dM1C_UvPVoptOG6CQ!svDc7EAiO-r#Bt&vu>pjmmEhJMx5w?wPOo}; z5>|+VB@~1p5>nv6g%fuOASEF@a?bBylOz8CQ8PQcUN(^|4%3gC?yB$mx~lH|^Xne~ z-oRTWwQkG5hbj)Zoa+!&!lXOnwI>6UX=1oE=btu>>$5q@j6V<)eH@);^MrF|y~ zHcxFkHRbz4y9GSPP?knCF1DIt;p0!r7{h)G6&vF?Ku`y7Fbv6XQ!yNyt?kmFfP~BK zvvi2L9Ws+P4&rf!@r?n17kHClv~w*sGH}S?mNA7VEF8A+B%Wf}mxk&7CA6Lj4VPi` zwrDX-^uy=|{V;LyjEy6Bmbm+Z1fF@+xrgyuILdHxPr(O;E?|b?X#4l;?a!~Zzq#7J zzVqP5o%VNM{B`Tv{jYzx|K(2m`%fQyb@lJxb`pJOZOoy{Ff6oIdVoVF2M6D*mj*?WqVwD(ok;ZR1dE+e@fh~+R;h9@K=hSxf%nn{Lj zYTgi6l)mJw3m!(j#OJ*W&T?$j6{*DrxgA->i zZR~<QD~fVt=-II)}S> z?#JZR^lco=;ST0Ms7&9)3xCq>d>V0*K!Lhp83zdZ1ZJq0ouE~MV6qb>LqPFx8q0*_ vOnRHmV1*XL)WT^h;B1fFk(32ctQ2m+`59J1ko6HPljCz_%VD*r(Rtus=%TzH literal 0 HcmV?d00001 diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/pattern/impl/AlbumDelivery.class b/service/service-user/target/classes/com/atguigu/tingshu/user/pattern/impl/AlbumDelivery.class new file mode 100644 index 0000000000000000000000000000000000000000..317cdcabdafcb25703c34b7730183282cade68e8 GIT binary patch literal 4103 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 literal 0 HcmV?d00001 diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/pattern/impl/VIPDelivery.class b/service/service-user/target/classes/com/atguigu/tingshu/user/pattern/impl/VIPDelivery.class new file mode 100644 index 0000000000000000000000000000000000000000..622fd3dcec968b3b49d3200fee0d4028fafb87d4 GIT binary patch literal 5808 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 Yh?B&;;@AA**D0ilazmq7M3lw<3;QId#{d8T literal 0 HcmV?d00001