From 648bd9334ddf543f406cd5f91e588b42b2d178bd Mon Sep 17 00:00:00 2001 From: rentaiming <806181662@qq.com> Date: 星期六, 22 六月 2024 16:00:07 +0800 Subject: [PATCH] 用户端 商品 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java | 130 ++++++++++++++++++++++++++----------------- 1 files changed, 79 insertions(+), 51 deletions(-) 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 e302efe..9d38fbe 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 @@ -20,38 +20,23 @@ import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.AuctionStartStatusEnum; import com.ruoyi.common.core.enums.BidStatusEnum; -import com.ruoyi.common.core.enums.ClientTypeEnum; import com.ruoyi.common.core.enums.OrderFromEnum; +import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.system.api.constants.NotificationTypeConstant; -import com.ruoyi.system.api.domain.AuctionSalesroom; -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.*; import com.ruoyi.system.api.domain.dto.AuctionSalesroomDTO; import com.ruoyi.system.api.domain.dto.AuctionSalesroomGoodsInfoDTO; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO; import com.ruoyi.system.api.domain.dto.OrderDTO; -import com.ruoyi.system.api.domain.vo.AuctionBidRecordVO; -import com.ruoyi.system.api.domain.vo.AuctionSalesroomGoodsInfoVO; -import com.ruoyi.system.api.domain.vo.AuctionSalesroomVO; -import com.ruoyi.system.api.domain.vo.ForepartAuctionSalesroomGoodsVO; +import com.ruoyi.system.api.domain.vo.*; 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 com.ruoyi.system.api.util.WebSocketUsers; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import javax.annotation.Resource; import org.springframework.stereotype.Service; @@ -215,7 +200,7 @@ auctionSalesroomGoods.getGoodsSkuId(), SecurityConstants.INNER); GoodsSku goodsSku=goodsSkuOne.getData(); currentAuctionSalesroomGoods.setGoodsSkuName(goodsSku.getSkuName()); - currentAuctionSalesroomGoods.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId()); + currentAuctionSalesroomGoods.setGoodsSkuId(auctionSalesroomGoods.getId()); currentAuctionSalesroomGoods.setCoverPic(goodsSku.getCoverPic()); currentAuctionSalesroomGoods.setStartTime(auctionSalesroomGoods.getStartTime()); currentAuctionSalesroomGoods.setGoodsSkustatus(auctionSalesroomGoods.getStatus()); @@ -226,6 +211,7 @@ LambdaQueryWrapper<AuctionSalesroomGoods> wrapper1=Wrappers.lambdaQuery(); wrapper1.eq(AuctionSalesroomGoods::getDelFlag,0); wrapper1.eq(AuctionSalesroomGoods::getStatus,0); + wrapper1.eq(AuctionSalesroomGoods::getAuctionSalesroomId,ationSalesroomGoodsDTO.getAuctionSalesroomId()); if (auctionSalesroomGoods!=null) { wrapper1.eq(AuctionSalesroomGoods::getSortNum, auctionSalesroomGoods.getSortNum() + 1); list.add(auctionSalesroomGoods.getSortNum()+1); @@ -242,15 +228,17 @@ auctionSalesroomGoodss.getGoodsSkuId(), SecurityConstants.INNER); GoodsSku goodsSku=goodsSkuOne.getData(); currentAuctionSalesroomGoods.setGoodsSkuName(goodsSku.getSkuName()); - currentAuctionSalesroomGoods.setGoodsSkuId(auctionSalesroomGoodss.getGoodsSkuId()); + currentAuctionSalesroomGoods.setGoodsSkuId(auctionSalesroomGoodss.getId()); currentAuctionSalesroomGoods.setCoverPic(goodsSku.getCoverPic()); currentAuctionSalesroomGoods.setStartTime(auctionSalesroomGoodss.getStartTime()); currentAuctionSalesroomGoods.setGoodsSkustatus(auctionSalesroomGoodss.getStatus()); currentAuctionSalesroomGoods.setListingDuration(auctionSalesroomGoodss.getListingDuration()); auctionSalesroomVO.setCurrentAuctionSalesroomGoods(currentAuctionSalesroomGoods); + wrappers.eq(AuctionSalesroomGoods::getSortNum, auctionSalesroomGoodss.getSortNum()); + list.add(auctionSalesroomGoodss.getSortNum()); } - wrappers.eq(AuctionSalesroomGoods::getSortNum, auctionSalesroomGoodss.getSortNum()); - list.add(auctionSalesroomGoodss.getSortNum()); + + } wrapper1.last("limit 1"); AuctionSalesroomGoods auctionSalesroomGoods1 = this.getOne(wrapper1); @@ -263,13 +251,13 @@ nextAuctionSalesroomGoods.setNextGoodsSkuName(goodsSku1.getSkuName()); nextAuctionSalesroomGoods.setCoverPic(goodsSku1.getCoverPic()); nextAuctionSalesroomGoods.setGoodsSkustatus(auctionSalesroomGoods1.getStatus()); - nextAuctionSalesroomGoods.setGoodsSkuId(auctionSalesroomGoods1.getGoodsSkuId()); + nextAuctionSalesroomGoods.setGoodsSkuId(auctionSalesroomGoods1.getId()); auctionSalesroomVO.setNextAuctionSalesroomGoods(nextAuctionSalesroomGoods); } LambdaQueryWrapper<AuctionSalesroomGoods> wrapper2=Wrappers.lambdaQuery(); - wrapper2.notIn(AuctionSalesroomGoods::getSortNum,list); - wrapper2.notIn(AuctionSalesroomGoods::getSortNum,list); - wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); + if(list.size()>0){ + wrapper2.notIn(AuctionSalesroomGoods::getSortNum,list); + } wrapper2.eq(AuctionSalesroomGoods::getAuctionSalesroomId,ationSalesroomGoodsDTO.getAuctionSalesroomId()); wrapper2.orderByAsc(AuctionSalesroomGoods::getSortNum); wrapper2.orderByAsc(AuctionSalesroomGoods::getStatus); @@ -281,7 +269,7 @@ GoodsSku goodsSku2=goodsSkuOne2.getData(); forepartAuctionSalesroomGoodsVO1.setGoodsSkuName(goodsSku2.getSkuName()); forepartAuctionSalesroomGoodsVO1.setCoverPic(goodsSku2.getCoverPic()); - forepartAuctionSalesroomGoodsVO1.setGoodsSkuId(salesroomGoods.getGoodsSkuId()); + forepartAuctionSalesroomGoodsVO1.setGoodsSkuId(salesroomGoods.getId()); forepartAuctionSalesroomGoodsVO1.setGoodsSkustatus(salesroomGoods.getStatus()); auctionSalesroomGoodsVOS.add(forepartAuctionSalesroomGoodsVO1); } @@ -318,20 +306,23 @@ wrapper2.orderByAsc(AuctionSalesroomGoods::getSortNum); wrapper2.last("limit 1"); AuctionSalesroomGoods auctionSalesroomGoods = this.getOne(wrapper2); - auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS); - auctionSalesroomGoods.setStartTime(LocalDateTime.now()); - this.updateById(auctionSalesroomGoods); - + if(auctionSalesroomGoods!=null){ + auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS); + auctionSalesroomGoods.setStartTime(LocalDateTime.now()); + this.updateById(auctionSalesroomGoods); + } Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM); map.put("auctionSalesroomId", auctionSalesroom.getId()); + map.put("AuctionTypeEnum",auctionSalesroom.getStatus()); map.put("message_type", "start"); + map.put("type", "1"); String msg = null; try { msg = objectMapper.writeValueAsString(map); } catch (JsonProcessingException e) { } - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.AUCTIONEER.getCode(), msg); + sysUserClient.pushAll(msg, SecurityConstants.INNER); } @@ -386,14 +377,16 @@ Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM); + map.put("AuctionTypeEnum",auctionSalesroom.getStatus()); map.put("auctionSalesroomId", auctionSalesroom.getId()); map.put("message_type", "end"); + map.put("type", "1"); String msg = null; try { msg = objectMapper.writeValueAsString(map); } catch (JsonProcessingException e) { } - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.AUCTIONEER.getCode(), msg); + sysUserClient.pushAll(msg, SecurityConstants.INNER); } @@ -421,23 +414,27 @@ LambdaQueryWrapper<AuctionSalesroomGoods> wrapper2=Wrappers.lambdaQuery(); wrapper2.eq(AuctionSalesroomGoods::getAuctionSalesroomId,auctionSalesroomGoodsDTO.getAuctionSalesroomId()); wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); - wrapper2.eq(AuctionSalesroomGoods::getGoodsSkuId,auctionSalesroomGoodsDTO.getGoodsSkuId()); + wrapper2.eq(AuctionSalesroomGoods::getId,auctionSalesroomGoodsDTO.getGoodsSkuId()); AuctionSalesroomGoods auctionSalesroomGoods=this.getOne(wrapper2); auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS); + auctionSalesroomGoods.setStartTime(LocalDateTime.now()); this.updateById(auctionSalesroomGoods); - /* Map<String, Object> map = new ConcurrentHashMap<>(); + Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS); map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss")); - map.put("goodsSkuId", auctionSalesroomGoods.getId()); + map.put("goodsSkuId", auctionSalesroomGoods.getId().toString()); + map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString()); map.put("message_type", "start"); + map.put("type",2); + map.put("AuctionGoodsStatusEnum",auctionSalesroomGoods.getStatus()); String msg = null; try { msg = objectMapper.writeValueAsString(map); } catch (JsonProcessingException e) { throw new RuntimeException(e); } - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.AUCTIONEER.getCode(), msg);*/ + sysUserClient.pushAll(msg, SecurityConstants.INNER); } @@ -451,7 +448,7 @@ LambdaQueryWrapper<AuctionSalesroomGoods> wrapper2=Wrappers.lambdaQuery(); wrapper2.eq(AuctionSalesroomGoods::getAuctionSalesroomId,auctionSalesroomGoodsDTO.getAuctionSalesroomId()); wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); - wrapper2.eq(AuctionSalesroomGoods::getGoodsSkuId,auctionSalesroomGoodsDTO.getGoodsSkuId()); + wrapper2.eq(AuctionSalesroomGoods::getId,auctionSalesroomGoodsDTO.getGoodsSkuId()); AuctionSalesroomGoods auctionSalesroomGoods=this.getOne(wrapper2); AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getById(auctionSalesroomGoodsDTO.getAuctionSalesroomId()); @@ -467,7 +464,7 @@ if(auctionBidRecordList.size()>0){ //判断 if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) { - for (int i = 0; i <= auctionSalesroomGoods.getSalesroomStock(); i++) { + for (int i = 0; i < auctionSalesroomGoods.getSalesroomStock(); i++) { AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), @@ -481,7 +478,7 @@ SecurityConstants.INNER); - for (int i = 0; i <= auctionBidRecordList.size(); i++) { + for (int i = 0; i < auctionBidRecordList.size(); i++) { AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), @@ -494,18 +491,21 @@ auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED); this.updateById(auctionSalesroomGoods); - /* Map<String, Object> map = new ConcurrentHashMap<>(); + Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS); map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss")); - map.put("goodsSkuId", auctionSalesroomGoods.getId()); + map.put("goodsSkuId", auctionSalesroomGoods.getId().toString()); + map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString()); map.put("message_type", "end"); + map.put("type",2); + map.put("AuctionGoodsStatusEnum",auctionSalesroomGoods.getStatus()); String msg = null; try { msg = objectMapper.writeValueAsString(map); } catch (JsonProcessingException e) { throw new RuntimeException(e); } - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.AUCTIONEER.getCode(), msg);*/ + sysUserClient.pushAll(msg, SecurityConstants.INNER); } @@ -535,10 +535,18 @@ GoodsCategory data1 = goodsSkuClient.getCategoryOne(goodsSku.getCategoryId(), SecurityConstants.INNER).getData(); GoodsSeries data2 = goodsSkuClient.getSeriesOne(goodsSku.getSeriesId(), SecurityConstants.INNER).getData(); GoodsFlavorType data3 = goodsSkuClient.getFlavorTypeOne(goodsSku.getFlavorTypeId(), SecurityConstants.INNER).getData(); - AuctionSalesroomGoodsInfoVO.setBrand(data.getBrandName()); + if(data!=null){ + AuctionSalesroomGoodsInfoVO.setBrand(data.getBrandName()); + } + if(data1!=null){ AuctionSalesroomGoodsInfoVO.setCategory(data1.getCategoryName()); + } + if(data2!=null){ AuctionSalesroomGoodsInfoVO.setSeries(data2.getSeriesName()); + } + if(data3!=null){ AuctionSalesroomGoodsInfoVO.setFlavorType(data3.getFlavorTypeName()); + } AuctionSalesroomGoodsInfoVO.setCoverPic(goodsSku.getCoverPic()); AuctionSalesroomGoodsInfoVO.setAlbum(goodsSku.getAlbum()); AuctionSalesroomGoodsInfoVO.setSpec(goodsSku.getSpec()); @@ -548,10 +556,10 @@ AuctionSalesroomGoodsInfoVO.setExplain(returnAddressUserName.getConfigValue()); AuctionSalesroomGoodsInfoVO.setMinimumMarkupAmount(byId1.getMinimumMarkupAmount()); LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); - wrapper1.eq(AuctionBidRecord::getMemberId,auctionSalesroomGoodsInfoDTO.getMemberId()); wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,byId.getId()); wrapper1.eq(AuctionBidRecord::getAuctionType,2); wrapper1.eq(AuctionBidRecord::getTargetId,byId1.getId()); + wrapper1.eq(AuctionBidRecord::getMemberId,auctionSalesroomGoodsInfoDTO.getMemberId()); wrapper1.eq(AuctionBidRecord::getDelFlag,0); AuctionBidRecord list1 = auctionBidRecordMapper.selectOne(wrapper1); if (list1!=null){ @@ -575,6 +583,25 @@ AuctionSalesroomGoodsInfoVO.setIsBond(1); AuctionSalesroomGoodsInfoVO.setIsStatus(1); } + + LambdaQueryWrapper<AuctionBidRecord> wrapper2=Wrappers.lambdaQuery(); + wrapper2.eq(AuctionBidRecord::getAuctionSalesroomId,byId.getId()); + wrapper2.eq(AuctionBidRecord::getAuctionType,2); + wrapper2.eq(AuctionBidRecord::getTargetId,byId1.getId()); + wrapper2.eq(AuctionBidRecord::getDelFlag,0); + AuctionBidRecord list2 = auctionBidRecordMapper.selectOne(wrapper1); + if (list2!=null){ + AuctionSalesroomGoodsInfoVO.setZgBid(list2.getLastBidAmount()); + } + + /* List<GoodsInfoTitleValueVO> goodsInfoTitleValueVOList = goodsInfoTitleValueService.listByGoodsId(homeGoodsSkuDTO.getGoodsSkuId()); + Collections.sort(goodsInfoTitleValueVOList, Comparator.comparingInt(GoodsInfoTitleValueVO::getSortNum)); + for (GoodsInfoTitleValueVO goodsInfoTitleValueVO:goodsInfoTitleValueVOList){ + getHomeGoodsSkuXxiVO getHomeGoodsSkuXxiVOs=new getHomeGoodsSkuXxiVO(); + getHomeGoodsSkuXxiVOs.setContent(goodsInfoTitleValueVO.getContent()); + getHomeGoodsSkuXxiVOs.setTitleName(goodsInfoTitleValueVO.getTitleName()); + homeGoodsSkuXxiVOS.add(getHomeGoodsSkuXxiVOs); + }*/ return AuctionSalesroomGoodsInfoVO; } @@ -652,12 +679,13 @@ Double aDouble= Double.valueOf(memberPointsMoney.getConfigValue()) * Double.valueOf(memberPointsPoints.getConfigValue()); BigDecimal pi=lastBidAmount.multiply(new BigDecimal(aDouble)); order.setPoints(pi.intValue()); + if (memberAddress!=null){ + order.setReceiverCity(memberAddress.getCity()); + order.setReceiverDetailAddress(memberAddress.getDetailedAddress()); + order.setReceiverphone(memberAddress.getRecipientPhone()); + order.setReceiverName(memberAddress.getRecipientName()); + } - - order.setReceiverCity(memberAddress.getCity()); - order.setReceiverDetailAddress(memberAddress.getDetailedAddress()); - order.setReceiverphone(memberAddress.getRecipientPhone()); - order.setReceiverName(memberAddress.getRecipientName()); order.setBound(bound); order.setAuctionType(AuctionOrderTypeEnum.AUCTION_ITEMS); GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(auctionSalesroomGoods.getGoodsSkuId(), SecurityConstants.INNER) -- Gitblit v1.7.1