From 314fffde91b05e25ebd7b02b53c2c3e74ecff3a4 Mon Sep 17 00:00:00 2001
From: Y1NanPing <735289578@qq.com>
Date: Mon, 4 Aug 2025 17:13:18 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AC=AC14=E5=A4=A9=20=E7=AD=96=E7=95=A5?=
=?UTF-8?q?=E5=92=8C=E5=B7=A5=E5=8E=82=E6=A8=A1=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/atguigu/tingshu/vo/order/TradeVo.java | 3 +
.../tingshu/account/AccountFeignClient.java | 13 +-
.../impl/AccountDegradeFeignClient.java | 9 +
.../tingshu/account/AccountFeignClient.class | Bin 347 -> 753 bytes
.../impl/AccountDegradeFeignClient.class | Bin 505 -> 1108 bytes
.../tingshu/album/AlbumFeignClient.java | 2 +
.../album/impl/AlbumDegradeFeignClient.java | 6 +
.../tingshu/album/AlbumFeignClient.class | Bin 1822 -> 2437 bytes
.../album/impl/AlbumDegradeFeignClient.class | Bin 2981 -> 3279 bytes
.../tingshu/user/client/UserFeignClient.java | 3 +
.../client/impl/UserDegradeFeignClient.java | 7 +
.../tingshu/user/client/UserFeignClient.class | Bin 1349 -> 2222 bytes
.../client/impl/UserDegradeFeignClient.class | Bin 2583 -> 2930 bytes
.../account/api/UserAccountApiController.java | 19 +-
.../account/mapper/UserAccountMapper.java | 3 +
.../account/service/UserAccountService.java | 4 +
.../service/impl/UserAccountServiceImpl.java | 30 ++
.../resources/mapper/UserAccountMapper.xml | 5 +
.../api/UserAccountApiController.class | Bin 792 -> 2348 bytes
.../account/mapper/UserAccountMapper.class | Bin 425 -> 592 bytes
.../account/service/UserAccountService.class | Bin 676 -> 867 bytes
.../service/impl/UserAccountServiceImpl.class | Bin 3461 -> 7049 bytes
.../classes/mapper/UserAccountMapper.xml | 5 +
.../tingshu/album/task/ReviewTask.java | 47 +--
.../album/service/TrackInfoService.class | Bin 1953 -> 2429 bytes
.../tingshu/album/task/ReviewTask.class | Bin 5261 -> 5362 bytes
service/service-order/pom.xml | 16 +
.../order/api/OrderInfoApiController.java | 17 +
.../order/pattern/TradeTypeStrategy.java | 10 +
.../factory/TradeTypeStrategyFactory.java | 28 ++
.../order/pattern/impl/AlbumTradeType.java | 150 +++++++++
.../order/pattern/impl/TrackTradeType.java | 116 +++++++
.../order/pattern/impl/VIPTradeType.java | 119 +++++++
.../order/service/OrderDerateService.java | 7 +
.../order/service/OrderDetailService.java | 7 +
.../order/service/OrderInfoService.java | 6 +
.../service/impl/OrderDerateServiceImpl.java | 17 +
.../service/impl/OrderDetailServiceImpl.java | 13 +
.../service/impl/OrderInfoServiceImpl.java | 316 +++++++++---------
.../order/api/OrderInfoApiController.class | Bin 768 -> 2754 bytes
.../order/service/OrderInfoService.class | Bin 345 -> 893 bytes
.../service/impl/OrderInfoServiceImpl.class | Bin 9069 -> 13230 bytes
.../user/api/UserInfoApiController.java | 15 +-
.../user/pattern/DeliveryStrategy.java | 12 +
.../factory/DeliveryStrategyFactory.java | 29 ++
.../user/pattern/impl/AlbumDelivery.java | 39 +++
.../user/pattern/impl/TrackDelivery.java | 52 +++
.../user/pattern/impl/VIPDelivery.java | 83 +++++
.../tingshu/user/service/UserInfoService.java | 4 +
.../service/impl/UserInfoServiceImpl.java | 32 +-
.../user/api/UserInfoApiController.class | Bin 3848 -> 4402 bytes
.../user/service/UserInfoService.class | Bin 1016 -> 1395 bytes
.../service/impl/UserInfoServiceImpl.class | Bin 13263 -> 14262 bytes
53 files changed, 1061 insertions(+), 183 deletions(-)
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/pattern/TradeTypeStrategy.java
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/pattern/factory/TradeTypeStrategyFactory.java
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/pattern/impl/AlbumTradeType.java
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/pattern/impl/TrackTradeType.java
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/pattern/impl/VIPTradeType.java
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderDerateService.java
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderDetailService.java
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderDerateServiceImpl.java
create mode 100644 service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderDetailServiceImpl.java
create mode 100644 service/service-user/src/main/java/com/atguigu/tingshu/user/pattern/DeliveryStrategy.java
create mode 100644 service/service-user/src/main/java/com/atguigu/tingshu/user/pattern/factory/DeliveryStrategyFactory.java
create mode 100644 service/service-user/src/main/java/com/atguigu/tingshu/user/pattern/impl/AlbumDelivery.java
create mode 100644 service/service-user/src/main/java/com/atguigu/tingshu/user/pattern/impl/TrackDelivery.java
create mode 100644 service/service-user/src/main/java/com/atguigu/tingshu/user/pattern/impl/VIPDelivery.java
diff --git a/model/src/main/java/com/atguigu/tingshu/vo/order/TradeVo.java b/model/src/main/java/com/atguigu/tingshu/vo/order/TradeVo.java
index 24543f1..0cc46bf 100644
--- a/model/src/main/java/com/atguigu/tingshu/vo/order/TradeVo.java
+++ b/model/src/main/java/com/atguigu/tingshu/vo/order/TradeVo.java
@@ -4,9 +4,12 @@ import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Positive;
import lombok.Data;
+import org.springframework.stereotype.Component;
@Data
@Schema(description = "订单确认对象")
+
+@Component
public class TradeVo {
@NotEmpty(message = "付款项目类型不能为空")
diff --git a/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/AccountFeignClient.java b/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/AccountFeignClient.java
index 68c1f42..94ee3e3 100644
--- a/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/AccountFeignClient.java
+++ b/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/AccountFeignClient.java
@@ -1,7 +1,11 @@
package com.atguigu.tingshu.account;
import com.atguigu.tingshu.account.impl.AccountDegradeFeignClient;
+import com.atguigu.tingshu.common.result.Result;
+import com.atguigu.tingshu.vo.account.AccountDeductVo;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
/**
*
@@ -10,7 +14,14 @@ import org.springframework.cloud.openfeign.FeignClient;
*
* @author atguigu
*/
-@FeignClient(value = "service-account", fallback = AccountDegradeFeignClient.class)
+@FeignClient(value = "service-account", path = "api/account", fallback = AccountDegradeFeignClient.class)
public interface AccountFeignClient {
+ /**
+ * 检查扣减账户余额
+ * @param accountDeductVo
+ * @return
+ */
+ @PostMapping("/userAccount/checkAndDeduct")
+ public Result checkAndDeduct(@RequestBody AccountDeductVo accountDeductVo);
}
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 2c7217f..13e5d93 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
@@ -2,9 +2,18 @@ package com.atguigu.tingshu.account.impl;
import com.atguigu.tingshu.account.AccountFeignClient;
+import com.atguigu.tingshu.common.result.Result;
+import com.atguigu.tingshu.vo.account.AccountDeductVo;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Component
+@Slf4j
public class AccountDegradeFeignClient implements AccountFeignClient {
+ @Override
+ public Result checkAndDeduct(AccountDeductVo accountDeductVo) {
+ log.error("[账户服务]checkAndDeduct服务调用失败");
+ 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 887c9e00a41bb0f0a25da975baf92b41ff57ebf7..73b23f27521141f4eac236c36eb42e1dd69a4325 100644
GIT binary patch
literal 753
zcmbVKJx?1!5S;~#2_`llAt*{m1w|O8paKd5q5=gu5>3+V?Tyci_jWJ)VZ>jf;0N%d
z5Oc;xe7H)nH@BlVZ{F;ihsV2n062oJCd>)gQ?5iAi=>N$QQIO65=y09vJtz_@r-m~
zPmCrTo3J2Y^;(W38fgpsm0gpH0@`XoYS^{;Ddnk7{M|X9#XNHF$)5|Z+`;b50wyV)
zMNc7_h`n(*UM5asZ#^DDmvp6r&J1;}bx}s`ETi|&oi8v{
zo=5K2Bsb0v@rE+Yw9QezVDZw0cp9^l@ev$c~5_l6F!>Pr9s
delta 95
zcmey!dYeh$)W2Q(7#J9A8F<+lm>3!KCI>RfOw`eue27tf;%k}7FBwe)S<4c0N>dpb
w_={7E$}*EvbthXh#V9f`Ffp(KbuuxqF|Y$^0R~0}4j_-Sn1PFdJDGt80N{fZGynhq
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 dd71bc7f4837f925b751ed33246354858db0ff85..a6bf8ae5cd2060a592f6e8969f56057d3ac458b4 100644
GIT binary patch
literal 1108
zcmaJ=&rcIU6#k~AY+EWns(_%PsA!9Z_29{(2`S-Je*{b~>S5Rp+kxGkW_A|C*^4pp
z=Fy9Z8jqkPs0aT5{|}JA!uYn^R6){1XZF3m`QG=w_ukLn-+utOi<^0*khaiQKnDE`
z!|QyL+a3>G`{C-ka12BLybPqd$B-_S>p5hRvyd-f00o9Sj`D48+(^2SZDinv&B*4C
zqoTmr(r~g|o2`G!{i8a!lep+By^F@|vqXA79XB*Xae_e{&(>NE81jEEK4X*S>U51jxT?hhY
zxREL#(AlK3t$1M8;#|*_-mpW;D3sZ13A?KNmI`RJE10G=NrB-U{U+m8p=C?cH|-dm
z7s#^dW^`v}_rP}OBZVnC3HHHykGGC*vvcbQGMDFC@*_A5rez>3+Cc627}1_-Z2
MRtjazcDy%$KQe(VtN;K2
delta 119
zcmcb@@spYB)W2Q(7#J9A8AK*>>9esja4<4hO}@ow#mvsYHMxLs`Q%qj6{746Obm<+
zoIrJqK*-9#1|+#B*E5S5^8m#_JO&0123{b^17@=_@G> findWaitBuyTrackList(@PathVariable Long trackId, @PathVariable Integer trackCount);
+ @GetMapping("/trackInfo/getTrackInfo/{id}")
+ public Result getTrackInfo(@PathVariable Long id);
}
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 4a5c3ec..16ebc29 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
@@ -52,4 +52,10 @@ public class AlbumDegradeFeignClient implements AlbumFeignClient {
return null;
}
+ @Override
+ public Result getTrackInfo(Long id) {
+ log.error("[专辑服务]提供远程调用方法getTrackInfo执行服务降级");
+ return null;
+ }
+
}
diff --git a/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/AlbumFeignClient.class b/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/AlbumFeignClient.class
index b4bb2b8ddf3ff35ac5650ba42aecbfecd91a538f..f2805654ead65887ab79b9c067d6bedc200cfee8 100644
GIT binary patch
delta 489
zcmbQo*DB0)>ff$?3=9mm3`QHd_*iX4(lYZ>!V@z~oJuQ0iV~BveKLzn7#aLEe6kYD
z67_Qu^V0Qw^7GQIk@%i@C8_DDMb?^=85u<<2QY~^STi!Pmwsc5X6d9Bl
zSQyxWA;`(ZpbVr`KujQJVo+t^2GV>CKzo6hH=2R5m_dz!A1KDl1QZYeGQcFz6m-iShzS~4Owa_Iz|IKNs{t~Ci9riYYJ=5^0)=%Lm>GDB8FU%+k{R?F42l^H
E0Zy@TS^xk5
delta 68
zcmZn_p2x>^>ff$?3=9mm44NCc_*f_ZWjn*jy7?5l2%{MWgj<74;~k)q1~QvG4(iU?Cw92|H`c=B_Qp)??uj
z@c}G|58!jyiT~WGx{G!eGjnFn`Tgh2IaduIA@l9$`4vDO>$m2W>d_G?T=r<2$J;vx
zh4-M}L@U~SXt&UTPWwgO@WvG+>`!mqeY>Yl^IQA7Cyw*d;ogzm=iRd7x@D*Ji}M&1
zG@=?7=?3>2syKJi>f@?#)e;X-Zn;sB;4H3zT6A-^qyu`;OG`nLK^`Y~mfouHxPvd?
ze?pB4<%YIon9f~2Ok{%&C@7taAOY^j0D*%H(G(g$%84H0;jmP(&y4V*c#)(vac!;u
zOS@s|5^RL9(IV{22%rDMqJ*_pfMwjUObM1HY^;3#q4N31C=z#xBrR9|Ik!r#q>`t~
zI41aAUG}vZPW?Z*m$alqlU4bH$$y(<+!Urob?k4`oob44Lrz?Tx8mz%HN|emd4$-_
zVvd@k9EQqc@Zhf`^F%L{PrRjk;u)N>@~+I?niUGa2pvnM-i%UH3?raFB6<&>=udV$
TXW5@MeC;wV6)RXRo~{AEdvZtX
delta 680
zcmZ{iOH#r>5QhI541pw;7KKngC;=ZJ3O+zl6rZT*iiO9pyn;&)kTb9sS@9aTRSMe1svq3LQ@BnP`mDnPzI)F8u%>4*9OW52$u$l?0
zg|KbHb^;jhTEwfYyeHU+^eZML#G@7+iR37fH$*CC%5_tv9;)n8Wp9wO?VA5zAgyT7
zOjyH&HA2`vVF&D^WHE2uOm&o6nXrn61;ro2g1Q|t?g+=a3Gc31w<_amIxfqvs`NqA
z)b2zlp?0S@qo!&{T=E*c7`CLv@i-5MBS#_i#1pX>%=cld0TIT4OptSt;HAVR+O%qJ
Gu7E$GU@`~*
diff --git a/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/UserFeignClient.java b/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/UserFeignClient.java
index b48302f..ce1cb4e 100644
--- a/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/UserFeignClient.java
+++ b/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/UserFeignClient.java
@@ -4,6 +4,7 @@ import com.atguigu.tingshu.common.result.Result;
import com.atguigu.tingshu.model.user.VipServiceConfig;
import com.atguigu.tingshu.user.client.impl.UserDegradeFeignClient;
import com.atguigu.tingshu.vo.user.UserInfoVo;
+import com.atguigu.tingshu.vo.user.UserPaidRecordVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -46,5 +47,7 @@ public interface UserFeignClient {
@GetMapping("/userInfo/findUserPaidTrackList/{albumId}")
public Result> findUserPaidTrackList(@PathVariable Long albumId);
+ @PostMapping("/userInfo/savePaidRecord")
+ public Result savePaidRecord(@RequestBody UserPaidRecordVo userPaidRecordVo);
}
diff --git a/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.java b/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.java
index 1ab1b00..358ec06 100644
--- a/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.java
+++ b/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.java
@@ -5,6 +5,7 @@ import com.atguigu.tingshu.common.result.Result;
import com.atguigu.tingshu.model.user.VipServiceConfig;
import com.atguigu.tingshu.user.client.UserFeignClient;
import com.atguigu.tingshu.vo.user.UserInfoVo;
+import com.atguigu.tingshu.vo.user.UserPaidRecordVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -44,4 +45,10 @@ public class UserDegradeFeignClient implements UserFeignClient {
log.error("[用户服务]提供远程调用方法findUserPaidTrackList执行服务降级");
return null;
}
+
+ @Override
+ public Result savePaidRecord(UserPaidRecordVo userPaidRecordVo) {
+ log.error("[用户服务]提供远程调用方法savePaidRecord执行服务降级");
+ return null;
+ }
}
diff --git a/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/UserFeignClient.class b/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/UserFeignClient.class
index 8c6514918cbdc183f458b17c2b43cc5ca5688ee8..6e698b7a4dc8fb5a5b15f1a184a66c9fa0eee8e6 100644
GIT binary patch
delta 672
zcmZvZyG{Z@6o&s<5F$4*1Vu%`I~R5A2_{NKVj*5A)WVfr$mp_bc7cW%N^7!}K7@%a
zg`J79fmiTBG|rO1BB7X>Od`WYVE>
zTdxun+TCp7PHc!&5!DJk(lkXD)xI^>pO{z68XZAsQ?$sur3#msDqZkcmhfB`OZUgj
zs1e+7sre%#JXhvjQe<)kI`e8Zg9$Yza^0lBV+~xJXFfvFp
VFf;HLGsrN=7Bk2($R{%>001vM3@iWu
diff --git a/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.class b/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.class
index 31de6ac92b540b8f76fbdc51dec2e1ea4346bfad..dc357399c7a1c943caafcb32c89ac9db0f54cbef 100644
GIT binary patch
delta 860
zcma))$ua{`7=_QhBt1*YRmj4y@BrSz
z#shc&<^0`2BdYY`4*&3-b8p{^&}%sG^!D%wU20k
z%3f;UrqTvDmBy<_YNaq=jsqZGHipwPH_Pw;6C&dXtKqlxDh+jJ;>k?hDF7S
z8<9P67p0|7kqFCVV+XNI)q^GcmC4`V~
zeMK^NlIyVsh|?xae$x1UH(%;YSY}|!;jx~a<3z*R^kqt&ffvZuYsqqX)K4u$?Yg)C {
+ UserAccount checkDeduction(Long userId, BigDecimal amount);
}
diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/service/UserAccountService.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/UserAccountService.java
index 01bbbf0..a11a0e3 100644
--- a/service/service-account/src/main/java/com/atguigu/tingshu/account/service/UserAccountService.java
+++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/UserAccountService.java
@@ -1,6 +1,7 @@
package com.atguigu.tingshu.account.service;
import com.atguigu.tingshu.model.account.UserAccount;
+import com.atguigu.tingshu.vo.account.AccountDeductVo;
import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
@@ -24,4 +25,7 @@ public interface UserAccountService extends IService {
void saveUserAccountDetail(Long userId, String title, BigDecimal amount, String orderNo);
BigDecimal getAvailableAmount(Long userId);
+
+ void checkAndDeduct(AccountDeductVo accountDeductVo);
+
}
diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.java
index d1c2575..ee8c7f2 100644
--- a/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.java
+++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.java
@@ -6,7 +6,9 @@ import com.atguigu.tingshu.account.service.UserAccountService;
import com.atguigu.tingshu.common.constant.SystemConstant;
import com.atguigu.tingshu.model.account.UserAccount;
import com.atguigu.tingshu.model.account.UserAccountDetail;
+import com.atguigu.tingshu.vo.account.AccountDeductVo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -68,5 +70,33 @@ public class UserAccountServiceImpl extends ServiceImpl()
+ .eq(UserAccount::getUserId, accountDeductVo.getUserId())
+ .setSql("total_amount = total_amount - " + accountDeductVo.getAmount())
+ .setSql("available_amount = available_amount - " + accountDeductVo.getAmount())
+ .setSql("total_pay_amount = total_pay_amount + " + accountDeductVo.getAmount())
+ );
+ if (rows == 0) {
+ throw new RuntimeException("账户余额不足!");
+ }
+ //3.保存账户变动日志
+ this.saveUserAccountDetail(accountDeductVo.getUserId(), accountDeductVo.getContent(), accountDeductVo.getAmount(), accountDeductVo.getOrderNo());
+
+
+
}
}
diff --git a/service/service-account/src/main/resources/mapper/UserAccountMapper.xml b/service/service-account/src/main/resources/mapper/UserAccountMapper.xml
index a52f377..da865a2 100644
--- a/service/service-account/src/main/resources/mapper/UserAccountMapper.xml
+++ b/service/service-account/src/main/resources/mapper/UserAccountMapper.xml
@@ -12,5 +12,10 @@
id,user_id,total_amount,lock_amount,available_amount,total_income_amount,total_pay_amount,create_time,update_time,is_deleted
+
+
+
diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/api/UserAccountApiController.class b/service/service-account/target/classes/com/atguigu/tingshu/account/api/UserAccountApiController.class
index 55e36dd6d2626e6a09225fef08e1d6f6e1663381..d643586ca484d83096a6ff18dcd5bd5d5a7fc1fc 100644
GIT binary patch
literal 2348
zcmbVOO;a327=C(LSXov;5-|yh`7qIikaQwRj9G#%ASAk&6hsc{rFXV7+hKNko#|QR
z=1I-LidA~?U|A-m<;iGOs)AOp0h=0QJ?cD_yYJ$W|e@yrL^}Nsf_Wb$J?|%Te
zjCayVpe==D2JPrz=)EOsf_uVu`L*IL=@^ENQROQ$#?Y1>oKNE!bf%EbpbHs>vyQHC
zVcbZ$5jV0nz&SiDf4mVPD)2r
zgqKU>00vSxn86{uNOEyr&^L>JAj8Nre6~I@B=iEqSgV~zf^&nhh{P$WV{jycqd3OU
z?UbdnkoQZIvJ_dKjAUaK)ihsES2Ilwfq9*?bUJ|JHkK0%!^DN%hLdC1KTF7|ikw%W
zvPk;AHo_?Fhc?MNaCuk_h>WvP5c=6S_n+
z=_x2*z8h7FGPq$AMR_Y|M|krhP~YEG3H_mZr8Cdbe|c&ejRi
z-#FV&2dbty<@&-z0l7H&6bO#SD;y(-PQ^ykB!s73<@4!CO-BX0r2B&frFpn0TvrCX
zHo~Fsf8Uu*7hD^}8P)-@m)^=&P06U#xxo)9U9BA3yk!#+5tw
zY5UisZ~ngfEyKCkR4&RQFDk#(Vuw#lGb5^1N;%nSuL&1vS0@
z;F}R{$ZrTsgQQP@QSG+!YwhRn*S`GpNlhY-S=2(!=EFj2+_9QSfyo~+7(D#O}?)sepBykWu)Re8xBMrHx
z&Lnzq3a3eT54py1h9u9{6moWL?(+H}SKmVg3GlM~jB{>JU58zhGuMoHskI%{XNL7e?Dys=^bP2}lP%7Qpf
aiv%X>9esja4<4hOb%qWnD{tg@SP3xoD5t*nj6St1JXQTQAP$B#{g6zz#s^unHYq?q%hbFX$EEn5um(iF@qR`I8Z_Y$dQa@U@T^k0swkv
B7_9&R
diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/UserAccountMapper.class b/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/UserAccountMapper.class
index 5a7ff30c5f0e659715bd42791df4bcc869e19a36..94cb8f24b1aaa52561590e20bc6a9f94b556ad31 100644
GIT binary patch
delta 176
zcmZ3G(Up?
MkY)oa6l7ok0Q|iw!~g&Q
delta 54
zcmcb>vXYtW)W2Q(7#J9A8F(jhwNF-L{3*}Cz|6o76k=lFVBiGPTnyYmnvH>xfro(s
E0A$$+O8@`>
diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/service/UserAccountService.class b/service/service-account/target/classes/com/atguigu/tingshu/account/service/UserAccountService.class
index 26f38493d9152870aefdb0dd098dd6e419ade9b3..725537f3131a32be728c10014256c3698459fb5f 100644
GIT binary patch
delta 221
zcmZ3&`k0OD)W2Q(7#J9A8KgIIEno~0N>43uEKAJHNleN~bTn*Z0ZKOSjg92;?S~Wav9(rn{sjXXYm6STi#4C1<22XFKMlxTL0(CIj^vYxqnQ
z5Ya2k*H27N1{tUC2%#Yg!t$*(!x$O(p^{L+$;%lxFtSXJV6w7cVPp_y5Mf|s-~_so
d6{wPd0VpKOAchbU2g)!paDzz+21zh21pq$OI3oZ6
delta 48
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
delta 657
zcmZ9KOHUM05QV?n^bEtK5$R-vC=drw1Vw?!AOe$+_=r2hf(=mtlan${0FX$3&Xj$4JIybbyeM}I_K2wt-g&D>2H6&?g2x5-bv3Us?&@!
zQOUi4Nv5JqFp``JnB{&n7c}~FhFtW+YlsTfspxxcSl$nQdgb3o^QJ_WZafSRsNlHm
z&`^(y^eXpIep25@E_aLD|K)te30F~2#RWx1-$ch3%#Le$ENcfqh9|N?T)S>m3p^a8LIVDD?8BjFL8E(+dC>@M(mTAsW
+
+
+
diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/task/ReviewTask.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/task/ReviewTask.java
index 52f59c1..717e492 100644
--- a/service/service-album/src/main/java/com/atguigu/tingshu/album/task/ReviewTask.java
+++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/task/ReviewTask.java
@@ -41,30 +41,35 @@ public class ReviewTask {
RLock lock = redissonClient.getLock("reviewtask:lock");
boolean b = lock.tryLock();
if (b) {
- log.info("开始检查审核任务");
- //1.查询审核状态为"审核中"声音列表
- List trackInfoList = trackInfoMapper.selectList(
- new LambdaQueryWrapper()
- .eq(TrackInfo::getStatus, SystemConstant.TRACK_STATUS_REVIEWING)
- .select(TrackInfo::getId, TrackInfo::getReviewTaskId)
- .last("limit 100")
- );
- //2.遍历列表,查询审核结果
- if (CollUtil.isNotEmpty(trackInfoList)) {
- for (TrackInfo trackInfo : trackInfoList) {
- String suggestion = auditService.getReviewResult(trackInfo.getReviewTaskId());
- if (StringUtils.isNotBlank(suggestion)) {
- //3.根据审核任务结果更新声音审核状态
- if ("pass".equals(suggestion)) {
- trackInfo.setStatus(SystemConstant.TRACK_STATUS_PASS);
- } else if ("block".equals(suggestion)) {
- trackInfo.setStatus(SystemConstant.TRACK_STATUS_NO_PASS);
- } else if ("review".equals(suggestion)) {
- trackInfo.setStatus(SystemConstant.TRACK_STATUS_ARTIFICIAL);
+ try {
+ log.info("开始检查审核任务");
+ //1.查询审核状态为"审核中"声音列表
+ List trackInfoList = trackInfoMapper.selectList(
+ new LambdaQueryWrapper()
+ .eq(TrackInfo::getStatus, SystemConstant.TRACK_STATUS_REVIEWING)
+ .select(TrackInfo::getId, TrackInfo::getReviewTaskId)
+ .last("limit 100")
+ );
+ //2.遍历列表,查询审核结果
+ if (CollUtil.isNotEmpty(trackInfoList)) {
+ for (TrackInfo trackInfo : trackInfoList) {
+ String suggestion = auditService.getReviewResult(trackInfo.getReviewTaskId());
+ if (StringUtils.isNotBlank(suggestion)) {
+ //3.根据审核任务结果更新声音审核状态
+ if ("pass".equals(suggestion)) {
+ trackInfo.setStatus(SystemConstant.TRACK_STATUS_PASS);
+ } else if ("block".equals(suggestion)) {
+ trackInfo.setStatus(SystemConstant.TRACK_STATUS_NO_PASS);
+ } else if ("review".equals(suggestion)) {
+ trackInfo.setStatus(SystemConstant.TRACK_STATUS_ARTIFICIAL);
+ }
+ trackInfoMapper.updateById(trackInfo);
}
- trackInfoMapper.updateById(trackInfo);
}
}
+ } finally {
+ lock.unlock();
+
}
}
}
diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/TrackInfoService.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/TrackInfoService.class
index 560fe4d35f0d03bd885cf3cd3ccceadcd7363e5f..433725ac8de37c870693e54320ea4faac8da126c 100644
GIT binary patch
delta 388
zcmZ3;|5u3X)W2Q(7#J9A8T2=DNwP_bre)@(gche3g%l+wX9px^rubwQmoPFIO_pPn
zne4#AE|is6mZ)D^l9{6qlCfrF$b?BHpi0^JAo#wC1yF8IVqUs_a7j^SUb;0z0a(O8
zDJwO(#M%xB85u-CjtEc8EO9EW1iJ&`23L?pmY#Vfsp+Xj$eMlffre=!SqF6)R|&`y
z&iSQzKpzx=bZZi;+h+1cR?*1~Y*Lez*_JbMO+L+bB!q>LL6t#`fr)_=7+{=C417R}
l8;C`Ln2A9hD6PSu36y
delta 48
zcmew>w2+_c)W2Q(7#J9A88kL>NwQ7e%f6hEV{$6T5g`U922r2{6N4&)8kklG0B8{k
Avj6}9
diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/task/ReviewTask.class b/service/service-album/target/classes/com/atguigu/tingshu/album/task/ReviewTask.class
index cf1d1b251e5b3ebdff05316bca13be25c31b8b37..d3abd200338d08d9c167b20a07e39d841b8e6cb7 100644
GIT binary patch
delta 1309
zcmZ8gTWnNS6kTUt_tE1_z2mf2t!C1ooldb46A`tPRGZoWA+df`6EUNm(3W;e>;N%D
zN7ML8{5Yai1wlYWQ99I4=~Sr&@qtu)-~*pP0blh6DEI=`z2ha~$317QefD1a?0xoK
z9y=B@cc0F02T&`DvgQ)Kq6j5eA@L{z0)fS;&hEPxnplZG4UbDafs{a0CC-bgtbXC`
zt0Y$ADFMAL(bINgcWY9>TN!K8u~xvpAenAz)zPJ6y?{a1oKB<{_t;|3NNlv@&bNKK
z7In@|rrWw(XSb(X?bA&XNdDzFkSN^DWh4%{j+pn8pJF{t{DIM0S8wyA?g*q0ZG
zsRsiWsCj`v>0ODQWKBJnhE%#eeXp(evcxMYW|oUl)yQ?HN}5-QU23^m5!rz^B>cGC
z#9P>{;cbaM7$4YWPV+=G92N+7B$gyzm%81mx}6G{9ju^y>n{4G#dsU8SK)LvPl>O+@>gfN9ics1lD)?!pG3PpUHz!bGC
zIK`_8LuEq^nRoaS0SN5n?m;^`h|jeZLH^I?BlkN|?=q@}OmO#C4MAibnfJKbqCgqm
z=V}Yk0Uux=cYzOi>H&j2h9uN!Jf-e0E)f%IMe&|Yd>D@iK3MQNtpLlk(JTW>F@Z_?
zPU1&r_rXrofs44tn4}6}#OXB^QQqomT!p!qhFgeQ$mio4wre_iaV->PaI~(+2Hb!x
zsKqd5Vkhb_j#=23K|K!OCMIjdw`gLjMx5Y&60@CZX7b94(jVbtqF&sAPq3fW&BsId
z6raIsm-BC}lF^^z3)URQ5qycSSjGXK+Z`$RAEf^wTB@O+K^OcQRNT6B`pp_9Oy?zv
z=z4_T(H?wVY~mZ(q!R9p14voh+V0v#I977*p-S9
zyGlkLS5j#NJ8rXH8^Y_O?5fupk-{vNo}ERuv<2VcdpaCali~8rBp=dgDksMtRlu86yB=lX8Qa#(6
zA#x)&1--~BS37l!{9n{}So73w-EUQvjk4D!%v_6?dBxyWo7dQvJ7m=ca+T8-s^ae~
zzUK#nA8k%>Qg;@QIa_04ez8dNtIY;7aemkJv87e~ZSfDM42Ep_*eO9BQdeUplfKof
zDxEb{Kru&8#LltKYwGIiSiQG+Q&{-{{y5z%)$b85Xt7KwX8)+bqx#VtAdxDdA&eG)DDs<}GP
z{Y`;XGEc9ba4O5!=ee_&iePFJvy#rE9xDk6D^5E7`rMMLp2y674olib=czoKdl?t}
zwDX*Y#{@s`40?FG;GC29@Mgio&JGW+FGyn;5R0pHpX|QU8o|EO?Sg%!4#7F+1uy%?
z9wEcdE{`lLNPo{rEf$Y2b(vsa>U_bzRE1z)s!Xu26fMY0GO&Zu>z%P7_KZp=gWedp
z^NBpZKU>n$W|mX`N?A+P5(Ri?uYg{Wf=^HPqp-Cservice-account-client
1.0
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-seata
+
+
+
+ io.seata
+ seata-spring-boot-starter
+
+
+
+
+ io.seata
+ seata-spring-boot-starter
+
+
diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/api/OrderInfoApiController.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/api/OrderInfoApiController.java
index 2b58f73..ec8d13f 100644
--- a/service/service-order/src/main/java/com/atguigu/tingshu/order/api/OrderInfoApiController.java
+++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/api/OrderInfoApiController.java
@@ -2,6 +2,7 @@ package com.atguigu.tingshu.order.api;
import com.atguigu.tingshu.common.login.GuiGuLogin;
import com.atguigu.tingshu.common.result.Result;
+import com.atguigu.tingshu.common.util.AuthContextHolder;
import com.atguigu.tingshu.order.service.OrderInfoService;
import com.atguigu.tingshu.vo.order.OrderInfoVo;
import com.atguigu.tingshu.vo.order.TradeVo;
@@ -13,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.Map;
+
@Tag(name = "订单管理")
@RestController
@RequestMapping("api/order")
@@ -31,6 +34,20 @@ public class OrderInfoApiController {
return Result.ok(orderInfoVo);
}
+ /**
+ * 提交订单(付款方式:1.余额 2.微信)
+ * @param orderInfoVo
+ * @return
+ */
+ @GuiGuLogin
+ @Operation(summary = "提交订单(付款方式:1.余额 2.微信)")
+ @PostMapping("/orderInfo/submitOrder")
+ public Result