From b0fbbbb3967ca64173cb89fa88c0e86b9d4c5069 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 25 九月 2025 10:51:22 +0800
Subject: [PATCH] 修改快手核销bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |   43 ++++++++++++++++++++++---------------------
 1 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 92ef12c..b4bf2d2 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -81,6 +81,7 @@
 import com.ruoyi.system.api.model.QwH5LoginVo;
 import com.ruoyi.system.api.model.QwUserDetailDto;
 import com.ruoyi.system.api.service.*;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.extern.log4j.Log4j2;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
@@ -550,8 +551,8 @@
      * @return
      */
     @Override
-    @Transactional   // todo  放开分布式事务注解
-//    @GlobalTransactional(rollbackFor = Exception.class)
+    @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) {
         // 获取用户ID
         Long userId = appPlaceOrderDto.getUserId();
@@ -1094,7 +1095,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public AppPlaceOrderVo placeActivityOrder(AppPlaceActivityDto appPlaceActivityDto) {
         Long userId = appPlaceActivityDto.getUserId();
         Member member = remoteMemberService.getMember(userId).getData();
@@ -2015,7 +2016,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto) {
         String orderId = merVerifyOrderDto.getOrderId();
         BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney();
@@ -2261,7 +2262,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrderDouYin(MerVerifyOrderDto merVerifyOrderDto) {
         String phone = merVerifyOrderDto.getPhone();
         String name = merVerifyOrderDto.getName();
@@ -2283,7 +2284,7 @@
         if (null == itemList && itemList.isEmpty()) {
             throw new ServiceException("查询券信息失败");
         }
-        List<CertificatePrepareResponseDataCertificatesItem> collect = itemList.stream().filter(s -> s.getStatus().intValue() == 1).collect(Collectors.toList());
+        List<CertificatePrepareResponseDataCertificatesItem> collect = itemList.stream().filter(s -> null == s.getStatus() || s.getStatus().intValue() == 1).collect(Collectors.toList());
         if(collect.size() < merVerifyOrderDto.getNumber()){
             throw new ServiceException("验券数量超过可使用数量");
         }
@@ -2579,7 +2580,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrderKuaiShou(MerVerifyOrderDto merVerifyOrderDto) {
         String phone = merVerifyOrderDto.getPhone();
         String name = merVerifyOrderDto.getName();
@@ -2663,15 +2664,15 @@
             order.setOrderFrom(7);
             order.setShopId(shopId);
             order.setUserId(member.getUserId());
-            order.setOrderMoney(originAmount);
-            order.setDiscountMoney(payDiscountAmount);
-            order.setReceivableMoney(payAmount);
+            order.setOrderMoney(originAmount.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_EVEN));
+            order.setDiscountMoney(payDiscountAmount.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_EVEN));
+            order.setReceivableMoney(payAmount.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_EVEN));
             order.setPayType(1);
-            order.setPayMoney(payAmount);
-            order.setOnlinePayMoney(payAmount);
+            order.setPayMoney(payAmount.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_EVEN));
+            order.setOnlinePayMoney(payAmount.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_EVEN));
             order.setOrderRemark("快手订单");
-            order.setCreateTime(new Date(create_order_time * 1000));
-            order.setPayTime(new Date(pay_time * 1000));
+            order.setCreateTime(new Date(create_order_time));
+            order.setPayTime(new Date(pay_time));
             order.setTripartiteOrderId(data.getOrder_id());
             order.setUseTime(nowTime);
             order.setUseUserId(merVerifyOrderDto.getUserId());
@@ -3079,7 +3080,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) {
         R<MerVerifyCouponGetVo> verifyCoupon = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId());
         if(verifyCoupon.getCode() != 200){
@@ -3219,7 +3220,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyAwardVo sureVerifyPrize(MerVerifyPrizeDto merVerifyPrizeDto) {
         MerVerifyAwardVo merVerifyAwardVo = new MerVerifyAwardVo();
         MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrize(merVerifyPrizeDto.getPrizeId()).getData();
@@ -3483,7 +3484,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void createNewOrder(MerNewOrderDto merNewOrderDto) {
         Long userId = merNewOrderDto.getBuyUserId();
         Date nowTime = new Date();
@@ -6175,7 +6176,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void autoCancelOrder(String orderId, Integer cancelType) {
         //更新订单信息
         Order order = this.getById(orderId);
@@ -6246,7 +6247,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void payBack(PartnerTransactionsResult transaction, BigDecimal feeAmount) {
         log.info("订单支付回调---"+transaction.toString());
         // 更新订单状态 outTradeNo
@@ -6392,7 +6393,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void refundOrder(String orderId, Integer cancelType) {
         // 更新订单信息
         Order order = this.getById(orderId);
@@ -7335,7 +7336,7 @@
 
     }
 
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     private void autoTimeCancelOrder(Order order) {
         String orderId = order.getOrderId();
         order.setOrderStatus(0);

--
Gitblit v1.7.1