From c2931dfdb47b766ea117f711913d4993c818dd6d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 15 六月 2024 15:50:47 +0800
Subject: [PATCH] 提交【管理后台】订单管理-售后管理相关接口

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java |   79 +++++++++++++++++++++++++++------------
 1 files changed, 55 insertions(+), 24 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 0911361..76b0823 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -12,6 +12,7 @@
 import com.ruoyi.common.core.enums.BondStatusEnum;
 import com.ruoyi.common.core.enums.OrderFromEnum;
 import com.ruoyi.common.core.enums.OrderStatusEnum;
+import com.ruoyi.common.core.enums.OrderTypeEnum;
 import com.ruoyi.common.core.enums.PaymentMethodEnum;
 import com.ruoyi.common.core.enums.RequestTypeEnum;
 import com.ruoyi.common.core.enums.ReturnRequestStatusEnum;
@@ -20,8 +21,8 @@
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.common.redis.service.RedisService;
-import com.ruoyi.order.controller.management.dto.MgtMallOrderQuery;
 import com.ruoyi.order.controller.management.dto.MgtOrderConfirmShipmentDTO;
+import com.ruoyi.order.controller.management.dto.MgtOrderQuery;
 import com.ruoyi.order.controller.management.vo.MgtOrderReturnRequestVO;
 import com.ruoyi.order.controller.management.vo.MgtOrderVO;
 import com.ruoyi.order.domain.OrderReturnRequest;
@@ -74,10 +75,7 @@
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
-
 import lombok.Synchronized;
-
-import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Service;
 
@@ -759,7 +757,7 @@
      * @return PageDTO<MgtMallOrderVO>
      */
     @Override
