From b21f5b5b40b9b45634020380cf03244d46be2df7 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期五, 21 六月 2024 16:07:52 +0800 Subject: [PATCH] 用户端商品 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java | 95 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 69 insertions(+), 26 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 d5c1267..82f5b98 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 @@ -29,11 +29,13 @@ import com.ruoyi.common.core.enums.ListingStatusEnum; import com.ruoyi.common.core.enums.OrderFromEnum; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; 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; @@ -41,7 +43,9 @@ 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.dto.AuctionGoodsListDTO; import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; @@ -55,11 +59,11 @@ 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.util.WebSocketUsers; +import com.ruoyi.system.api.feignClient.SysUserClient; import io.seata.spring.annotation.GlobalTransactional; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -88,6 +92,7 @@ private final GoodsSkuClient goodsSkuClient; private final MemberClient memberClient; private final OrderClient orderClient; + private final SysUserClient sysUserClient; private final AuctionClient auctionClient; private final IAuctionBidRecordService auctionBidRecordService; @@ -112,14 +117,18 @@ @Override public PageDTO<MgtAuctionGoodsVO> getAuctionGoodsPage(MgtAuctionGoodsQuery query) { Set<Long> goodsSkuIdList = null; + Page<AuctionGoods> page = new Page<>(query.getPageCurr(), query.getPageSize()); if (StringUtils.isNotEmpty(query.getGoodsSkuName())) { List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(query.getGoodsSkuName(), - SecurityConstants.INNER) - .getData(); + SecurityConstants.INNER).getData(); + if (StringUtils.isEmpty(goodsSku)) { + return PageDTO.empty(page); + } goodsSkuIdList = goodsSku.stream().map(GoodsSku::getId) .collect(Collectors.toSet()); + } - Page<AuctionGoods> page = this.lambdaQuery() + page = this.lambdaQuery() .select(AuctionGoods::getId, AuctionGoods::getGoodsSkuId, AuctionGoods::getListingStatus, AuctionGoods::getStartStatus, AuctionGoods::getStartTime, AuctionGoods::getEndTime, @@ -134,7 +143,7 @@ query.getStartStatus()) .page(new Page<>(query.getPageCurr(), query.getPageSize())); if (StringUtils.isEmpty(page.getRecords())) { - return PageDTO.empty(page.getTotal(), page.getPages()); + return PageDTO.empty(page); } // 查询商品信息 Set<Long> goodsIdList = page.getRecords().stream().map(AuctionGoods::getGoodsSkuId) @@ -364,7 +373,7 @@ return null; }).filter(Objects::nonNull).collect(Collectors.toList()); // 远程调用订单服务修改订单状态 - orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID); + orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID,SecurityConstants.INNER); } } } @@ -395,6 +404,7 @@ auctionGoodsVO.setStartTime(auctionGoods.getStartTime()); auctionGoodsVO.setStartingPrice(auctionGoods.getStartingPrice()); auctionGoodsVO.setStartStatus(auctionGoods.getStartStatus()); + auctionGoodsVO.setAuctionStock(auctionGoods.getAuctionStock()); GoodsSku goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionGoods.getGoodsSkuId(), SecurityConstants.INNER).getData(); auctionGoodsVO.setUnit(goodsSkuOne.getUnit()); auctionGoodsVO.setSpec(goodsSkuOne.getSpec()); @@ -422,8 +432,9 @@ auctionGoodsinfoVO.setStartTime(byId.getStartTime()); auctionGoodsinfoVO.setEndTime(byId.getEndTime()); auctionGoodsinfoVO.setUnit(goodsSkuOne.getUnit()); + auctionGoodsinfoVO.setBond(byId.getBond()); auctionGoodsinfoVO.setDescription(goodsSkuOne.getDescription()); - auctionGoodsinfoVO.setYears(String.valueOf(goodsSkuOne.getYears())); + auctionGoodsinfoVO.setYears(goodsSkuOne.getYears()); GoodsBrand data = goodsSkuClient.getBrandOne(goodsSkuOne.getBrandId(), SecurityConstants.INNER).getData(); GoodsCategory data1 = goodsSkuClient.getCategoryOne(goodsSkuOne.getCategoryId(), SecurityConstants.INNER).getData(); GoodsSeries data2 = goodsSkuClient.getSeriesOne(goodsSkuOne.getSeriesId(), SecurityConstants.INNER).getData(); @@ -441,7 +452,10 @@ auctionGoodsinfoVO.setShareTitle(goodsSkuOne.getShareTitle()); auctionGoodsinfoVO.setSpecUnit(goodsSkuOne.getSpecUnit()); auctionGoodsinfoVO.setDetail(goodsSkuOne.getDetail()); - auctionGoodsinfoVO.setYears(String.valueOf(goodsSkuOne.getYears())); + auctionGoodsinfoVO.setBond(byId.getBond()); + auctionGoodsinfoVO.setYears(goodsSkuOne.getYears()); + auctionGoodsinfoVO.setSharePic(goodsSkuOne.getSharePic()); + auctionGoodsinfoVO.setShareTitle(goodsSkuOne.getShareTitle()); LambdaQueryWrapper<AuctionBidRecord> wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(AuctionBidRecord::getMemberId,auctionGoodsListDTO.getMemberId()); wrapper1.eq(AuctionBidRecord::getAuctionType,1); @@ -453,6 +467,15 @@ auctionGoodsinfoVO.setPresentBid(list1.getLastBidAmount()); if (list1.getStatus().getCode()==2){ auctionGoodsinfoVO.setIsStatus(2); + + OrderDTO orderDTO =new OrderDTO(); + orderDTO.setMemberId(auctionGoodsListDTO.getMemberId()); + orderDTO.setGoodsSkuId(byId.getId()); + Order data4 = orderClient.getOrderOne1(orderDTO, SecurityConstants.INNER).getData(); + if (data4!=null){ + auctionGoodsinfoVO.setOrderId(data4.getId()); + auctionGoodsinfoVO.setOrderNo(data4.getOrderNo()); + } }else{ auctionGoodsinfoVO.setIsStatus(1); } @@ -470,7 +493,7 @@ }else { auctionGoodsinfoVO.setIsCollection(1); } - List<OrderAuctionBond> datas = auctionClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData(); + List<OrderAuctionBond> datas = orderClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData(); if (datas.size()>0){ auctionGoodsinfoVO.setIsApply(2); }else{ @@ -478,19 +501,14 @@ } LocalDateTime now = LocalDateTime.now(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String formattedDate = now.format(formatter); - LocalDateTime parseTime = LocalDateTime.parse(formattedDate, formatter); LocalDateTime newTime7 = now.minusDays(7); - String formattedDate7 = newTime7.format(formatter); - LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); LambdaQueryWrapper<AuctionBrowseRecord> wrapper3=Wrappers.lambdaQuery(); wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); wrapper3.eq(AuctionBrowseRecord::getTargetId,auctionGoodsListDTO.getGoodsSkuId()); wrapper3.eq(AuctionBrowseRecord::getMemberId,auctionGoodsListDTO.getMemberId()); - wrapper3.ge(AuctionBrowseRecord::getCreateTime, parseTime7) - .le(AuctionBrowseRecord::getCreateTime, parseTime); + wrapper3.ge(AuctionBrowseRecord::getCreateTime, newTime7) + .le(AuctionBrowseRecord::getCreateTime, now); List<AuctionBrowseRecord> list = iAuctionBrowseRecordService.list(wrapper3); if (list.size()==0){ AuctionBrowseRecord auctionBrowseRecord=new AuctionBrowseRecord(); @@ -501,7 +519,8 @@ } - + CustomConfig returnAddressUserName = sysUserClient.getconfig("MALL_ORDER_DESCRIPTION").getData(); + auctionGoodsinfoVO.setExplain(returnAddressUserName.getConfigValue()); return auctionGoodsinfoVO; } @@ -509,13 +528,22 @@ public PageDTO<AuctionGoodsListVO> getWdAuctionSalesList(AuctionGoodsListDTO auctionGoodsListDTO) { MemberAuctionSalesroomDTO memberAuctionSalesroomDTO =new MemberAuctionSalesroomDTO(); memberAuctionSalesroomDTO.setMemberId(auctionGoodsListDTO.getMemberId()); - List<OrderAuctionBond> data = auctionClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData(); + List<OrderAuctionBond> data = orderClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData(); Set<Long> goodsSkuIdList = null; - goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId) - .collect(Collectors.toSet()); + if (data!=null){ + goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId) + .collect(Collectors.toSet()); + }else { + Set<Long> goodsSkuIdList1 =new HashSet<>(); + goodsSkuIdList1.add(0L); + goodsSkuIdList=goodsSkuIdList1; + } AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO(); - auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList); + if (goodsSkuIdList!=null){ + auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList); + } + if (auctionGoodsListDTO.getStartStatus()!=4){ auctionGoodsListPageDTO.setStartStatus(auctionGoodsListDTO.getStartStatus()); } @@ -571,13 +599,17 @@ .equals(AuctionStartStatusEnum.IN_AUCTION)) { this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.ENDED) .eq(AuctionGoods::getId, id); + // TODO 退保证金 + orderClient.returnBondByAuctionGoodsId(id, SecurityConstants.INNER); + Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS); - map.put("notification_time", LocalDateTime.now()); + map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss")); map.put("target_id", id); map.put("message_type", "end"); String msg = objectMapper.writeValueAsString(map); - WebSocketUsers.sendMessageToUsersByType(1, msg); + sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(msg) + .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER); log.info("===================>发送websocket通知,消息体{}", msg); } } @@ -592,11 +624,12 @@ .eq(AuctionGoods::getId, id); Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS); - map.put("notification_time", LocalDateTime.now()); + map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss")); map.put("target_id", id); map.put("message_type", "start"); String msg = objectMapper.writeValueAsString(map); - WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), msg); + sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(msg) + .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER); log.info("===================>发送websocket通知,消息体{}", msg); } } @@ -615,4 +648,14 @@ auctionGoods.setListingStatus(dto.getListingStatus()); this.updateById(auctionGoods); } + + public static void main(String[] args) throws JsonProcessingException { + Map<String, Object> map = new ConcurrentHashMap<>(); + map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS); + map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss")); + map.put("target_id", 1); + map.put("message_type", "end"); + String msg = objectMapper.writeValueAsString(map); + System.out.println(msg); + } } -- Gitblit v1.7.1