From b19813f4f558c350b2c6e8fcb821080b0c10b257 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 29 五月 2024 19:52:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java |  156 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 141 insertions(+), 15 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 48111e6..4d38e20 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,41 +16,74 @@
 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.mapper.AuctionSalesroomGoodsMapper;
+import com.ruoyi.auction.mapper.AuctionSalesroomMapper;
+import com.ruoyi.auction.service.*;
+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.SysUser;
+import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
+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 com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
+import com.ruoyi.common.core.enums.BidStatusEnum;
+import com.ruoyi.system.api.domain.*;
+import com.ruoyi.system.api.domain.dto.BidVO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
 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.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.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.auction.util.HttpUtils;
 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 java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import com.ruoyi.system.api.domain.vo.PayInfoVO;
+import com.ruoyi.system.api.feignClient.MemberClient;
+import javax.annotation.Resource;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.util.EntityUtils;
+import org.springframework.stereotype.Service;
+
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import org.apache.http.HttpResponse;
@@ -89,10 +122,18 @@
     private AuctionSalesroomGoodsMapper auctionSalesroomGoodsMapper;
 
     @Resource
+    private IAuctionSalesroomGoodsService auctionSalesroomGoodsService;
+
+    @Resource
+    private IAuctionGoodsService auctionGoodsService;
+
+    @Resource
     private GoodsSkuClient goodsSkuClient;
 
     @Resource
     private OrderClient orderClient;
+    @Resource
+    private MemberClient memberClient;
 
 
     //微信
@@ -386,6 +427,91 @@
         return memberAuctionSalesroomVO;
     }
 
+    @Override
+    public PayInfoVO SaveSignUpNow(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
+        return orderClient.SaveOrderAuctionBond(memberAuctionSalesroomBondDTO,SecurityConstants.INNER).getData();
+    }
+
+    @Override
+    public void SaveBid(BidVO bidVO) {
+        Member membeOne = memberClient.getMembeOne(bidVO.getMemberId(), SecurityConstants.INNER).getData();
+        if (bidVO.getAuctionType()==2){
+            AuctionSalesroomGoods byId = auctionSalesroomGoodsService.getById(bidVO.getTargetId());
+            if (byId.getStartingPrice().doubleValue()<bidVO.getLastBidAmount().doubleValue()){
+                throw new ServiceException("出价不能比起拍价低");
+            }
+            BigDecimal bigDecimal=byId.getStartingPrice().add(byId.getMinimumMarkupAmount());
+            if (bigDecimal.doubleValue()<bidVO.getLastBidAmount().doubleValue()){
+                throw new ServiceException("出价不能比每次最少加价低");
+            }
+
+            LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery();
+            wrapper1.eq(AuctionBidRecord::getMemberId,bidVO.getMemberId());
+            wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,bidVO.getAuctionSalesroomId());
+            wrapper1.eq(AuctionBidRecord::getTargetId,bidVO.getTargetId());
+            wrapper1.eq(AuctionBidRecord::getDelFlag,0);
+            AuctionBidRecord one = auctionBidRecordService.getOne(wrapper1);
+            if (one!=null){
+                BigDecimal bigDecimal1=one.getLastBidAmount().add(byId.getMinimumMarkupAmount());
+                if (bigDecimal1.doubleValue()<bidVO.getLastBidAmount().doubleValue()){
+                    throw new ServiceException("出价不能比上次出价加每次最少加价低");
+                }
+                one.setLastBidAmount(bidVO.getLastBidAmount());
+                one.setLastBidTime(LocalDateTime.now());
+                one.setBidCount(one.getBidCount()+1);
+                auctionBidRecordService.updateById(one);
+            }else{
+                one=new AuctionBidRecord();
+                one.setAuctionSalesroomId(bidVO.getAuctionSalesroomId());
+                one.setTargetId(bidVO.getTargetId());
+                one.setMemberId(bidVO.getMemberId());
+                one.setLastBidTime(LocalDateTime.now());
+                one.setAuctionType(AuctionOrderTypeEnum.AUCTION_ITEMS);
+                one.setStatus(BidStatusEnum.ELIMINATE);
+                one.setBidCount(1);
+                one.setLastBidAmount(bidVO.getLastBidAmount());
+                auctionBidRecordService.save(one);
+            }
+
+
+        }else {
+            AuctionGoods byId = auctionGoodsService.getById(bidVO.getTargetId());
+            if (byId.getStartingPrice().doubleValue()<bidVO.getLastBidAmount().doubleValue()){
+                throw new ServiceException("出价不能比起拍价低");
+            }
+            BigDecimal bigDecimal=byId.getStartingPrice().add(byId.getMinimumMarkupAmount());
+            if (bigDecimal.doubleValue()<bidVO.getLastBidAmount().doubleValue()){
+                throw new ServiceException("出价不能比每次最少加价低");
+            }
+            LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery();
+            wrapper1.eq(AuctionBidRecord::getMemberId,bidVO.getMemberId());
+            wrapper1.eq(AuctionBidRecord::getTargetId,bidVO.getTargetId());
+            wrapper1.eq(AuctionBidRecord::getDelFlag,0);
+            AuctionBidRecord one = auctionBidRecordService.getOne(wrapper1);
+            if (one!=null){
+                BigDecimal bigDecimal1=one.getLastBidAmount().add(byId.getMinimumMarkupAmount());
+                if (bigDecimal1.doubleValue()<bidVO.getLastBidAmount().doubleValue()){
+                    throw new ServiceException("出价不能比上次出价加每次最少加价低");
+                }
+                one.setLastBidAmount(bidVO.getLastBidAmount());
+                one.setLastBidTime(LocalDateTime.now());
+                one.setBidCount(one.getBidCount()+1);
+                auctionBidRecordService.updateById(one);
+            }else{
+                one=new AuctionBidRecord();
+                one.setAuctionSalesroomId(bidVO.getAuctionSalesroomId());
+                one.setTargetId(bidVO.getTargetId());
+                one.setMemberId(bidVO.getMemberId());
+                one.setLastBidTime(LocalDateTime.now());
+                one.setAuctionType(AuctionOrderTypeEnum.REGULAR_ITEMS);
+                one.setStatus(BidStatusEnum.ELIMINATE);
+                one.setBidCount(1);
+                one.setLastBidAmount(bidVO.getLastBidAmount());
+                auctionBidRecordService.save(one);
+            }
+        }
+    }
+
 
     public static String getAccessTokenByWX() throws Exception {
         String host = ACCESS_TOKEN_HOST + "?appid=" + WX_APPID + "&secret=" + WX_SECRET + "&grant_type=client_credential";

--
Gitblit v1.7.1