From 8f2f35da0cbb07d8bf0d04468c8a2bdf5ee895e5 Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期二, 11 三月 2025 10:47:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-1.0.1' into dev-1.0.1

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

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 dc8f061..e4d1a32 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
@@ -698,8 +698,19 @@
             if (bidVO.getAuctionType() == 2) {
                 AuctionSalesroomGoods byId = auctionSalesroomGoodsMapper.selectById(
                         bidVO.getTargetId());
+                // 判断否大于最高价
+                if (byId.getMaxAmount().compareTo(bidVO.getLastBidAmount()) < 0) {
+                    throw new ServiceException("出价不能高出最高价");
+                }
+                // 查询用户出价记录判断是否第一次出价 首次出价,可以只出起拍价,而不是需要比起拍价高。
+                Long count = auctionBidRecordService.lambdaQuery()
+                        .eq(AuctionBidRecord::getAuctionSalesroomId, bidVO.getAuctionSalesroomId())
+                        .eq(AuctionBidRecord::getTargetId, bidVO.getTargetId())
+                        .eq(AuctionBidRecord::getAuctionType, bidVO.getAuctionType())
+                        .eq(AuctionBidRecord::getMemberId, bidVO.getMemberId()).count();
+
                 if (byId.getStartingPrice().doubleValue() > bidVO.getLastBidAmount()
-                        .doubleValue()) {
+                        .doubleValue() && count > 0) {
                     throw new ServiceException("出价不能比起拍价低");
                 }
                 AuctionSalesroom byId1 = this.getById(bidVO.getAuctionSalesroomId());
@@ -795,8 +806,13 @@
                         .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER);
             } else {
                 AuctionGoods byId = auctionGoodsService.getById(bidVO.getTargetId());
+                // 查询用户出价记录判断是否第一次出价 首次出价,可以只出起拍价,而不是需要比起拍价高。
+                Long count = auctionBidRecordService.lambdaQuery()
+                        .eq(AuctionBidRecord::getTargetId, bidVO.getTargetId())
+                        .eq(AuctionBidRecord::getAuctionType, bidVO.getAuctionType())
+                        .eq(AuctionBidRecord::getMemberId, bidVO.getMemberId()).count();
                 if (byId.getStartingPrice().doubleValue() > bidVO.getLastBidAmount()
-                        .doubleValue()) {
+                        .doubleValue() && count > 0) {
                     throw new ServiceException("出价不能比起拍价低");
                 }
                 BigDecimal bigDecimal = byId.getStartingPrice().add(byId.getMinimumMarkupAmount());

--
Gitblit v1.7.1