From 499ab5e5815d4f53ec27e0524c1c9896d1552e25 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期四, 01 八月 2024 00:35:18 +0800
Subject: [PATCH] 修改bug
---
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java | 104 ++++++++--------
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 249 ++++++++++++++++++-----------------------
2 files changed, 161 insertions(+), 192 deletions(-)
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
index bdee7c4..fa3e0d6 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -38,18 +38,7 @@
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.constants.ConfigEnum;
import com.ruoyi.system.api.constants.NotificationTypeConstant;
-import com.ruoyi.system.api.domain.AuctionGoods;
-import com.ruoyi.system.api.domain.CustomConfig;
-import com.ruoyi.system.api.domain.GoodsBrand;
-import com.ruoyi.system.api.domain.GoodsCategory;
-import com.ruoyi.system.api.domain.GoodsFlavorType;
-import com.ruoyi.system.api.domain.GoodsSeries;
-import com.ruoyi.system.api.domain.GoodsSku;
-import com.ruoyi.system.api.domain.Member;
-import com.ruoyi.system.api.domain.MemberAddress;
-import com.ruoyi.system.api.domain.Order;
-import com.ruoyi.system.api.domain.OrderAuctionBond;
-import com.ruoyi.system.api.domain.WebsocketMessageDTO;
+import com.ruoyi.system.api.domain.*;
import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO;
import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO;
import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
@@ -57,10 +46,7 @@
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import com.ruoyi.system.api.domain.dto.OrderDTO;
import com.ruoyi.system.api.domain.dto.RefundDTO;
-import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO;
-import com.ruoyi.system.api.domain.vo.AuctionGoodsinfoVO;
-import com.ruoyi.system.api.domain.vo.GoodsInfoTitleValueVO;
-import com.ruoyi.system.api.domain.vo.getHomeGoodsSkuXxiVO;
+import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.feignClient.AuctionClient;
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
import com.ruoyi.system.api.feignClient.MemberClient;
@@ -661,59 +647,75 @@
@Override
public PageDTO<AuctionGoodsListVO> getWdAuctionSalesList(AuctionGoodsListDTO auctionGoodsListDTO) {
+
MemberAuctionSalesroomDTO memberAuctionSalesroomDTO =new MemberAuctionSalesroomDTO();
memberAuctionSalesroomDTO.setMemberId(auctionGoodsListDTO.getMemberId());
List<OrderAuctionBond> data = orderClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData();
- Set<Long> goodsSkuIdList = null;
+ List<Long> goodsSkuIdList = null;
if (data.size()>0){
goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionGoodsId)
- .collect(Collectors.toSet());
+ .collect(Collectors.toList());
}else {
- Set<Long> goodsSkuIdList1 =new HashSet<>();
+ List<Long> goodsSkuIdList1 =new ArrayList<>();
goodsSkuIdList1.add(0L);
goodsSkuIdList=goodsSkuIdList1;
}
- AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO();
- if (goodsSkuIdList!=null){
- auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList);
+
+ List<Long> goodsSkuIdList1 =null;
+ if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) {
+ List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(auctionGoodsListDTO.getGoodsSkuName(),
+ SecurityConstants.INNER)
+ .getData();
+ goodsSkuIdList1= goodsSku.stream().map(GoodsSku::getId)
+ .collect(Collectors.toList());
}
- if (auctionGoodsListDTO.getStartStatus()!=4){
- if (auctionGoodsListDTO.getStartStatus()==0){
- auctionGoodsListPageDTO.setStartStatus(5);
- }else{
- auctionGoodsListPageDTO.setStartStatus(auctionGoodsListDTO.getStartStatus());
- }
+
+ Page<AuctionGoods> page = new Page<>(auctionGoodsListDTO.getPageCurr(),
+ auctionGoodsListDTO.getPageSize());
+ LambdaQueryWrapper<AuctionGoods> wrapper1=Wrappers.lambdaQuery();
+ if (goodsSkuIdList.size()>0){
+ wrapper1.in(AuctionGoods::getId,goodsSkuIdList);
}
+ if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) {
+ if (goodsSkuIdList1.size()>0){
+ wrapper1.in(AuctionGoods::getGoodsSkuId,goodsSkuIdList1);
+ }else{
+ goodsSkuIdList1=new ArrayList<>();
+ goodsSkuIdList1.add(0L);
+ wrapper1.in(AuctionGoods::getGoodsSkuId,goodsSkuIdList1);
+ }
+ }
+ if (auctionGoodsListDTO.getStartStatus() != 4) {
+ wrapper1.eq(AuctionGoods::getStartStatus,auctionGoodsListDTO.getStartStatus());
+ }
+ wrapper1.last("ORDER BY\n" +
+ " CASE\n" +
+ " WHEN start_status = 0 THEN 2\n" +
+ " WHEN start_status = 1 THEN 1\n" +
+ " WHEN start_status = 2 THEN 3\n" +
+ " END,start_status asc ");
- Page<AuctionGoodsListVO> page = new Page<>();
- page.setSize(auctionGoodsListDTO.getPageSize());
- page.setCurrent(auctionGoodsListDTO.getPageCurr());
- List<AuctionGoods> auctionGoodsPgeList = auctionGoodsMapper.getAuctionGoodsPgeList1(page, auctionGoodsListPageDTO);
- List<AuctionGoodsListVO> auctionGoodsVOS=new ArrayList<>();
- for (AuctionGoods auctionGoods:auctionGoodsPgeList){
- AuctionGoodsListVO auctionGoodsVO=new AuctionGoodsListVO();
- auctionGoodsVO.setAuctionStock(auctionGoods.getAuctionStock());
- auctionGoodsVO.setGoodsSkuId(auctionGoods.getId());
- auctionGoodsVO.setEndTime(auctionGoods.getEndTime());
- auctionGoodsVO.setStartTime(auctionGoods.getStartTime());
- auctionGoodsVO.setStartingPrice(auctionGoods.getStartingPrice());
- auctionGoodsVO.setStartStatus(auctionGoods.getStartStatus());
- GoodsSku goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionGoods.getGoodsSkuId(), SecurityConstants.INNER).getData();
+ Page<AuctionGoods> auctionSalesroomList=this.page(page,wrapper1);
+ PageDTO<AuctionGoodsListVO> wdMemberAuctionSalesroomVOPageDTO = PageDTO.of(auctionSalesroomList, AuctionGoodsListVO.class);
+ List<AuctionGoodsListVO> list = wdMemberAuctionSalesroomVOPageDTO.getList();
+ for (AuctionGoodsListVO auctionGoodsVO:list){
+
+ GoodsSku goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionGoodsVO.getGoodsSkuId(), SecurityConstants.INNER).getData();
auctionGoodsVO.setUnit(goodsSkuOne.getUnit());
auctionGoodsVO.setSpec(goodsSkuOne.getSpec());
auctionGoodsVO.setSpecUnit(goodsSkuOne.getSpecUnit());
auctionGoodsVO.setGoodsSkuName(goodsSkuOne.getSkuName());
auctionGoodsVO.setCoverPic(goodsSkuOne.getCoverPic());
- LambdaQueryWrapper<AuctionBidRecord> wrapper1= Wrappers.lambdaQuery();
- wrapper1.eq(AuctionBidRecord::getMemberId,auctionGoodsListDTO.getMemberId());
- wrapper1.eq(AuctionBidRecord::getAuctionType,1);
- wrapper1.eq(AuctionBidRecord::getTargetId,auctionGoods.getId());
- wrapper1.eq(AuctionBidRecord::getDelFlag,0);
- AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper1);
+ LambdaQueryWrapper<AuctionBidRecord> wrapper2= Wrappers.lambdaQuery();
+ wrapper2.eq(AuctionBidRecord::getMemberId,auctionGoodsListDTO.getMemberId());
+ wrapper2.eq(AuctionBidRecord::getAuctionType,1);
+ wrapper2.eq(AuctionBidRecord::getTargetId,auctionGoodsVO.getId());
+ wrapper2.eq(AuctionBidRecord::getDelFlag,0);
+ AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper2);
if (list1!=null){
if (list1.getStatus().getCode()==2){
auctionGoodsVO.setIsStatus(2);
@@ -723,12 +725,10 @@
}else{
auctionGoodsVO.setIsStatus(1);
}
-
- auctionGoodsVOS.add(auctionGoodsVO);
+ auctionGoodsVO.setGoodsSkuId(auctionGoodsVO.getId());
}
- page.setRecords(auctionGoodsVOS);
- return PageDTO.of(page);
+ return wdMemberAuctionSalesroomVOPageDTO;
}
@Override
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 7ec091d..a9fa108 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
@@ -1049,30 +1049,11 @@
List<OrderAuctionBond> data = orderClient.getOrderAuctionBondList1(memberAuctionSalesroomDTO, SecurityConstants.INNER).getData();
Set<Long> goodsSkuIdList = null;
goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId)
- .collect(Collectors.toSet());
+ .collect(Collectors.toSet());
- /* MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO=new MemberAuctionSalesroomWdDTO();
- if (goodsSkuIdList.size()>0){
- memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList);
- }else{
- Set<Long> goodsSkuIdList1 = new HashSet<>();
- goodsSkuIdList1.add(0L);
- memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList1);
- }
-
- if(MemberAuctionSalesroomDTO.getStatus()!=4){
- if (MemberAuctionSalesroomDTO.getStatus()==0){
- memberAuctionSalesroomWdDTO.setStatus(5);
- }else{
- memberAuctionSalesroomWdDTO.setStatus(MemberAuctionSalesroomDTO.getStatus());
- }
-
- }*/
Page<AuctionSalesroom> page = new Page<>(memberAuctionSalesroomDTO.getPageCurr(),
memberAuctionSalesroomDTO.getPageSize());
- // page.setSize(memberAuctionSalesroomDTO.getPageSize());
- // page.setCurrent(memberAuctionSalesroomDTO.getPageCurr());
LambdaQueryWrapper<AuctionSalesroom> wrapper1=Wrappers.lambdaQuery();
if (goodsSkuIdList.size()>0){
wrapper1.in(AuctionSalesroom::getId,goodsSkuIdList);
@@ -1256,51 +1237,53 @@
MgtAuctionSalesroomVO mgtAuctionSalesroomVO = this.getAuctionSalesroom(id, Boolean.TRUE);
MgtAuctionSalesroomScreenVO vo = BeanUtils.copyBean(
mgtAuctionSalesroomVO, MgtAuctionSalesroomScreenVO.class);
- List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = vo.getAuctionSalesroomGoodsVOS();
- if (StringUtils.isNotEmpty(auctionSalesroomGoodsVOS)) {
- List<MgtAuctionSalesroomGoodsVO> collect = auctionSalesroomGoodsVOS.stream()
- .peek(goods -> {
- List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery()
- .eq(AuctionBidRecord::getTargetId, goods.getId())
- .eq(AuctionBidRecord::getAuctionType,
- AuctionOrderTypeEnum.AUCTION_ITEMS)
- .list();
- if (StringUtils.isNotEmpty(list)) {
- long bidCount = list.stream()
- .filter(item -> BidStatusEnum.SUCCESSFUL.equals(
- item.getStatus()))
- .count();
- goods.setBidCount((int) bidCount);
- goods.setBidQuantity((int) bidCount);
- goods.setBidPersonCount(list.size());
- }
- if (goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) {
- vo.setCurrentAuctionSalesroomGoods(goods);
- }
- }).collect(Collectors.toList());
- vo.setAuctionSalesroomGoodsVOS(collect);
- if (StringUtils.isNotNull(vo.getCurrentAuctionSalesroomGoods())) {
- int index = collect.indexOf(vo.getCurrentAuctionSalesroomGoods());
- if (collect.size() > 1 && index < collect.size() - 1) {
- vo.setNextAuctionSalesroomGoods(collect.get(index + 1));
+ if (vo.getStatus().equals(AuctionStartStatusEnum.IN_AUCTION)) {
+ List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = vo.getAuctionSalesroomGoodsVOS();
+ if (StringUtils.isNotEmpty(auctionSalesroomGoodsVOS)) {
+ List<MgtAuctionSalesroomGoodsVO> collect = auctionSalesroomGoodsVOS.stream()
+ .peek(goods -> {
+ List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery()
+ .eq(AuctionBidRecord::getTargetId, goods.getId())
+ .eq(AuctionBidRecord::getAuctionType,
+ AuctionOrderTypeEnum.AUCTION_ITEMS)
+ .list();
+ if (StringUtils.isNotEmpty(list)) {
+ long bidCount = list.stream()
+ .filter(item -> BidStatusEnum.SUCCESSFUL.equals(
+ item.getStatus()))
+ .count();
+ goods.setBidCount((int) bidCount);
+ goods.setBidQuantity((int) bidCount);
+ goods.setBidPersonCount(list.size());
+ }
+ if (goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) {
+ vo.setCurrentAuctionSalesroomGoods(goods);
+ }
+ }).collect(Collectors.toList());
+ vo.setAuctionSalesroomGoodsVOS(collect);
+ if (StringUtils.isNotNull(vo.getCurrentAuctionSalesroomGoods())) {
+ int index = collect.indexOf(vo.getCurrentAuctionSalesroomGoods());
+ if (collect.size() > 1 && index < collect.size() - 1) {
+ vo.setNextAuctionSalesroomGoods(collect.get(index + 1));
+ }
+ // 分页查询当前拍品出价信息
+ List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery()
+ .eq(AuctionBidRecord::getTargetId,
+ vo.getCurrentAuctionSalesroomGoods().getId())
+ .eq(AuctionBidRecord::getAuctionType,
+ AuctionOrderTypeEnum.AUCTION_ITEMS)
+ .list();
+ if (StringUtils.isNotEmpty(list)) {
+ vo.setMgtAuctionBidRecordVOList(CollUtils.emptyList());
+ }
+ vo.setMgtAuctionBidRecordVOList(
+ BeanUtils.copyList(list, MgtAuctionBidRecordVO.class));
+ } else {
+ Optional<MgtAuctionSalesroomGoodsVO> first = collect.stream()
+ .filter(c -> c.getStatus().equals(AuctionGoodsStatusEnum.WAITING))
+ .findFirst();
+ vo.setNextAuctionSalesroomGoods(first.orElse(null));
}
- // 分页查询当前拍品出价信息
- List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery()
- .eq(AuctionBidRecord::getTargetId,
- vo.getCurrentAuctionSalesroomGoods().getId())
- .eq(AuctionBidRecord::getAuctionType,
- AuctionOrderTypeEnum.AUCTION_ITEMS)
- .list();
- if (StringUtils.isNotEmpty(list)) {
- vo.setMgtAuctionBidRecordVOList(CollUtils.emptyList());
- }
- vo.setMgtAuctionBidRecordVOList(
- BeanUtils.copyList(list, MgtAuctionBidRecordVO.class));
- } else {
- Optional<MgtAuctionSalesroomGoodsVO> first = collect.stream()
- .filter(c -> c.getStatus().equals(AuctionGoodsStatusEnum.WAITING))
- .findFirst();
- vo.setNextAuctionSalesroomGoods(first.orElse(null));
}
}
return vo;
@@ -1459,82 +1442,68 @@
*/
@Override
public void stopCurrentGoods(Long id) throws JsonProcessingException {
- RLock lock = redissonClient.getLock("stopCurrentGoods" + id);
- lock.lock(10, TimeUnit.SECONDS);
- try {
- AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(
- id);
- if (StringUtils.isNull(auctionSalesroomGoods)) {
- throw new ServiceException("拍卖商品不存在");
- }
- if (auctionSalesroomGoods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) {
- AuctionSalesroom auctionSalesroom = this.getById(
- auctionSalesroomGoods.getAuctionSalesroomId());
- auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED);
- auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods);
- List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList(
- Wrappers.lambdaQuery(AuctionBidRecord.class)
- .eq(AuctionBidRecord::getAuctionSalesroomId,
- auctionSalesroomGoods.getAuctionSalesroomId())
- .eq(AuctionBidRecord::getTargetId, auctionSalesroomGoods.getId())
- .eq(AuctionBidRecord::getAuctionType,
- AuctionOrderTypeEnum.AUCTION_ITEMS)
- .orderByDesc(AuctionBidRecord::getLastBidAmount));
- if (CollUtils.isNotEmpty(auctionBidRecordList)) {
- List<AuctionBidRecord> auctionBidRecords = new ArrayList<>();
- if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) {
- for (int i = 0; i < auctionSalesroomGoods.getSalesroomStock(); i++) {
- AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i);
- auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
- auctionBidRecordMapper.updateById(auctionBidRecord);
- auctionBidRecords.add(auctionBidRecord);
- }
- } else {
- for (int i = 0; i < auctionBidRecordList.size(); i++) {
- AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i);
- auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
- auctionBidRecordMapper.updateById(auctionBidRecord);
- auctionBidRecords.add(auctionBidRecord);
- }
- // 没有出价记录,回退库存
- GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
- goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
- goodsStockUpdDTO.setAuctionStock(
- auctionSalesroomGoods.getSalesroomStock()
- - auctionBidRecordList.size());
- goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
- SecurityConstants.INNER);
- }
- for (AuctionBidRecord auctionBidRecord : auctionBidRecords) {
- addOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(),
- auctionBidRecord.getLastBidAmount(),
- auctionSalesroom.getBond());
- }
- } else {
- // 没有出价记录,回退库存
- GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
- goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
- goodsStockUpdDTO.setAuctionStock(
- auctionSalesroomGoods.getSalesroomStock());
- goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
- SecurityConstants.INNER);
- }
- Map<String, Object> map = new ConcurrentHashMap<>();
- map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS);
- map.put("auctionSalesroomId",
- auctionSalesroomGoods.getAuctionSalesroomId().toString());
- map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString());
- map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus());
- map.put("message_type", "stop");
- map.put("type", "2");
- String msg = objectMapper.writeValueAsString(map);
- sysUserClient.pushAll(msg, SecurityConstants.INNER);
- }
- } finally {
- if (lock.isLocked() && lock.isHeldByCurrentThread()) {
- lock.unlock();
- }
+ AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id);
+ if (StringUtils.isNull(auctionSalesroomGoods)) {
+ throw new ServiceException("拍卖商品不存在");
}
+ AuctionSalesroom auctionSalesroom = this.getById(
+ auctionSalesroomGoods.getAuctionSalesroomId());
+ auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED);
+ auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods);
+ List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList(
+ Wrappers.lambdaQuery(AuctionBidRecord.class)
+ .eq(AuctionBidRecord::getAuctionSalesroomId,
+ auctionSalesroomGoods.getAuctionSalesroomId())
+ .eq(AuctionBidRecord::getTargetId, auctionSalesroomGoods.getId())
+ .eq(AuctionBidRecord::getAuctionType, AuctionOrderTypeEnum.AUCTION_ITEMS)
+ .orderByDesc(AuctionBidRecord::getLastBidAmount));
+ if (CollUtils.isNotEmpty(auctionBidRecordList)) {
+ List<AuctionBidRecord> auctionBidRecords = new ArrayList<>();
+ if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) {
+ for (int i = 0; i < auctionSalesroomGoods.getSalesroomStock(); i++) {
+ AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i);
+ auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
+ auctionBidRecordMapper.updateById(auctionBidRecord);
+ auctionBidRecords.add(auctionBidRecord);
+ }
+ } else {
+ for (int i = 0; i < auctionBidRecordList.size(); i++) {
+ AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i);
+ auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL);
+ auctionBidRecordMapper.updateById(auctionBidRecord);
+ auctionBidRecords.add(auctionBidRecord);
+ }
+ // 没有出价记录,回退库存
+ GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
+ goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
+ goodsStockUpdDTO.setAuctionStock(
+ auctionSalesroomGoods.getSalesroomStock() - auctionBidRecordList.size());
+ goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
+ SecurityConstants.INNER);
+ }
+ for (AuctionBidRecord auctionBidRecord : auctionBidRecords) {
+ addOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(),
+ auctionBidRecord.getLastBidAmount(),
+ auctionSalesroom.getBond());
+ }
+ } else {
+ // 没有出价记录,回退库存
+ GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
+ goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
+ goodsStockUpdDTO.setAuctionStock(
+ auctionSalesroomGoods.getSalesroomStock());
+ goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
+ SecurityConstants.INNER);
+ }
+ Map<String, Object> map = new ConcurrentHashMap<>();
+ map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS);
+ map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString());
+ map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString());
+ map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus());
+ map.put("message_type", "stop");
+ map.put("type", "2");
+ String msg = objectMapper.writeValueAsString(map);
+ sysUserClient.pushAll(msg, SecurityConstants.INNER);
}
public void addOrder(Long goodsSkuId, Long memberId, BigDecimal lastBidAmount,
@@ -1724,7 +1693,7 @@
List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList(
Wrappers.<AuctionBidRecord>lambdaQuery()
.eq(AuctionBidRecord::getAuctionSalesroomId, auctionSalesroomId)
- .eq(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL));
+ .ne(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL));
Set<Long> memberIdList = new HashSet<>();
if (CollUtils.isNotEmpty(auctionBidRecordList)) {
memberIdList = auctionBidRecordList.stream().map(AuctionBidRecord::getMemberId)
--
Gitblit v1.7.1