-    public PageDTO<MgtOrderVO> getOrderPage(MgtMallOrderQuery query) {
+    public PageDTO<MgtOrderVO> getOrderPage(MgtOrderQuery query) {
         PageDTO<MgtOrderVO> pageVO;
         // 封装会员条件查询对象
         MemberDTO memberDTO = null;
@@ -783,9 +781,15 @@
         }
         page = this.lambdaQuery()
                 .in(StringUtils.isNotEmpty(memberIdSet), Order::getMemberId, memberIdSet)
+                .ne(query.getQueryType().equals(OrderTypeEnum.MALL_ODER), Order::getOrderFrom,
+                        OrderFromEnum.AUCTION_ORDERS)
+                .eq(query.getQueryType().equals(OrderTypeEnum.AUCTION_ORDER), Order::getOrderFrom,
+                        OrderFromEnum.AUCTION_ORDERS)
                 .like(StringUtils.isNotBlank(query.getOrderNo()), Order::getOrderNo,
                         query.getOrderNo())
-                .eq(StringUtils.isNotNull(query.getOrderFrom()), Order::getOrderFrom,
+                .eq(StringUtils.isNotNull(query.getOrderFrom()) && query.getQueryType()
+                                .equals(OrderTypeEnum.MALL_ODER),
+                        Order::getOrderFrom,
                         query.getOrderFrom())
                 .like(StringUtils.isNotBlank(query.getSkuName()), Order::getSkuName,
                         query.getSkuName())
@@ -798,12 +802,30 @@
         pageVO = PageDTO.of(page, MgtOrderVO.class);
         if (query.getOrderFrom() == OrderFromEnum.AUCTION_ORDERS) {
             List<MgtOrderVO> list = pageVO.getList();
+            // 封装参数查询拍卖会
+            Set<Long> auctionSalesroomGoodsIdSet = list.stream()
+                    .filter(order -> order.getAuctionType() == AuctionOrderTypeEnum.AUCTION_ITEMS)
+                    .map(MgtOrderVO::getGoodsSkuId).collect(Collectors.toSet());
+            List<AuctionSalesroom> auctionSalesroomList = auctionClient.getAuctionSalesroomByIds(
+                            auctionSalesroomGoodsIdSet, SecurityConstants.INNER)
+                    .getData();
+            Map<Long, String> salesroomMap = auctionSalesroomList.stream()
+                    .collect(Collectors.toMap(AuctionSalesroom::getId,
+                            AuctionSalesroom::getSalesroomName));
             // 封装参数查询拍卖订单保证金
-            Set<Long> orderIdSet = list.stream().map(MgtOrderVO::getId)
+            Set<Long> auctionGoodsIdSet = list.stream()
+                    .filter(order -> order.getAuctionType() == AuctionOrderTypeEnum.REGULAR_ITEMS)
+                    .map(MgtOrderVO::getGoodsSkuId)
                     .collect(Collectors.toSet());
+
+            Set<Long> auctionSalesroomSet = auctionSalesroomList.stream()
+                    .map(AuctionSalesroom::getId)
+                    .collect(Collectors.toSet());
+
             List<OrderAuctionBond> auctionBondList = orderAuctionBondMapper.selectList(
                     Wrappers.lambdaQuery(OrderAuctionBond.class)
-                            .in(OrderAuctionBond::getOrderId, orderIdSet)
+                            .in(OrderAuctionBond::getAuctionGoodsId, auctionGoodsIdSet)
+                            .in(OrderAuctionBond::getAuctionSalesroomId, auctionSalesroomSet)
                             .eq(OrderAuctionBond::getBoundStatus,
                                     BondStatusEnum.PAID));
             Map<String, OrderAuctionBond> auctionSalesroomBondMap = auctionBondList.stream()
@@ -816,27 +838,18 @@
                     .collect(Collectors.toMap(
                             bond -> bond.getAuctionGoodsId() + "-" + bond.getMemberId(),
                             Function.identity()));
-            // 封装参数查询拍卖会
-            Set<Long> auctionSalesroomGoodsIdSet = list.stream()
-                    .filter(order -> order.getAuctionType() == AuctionOrderTypeEnum.AUCTION_ITEMS)
-                    .map(MgtOrderVO::getGoodsSkuId).collect(Collectors.toSet());
-            List<AuctionSalesroom> auctionSalesroomList = auctionClient.getAuctionSalesroomByIds(
-                            auctionSalesroomGoodsIdSet, SecurityConstants.INNER)
-                    .getData();
-            Map<Long, String> salesroomMap = auctionSalesroomList.stream()
-                    .collect(Collectors.toMap(AuctionSalesroom::getId,
-                            AuctionSalesroom::getSalesroomName));
+
             list.forEach(order -> {
                 if (order.getAuctionType() == AuctionOrderTypeEnum.AUCTION_ITEMS) {
                     order.setSalesroomName(
                             StringUtils.isNotBlank(salesroomMap.get(order.getGoodsSkuId()))
-                                    ? salesroomMap.get(order.getGoodsSkuId()) : "无");
+                                    ? salesroomMap.get(order.getAuctionSalesroomId()) : "无");
                     order.setBoundStatus(
                             StringUtils.isNotNull(auctionSalesroomBondMap.get(
-                                            order.getGoodsSkuId() + "-" + order.getMemberId())
+                                            order.getAuctionSalesroomId() + "-" + order.getMemberId())
                                     .getBoundStatus())
                                     ? auctionSalesroomBondMap.get(
-                                            order.getGoodsSkuId() + "-" + order.getMemberId())
+                                            order.getAuctionSalesroomId() + "-" + order.getMemberId())
                                     .getBoundStatus()
                                     : null);
                 }
@@ -1044,12 +1057,30 @@
     @Override
     public void refundBond(Long id) {
         Order order = getOrder(id);
-        OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(
-                Wrappers.lambdaQuery(OrderAuctionBond.class)
-                        .eq(OrderAuctionBond::getOrderId, id));
+        OrderAuctionBond orderAuctionBond;
+        if (order.getAuctionType() == AuctionOrderTypeEnum.AUCTION_ITEMS) {
+            orderAuctionBond = orderAuctionBondMapper.selectOne(
+                    Wrappers.lambdaQuery(OrderAuctionBond.class)
+                            .eq(OrderAuctionBond::getAuctionSalesroomId,
+                                    order.getAuctionSalesroomId())
+                            .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID));
+            if (StringUtils.isNotNull(orderAuctionBond)
+                    && orderAuctionBond.getBoundStatus() == BondStatusEnum.REFUNDED) {
+                throw new ServiceException("改拍卖会已退保证金");
+            }
+        } else {
+            orderAuctionBond = orderAuctionBondMapper.selectOne(
+                    Wrappers.lambdaQuery(OrderAuctionBond.class)
+                            .eq(OrderAuctionBond::getAuctionGoodsId,
+                                    order.getGoodsSkuId())
+                            .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID));
+        }
         Paylog paylog = iPaylogService.lambdaQuery()
                 .eq(Paylog::getOutTradeNo, orderAuctionBond.getOrderNo())
                 .last("limit 1").one();
+        if (StringUtils.isNull(paylog)) {
+            throw new ServiceException("支付记录不存在");
+        }
         PaymentMethodEnum paymentMethod = orderAuctionBond.getPaymentMethod();
         if (orderAuctionBond.getBoundStatus() == BondStatusEnum.PAID) {
             boolean result = handleRefund(paymentMethod, paylog, orderAuctionBond.getOrderNo());

--
Gitblit v1.7.1