From 855921d253a4854d4fb78b83bfcf7c6e93b3f68d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 29 五月 2024 19:43:50 +0800
Subject: [PATCH] 1.提交【管理后台】团购、拍卖商品立即结束退款处理 2.提交【管理后台】拍卖场管理部分接口

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java     |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java |   46 ++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java                          |   17 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java                |   52 ++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java                |   41 ++
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java            |   94 ++++
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomQuery.java  |   41 ++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java                                      |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java              |   43 +
 pom.xml                                                                                                              |   14 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java                             |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderAuctionBondController.java             |   98 +++++
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/MatrixToImageConfig.java                            |   63 +++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java                        |   26 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java                                   |    1 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java                   |   38 --
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/CreateQrCode.java                                   |   38 ++
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/MatrixToImageWriter.java                            |  126 +++++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java                          |    2 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java                      |   21 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java                            |   92 +++++
 ruoyi-modules/ruoyi-auction/pom.xml                                                                                  |    6 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java                           |   47 ++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java                              |   15 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java                    |   20 +
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/BondStatusEnum.java                         |    4 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java      |   71 +++
 27 files changed, 921 insertions(+), 101 deletions(-)

diff --git a/pom.xml b/pom.xml
index 84c2ec1..3f6d66a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,6 +35,7 @@
         <minio.version>8.2.2</minio.version>
         <poi.version>4.1.2</poi.version>
         <transmittable-thread-local.version>2.14.2</transmittable-thread-local.version>
+        <zxing.version>3.2.1</zxing.version>
     </properties>
 
     <!-- 依赖声明 -->
@@ -142,6 +143,12 @@
                 <artifactId>transmittable-thread-local</artifactId>
                 <version>${transmittable-thread-local.version}</version>
             </dependency>
+            <!--二维码工具-->
+            <dependency>
+                <groupId>com.google.zxing</groupId>
+                <artifactId>core</artifactId>
+                <version>${zxing.version}</version>
+            </dependency>
 
             <!-- 核心模块 -->
             <dependency>
@@ -203,13 +210,6 @@
             <dependency>
                 <groupId>com.ruoyi</groupId>
                 <artifactId>ruoyi-api-system</artifactId>
-                <version>${ruoyi.version}</version>
-            </dependency>
-
-            <!--后台配置接口-->
-            <dependency>
-                <groupId>com.ruoyi</groupId>
-                <artifactId>ruoyi-api-management</artifactId>
                 <version>${ruoyi.version}</version>
             </dependency>
 
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
index 2809b2c..c5ee7ad 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
@@ -61,7 +61,7 @@
     @ApiModelProperty(value = "支付合计")
     private BigDecimal totalAmount;
 
-    @ApiModelProperty(value = "订单状态 1=待发货 2=待收货 3=已完成 4=已取消")
+    @ApiModelProperty(value = "订单状态 1=待支付 2=待发货 3=待收货 4=已完成 5=已取消")
     private OrderStatusEnum orderStatus;
 
     @ApiModelProperty(value = "支付时间")
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java
new file mode 100644
index 0000000..6920211
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java
@@ -0,0 +1,92 @@
+package com.ruoyi.system.api.domain.dto;
+
+import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
+import com.ruoyi.common.core.enums.OrderFromEnum;
+import com.ruoyi.common.core.enums.OrderStatusEnum;
+import com.ruoyi.common.core.enums.PaymentMethodEnum;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * @author mitao
+ * @date 2024/5/29
+ */
+@Data
+public class OrderUpdDTO implements Serializable {
+
+    private static final long serialVersionUID = -437243191517275308L;
+
+    @ApiModelProperty(value = "订单id")
+    private Long id;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "下单时间")
+    private LocalDateTime orderTime;
+
+    @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单")
+    private OrderFromEnum orderFrom;
+
+    @ApiModelProperty(value = "拍卖订单类型 1=普通拍品 2=拍卖会拍品")
+    private AuctionOrderTypeEnum auctionType;
+
+    @ApiModelProperty(value = "会员id")
+    private Long memberId;
+
+    @ApiModelProperty(value = "支付方式 1=微信 2=支付宝")
+    private PaymentMethodEnum paymentMethod;
+
+    @ApiModelProperty(value = "支付合计")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty(value = "订单状态 1=待支付 2=待发货 3=待收货 4=已完成 5=已取消")
+    private OrderStatusEnum orderStatus;
+
+    @ApiModelProperty(value = "支付时间")
+    private LocalDateTime payTime;
+
+    @ApiModelProperty(value = "取消时间")
+    private LocalDateTime cancelTime;
+
+    @ApiModelProperty(value = "订单备注")
+    private String orderRemark;
+
+    @ApiModelProperty(value = "发货时间")
+    private LocalDateTime deliveryTime;
+
+    @ApiModelProperty(value = "确认收货时间")
+    private LocalDateTime receiveTime;
+
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discountMoney;
+
+    @ApiModelProperty(value = "商品数量")
+    private Integer goodsQuantity;
+    @ApiModelProperty(value = "快递单号")
+    private String courierNumber;
+
+    @ApiModelProperty(value = "收货人姓名")
+    private String receiverName;
+
+    @ApiModelProperty(value = "收货人电话")
+    private String receiverphone;
+
+    @ApiModelProperty(value = "城市")
+    private String receiverCity;
+
+
+    @ApiModelProperty(value = "详细地址")
+    private String receiverDetailAddress;
+
+
+    @ApiModelProperty(value = "保证金")
+    private BigDecimal bound;
+
+    @ApiModelProperty(value = "开票状态 开票状态 1 待开票,2待审核,3 已开票,4 拒绝")
+    private Integer invoiceStatus;
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
index c067433..1c118f9 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
@@ -1,11 +1,14 @@
 package com.ruoyi.system.api.factory;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
