From 4018acf3c494b4765b5f3afd93da185aedb77e54 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期三, 29 五月 2024 17:50:59 +0800 Subject: [PATCH] 写用户端接口 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java | 10 +++++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java | 1 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java | 5 ++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java | 3 + ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 94 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 113 insertions(+), 0 deletions(-) diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java index c0825cd..2f39a4e 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java @@ -5,6 +5,7 @@ import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.system.api.domain.GoodsFlavorType; +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.forepart.vo.ForepartAuctionSalesroomVO; @@ -115,4 +116,13 @@ return R.ok( iAuctionSalesroomService.SaveSignUpNow(memberAuctionSalesroomBondDTO)); } + + @RequestMapping("/SaveBid") + @ResponseBody + @ApiOperation(value = "用户端拍卖出价") + public R SaveBid(@RequestBody BidVO BidVO) { + iAuctionSalesroomService.SaveBid(BidVO); + return R.ok(); + } + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java index f1c9823..d0b2792 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java @@ -74,5 +74,8 @@ @ApiModelProperty(value = "当前出价") private BigDecimal presentBid; + @ApiModelProperty(value = "最低加价金额") + private BigDecimal minimumMarkupAmount; + } 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 ffda5dc..f60b72c 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,6 +3,7 @@ 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.BidVO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO; @@ -49,4 +50,8 @@ MemberAuctionSalesroomVO getMemberAuctionSalesroomSweep( MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO); PayInfoVO SaveSignUpNow(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO); + + void SaveBid(@RequestBody BidVO BidVO); + + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java index 5ae12fb..5ff06a1 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java @@ -397,6 +397,7 @@ AuctionSalesroomGoodsInfoVO.setFlavorType(data3.getFlavorTypeName()); AuctionSalesroomGoodsInfoVO.setCoverPic(goodsSku.getCoverPic()); AuctionSalesroomGoodsInfoVO.setAlbum(goodsSku.getAlbum()); + AuctionSalesroomGoodsInfoVO.setMinimumMarkupAmount(byId1.getMinimumMarkupAmount()); LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); wrapper1.eq(AuctionBidRecord::getMemberId,auctionSalesroomGoodsInfoDTO.getMemberId()); wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,byId.getId()); 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 24f758f..00c097f 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,7 +16,10 @@ 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.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.forepart.vo.ForepartAuctionSalesroomGoodsVO; @@ -36,6 +39,7 @@ import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.feignClient.GoodsSkuClient; +import com.ruoyi.system.api.feignClient.MemberClient; import com.ruoyi.system.api.feignClient.OrderClient; import com.ruoyi.system.api.feignClient.SysUserClient; import javax.annotation.Resource; @@ -45,6 +49,8 @@ import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -82,10 +88,18 @@ private AuctionSalesroomGoodsMapper auctionSalesroomGoodsMapper; @Resource + private IAuctionSalesroomGoodsService auctionSalesroomGoodsService; + + @Resource + private IAuctionGoodsService auctionGoodsService; + + @Resource private GoodsSkuClient goodsSkuClient; @Resource private OrderClient orderClient; + @Resource + private MemberClient memberClient; //微信 @@ -384,6 +398,86 @@ 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