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-member/src/main/java/com/ruoyi/member/controller/forepart/ForepartMemberController.java | 5 ++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java | 6 ++- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java | 24 ++++++++++++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java | 16 +++++--- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AuctionSalesroomGoodsInfoVO.java | 12 +++++- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CustomConfigDTO.java | 3 + ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 20 +++++++++- 7 files changed, 73 insertions(+), 13 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CustomConfigDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CustomConfigDTO.java index e3677e1..648e0f5 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CustomConfigDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CustomConfigDTO.java @@ -7,6 +7,7 @@ @Data @ApiModel(value = "获取配置对象", description = "获取配置对象") public class CustomConfigDTO { - @ApiModelProperty(value = "1 客服电话,2 商城订单说明配置,3 退货周期,用户在收货后{}天可申请售后") + + @ApiModelProperty(value = "1 客服电话,2 商城订单说明配置,3 退货周期,用户在收货后{}天可申请售后 4:保证金如何退还文案") private Integer type; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AuctionSalesroomGoodsInfoVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AuctionSalesroomGoodsInfoVO.java index 5d33b5b..06e6903 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AuctionSalesroomGoodsInfoVO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AuctionSalesroomGoodsInfoVO.java @@ -3,11 +3,10 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import lombok.Data; @Data public class AuctionSalesroomGoodsInfoVO { @@ -147,5 +146,14 @@ @JsonInclude(JsonInclude.Include.ALWAYS) private Integer isApply; + @ApiModelProperty(value = "可中拍人数") + private Integer bidNum; + + @ApiModelProperty(value = "最高出价金额") + private BigDecimal maxAmount; + + @ApiModelProperty(value = "一次性每人成交数量") + private Integer dealQuantity; + } 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 6f770d5..f759f0b 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 @@ -1,12 +1,16 @@ package com.ruoyi.auction.controller.forepart; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; import com.ruoyi.auction.mapper.AuctionBondJlMapper; import com.ruoyi.auction.mapper.AuctionGoodsMapper; import com.ruoyi.auction.service.IAuctionSalesroomGoodsService; import com.ruoyi.auction.service.IAuctionSalesroomService; +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.page.PageDTO; @@ -14,16 +18,20 @@ import com.ruoyi.system.api.domain.AuctionBondJl; import com.ruoyi.system.api.domain.AuctionGoods; import com.ruoyi.system.api.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; import com.ruoyi.system.api.domain.dto.AuctionSalesroomDTO; import com.ruoyi.system.api.domain.dto.ForepartAuctionBidRecordDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; +import com.ruoyi.system.api.domain.dto.SmsSendDTO; import com.ruoyi.system.api.domain.vo.ForepartAuctionSalesroomVO; import com.ruoyi.system.api.domain.vo.MemberAuctionSalesroomInfoVO; import com.ruoyi.system.api.domain.vo.MemberAuctionSalesroomVO; import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO; +import com.ruoyi.system.api.feignClient.AuthClient; +import com.ruoyi.system.api.feignClient.MemberClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.math.BigDecimal; @@ -62,6 +70,10 @@ @Resource private AuctionBondJlMapper auctionBondJlMapper; + @Resource + private AuthClient authClient; + @Resource + private MemberClient memberClient; /** * 拍卖大屏获取拍卖信息 @@ -125,11 +137,14 @@ @ApiOperation(value = "用户端-拍卖立即报名") public R<PayInfoVO> SaveSignUpNow(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) { log.info("=================================开始拍卖报名================================="); + String startTime = ""; if (memberAuctionSalesroomBondDTO.getBondType() == 1) { AuctionGoods auctionGoods = AuctionGoodsMapper.selectById(memberAuctionSalesroomBondDTO.getAuctionGoodsId()); if (auctionGoods.getListingStatus().getCode()==1){ throw new ServiceException("商品拍卖下线"); } + startTime = DateUtil.format(auctionGoods.getStartTime(), + DatePattern.NORM_DATETIME_PATTERN); LambdaQueryWrapper<AuctionBondJl> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionBondJl::getAuctionGoodsId, memberAuctionSalesroomBondDTO.getAuctionGoodsId()); @@ -158,6 +173,8 @@ auctionSalesroomWrapper.eq(AuctionSalesroom::getDelFlag, 0); byId = iAuctionSalesroomService.getOne(auctionSalesroomWrapper); } + startTime = DateUtil.format(byId.getStartTime(), + DatePattern.NORM_DATETIME_PATTERN); memberAuctionSalesroomBondDTO.setAuctionSalesroomId(byId.getId()); LambdaQueryWrapper<AuctionBondJl> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionBondJl::getAuctionSalesroomId, @@ -181,6 +198,13 @@ } PayInfoVO payInfoVO = iAuctionSalesroomService.SaveSignUpNow(memberAuctionSalesroomBondDTO); + R<Member> membeOne = memberClient.getMembeOne(memberAuctionSalesroomBondDTO.getMemberId(), + SecurityConstants.INNER); + authClient.sendSms( + SmsSendDTO.builder().mobileList(Lists.newArrayList(membeOne.getData().getPhone())) + .content(String.format("报名成功,拍卖将于%s开始,请注意时间!", startTime)) + .build(), + SecurityConstants.INNER); return R.ok(payInfoVO); } 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 c1fa6e4..5fe61eb 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 @@ -516,15 +516,19 @@ wrapper.orderByAsc(AuctionBidRecord::getLastBidTime); auctionBidRecordList = auctionBidRecordMapper.selectList(wrapper); Map<Long, String> orderIdMap = new HashMap<>(); - if(auctionBidRecordList.size()>0){ + if (auctionBidRecordList.size() > 0) { //判断 - if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) { + if (auctionBidRecordList.size() >= auctionSalesroomGoods.getBidNum()) { for (int i = 0; i < auctionSalesroomGoods.getSalesroomStock(); i++) { AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); Long orderId = AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), - auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); + auctionBidRecord.getLastBidAmount() + .multiply(new BigDecimal( + auctionSalesroomGoods.getDealQuantity())), + auctionSalesroom.getBond(), + auctionSalesroomGoods.getDealQuantity()); if (Objects.nonNull(orderId)) { orderIdMap.put(auctionBidRecord.getMemberId(), orderId.toString()); auctionBidRecord.setOrderId(orderId); @@ -544,7 +548,7 @@ auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); Long orderId = AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), - auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); + auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond(), 1); if (Objects.nonNull(orderId)) { orderIdMap.put(auctionBidRecord.getMemberId(), orderId.toString()); auctionBidRecord.setOrderId(orderId); @@ -844,7 +848,7 @@ public Long AddOrder(Long goodsSkuId, Long memberId, BigDecimal lastBidAmount, - BigDecimal bound) { + BigDecimal bound, Integer goodsQuantity) { OrderDTO order=new OrderDTO(); order.setGoodsSkuId(goodsSkuId); order.setOrderTime(LocalDateTime.now()); @@ -852,7 +856,7 @@ order.setMemberId(memberId); AuctionSalesroomGoods auctionSalesroomGoods = this.getById(goodsSkuId); - order.setGoodsQuantity(1); + order.setGoodsQuantity(goodsQuantity); order.setTotalAmount(lastBidAmount); order.setAuctionSalesroomId(auctionSalesroomGoods.getAuctionSalesroomId()); 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()); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/forepart/ForepartMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/forepart/ForepartMemberController.java index 7cbf5f0..fcbeca8 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/forepart/ForepartMemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/forepart/ForepartMemberController.java @@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.member.service.IMemberService; import com.ruoyi.system.api.RemoteFileService; +import com.ruoyi.system.api.constants.ConfigEnum; import com.ruoyi.system.api.domain.AppMiniLoginVO; import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; @@ -108,6 +109,10 @@ if(customConfigDTO.getType()==3){ string=sysUserClient.getconfig("RETURN_CYCLE").getData().getConfigValue(); } + if (customConfigDTO.getType() == 4) { + string = sysUserClient.getconfig(ConfigEnum.REFUND_OF_DEPOSIT.getKey()).getData() + .getConfigValue(); + } return R.ok(string); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java index 10edd13..e6d01e8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java @@ -11,8 +11,10 @@ import com.ruoyi.system.domain.vo.RefundOfDepositVO; import com.ruoyi.system.domain.vo.WishSettingVO; import com.ruoyi.system.service.ICustomConfigService; -import io.swagger.annotations.*; - +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import javax.annotation.Resource; import javax.validation.Valid; import org.springframework.validation.annotation.Validated; -- Gitblit v1.7.1