ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java
New file @@ -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()); } }; } } 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); } 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; } 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; } }