+import com.ruoyi.common.core.enums.BondStatusEnum;
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
+import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
 import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import java.util.List;
@@ -57,6 +60,24 @@
             public R<Map<String, Object>> refund(List<RefundDTO> refundDTOS, String source) {
                 return R.fail("批量退款失败" + cause.getMessage());
             }
+
+            @Override
+            public R<List<OrderAuctionBond>> getOrderAuctionBondList(Long id,
+                    AuctionOrderTypeEnum auctionOrderTypeEnum, BondStatusEnum bondStatusEnum,
+                    String source) {
+                return R.fail("获取保证金订单列表失败" + cause.getMessage());
+            }
+
+            @Override
+            public R<?> updateOrderAuctionBondStatus(List<Long> ids,
+                    BondStatusEnum bondStatusEnum) {
+                return R.fail("批量更新保证金订单状态失败" + cause.getMessage());
+            }
+
+            @Override
+            public R<?> updateOrderList(List<OrderUpdDTO> orderUpdDTOS, String source) {
+                return R.fail("批量更新订单失败" + cause.getMessage());
+            }
         };
 
     }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
index 7ce3c03..0733bcc 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
@@ -3,11 +3,14 @@
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
+import com.ruoyi.common.core.enums.BondStatusEnum;
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
+import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
 import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.factory.OrderFallbackFactory;
 import java.util.List;
