From 20290b89b3068541d7b23768cf9a0841a970d71a Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期五, 17 五月 2024 17:39:49 +0800 Subject: [PATCH] 拍卖大屏展示 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/VO/AuctionSalesroomGoodsVO.java | 13 +++++- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java | 6 ++- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/AuctionSalesroomGoodsController.java | 45 ++++++++++++++++++++-- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java | 33 ++++++++++++++++ 4 files changed, 89 insertions(+), 8 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java new file mode 100644 index 0000000..ea2d316 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java @@ -0,0 +1,33 @@ +package com.ruoyi.system.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.RemoteFileService; +import com.ruoyi.system.api.RemoteLogService; +import com.ruoyi.system.api.domain.*; +import com.ruoyi.system.api.feignClient.GoodsSkuClient; +import com.ruoyi.system.api.feignClient.SysUserClient; +import com.ruoyi.system.api.model.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; +@Component +public class GoodsSkuFactory implements FallbackFactory<GoodsSkuClient> { + + private static final Logger log = LoggerFactory.getLogger(GoodsSkuFactory.class); + @Override + public GoodsSkuClient create(Throwable cause) { + return new GoodsSkuClient(){ + @Override + public R<GoodsSku> getGoodsSkuOne(@PathVariable("goodsSkuId") Long goodsSkuId) { + return R.fail("通过id查询商品失败:" + cause.getMessage()); + } + + }; + } +} + diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java index 297d6be..7a6c08d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java @@ -3,14 +3,16 @@ import com.ruoyi.common.core.constant.ServiceNameConstants;; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.GoodsSku; +import com.ruoyi.system.api.factory.GoodsSkuFactory; +import com.ruoyi.system.api.factory.SysUserFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -@FeignClient(contextId = "GoodsSkuClient", value = ServiceNameConstants.RUOYI_MODULES_GOODS) +@FeignClient(contextId = "GoodsSkuClient", value = ServiceNameConstants.RUOYI_GOODS, fallbackFactory = GoodsSkuFactory.class) public interface GoodsSkuClient { @GetMapping("/goods-sku/getGoodsSkuOne/{goodsSkuId}") - R<GoodsSku> queryRoleByUserId(@PathVariable("goodsSkuId") Integer goodsSkuId); + R<GoodsSku> getGoodsSkuOne(@PathVariable("goodsSkuId") Long goodsSkuId); } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/VO/AuctionSalesroomGoodsVO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/VO/AuctionSalesroomGoodsVO.java index 436d1c2..55fb5bc 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/VO/AuctionSalesroomGoodsVO.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/VO/AuctionSalesroomGoodsVO.java @@ -12,7 +12,7 @@ public class AuctionSalesroomGoodsVO { @ApiModelProperty(value = "拍卖场id") - private Long auctionSalesroomId; + private Long SalesroomId; @ApiModelProperty(value = "拍卖场名称") private String salesroomName; @@ -30,7 +30,7 @@ private Integer itemQuantity; @ApiModelProperty(value = "拍卖时间 0=线下拍卖 1=线上线下结合") - private AuctionTypeEnum type; + private Integer SalesroomType; @ApiModelProperty(value = "状态 0=预展中 1=拍卖中 2=已结束") private Integer goodsSkustatus; @@ -41,5 +41,14 @@ @ApiModelProperty(value = "开始时间") private LocalDateTime startTime; + @ApiModelProperty(value = "封面图") + private String coverPic; + + @ApiModelProperty(value = "单位") + private String unit; + + @ApiModelProperty(value = "商品描述") + private String description; + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/AuctionSalesroomGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/AuctionSalesroomGoodsController.java index e3c9da2..f79bd49 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/AuctionSalesroomGoodsController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/AuctionSalesroomGoodsController.java @@ -6,7 +6,10 @@ import com.ruoyi.auction.VO.AuctionSalesroomGoodsVO; import com.ruoyi.auction.domain.pojo.AuctionSalesroom; import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods; +import com.ruoyi.auction.service.IAuctionSalesroomGoodsService; import com.ruoyi.auction.service.IAuctionSalesroomService; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; @@ -31,12 +34,14 @@ - @Autowired + @Resource private GoodsSkuClient goodsSkuClient; @Resource private IAuctionSalesroomService iAuctionSalesroomService; + @Resource + private IAuctionSalesroomGoodsService iAuctionSalesroomGoodsService; /** * 拍卖大屏的商品介绍 @@ -47,11 +52,43 @@ public AuctionSalesroomGoodsVO getAuctionSalesroomGoods(String SalesroomId) { AuctionSalesroomGoodsVO auctionSalesroomGoodsVO=new AuctionSalesroomGoodsVO(); AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getById(SalesroomId); - auctionSalesroomGoodsVO.setAuctionSalesroomId(auctionSalesroom.getId()); + auctionSalesroomGoodsVO.setSalesroomId(auctionSalesroom.getId()); auctionSalesroomGoodsVO.setSalesroomName(auctionSalesroom.getSalesroomName()); + auctionSalesroomGoodsVO.setSalesroomType(auctionSalesroom.getType().getCode()); + LambdaQueryWrapper<AuctionSalesroomGoods> wrapper=Wrappers.lambdaQuery(); + wrapper.eq(AuctionSalesroomGoods::getStatus,1); + wrapper.eq(AuctionSalesroomGoods::getDelFlag,0); + AuctionSalesroomGoods auctionSalesroomGoods=iAuctionSalesroomGoodsService.getOne(wrapper); + if (auctionSalesroomGoods==null){ + LambdaQueryWrapper<AuctionSalesroomGoods> wrapper1=Wrappers.lambdaQuery(); + wrapper1.eq(AuctionSalesroomGoods::getStatus,2); + wrapper1.eq(AuctionSalesroomGoods::getDelFlag,0); + wrapper1.orderByDesc(AuctionSalesroomGoods::getSortNum); + wrapper.last("limit 1"); + auctionSalesroomGoods=auctionSalesroomGoods=iAuctionSalesroomGoodsService.getOne(wrapper1); + if (auctionSalesroomGoods==null){ + LambdaQueryWrapper<AuctionSalesroomGoods> wrapper2=Wrappers.lambdaQuery(); + wrapper2.eq(AuctionSalesroomGoods::getStatus,1); + wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); + wrapper2.orderByAsc(AuctionSalesroomGoods::getSortNum); + wrapper2.last("limit 1"); + auctionSalesroomGoods=auctionSalesroomGoods=iAuctionSalesroomGoodsService.getOne(wrapper2); + } + } - - return auctionSalesroomGoodsVO; + auctionSalesroomGoodsVO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId()); + auctionSalesroomGoodsVO.setGoodsSkuName(auctionSalesroomGoods.getGoodsSkuName()); + auctionSalesroomGoodsVO.setGoodsSkustatus(auctionSalesroomGoods.getStatus().getCode()); + auctionSalesroomGoodsVO.setStartingPrice(auctionSalesroomGoods.getStartingPrice()); + auctionSalesroomGoodsVO.setItemQuantity(auctionSalesroomGoods.getItemQuantity()); + auctionSalesroomGoodsVO.setListingDuration(auctionSalesroomGoods.getListingDuration()); + auctionSalesroomGoodsVO.setStartTime(auctionSalesroomGoods.getStartTime()); + R<GoodsSku> goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionSalesroomGoods.getGoodsSkuId()); + GoodsSku goodsSku=goodsSkuOne.getData(); + auctionSalesroomGoodsVO.setCoverPic(goodsSku.getCoverPic()); + auctionSalesroomGoodsVO.setDescription(goodsSku.getDescription()); + auctionSalesroomGoodsVO.setUnit(goodsSku.getUnit()); + return auctionSalesroomGoodsVO; } } -- Gitblit v1.7.1