ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java
New file @@ -0,0 +1,113 @@ package com.ruoyi.system.api.domain; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; /** * <p> * 商品表 * </p> * * @author mitao * @since 2024-05-16 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_goods_sku") @ApiModel(value = "GoodsSku对象", description = "商品表") public class GoodsSku implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "商品id") @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "商品名称") private String skuName; @ApiModelProperty(value = "商品年份") private String years; @ApiModelProperty(value = "商品分类id") private Long categoryId; @ApiModelProperty(value = "商品系列id") private Long seriesId; @ApiModelProperty(value = "商品品牌id") private Long brandId; @ApiModelProperty(value = "商品香型id") private Long flavorTypeId; @ApiModelProperty(value = "商品价格") private BigDecimal price; @ApiModelProperty(value = "库存") private Integer stock; @ApiModelProperty(value = "单位") private String unit; @ApiModelProperty(value = "规格") private String spec; @ApiModelProperty(value = "规格单位") private String specUnit; @ApiModelProperty(value = "封面图") private String coverPic; @ApiModelProperty(value = "详情图,不超过五张图片") private String alubm; @ApiModelProperty(value = "分享标题") private String shareTitle; @ApiModelProperty(value = "分享图片") private String sharePic; @ApiModelProperty(value = "商品描述") private String description; @ApiModelProperty(value = "商品说明") private String detail; @ApiModelProperty(value = "排序") private Integer sortNum; @ApiModelProperty(value = "上架状态 0=上架中 1= 已下架") private Integer listingStatus; @ApiModelProperty(value = "创建者") @TableField(value = "create_by", fill = FieldFill.INSERT) private String createBy; @ApiModelProperty(value = "创建时间") @TableField(value = "create_time", fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "更新者") @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) private String updateBy; @ApiModelProperty(value = "更新时间") @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)") @TableLogic private Integer delFlag; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/ArticleFallbackFactory.java
New file @@ -0,0 +1,14 @@ package com.ruoyi.system.api.factory; import com.ruoyi.system.api.feignClient.ArticleClient; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; @Component public class ArticleFallbackFactory implements FallbackFactory<ArticleClient> { @Override public ArticleClient create(Throwable cause) { return null; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/AuctionFallbackFactory.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.api.factory; import com.ruoyi.system.api.feignClient.AuctionClient; import org.springframework.cloud.openfeign.FallbackFactory; /** * @author mitao * @date 2024/5/17 */ public class AuctionFallbackFactory implements FallbackFactory<AuctionClient> { @Override public AuctionClient create(Throwable cause) { return null; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/MemberFallbackFactory.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.api.factory; import com.ruoyi.system.api.feignClient.MemberClient; import org.springframework.cloud.openfeign.FallbackFactory; /** * @author mitao * @date 2024/5/17 */ public class MemberFallbackFactory implements FallbackFactory<MemberClient> { @Override public MemberClient create(Throwable cause) { return null; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.api.factory; import com.ruoyi.system.api.feignClient.OrderClient; import org.springframework.cloud.openfeign.FallbackFactory; /** * @author mitao * @date 2024/5/17 */ public class OrderFallbackFactory implements FallbackFactory<OrderClient> { @Override public OrderClient create(Throwable cause) { return null; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/PromotionFallbackFactory.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.api.factory; import com.ruoyi.system.api.feignClient.PromotionClient; import org.springframework.cloud.openfeign.FallbackFactory; /** * @author mitao * @date 2024/5/17 */ public class PromotionFallbackFactory implements FallbackFactory<PromotionClient> { @Override public PromotionClient create(Throwable cause) { return null; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/ArticleClient.java
New file @@ -0,0 +1,10 @@ package com.ruoyi.system.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.system.api.factory.ArticleFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @FeignClient(contextId = "articleClient", value = ServiceNameConstants.RUOYI_ARTICLE, fallbackFactory = ArticleFallbackFactory.class) public interface ArticleClient { } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/AuctionClient.java
New file @@ -0,0 +1,10 @@ package com.ruoyi.system.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.system.api.factory.AuctionFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @FeignClient(contextId = "auctionClient", value = ServiceNameConstants.RUOYI_AUCTION, fallbackFactory = AuctionFallbackFactory.class) public interface AuctionClient { } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants;; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.GoodsSku; 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) public interface GoodsSkuClient { @GetMapping("/goods-sku/getGoodsSkuOne/{goodsSkuId}") R<GoodsSku> queryRoleByUserId(@PathVariable("goodsSkuId") Integer goodsSkuId); } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java
New file @@ -0,0 +1,10 @@ package com.ruoyi.system.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.system.api.factory.MemberFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @FeignClient(contextId = "memberClient", value = ServiceNameConstants.RUOYI_MEMBER, fallbackFactory = MemberFallbackFactory.class) public interface MemberClient { } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
New file @@ -0,0 +1,10 @@ package com.ruoyi.system.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.system.api.factory.OrderFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @FeignClient(contextId = "orderClient", value = ServiceNameConstants.RUOYI_ORDER, fallbackFactory = OrderFallbackFactory.class) public interface OrderClient { } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/PromotionClient.java
New file @@ -0,0 +1,10 @@ package com.ruoyi.system.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.system.api.factory.PromotionFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @FeignClient(contextId = "promotionClient", value = ServiceNameConstants.RUOYI_PROMOTION, fallbackFactory = PromotionFallbackFactory.class) public interface PromotionClient { } ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java
@@ -39,5 +39,31 @@ /** * 会员模块的serviceid */ public static final String MEMBER_SERVICE = "ruoyi-member"; public static final String RUOYI_MEMBER = "ruoyi-member"; /** * 商品模块的serviceid */ public static final String RUOYI_MODULES_GOODS = "ruoyi-modules-goods"; /** * 资讯模块的serviceid */ public static final String RUOYI_ARTICLE = "ruoyi-article"; /** * 拍卖模块的serviceid */ public static final String RUOYI_AUCTION = "ruoyi-auction"; /** * 订单模块的serviceid */ public static final String RUOYI_ORDER = "ruoyi-order"; /** * 营销模块的serviceid */ public static final String RUOYI_PROMOTION = "ruoyi-promotion"; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/VO/AuctionSalesroomGoodsVO.java
New file @@ -0,0 +1,45 @@ package com.ruoyi.auction.VO; import com.ruoyi.common.core.enums.AuctionStartStatusEnum; import com.ruoyi.common.core.enums.AuctionTypeEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; @Data public class AuctionSalesroomGoodsVO { @ApiModelProperty(value = "拍卖场id") private Long auctionSalesroomId; @ApiModelProperty(value = "拍卖场名称") private String salesroomName; @ApiModelProperty(value = "商品id") private Long goodsSkuId; @ApiModelProperty(value = "商品名称") private String goodsSkuName; @ApiModelProperty(value = "起拍价格") private BigDecimal startingPrice; @ApiModelProperty(value = "拍品数量") private Integer itemQuantity; @ApiModelProperty(value = "拍卖时间 0=线下拍卖 1=线上线下结合") private AuctionTypeEnum type; @ApiModelProperty(value = "状态 0=预展中 1=拍卖中 2=已结束") private Integer goodsSkustatus; @ApiModelProperty(value = "拍卖时间(分钟)") private Integer listingDuration; @ApiModelProperty(value = "开始时间") private LocalDateTime startTime; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/VO/AuctionSalesroomVO.java
New file @@ -0,0 +1,13 @@ package com.ruoyi.auction.VO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class AuctionSalesroomVO { @ApiModelProperty(value = "暖场视频or封面海报") private String url; @ApiModelProperty(value = "拍卖状态 0=预展中 1=拍卖中 2=已结束") private Integer auctionSalesroomStatus; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/AuctionSalesroomController.java
@@ -1,9 +1,25 @@ package com.ruoyi.auction.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.auction.VO.AuctionSalesroomVO; import com.ruoyi.auction.domain.pojo.AuctionBidRecord; import com.ruoyi.auction.domain.pojo.AuctionSalesroom; import com.ruoyi.auction.domain.pojo.AuctionVideo; import com.ruoyi.auction.service.IAuctionSalesroomService; import com.ruoyi.auction.service.IAuctionVideoService; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.conditions.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.sql.SQLException; import java.sql.Wrapper; import java.util.List; /** * <p> @@ -17,4 +33,53 @@ @RequestMapping("/auction-salesroom") public class AuctionSalesroomController { @Resource private IAuctionSalesroomService iAuctionSalesroomService; @Resource private IAuctionVideoService iAuctionVideoService; /** * 拍卖大屏获取拍卖信息 * */ @RequestMapping("/getAuctionBidRecordList") @ResponseBody public List<AuctionSalesroom> getAuctionBidRecordList(@PathVariable("salesroomName") String salesroomName) { LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery(); wrapper.eq(AuctionSalesroom::getSalesroomName,salesroomName); wrapper.eq(AuctionSalesroom::getDelFlag,0); List<AuctionSalesroom> AuctionBidRecordList=iAuctionSalesroomService.list(wrapper); return AuctionBidRecordList; } /** * 暖场视频or封面海报 * */ @RequestMapping("/getBaaner") @ResponseBody public AuctionSalesroomVO getBaaner(@PathVariable("salesroomId") Integer SalesroomId) { LambdaQueryWrapper<AuctionVideo> wrapper=Wrappers.lambdaQuery(); wrapper.eq(AuctionVideo::getAuctionSalesroomId,SalesroomId); wrapper.eq(AuctionVideo::getDelFlag,0); AuctionVideo auctionVideo=iAuctionVideoService.getOne(wrapper); AuctionSalesroomVO auctionSalesroomVO=new AuctionSalesroomVO(); AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getById(SalesroomId); auctionSalesroomVO.setAuctionSalesroomStatus(auctionSalesroom.getStatus().getCode()); if (auctionVideo!=null){ auctionSalesroomVO.setUrl(auctionVideo.getPromotionVideoUrl()); }else{ auctionSalesroomVO.setUrl(auctionSalesroom.getCoverPic()); } return auctionSalesroomVO; } } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/AuctionSalesroomGoodsController.java
@@ -1,9 +1,21 @@ package com.ruoyi.auction.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.IAuctionSalesroomService; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * <p> @@ -17,4 +29,29 @@ @RequestMapping("/auction-salesroom-goods") public class AuctionSalesroomGoodsController { @Autowired private GoodsSkuClient goodsSkuClient; @Resource private IAuctionSalesroomService iAuctionSalesroomService; /** * 拍卖大屏的商品介绍 * */ @RequestMapping("/getAuctionSalesroomGoods") @ResponseBody public AuctionSalesroomGoodsVO getAuctionSalesroomGoods(String SalesroomId) { AuctionSalesroomGoodsVO auctionSalesroomGoodsVO=new AuctionSalesroomGoodsVO(); AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getById(SalesroomId); auctionSalesroomGoodsVO.setAuctionSalesroomId(auctionSalesroom.getId()); auctionSalesroomGoodsVO.setSalesroomName(auctionSalesroom.getSalesroomName()); return auctionSalesroomGoodsVO; } } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionSalesroomGoods.java
@@ -64,6 +64,12 @@ @ApiModelProperty(value = "设为备选") private Boolean backupStatus; @ApiModelProperty(value = "排序") private Integer sortNum; @ApiModelProperty(value = "开始时间") private LocalDateTime startTime; @ApiModelProperty(value = "状态 0=预展中 1=拍卖中 2=已结束") private AuctionStartStatusEnum status; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSkuController.java
@@ -1,9 +1,17 @@ package com.ruoyi.goods.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.goods.domain.pojo.GoodsSku; import com.ruoyi.goods.service.IGoodsSkuService; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * <p> @@ -17,4 +25,19 @@ @RequestMapping("/goods-sku") public class GoodsSkuController { @Resource private IGoodsSkuService iGoodsSkuService; /** * 获取当前商品信息 * */ @RequestMapping("/getGoodsSkuOne") @ResponseBody public GoodsSku getGoodsSkuOne(Integer goodsSkuId) { GoodsSku goodsSkuOne=iGoodsSkuService.getById(goodsSkuId); return goodsSkuOne; } }