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; } 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; } 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); } 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()); 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()); 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); } } 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;