@@ -16,8 +19,10 @@
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestParam;
 
 @FeignClient(contextId = "orderClient", value = ServiceNameConstants.RUOYI_ORDER, fallbackFactory = OrderFallbackFactory.class)
 public interface OrderClient {
@@ -65,7 +70,47 @@
     R<List<OrderAuctionBond>> getOrderAuctionBondList(@RequestBody MemberAuctionSalesroomDTO memberAuctionSalesroomDTO,
                                                       @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
-    @PostMapping("/inner/pay/refund-batch")
+    /**
+     * 批量退款
+     *
+     * @param refundDTOS 退款数据传输对象
+     * @param source     内部调用标志
+     * @return Map<String, Object>
+     */
+    @PostMapping("/pay/refund-batch")
     R<Map<String, Object>> refund(@RequestBody List<RefundDTO> refundDTOS,
             @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * 查询保证金订单列表
+     *
+     * @param id                   拍卖商品id
+     * @param auctionOrderTypeEnum 拍卖类型: 普通拍品 拍卖会拍品
+     * @param bondStatusEnum       保证金状态 待支付 已支付 已退款 为null则查询所有
+     * @param source               内部调用标志
+     * @return List<OrderAuctionBond>
+     */
+    @PostMapping("/order-auction-bond/list")
+    R<List<OrderAuctionBond>> getOrderAuctionBondList(@RequestParam("id") Long id,
+            @RequestParam("auctionOrderTypeEnum") AuctionOrderTypeEnum auctionOrderTypeEnum,
+            @RequestParam(value = "bondStatusEnum", required = false) BondStatusEnum bondStatusEnum,
+            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * @param ids            保证金订单id列表
+     * @param bondStatusEnum 保证金状态
+     */
+    @PutMapping("/order-auction-bond")
+    R<?> updateOrderAuctionBondStatus(@RequestParam("ids") List<Long> ids,
+            @RequestParam("bondStatusEnum") BondStatusEnum bondStatusEnum);
+
+    /**
+     * 批量更新订单状态
+     *
+     * @param orderUpdDTOS 订单更新数据传输对象列表
+     * @param source       内部调用标志
+     */
+    @PutMapping("/order/upd-batch")
+    R<?> updateOrderList(@RequestBody List<OrderUpdDTO> orderUpdDTOS,
+            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/BondStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/BondStatusEnum.java
index 3fb6ec3..c567ec0 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/BondStatusEnum.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/BondStatusEnum.java
@@ -10,10 +10,10 @@
 @AllArgsConstructor
 public enum BondStatusEnum {
 
-    /*订单状态 1=待发货 2=待收货 3=已完成 4=已取消*/
+    /*保证金状态 1=待支付 2=已支付 3=已退款*/
     TO_PLAY(1, "待支付"),
     PAID(2, "已支付"),
-    REFUNDED(3, "待收货");
+    REFUNDED(3, "已退款");
 
     @EnumValue
     private final int code;
diff --git a/ruoyi-modules/ruoyi-auction/pom.xml b/ruoyi-modules/ruoyi-auction/pom.xml
index d8c7873..55dc172 100644
--- a/ruoyi-modules/ruoyi-auction/pom.xml
+++ b/ruoyi-modules/ruoyi-auction/pom.xml
@@ -125,12 +125,18 @@
       <groupId>com.ruoyi</groupId>
       <artifactId>ruoyi-common-seata</artifactId>
     </dependency>
+
     <dependency>
       <groupId>com.ruoyi</groupId>
       <artifactId>ruoyi-modules-member</artifactId>
       <version>3.6.2</version>
       <scope>compile</scope>
     </dependency>
+
+    <dependency>
+      <groupId>com.google.zxing</groupId>
+      <artifactId>core</artifactId>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
index c9bf4ca..f8e18fc 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
@@ -27,7 +27,7 @@
  * @author mitao
  * @since 2024-05-16
  */
-@Api(value = "管理后台拍卖商品相关接口", tags = {"管理后台接口"})
+@Api(value = "拍卖商品管理相关接口", tags = {"管理后台接口"})
 @RestController
 @RequiredArgsConstructor
 @RequestMapping("/mgt/auction-goods")
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java
index 1e4f465..8fe2c7b 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java
@@ -1,6 +1,18 @@
 package com.ruoyi.auction.controller.management;
 
 
+import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery;
+import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO;
+import com.ruoyi.auction.service.IAuctionSalesroomService;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.page.PageDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -12,8 +24,42 @@
  * @author mitao
  * @since 2024-05-16
  */
+@Slf4j
 @RestController
 @RequestMapping("/mgt/auction-salesroom")
+@RequiredArgsConstructor
+@Api(value = "拍卖场管理相关接口", tags = {"管理后台接口"})
 public class MgtAuctionSalesroomController {
 
+    private final IAuctionSalesroomService auctionSalesroomService;
+
+    /**
+     * 分页查询拍卖场
+     *
+     * @param query 拍卖场查询对象
+     * @return PageDTO<MgtAuctionSalesroomVO>
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "获取拍卖场列表的分页数据", notes = "获取拍卖场列表的分页数据")
+    public R<PageDTO<MgtAuctionSalesroomVO>> getAuctionSalesroomPage(
+            MgtAuctionSalesroomQuery query) {
+        return R.ok(auctionSalesroomService.getAuctionSalesroomPage(query));
+    }
+
+    /**
+     * 查看二维码
+     *
+     * @param id 拍卖场id
+     * @return 二维码
+     */
+    @GetMapping("/qr-code/{id}")
+    @ApiOperation(value = "查看二维码", notes = "查看二维码")
+    public R<String> getQrCode(@PathVariable("id") Long id) {
+        try {
+            return R.ok(auctionSalesroomService.getQrCode(id));
+        } catch (Exception e) {
+            log.info("查看二维码异常", e);
+            return R.fail();
+        }
+    }
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomQuery.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomQuery.java
new file mode 100644
index 0000000..93244fa
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomQuery.java
@@ -0,0 +1,41 @@
+package com.ruoyi.auction.controller.management.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.enums.AuctionStartStatusEnum;
+import com.ruoyi.common.core.enums.AuthenticationEnum;
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author mitao
+ * @date 2024/5/29
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "拍卖场查询对象", description = "拍卖场查询对象")
+public class MgtAuctionSalesroomQuery extends BasePage {
+
+    private static final long serialVersionUID = -4766716589148941634L;
+
+    @ApiModelProperty(value = "拍卖场名称")
+    private String salesroomName;
+
+    @ApiModelProperty(value = "实名认证 0=不需实名 1=需要实名", notes = "传文字")
+    private AuthenticationEnum authentication;
+
+    @ApiModelProperty(value = "开始状态 0=预展中 1=拍卖中 2=已结束", notes = "传文字")
+    private AuctionStartStatusEnum status;
+
+    @ApiModelProperty(value = "开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java
new file mode 100644
index 0000000..03312d1
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java
@@ -0,0 +1,71 @@
+package com.ruoyi.auction.controller.management.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.enums.AuctionStartStatusEnum;
+import com.ruoyi.common.core.enums.AuctionTypeEnum;
+import com.ruoyi.common.core.enums.AuthenticationEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * @author mitao
+ * @date 2024/5/29
+ */
+@Data
+@ApiModel(value = "拍卖场视图对象", description = "拍卖场视图对象")
+public class MgtAuctionSalesroomVO implements Serializable {
+
+    private static final long serialVersionUID = -7682015246094307938L;
+
+    @ApiModelProperty(value = "拍卖场id")
+    private Long id;
+
+    @ApiModelProperty(value = "拍卖场名称")
+    private String salesroomName;
+
+    @ApiModelProperty(value = "开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "拍卖时间 0=线下拍卖 1=线上线下结合")
+    private AuctionTypeEnum type;
+
+    @ApiModelProperty(value = "保证金")
+    private BigDecimal bound;
+
+    @ApiModelProperty(value = "实名认证 0=不需认证 1=需要实名")
+    private AuthenticationEnum authentication;
+
+    @ApiModelProperty(value = "拍卖场说明")
+    private String description;
+
+    @ApiModelProperty(value = "拍卖场封面图")
+    private String coverPic;
+
+    @ApiModelProperty(value = "分享标题")
+    private String shareTitle;
+
+    @ApiModelProperty(value = "分享图片")
+    private String sharePic;
+
+    @ApiModelProperty(value = "拍卖状态 0=预展中 1=拍卖中 2=已结束")
+    private AuctionStartStatusEnum status;
+
+    @ApiModelProperty(value = "拍卖场编码")
+    private String auctionSalesroomNo;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "拍卖商品数")
+    private Integer auctionGoodsNum;
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java
index 0c2355b..71a3e78 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java
@@ -34,7 +34,7 @@
 public class AuctionSalesroom implements Serializable {
 
     private static final long serialVersionUID = 1L;
-
+    @ApiModelProperty(value = "拍卖场id")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
index 9775dfa..3b64f66 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
@@ -3,14 +3,16 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
 import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO;
-import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO;
 import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO;
 import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO;
+import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery;
+import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO;
 import com.ruoyi.auction.domain.AuctionSalesroom;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.system.api.domain.AppMiniLoginVO;
 import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
 import org.springframework.web.bind.annotation.RequestBody;
 
 /**
@@ -45,4 +47,20 @@
     MemberAuctionSalesroomInfoVO getMemberAuctionSalesroomInfo( MemberAuctionSalesroomDTO memberAuctionSalesroomDTO);
 
     MemberAuctionSalesroomVO getMemberAuctionSalesroomSweep( MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO);
+
+    /**
+     * 分页查询拍卖场
+     *
+     * @param query 拍卖场查询对象
+     * @return PageDTO<MgtAuctionSalesroomVO>
+     */
+    PageDTO<MgtAuctionSalesroomVO> getAuctionSalesroomPage(MgtAuctionSalesroomQuery query);
+
+    /**
+     * 查看二维码
+     *
+     * @param id 拍卖场id
+     * @return 二维码
+     */
+    String getQrCode(Long id) throws Exception;
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
index 089761a..f97c276 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -15,6 +15,7 @@
 import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
 import com.ruoyi.common.core.enums.AuctionStartStatusEnum;
 import com.ruoyi.common.core.enums.BidStatusEnum;
+import com.ruoyi.common.core.enums.BondStatusEnum;
 import com.ruoyi.common.core.enums.OrderFromEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -23,14 +24,18 @@
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.Member;
 import com.ruoyi.system.api.domain.MemberAddress;
+import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
+import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.feignClient.GoodsSkuClient;
 import com.ruoyi.system.api.feignClient.MemberClient;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import io.seata.spring.annotation.GlobalTransactional;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 import lombok.RequiredArgsConstructor;
@@ -202,12 +207,13 @@
             // 查询出价记录
             List<AuctionBidRecord> auctionBidRecords = auctionBidRecordService.getBidRecordByGoodsId(
                     id);
+            Long memberId = null;
             if (StringUtils.isNotEmpty(auctionBidRecords)) {
                 // 中标
                 AuctionBidRecord auctionBidRecord = auctionBidRecords.get(0);
                 auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
                 auctionBidRecordService.updateById(auctionBidRecord);
-
+                memberId = auctionBidRecord.getMemberId();
                 // 创建待支付订单
                 OrderDTO orderDTO = new OrderDTO();
                 orderDTO.setAuctionType(AuctionOrderTypeEnum.REGULAR_ITEMS);
@@ -235,9 +241,47 @@
             // 结束拍卖
             this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.ENDED)
                     .eq(AuctionGoods::getId, id).update();
-            // 查询已支付保证基记录
-            // TODO 退还保证金
-          
+            // 查询已支付保证金记录
+            List<OrderAuctionBond> auctionBondList = orderClient.getOrderAuctionBondList(id,
+                    AuctionOrderTypeEnum.REGULAR_ITEMS,
+                    BondStatusEnum.PAID,
+                    SecurityConstants.INNER).getData();
+            if (StringUtils.isNotEmpty(auctionBondList)) {
+                List<RefundDTO> refundDTOList = new ArrayList<>();
+                for (OrderAuctionBond orderAuctionBond : auctionBondList) {
+                    // 已中标需在订单完成后退保证金
+                    if (orderAuctionBond.getMemberId().equals(memberId)) {
+                        continue;
+                    }
+                    RefundDTO refundDTO = new RefundDTO();
+                    refundDTO.setOrderNo(orderAuctionBond.getOrderNo());
+                    refundDTO.setAmount(orderAuctionBond.getBond());
+                }
+                // 远程调用订单服务进行退款
+                Map<String, Object> data = orderClient.refund(refundDTOList,
+                        SecurityConstants.INNER).getData();
+                // 处理退款返回结果
+                List<String> successfulOrders = new ArrayList<>();
+                List<String> failedOrders = new ArrayList<>();
+
+                data.forEach((key, value) -> {
+                    if ((boolean) value) {
+                        successfulOrders.add(key);
+                    } else {
+                        failedOrders.add(key);
+                    }
+                });
+                log.info("订单号:{},退款失败", failedOrders);
+                // 退款成功的订单修改状态
+                List<Long> ids = auctionBondList.stream().map(bond -> {
+                    if (successfulOrders.contains(bond.getOrderNo())) {
+                        return bond.getId();
+                    }
+                    return null;
+                }).filter(Objects::nonNull).collect(Collectors.toList());
+                // 远程调用订单服务修改订单状态
+                orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID);
+            }
         }
     }
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
index 4a89185..48111e6 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -16,40 +16,46 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
 import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO;
-import com.ruoyi.system.api.domain.OrderAuctionBond;
-import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO;
 import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO;
 import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO;
-import com.ruoyi.auction.domain.*;
+import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery;
+import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO;
+import com.ruoyi.auction.domain.AuctionBidRecord;
+import com.ruoyi.auction.domain.AuctionSalesroom;
+import com.ruoyi.auction.domain.AuctionSalesroomGoods;
+import com.ruoyi.auction.domain.AuctionVideo;
 import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper;
 import com.ruoyi.auction.mapper.AuctionSalesroomMapper;
-import com.ruoyi.auction.service.*;
+import com.ruoyi.auction.service.IAuctionBidRecordService;
+import com.ruoyi.auction.service.IAuctionSalesroomService;
+import com.ruoyi.auction.service.IAuctionVideoService;
+import com.ruoyi.auction.util.CreateQrCode;
+import com.ruoyi.auction.util.HttpUtils;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.auction.util.HttpUtils;
 import com.ruoyi.system.api.domain.AppMiniLoginVO;
 import com.ruoyi.system.api.domain.GoodsSku;
+import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
 import com.ruoyi.system.api.feignClient.GoodsSkuClient;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import com.ruoyi.system.api.feignClient.SysUserClient;
-import javax.annotation.Resource;
-
-import org.apache.http.HttpResponse;
-import org.apache.http.util.EntityUtils;
-import org.springframework.stereotype.Service;
-
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
+import org.apache.http.HttpResponse;
+import org.apache.http.util.EntityUtils;
+import org.springframework.stereotype.Service;
 
 /**
  * <p>
@@ -401,4 +407,68 @@
             HttpResponse response = HttpUtils.doPost(host, "", "POST", headers, querys, body);
             return EntityUtils.toString(response.getEntity());
         }
+
+    /**
+     * 分页查询拍卖场
+     *
+     * @param query 拍卖场查询对象
+     * @return PageDTO<MgtAuctionSalesroomVO>
+     */
+    @Override
+    public PageDTO<MgtAuctionSalesroomVO> getAuctionSalesroomPage(MgtAuctionSalesroomQuery query) {
+        // 分页查询
+        Page<AuctionSalesroom> page = this.lambdaQuery()
+                .select(AuctionSalesroom::getId, AuctionSalesroom::getSalesroomName,
+                        AuctionSalesroom::getCreateTime, AuctionSalesroom::getStartTime,
+                        AuctionSalesroom::getEndTime, AuctionSalesroom::getType,
+                        AuctionSalesroom::getAuthentication, AuctionSalesroom::getStatus)
+                .like(StringUtils.isNotEmpty(query.getSalesroomName()),
+                        AuctionSalesroom::getSalesroomName, query.getSalesroomName())
+                .eq(StringUtils.isNotNull(query.getAuthentication()),
+                        AuctionSalesroom::getAuthentication, query.getAuthentication())
+                .eq(StringUtils.isNotNull(query.getStatus()), AuctionSalesroom::getStatus,
+                        query.getStatus()).between(
+                        StringUtils.isNotNull(query.getStartTime()) && StringUtils.isNotNull(
+                                query.getEndTime()), AuctionSalesroom::getStartTime,
+                        query.getStartTime(),
+                        query.getEndTime())
+                .page(new Page<>(query.getPageCurr(), query.getPageSize()));
+        List<AuctionSalesroom> records = page.getRecords();
+        if (StringUtils.isNull(records)) {
+            return PageDTO.empty(page);
+        }
+        PageDTO<MgtAuctionSalesroomVO> auctionSalesroomVOPageDTO = PageDTO.of(page,
+                MgtAuctionSalesroomVO.class);
+        List<MgtAuctionSalesroomVO> list = auctionSalesroomVOPageDTO.getList();
+        List<Long> auctionSalesroomIdList = list.stream().map(MgtAuctionSalesroomVO::getId)
+                .collect(Collectors.toList());
+        // 所有拍卖场的拍卖商品
+        List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList(
+                Wrappers.<AuctionSalesroomGoods>lambdaQuery()
+                        .in(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomIdList));
+        // 计算每个拍卖场所有拍品数量
+        Map<Long, Integer> map = auctionSalesroomGoods.stream()
+                .collect(Collectors.groupingBy(AuctionSalesroomGoods::getAuctionSalesroomId,
+                        Collectors.summingInt(AuctionSalesroomGoods::getSalesroomStock)));
+        for (MgtAuctionSalesroomVO mgtAuctionSalesroomVO : list) {
+            Integer i = map.get(mgtAuctionSalesroomVO.getId());
+            if (StringUtils.isNotNull(i)) {
+                mgtAuctionSalesroomVO.setAuctionGoodsNum(i);
+            }
+        }
+        return auctionSalesroomVOPageDTO;
+    }
+
+    /**
+     * 查看二维码
+     *
+     * @param id 拍卖场id
+     * @return 二维码
+     */
+    @Override
+    public String getQrCode(Long id) throws Exception {
+        AuctionSalesroom auctionSalesroom = this.getById(id);
+        String auctionSalesroomNo = auctionSalesroom.getAuctionSalesroomNo();
+        return CreateQrCode.createQRCode(auctionSalesroomNo);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/CreateQrCode.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/CreateQrCode.java
new file mode 100644
index 0000000..095f5a3
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/CreateQrCode.java
@@ -0,0 +1,38 @@
+package com.ruoyi.auction.util;
+
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.WriterException;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.qrcode.QRCodeWriter;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.Base64;
+import java.util.HashMap;
+
+public class CreateQrCode {
+
+    private static final String base64Url = "data:image/png;base64,";
+
+    /**
+     * 创建二维码
+     *
+     * @param
+     * @param
+     * @return
+     * @throws IOException
+     * @throws WriterException
+     */
+    public static String createQRCode(String json) throws IOException, WriterException {
+        QRCodeWriter qrCodeWriter = new QRCodeWriter();
+
+        HashMap<EncodeHintType, Object> hints = new HashMap<>();
+        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
+        BitMatrix bitMatrix = qrCodeWriter.encode(json, BarcodeFormat.QR_CODE, 600, 600, hints);
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        MatrixToImageWriter.writeToStream(bitMatrix, "PNG", outputStream);
+        Base64.Encoder encoder = Base64.getEncoder();
+        String text = encoder.encodeToString(outputStream.toByteArray());
+        return base64Url + text;
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/MatrixToImageConfig.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/MatrixToImageConfig.java
new file mode 100644
index 0000000..96a1edf
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/MatrixToImageConfig.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2012 ZXing authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.ruoyi.auction.util;
+
+import java.awt.image.BufferedImage;
+
+/**
+ * Encapsulates custom configuration used in methods of {@link MatrixToImageWriter}.
+ */
+public final class MatrixToImageConfig {
+
+    public static final int BLACK = 0xFF000000;
+    public static final int WHITE = 0xFFFFFFFF;
+
+    private final int onColor;
+    private final int offColor;
+
+    /**
+     * Creates a default config with on color {@link #BLACK} and off color {@link #WHITE},
+     * generating normal black-on-white barcodes.
+     */
+    public MatrixToImageConfig() {
+        this(BLACK, WHITE);
+    }
+
+    /**
+     * @param onColor  pixel on color, specified as an ARGB value as an int
+     * @param offColor pixel off color, specified as an ARGB value as an int
+     */
+    public MatrixToImageConfig(int onColor, int offColor) {
+        this.onColor = onColor;
+        this.offColor = offColor;
+    }
+
+    public int getPixelOnColor() {
+        return onColor;
+    }
+
+    public int getPixelOffColor() {
+        return offColor;
+    }
+
+    int getBufferedImageColorModel() {
+        // Use faster BINARY if colors match default
+        return onColor == BLACK && offColor == WHITE ? BufferedImage.TYPE_BYTE_BINARY
+                : BufferedImage.TYPE_INT_RGB;
+    }
+
+}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/MatrixToImageWriter.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/MatrixToImageWriter.java
new file mode 100644
index 0000000..1210f6c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/util/MatrixToImageWriter.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2009 ZXing authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.ruoyi.auction.util;
+
+import com.google.zxing.common.BitMatrix;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Path;
+import javax.imageio.ImageIO;
+
+/**
+ * Writes a {@link BitMatrix} to {@link BufferedImage}, file or stream. Provided here instead of
+ * core since it depends on Java SE libraries.
+ *
+ * @author Sean Owen
+ */
+public final class MatrixToImageWriter {
+
+    private static final MatrixToImageConfig DEFAULT_CONFIG = new MatrixToImageConfig();
+
+    private MatrixToImageWriter() {
+    }
+
+    /**
+     * Renders a {@link BitMatrix} as an image, where "false" bits are rendered as white, and "true"
+     * bits are rendered as black.
+     */
+    public static BufferedImage toBufferedImage(BitMatrix matrix) {
+        return toBufferedImage(matrix, DEFAULT_CONFIG);
+    }
+
+    /**
+     * As {@link #toBufferedImage(BitMatrix)}, but allows customization of the output.
+     */
+    public static BufferedImage toBufferedImage(BitMatrix matrix, MatrixToImageConfig config) {
+        int width = matrix.getWidth();
+        int height = matrix.getHeight();
+        BufferedImage image = new BufferedImage(width, height, config.getBufferedImageColorModel());
+        int onColor = config.getPixelOnColor();
+        int offColor = config.getPixelOffColor();
+        for (int x = 0; x < width; x++) {
+            for (int y = 0; y < height; y++) {
+                image.setRGB(x, y, matrix.get(x, y) ? onColor : offColor);
+            }
+        }
+        return image;
+    }
+
+    /**
+     * @deprecated use {@link #writeToPath(BitMatrix, String, Path)}
+     */
+    @Deprecated
+    public static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {
+        writeToPath(matrix, format, file.toPath());
+    }
+
+    /**
+     * Writes a {@link BitMatrix} to a file.
+     *
+     * @see #toBufferedImage(BitMatrix)
+     */
+    public static void writeToPath(BitMatrix matrix, String format, Path file) throws IOException {
+        writeToPath(matrix, format, file, DEFAULT_CONFIG);
+    }
+
+    /**
+     * @deprecated use {@link #writeToPath(BitMatrix, String, Path, MatrixToImageConfig)}
+     */
+    @Deprecated
+    public static void writeToFile(BitMatrix matrix, String format, File file,
+            MatrixToImageConfig config)
+            throws IOException {
+        writeToPath(matrix, format, file.toPath(), config);
+    }
+
+    /**
+     * As {@link #writeToFile(BitMatrix, String, File)}, but allows customization of the output.
+     */
+    public static void writeToPath(BitMatrix matrix, String format, Path file,
+            MatrixToImageConfig config)
+            throws IOException {
+        BufferedImage image = toBufferedImage(matrix, config);
+        if (!ImageIO.write(image, format, file.toFile())) {
+            throw new IOException("Could not write an image of format " + format + " to " + file);
+        }
+    }
+
+    /**
+     * Writes a {@link BitMatrix} to a stream.
+     *
+     * @see #toBufferedImage(BitMatrix)
+     */
+    public static void writeToStream(BitMatrix matrix, String format, OutputStream stream)
+            throws IOException {
+        writeToStream(matrix, format, stream, DEFAULT_CONFIG);
+    }
+
+    /**
+     * As {@link #writeToStream(BitMatrix, String, OutputStream)}, but allows customization of the
+     * output.
+     */
+    public static void writeToStream(BitMatrix matrix, String format, OutputStream stream,
+            MatrixToImageConfig config)
+            throws IOException {
+        BufferedImage image = toBufferedImage(matrix, config);
+        if (!ImageIO.write(image, format, stream)) {
+            throw new IOException("Could not write an image of format " + format);
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
index a51d3a5..6423dd4 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -7,7 +7,7 @@
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.enums.GroupStatusEnum;
 import com.ruoyi.common.core.enums.ListingStatusEnum;
-import com.ruoyi.common.core.enums.PaymentMethodEnum;
+import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.enums.StartStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -27,11 +27,15 @@
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
+import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
+import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -221,13 +225,36 @@
             //查询关联订单
             List<Order> orderList = orderClient.getOrderByGroupPurchaseId(id,
                     SecurityConstants.INNER).getData();
-            for (Order order : orderList) {
-                if (PaymentMethodEnum.ALIPAY.equals(order.getPaymentMethod())) {
-                    //TODO 退款
-                }
-                if (PaymentMethodEnum.WECHAT.equals(order.getPaymentMethod())) {
-                    //TODO 退款
-                }
+
+            List<RefundDTO> refundDTOList = orderList.stream().map(order -> {
+                RefundDTO refundDTO = new RefundDTO();
+                refundDTO.setOrderNo(order.getOrderNo());
+                refundDTO.setAmount(order.getTotalAmount());
+                return refundDTO;
+            }).collect(Collectors.toList());
+            Map<String, Object> data = orderClient.refund(refundDTOList,
+                    SecurityConstants.INNER).getData();
+            if (StringUtils.isNotEmpty(data)) {
+                // 处理退款返回结果
+                List<String> successfulOrders = new ArrayList<>();
+                List<String> failedOrders = new ArrayList<>();
+
+                data.forEach((key, value) -> {
+                    if ((boolean) value) {
+                        successfulOrders.add(key);
+                    } else {
+                        failedOrders.add(key);
+                    }
+                });
+                // 处理退款结果
+                List<Order> updateOrderList = orderList.stream()
+                        .filter(order -> successfulOrders.contains(order.getOrderNo()))
+                        .peek(order -> {
+                            order.setOrderStatus(OrderStatusEnum.CANCELED);
+                        }).collect(Collectors.toList());
+                List<OrderUpdDTO> orderUpdDTOS = BeanUtils.copyList(updateOrderList,
+                        OrderUpdDTO.class);
+                orderClient.updateOrderList(orderUpdDTOS, SecurityConstants.INNER);
             }
         } else {
             this.lambdaUpdate()
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java
index 617fa84..b65c001 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java
@@ -1,23 +1,10 @@
 package com.ruoyi.order.controller;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.security.annotation.InnerAuth;
-import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.order.service.IOrderAuctionBondService;
-import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
-import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
 import javax.annotation.Resource;
-import org.apache.poi.ss.formula.functions.T;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
 
 /**
  * <p>
@@ -34,31 +21,6 @@
     @Resource
     private IOrderAuctionBondService  iOrderAuctionBondService;
 
-    /**
-     * 获取当前商品信息
-     *
-     */
-    @InnerAuth
-    @PostMapping("/getOrderAuctionBond")
-    @ResponseBody
-    public R<T> getOrderAuctionBond(@RequestBody OrderAuctionBondDTO orderAuctionBondDTO) {
-        iOrderAuctionBondService.getOrderAuctionBond(orderAuctionBondDTO);
-        return R.ok();
-
-    }
-
-    @InnerAuth
-    @PostMapping("/getOrderAuctionBondList")
-    @ResponseBody
-    public R<List<OrderAuctionBond>> getOrderAuctionBondList(@RequestBody MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) {
-        LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery();
-        wrapper.eq(OrderAuctionBond::getMemberId,memberAuctionSalesroomDTO.getMemberId());
-        wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,memberAuctionSalesroomDTO.getAuctionSalesroomId());
-        wrapper.eq(OrderAuctionBond::getDelFlag,0);
-        List<OrderAuctionBond> list = iOrderAuctionBondService.list(wrapper);
-        return R.ok(list);
-
-    }
 
 
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index 4219436..5814434 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -2,10 +2,12 @@
 
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.security.annotation.InnerAuth;
 import com.ruoyi.order.service.IOrderService;
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
+import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
 import java.util.List;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -13,6 +15,7 @@
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -78,4 +81,16 @@
     R<List<Order>> getOrderByGroupPurchaseId(@PathVariable("id") Long id) {
         return R.ok(orderService.getOrderByGroupPurchaseId(id));
     }
+
+    /**
+     * 批量更新订单状态
+     *
+     * @param orderUpdDTOS 订单更新数据传输对象列表
+     */
+    @PutMapping("/upd-batch")
+    R<?> updateOrderList(@RequestBody List<OrderUpdDTO> orderUpdDTOS) {
+        List<Order> orders = BeanUtils.copyList(orderUpdDTOS, Order.class);
+        orderService.updateBatchById(orders);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderAuctionBondController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderAuctionBondController.java
new file mode 100644
index 0000000..c91bcc1
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderAuctionBondController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.order.controller.inner;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
+import com.ruoyi.common.core.enums.BondStatusEnum;
+import com.ruoyi.common.security.annotation.InnerAuth;
+import com.ruoyi.order.service.IOrderAuctionBondService;
+import com.ruoyi.system.api.domain.OrderAuctionBond;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
+import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import java.util.List;
+import javax.annotation.Resource;
+import org.apache.poi.ss.formula.functions.T;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 拍卖保证金表 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-16
+ */
+@RestController
+@RequestMapping("/order-auction-bond")
+public class OrderAuctionBondController {
+
+    @Resource
+    private IOrderAuctionBondService iOrderAuctionBondService;
+
+    /**
+     * 获取当前商品信息
+     */
+    @InnerAuth
+    @PostMapping("/getOrderAuctionBond")
+    @ResponseBody
+    public R<T> getOrderAuctionBond(@RequestBody OrderAuctionBondDTO orderAuctionBondDTO) {
+        iOrderAuctionBondService.getOrderAuctionBond(orderAuctionBondDTO);
+        return R.ok();
+
+    }
+
+    @InnerAuth
+    @PostMapping("/getOrderAuctionBondList")
+    @ResponseBody
+    public R<List<OrderAuctionBond>> getOrderAuctionBondList(
+            @RequestBody MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) {
+        LambdaQueryWrapper<OrderAuctionBond> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(OrderAuctionBond::getMemberId, memberAuctionSalesroomDTO.getMemberId());
+        wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,
+                memberAuctionSalesroomDTO.getAuctionSalesroomId());
+        wrapper.eq(OrderAuctionBond::getDelFlag, 0);
+        List<OrderAuctionBond> list = iOrderAuctionBondService.list(wrapper);
+        return R.ok(list);
+
+    }
+
+    /**
+     * 查询保证金订单列表
+     *
+     * @param id                   拍卖商品id
+     * @param auctionOrderTypeEnum 拍卖类型: 普通拍品 拍卖会拍品
+     * @param bondStatusEnum       保证金状态 待支付 已支付 已退款 为null则查询所有
+     * @return List<OrderAuctionBond>
+     */
+    @InnerAuth
+    @PostMapping("/list")
+    public R<List<OrderAuctionBond>> getOrderAuctionBondList(@RequestParam("id") Long id,
+            @RequestParam("auctionOrderTypeEnum") AuctionOrderTypeEnum auctionOrderTypeEnum,
+            @RequestParam(value = "bondStatusEnum", required = false) BondStatusEnum bondStatusEnum) {
+        return R.ok(iOrderAuctionBondService.getOrderAuctionBondList(id, auctionOrderTypeEnum,
+                bondStatusEnum));
+    }
+
+    /**
+     * 批量更新保证金订单状态
+     *
+     * @param ids            保证金订单id列表
+     * @param bondStatusEnum 保证金状态
+     */
+    @InnerAuth
+    @PutMapping
+    R<?> updateOrderAuctionBondStatus(@RequestParam("ids") List<Long> ids,
+            @RequestParam("bondStatusEnum") BondStatusEnum bondStatusEnum) {
+        iOrderAuctionBondService.updateOrderAuctionBondStatus(ids, bondStatusEnum);
+        return R.ok();
+    }
+    
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java
index e4c6465..99c0cdb 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java
@@ -18,7 +18,7 @@
  * @date 2024/5/29
  */
 @RestController
-@RequestMapping("/inner/pay")
+@RequestMapping("/pay")
 @RequiredArgsConstructor
 public class PayController {
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java
index af9697b..0e5e81c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java
@@ -1,9 +1,12 @@
 package com.ruoyi.order.service;
 
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
+import com.ruoyi.common.core.enums.BondStatusEnum;
+import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import java.util.List;
 import org.apache.poi.ss.formula.functions.T;
 
 /**
@@ -17,4 +20,23 @@
 public interface IOrderAuctionBondService extends IService<OrderAuctionBond> {
    R<T> getOrderAuctionBond(OrderAuctionBondDTO orderAuctionBondDTO);
 
+    /**
+     * 查询保证金订单列表
+     *
+     * @param id                   拍卖商品id
+     * @param auctionOrderTypeEnum 拍卖类型: 普通拍品 拍卖会拍品
+     * @param bondStatusEnum       保证金状态 待支付 已支付 已退款 为null则查询所有
+     * @return List<OrderAuctionBond>
+     */
+    List<OrderAuctionBond> getOrderAuctionBondList(Long id,
+            AuctionOrderTypeEnum auctionOrderTypeEnum,
+            BondStatusEnum bondStatusEnum);
+
+    /**
+     * 批量更新保证金订单状态
+     *
+     * @param ids            保证金订单id列表
+     * @param bondStatusEnum 保证金状态
+     */
+    void updateOrderAuctionBondStatus(List<Long> ids, BondStatusEnum bondStatusEnum);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
index 9fed17b..d4c3098 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
@@ -40,4 +40,5 @@
      * @return 订单列表
      */
     List<Order> getOrderByGroupPurchaseId(Long id);
+
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
index 7ac01fd..5cec9be 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -2,20 +2,22 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.system.api.domain.OrderAuctionBond;
+import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
+import com.ruoyi.common.core.enums.BondStatusEnum;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.order.domain.pojo.Paylog;
 import com.ruoyi.order.mapper.OrderAuctionBondMapper;
 import com.ruoyi.order.service.IOrderAuctionBondService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.order.service.IPaylogService;
 import com.ruoyi.order.util.SinataUtil;
+import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import java.util.List;
+import javax.annotation.Resource;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * <p>
@@ -69,4 +71,33 @@
         }
         return R.ok();
     }
+
+    /**
+     * 查询保证金订单列表
+     *
+     * @param id                   拍卖商品id
+     * @param auctionOrderTypeEnum 拍卖类型: 普通拍品 拍卖会拍品
+     * @param bondStatusEnum       保证金状态 待支付 已支付 已退款 为null则查询所有
+     * @return List<OrderAuctionBond>
+     */
+    @Override
+    public List<OrderAuctionBond> getOrderAuctionBondList(Long id,
+            AuctionOrderTypeEnum auctionOrderTypeEnum, BondStatusEnum bondStatusEnum) {
+        return this.lambdaQuery().eq(OrderAuctionBond::getAuctionGoodsId, id)
+                .eq(OrderAuctionBond::getBondType, auctionOrderTypeEnum).eq(
+                        StringUtils.isNotNull(bondStatusEnum), OrderAuctionBond::getBoundStatus,
+                        bondStatusEnum).list();
+    }
+
+    /**
+     * 批量更新保证金订单状态
+     *
+     * @param ids            保证金订单id列表
+     * @param bondStatusEnum 保证金状态
+     */
+    @Override
+    public void updateOrderAuctionBondStatus(List<Long> ids, BondStatusEnum bondStatusEnum) {
+        this.lambdaUpdate().set(OrderAuctionBond::getBoundStatus, bondStatusEnum)
+                .in(OrderAuctionBond::getId, ids).update();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
index c7f3ed1..24d6073 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -31,7 +31,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
@@ -464,22 +463,6 @@
             iPaylogService.updateBatchById(updList);
         }
         return map;
-    }
-
-    public static void main(String[] args) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("1", true);
-        map.put("2", false);
-        map.put("3", true);
-        map.put("4", false);
-        map.put("5", true);
-        List<String> collect = map.entrySet().stream().map(entry -> {
-            if (!(boolean) entry.getValue()) {
-                return entry.getKey();
-            }
-            return null;
-        }).filter(Objects::nonNull).collect(Collectors.toList());
-        System.out.println(collect);
     }
 
     private Boolean handleRefund(Paylog paylog, BigDecimal amount,

--
Gitblit v1.7.1