From bf7ebe760405f3ab1977b015fc8e4c7a642e1871 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 26 九月 2025 13:47:20 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |   70 +++++++++++++++++++++++-----------
 1 files changed, 47 insertions(+), 23 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 94a9293..24ecc53 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();
@@ -1926,6 +1927,10 @@
     
     @Override
     public MerVerifyOrderVo verifyOrderDouYin(String orderId, Long shopId) {
+        Shop shop = remoteShopService.getShop(shopId).getData();
+        if(StringUtils.isEmpty(shop.getDyPoiId())){
+            throw new ServiceException("请先绑定抖音门店ID");
+        }
         CertificatePrepareResponseData data = VerifyUtil.certificatePrepare(orderId);
         if (null == data) {
             throw new ServiceException("查询券信息失败");
@@ -1964,6 +1969,10 @@
     
     @Override
     public MerVerifyOrderVo verifyOrderKuaiShou(String orderId, Long shopId) {
+        Shop shop = remoteShopService.getShop(shopId).getData();
+        if(StringUtils.isEmpty(shop.getKsPoiId())){
+            throw new ServiceException("请先绑定快手门店ID");
+        }
         VerifyPrepareDataNew data = KSVerifyUtil.certificatePrepare(redisService, orderId);
         if (null == data) {
             throw new ServiceException("查询券信息失败");
@@ -2007,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();
@@ -2253,11 +2262,18 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrderDouYin(MerVerifyOrderDto merVerifyOrderDto) {
         String phone = merVerifyOrderDto.getPhone();
+        String name = merVerifyOrderDto.getName();
         String orderId = merVerifyOrderDto.getOrderId();
         Long shopId = merVerifyOrderDto.getShopId();
+        if(StringUtils.isEmpty(phone)){
+            throw new ServiceException("请填写核销用户电话号码");
+        }
+        if(StringUtils.isEmpty(name)){
+            throw new ServiceException("请填写核销用户姓名");
+        }
         //获取核销商户
         Shop shop = remoteShopService.getShop(shopId).getData();
         CertificatePrepareResponseData data = VerifyUtil.certificatePrepare(orderId);
@@ -2268,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("验券数量超过可使用数量");
         }
@@ -2289,7 +2305,6 @@
         }
         Member member = remoteMemberService.getMemberByMobile(phone).getData();//绑定用户判断核销商户
         if(null == member){
-            String name = merVerifyOrderDto.getName();
             //创建新用户
             String memberId = IdUtils.simpleUUID();
             SysUser sysUser = new SysUser();
@@ -2565,11 +2580,18 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrderKuaiShou(MerVerifyOrderDto merVerifyOrderDto) {
         String phone = merVerifyOrderDto.getPhone();
+        String name = merVerifyOrderDto.getName();
         String orderId = merVerifyOrderDto.getOrderId();
         Long shopId = merVerifyOrderDto.getShopId();
+        if(StringUtils.isEmpty(phone)){
+            throw new ServiceException("请填写核销用户电话号码");
+        }
+        if(StringUtils.isEmpty(name)){
+            throw new ServiceException("请填写核销用户姓名");
+        }
         //获取核销商户
         Shop shop = remoteShopService.getShop(shopId).getData();
         VerifyPrepareDataNew data = KSVerifyUtil.certificatePrepare(redisService, orderId);
@@ -2642,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());
@@ -3058,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){
@@ -3198,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();
@@ -3462,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();
@@ -3998,9 +4020,10 @@
             mgtShopOrderPageDto.setShopIds(shopIds);
         }
 
-
+        System.err.println("查询条件:" + JSON.toJSONString(mgtShopOrderPageDto));
         // 从数据库中获取活动订单列表
         List<MgtActivityOrderPageVo> activityOrderPageVoList = orderMapper.pageMgtActivityOrder(page, mgtShopOrderPageDto);
+        System.err.println("查询导出数据条数:" + activityOrderPageVoList.size());
         // 如果列表不为空
         if (!activityOrderPageVoList.isEmpty()) {
             // 定义变量
@@ -4272,6 +4295,7 @@
         }
         // 设置订单编号
         mgtOrderDetailVo.setOrderNo(order.getOrderNo());
+        mgtOrderDetailVo.setTripartiteOrderId(order.getTripartiteOrderId());
         mgtOrderDetailVo.setOutTradeNo(order.getOutTradeNo());
         // 设置订单来源
         switch (order.getOrderFrom()) {
@@ -6153,7 +6177,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void autoCancelOrder(String orderId, Integer cancelType) {
         //更新订单信息
         Order order = this.getById(orderId);
@@ -6224,7 +6248,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void payBack(PartnerTransactionsResult transaction, BigDecimal feeAmount) {
         log.info("订单支付回调---"+transaction.toString());
         // 更新订单状态 outTradeNo
@@ -6370,7 +6394,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void refundOrder(String orderId, Integer cancelType) {
         // 更新订单信息
         Order order = this.getById(orderId);
@@ -7313,7 +7337,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