From c26092c422c4b72fa5d51a38f6de1b48ab1ccd87 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 27 五月 2024 15:53:36 +0800
Subject: [PATCH] 提交普通拍品、资讯文章、商城商品收藏基础代码

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionVideo.java                                         |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java             |   10 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java                                   |    2 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberArticleCollection.java                              |   39 --
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java                     |   16 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java                        |   27 ++
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java               |   13 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/MemberAuctionCollection.java                              |   39 --
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/MemberGoodsCollectionMapper.java                              |   16 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java                    |   11 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java                |   20 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java                      |   15 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java                                |    6 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBidRecordServiceImpl.java                    |   16 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java      |   10 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java                                     |    2 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java             |   20 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java                               |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java                           |   16 +
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/MemberArticleCollectionMapper.java                        |   16 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsDTO.java                   |   67 +++++
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/MemberAuctionCollectionMapper.java                        |   16 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/MemberAuctionCollectionController.java       |   19 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomGoodsMapper.java                          |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/MemberGoodsCollection.java                                    |   63 +++++
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java                                |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionVideoMapper.java                                   |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IMemberAuctionCollectionService.java                     |   16 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionBidRecordMapper.java                               |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionVideoService.java                                |    7 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionVideoServiceImpl.java                        |   11 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBidRecord.java                                     |    2 
 ruoyi-modules/ruoyi-article/src/main/resources/mapper/article/MemberArticleCollectionMapper.xml                              |    5 
 ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/MemberAuctionCollectionMapper.xml                              |    5 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionBidRecordController.java      |   16 -
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java |    8 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java                                |    5 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java                   |   20 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomGoodsService.java                       |    5 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionGoods.java                                         |   10 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java                            |   20 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/MemberGoodsCollectionController.java                |   19 +
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBidRecordService.java                            |   15 -
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/MemberGoodsCollectionMapper.xml                                    |    5 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java                            |    7 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/MemberAuctionCollectionServiceImpl.java             |   20 +
 46 files changed, 508 insertions(+), 159 deletions(-)

diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java
new file mode 100644
index 0000000..02aa1c2
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberArticleCollectionController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.article.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 会员收藏文章 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+@RestController
+@RequestMapping("/member-article-collection")
+public class MemberArticleCollectionController {
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberArticleCollection.java
similarity index 60%
copy from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java
copy to ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberArticleCollection.java
index 8b9aabb..0a20b0b 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberArticleCollection.java
@@ -1,4 +1,4 @@
-package com.ruoyi.auction.domain.pojo;
+package com.ruoyi.article.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -6,11 +6,9 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.ruoyi.common.core.enums.BidStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -18,48 +16,29 @@
 
 /**
  * <p>
- * 出价记录表
+ * 会员收藏文章
  * </p>
  *
  * @author mitao
- * @since 2024-05-16
+ * @since 2024-05-27
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@TableName("t_auction_bid_record")
-@ApiModel(value = "AuctionBidRecord对象", description = "出价记录表")
-public class AuctionBidRecord implements Serializable {
+@TableName("t_member_article_collection")
+@ApiModel(value = "MemberArticleCollection对象", description = "会员收藏文章")
+public class MemberArticleCollection implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "出价记录id")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
-    private Long id;
+    private Integer id;
 
-    @ApiModelProperty(value = "拍卖场id")
-    private Long auctionSalesroomId;
-
-    @ApiModelProperty(value = "商品id")
-    private Long goodsSkuId;
+    @ApiModelProperty(value = "收藏目标id")
+    private Long targetId;
 
     @ApiModelProperty(value = "会员id")
     private Long memberId;
-
-    @ApiModelProperty(value = "商品名称")
-    private String goodsSkuName;
-
-    @ApiModelProperty(value = "最终出价时间")
-    private LocalDateTime lastBidTime;
-
-    @ApiModelProperty(value = "出价次数")
-    private Integer bidCount;
-
-    @ApiModelProperty(value = "最终出价金额")
-    private BigDecimal lastBidAmount;
-
-    @ApiModelProperty(value = "开始状态 0=淘汰 1=领先")
-    private BidStatusEnum status;
 
     @ApiModelProperty(value = "创建者")
     @TableField(value = "create_by", fill = FieldFill.INSERT)
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/MemberArticleCollectionMapper.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/MemberArticleCollectionMapper.java
new file mode 100644
index 0000000..b79f23a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/MemberArticleCollectionMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.article.mapper;
+
+import com.ruoyi.article.domain.MemberArticleCollection;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 会员收藏文章 Mapper 接口
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+public interface MemberArticleCollectionMapper extends BaseMapper<MemberArticleCollection> {
+
+}
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java
new file mode 100644
index 0000000..16cfa71
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberArticleCollectionService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.article.service;
+
+import com.ruoyi.article.domain.MemberArticleCollection;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 会员收藏文章 服务类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+public interface IMemberArticleCollectionService extends IService<MemberArticleCollection> {
+
+}
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java
new file mode 100644
index 0000000..4acbc1e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.article.service.impl;
+
+import com.ruoyi.article.domain.MemberArticleCollection;
+import com.ruoyi.article.mapper.MemberArticleCollectionMapper;
+import com.ruoyi.article.service.IMemberArticleCollectionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 会员收藏文章 服务实现类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+@Service
+public class MemberArticleCollectionServiceImpl extends ServiceImpl<MemberArticleCollectionMapper, MemberArticleCollection> implements IMemberArticleCollectionService {
+
+}
diff --git a/ruoyi-modules/ruoyi-article/src/main/resources/mapper/article/MemberArticleCollectionMapper.xml b/ruoyi-modules/ruoyi-article/src/main/resources/mapper/article/MemberArticleCollectionMapper.xml
new file mode 100644
index 0000000..7cd181c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/resources/mapper/article/MemberArticleCollectionMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.article.mapper.MemberArticleCollectionMapper">
+
+</mapper>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionBidRecordController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionBidRecordController.java
index f20b462..a58727d 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionBidRecordController.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionBidRecordController.java
@@ -1,26 +1,16 @@
 package com.ruoyi.auction.controller.forepart;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
-import com.ruoyi.auction.domain.pojo.AuctionBidRecord;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroom;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods;
+import com.ruoyi.auction.domain.AuctionBidRecord;
 import com.ruoyi.auction.service.IAuctionBidRecordService;
-import com.ruoyi.auction.service.IAuctionSalesroomGoodsService;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.enums.BidStatusEnum;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PathVariable;
+import java.util.List;
+import javax.annotation.Resource;
 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.ArrayList;
-import java.util.List;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java
index 6aac614..7d20e23 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java
@@ -1,19 +1,19 @@
 package com.ruoyi.auction.controller.forepart;
 
 
-
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
 import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroom;
+import com.ruoyi.auction.domain.AuctionSalesroom;
 import com.ruoyi.auction.service.IAuctionSalesroomService;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.*;
-
 import javax.annotation.Resource;
-import java.util.List;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java
index 8f5830b..88cca43 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java
@@ -4,18 +4,16 @@
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
 import com.ruoyi.auction.controller.forepart.vo.AuctionSalesroomVO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods;
+import com.ruoyi.auction.domain.AuctionSalesroomGoods;
 import com.ruoyi.auction.service.IAuctionSalesroomGoodsService;
 import com.ruoyi.common.core.domain.R;
 import io.swagger.annotations.ApiOperation;
+import java.util.List;
+import javax.annotation.Resource;
 import org.apache.poi.ss.formula.functions.T;
 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>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/MemberAuctionCollectionController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/MemberAuctionCollectionController.java
new file mode 100644
index 0000000..9582d3a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/MemberAuctionCollectionController.java
@@ -0,0 +1,19 @@
+package com.ruoyi.auction.controller.forepart;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 用户收藏的普通拍卖商品 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+@RestController
+@RequestMapping("/member-auction-collection")
+public class MemberAuctionCollectionController {
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
index 94848fe..a3c23a3 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.auction.controller.management;
 
 
+import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO;
 import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery;
 import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO;
 import com.ruoyi.auction.service.IAuctionGoodsService;
@@ -9,7 +10,9 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -41,4 +44,11 @@
             AuctionGoodsQuery query) {
         return R.ok(auctionGoodsService.getAuctionGoodsPage(query));
     }
+
+    @ApiOperation(value = "添加/编辑 拍卖商品", notes = "添加/编辑 拍卖商品")
+    @PostMapping("/save")
+    public R<?> saveAuctionGoods(@Validated @RequestBody AuctionGoodsDTO dto) {
+        auctionGoodsService.saveAuctionGoods(dto);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsDTO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsDTO.java
new file mode 100644
index 0000000..db48dc8
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsDTO.java
@@ -0,0 +1,67 @@
+package com.ruoyi.auction.controller.management.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.enums.AuthenticationEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author mitao
+ * @date 2024/5/27
+ */
+@Data
+@ApiModel(value = "拍卖商品数据传输对象", description = "拍卖商品数据传输对象")
+public class AuctionGoodsDTO {
+
+    @ApiModelProperty(value = "拍卖商品id", notes = "添加不传,更新必传")
+    private Long id;
+
+    @ApiModelProperty(value = "商品id", notes = "添加必传,更新不传")
+    private Long goodsSkuId;
+
+    @ApiModelProperty(value = "起拍价格")
+    @NotNull(message = "起拍价格不能为空")
+    private BigDecimal startingPrice;
+
+    @ApiModelProperty(value = "最低加价金额")
+    @NotNull(message = "最低加价金额不能为空")
+    private BigDecimal minimumMarkupAmount;
+
+    @ApiModelProperty(value = "开始时间")
+    @NotNull(message = "开始时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @NotNull(message = "结束时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "拍品数量")
+    @NotNull(message = "拍品数量不能为空")
+    private Integer auctionStock;
+
+    @ApiModelProperty(value = "保证金")
+    @NotNull(message = "保证金不能为空")
+    private BigDecimal bond;
+
+    @ApiModelProperty(value = "实名认证 0=不需实名 1=需要实名")
+    @NotNull(message = "实名认证不能为空")
+    private AuthenticationEnum authentication;
+
+    @ApiModelProperty(value = "拍品说明")
+    private String description;
+
+    @ApiModelProperty(value = "分享标题")
+    @NotBlank(message = "分享标题不能为空")
+    private String shareTitle;
+
+    @ApiModelProperty(value = "分享图片")
+    @NotBlank(message = "分享图片不能为空")
+    private String sharePic;
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBidRecord.java
similarity index 98%
rename from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java
rename to ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBidRecord.java
index 8b9aabb..d175b74 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBidRecord.java
@@ -1,4 +1,4 @@
-package com.ruoyi.auction.domain.pojo;
+package com.ruoyi.auction.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionGoods.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionGoods.java
similarity index 92%
rename from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionGoods.java
rename to ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionGoods.java
index 763f470..2d15d94 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionGoods.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionGoods.java
@@ -1,4 +1,4 @@
-package com.ruoyi.auction.domain.pojo;
+package com.ruoyi.auction.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -75,6 +75,14 @@
     @ApiModelProperty(value = "开始状态 0=预展中 1=拍卖中 2=已结束")
     private AuctionStartStatusEnum startStatus;
 
+    @ApiModelProperty(value = "分享标题")
+    @TableField("share_title")
+    private String shareTitle;
+
+    @ApiModelProperty(value = "分享图片")
+    @TableField("share_pic")
+    private String sharePic;
+
     @ApiModelProperty(value = "创建者")
     @TableField(value = "create_by", fill = FieldFill.INSERT)
     private String createBy;
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionSalesroom.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java
similarity index 98%
rename from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionSalesroom.java
rename to ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java
index e2f3298..0c2355b 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionSalesroom.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroom.java
@@ -1,4 +1,4 @@
-package com.ruoyi.auction.domain.pojo;
+package com.ruoyi.auction.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionSalesroomGoods.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java
similarity index 98%
rename from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionSalesroomGoods.java
rename to ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java
index 351ab0b..054efb6 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionSalesroomGoods.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java
@@ -1,4 +1,4 @@
-package com.ruoyi.auction.domain.pojo;
+package com.ruoyi.auction.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionVideo.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionVideo.java
similarity index 97%
rename from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionVideo.java
rename to ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionVideo.java
index 45ed34f..34f5b5a 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionVideo.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionVideo.java
@@ -1,4 +1,4 @@
-package com.ruoyi.auction.domain.pojo;
+package com.ruoyi.auction.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/MemberAuctionCollection.java
similarity index 61%
copy from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java
copy to ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/MemberAuctionCollection.java
index 8b9aabb..c13bd2b 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/pojo/AuctionBidRecord.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/MemberAuctionCollection.java
@@ -1,4 +1,4 @@
-package com.ruoyi.auction.domain.pojo;
+package com.ruoyi.auction.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -6,11 +6,9 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.ruoyi.common.core.enums.BidStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -18,48 +16,29 @@
 
 /**
  * <p>
- * 出价记录表
+ * 用户收藏的普通拍卖商品
  * </p>
  *
  * @author mitao
- * @since 2024-05-16
+ * @since 2024-05-27
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@TableName("t_auction_bid_record")
-@ApiModel(value = "AuctionBidRecord对象", description = "出价记录表")
-public class AuctionBidRecord implements Serializable {
+@TableName("t_member_auction_collection")
+@ApiModel(value = "MemberAuctionCollection对象", description = "用户收藏的普通拍卖商品")
+public class MemberAuctionCollection implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "出价记录id")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
-    private Long id;
+    private Integer id;
 
-    @ApiModelProperty(value = "拍卖场id")
-    private Long auctionSalesroomId;
-
-    @ApiModelProperty(value = "商品id")
-    private Long goodsSkuId;
+    @ApiModelProperty(value = "收藏目标id")
+    private Long targetId;
 
     @ApiModelProperty(value = "会员id")
     private Long memberId;
-
-    @ApiModelProperty(value = "商品名称")
-    private String goodsSkuName;
-
-    @ApiModelProperty(value = "最终出价时间")
-    private LocalDateTime lastBidTime;
-
-    @ApiModelProperty(value = "出价次数")
-    private Integer bidCount;
-
-    @ApiModelProperty(value = "最终出价金额")
-    private BigDecimal lastBidAmount;
-
-    @ApiModelProperty(value = "开始状态 0=淘汰 1=领先")
-    private BidStatusEnum status;
 
     @ApiModelProperty(value = "创建者")
     @TableField(value = "create_by", fill = FieldFill.INSERT)
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionBidRecordMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionBidRecordMapper.java
index 8b54d47..09332a7 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionBidRecordMapper.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionBidRecordMapper.java
@@ -1,7 +1,7 @@
 package com.ruoyi.auction.mapper;
 
-import com.ruoyi.auction.domain.pojo.AuctionBidRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.auction.domain.AuctionBidRecord;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java
index 0525f28..1da30d2 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionGoodsMapper.java
@@ -1,7 +1,7 @@
 package com.ruoyi.auction.mapper;
 
-import com.ruoyi.auction.domain.pojo.AuctionGoods;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.auction.domain.AuctionGoods;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomGoodsMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomGoodsMapper.java
index aa68d06..ac44297 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomGoodsMapper.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomGoodsMapper.java
@@ -1,7 +1,7 @@
 package com.ruoyi.auction.mapper;
 
-import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.auction.domain.AuctionSalesroomGoods;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java
index 3499e3e..6a2dfcf 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java
@@ -1,7 +1,7 @@
 package com.ruoyi.auction.mapper;
 
-import com.ruoyi.auction.domain.pojo.AuctionSalesroom;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.auction.domain.AuctionSalesroom;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionVideoMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionVideoMapper.java
index 765e8f4..cf856b0 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionVideoMapper.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionVideoMapper.java
@@ -1,7 +1,7 @@
 package com.ruoyi.auction.mapper;
 
-import com.ruoyi.auction.domain.pojo.AuctionVideo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.auction.domain.AuctionVideo;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/MemberAuctionCollectionMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/MemberAuctionCollectionMapper.java
new file mode 100644
index 0000000..a8849df
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/MemberAuctionCollectionMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.auction.mapper;
+
+import com.ruoyi.auction.domain.MemberAuctionCollection;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 用户收藏的普通拍卖商品 Mapper 接口
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+public interface MemberAuctionCollectionMapper extends BaseMapper<MemberAuctionCollection> {
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBidRecordService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBidRecordService.java
index 483fb3a..34d961b 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBidRecordService.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBidRecordService.java
@@ -1,19 +1,8 @@
 package com.ruoyi.auction.service;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
-import com.ruoyi.auction.domain.pojo.AuctionBidRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods;
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.enums.BidStatusEnum;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import java.util.ArrayList;
+import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
+import com.ruoyi.auction.domain.AuctionBidRecord;
 import java.util.List;
 
 /**
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java
index 0433a57..8eed0d9 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java
@@ -1,9 +1,10 @@
 package com.ruoyi.auction.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO;
 import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery;
 import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO;
-import com.ruoyi.auction.domain.pojo.AuctionGoods;
+import com.ruoyi.auction.domain.AuctionGoods;
 import com.ruoyi.common.core.utils.page.PageDTO;
 
 /**
@@ -22,4 +23,6 @@
      * @return PageDTO<AuctionGoodsVO>
      */
     PageDTO<AuctionGoodsVO> getAuctionGoodsPage(AuctionGoodsQuery query);
+
+    void saveAuctionGoods(AuctionGoodsDTO dto);
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomGoodsService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomGoodsService.java
index 4dfec92..05ea7d8 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomGoodsService.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomGoodsService.java
@@ -1,11 +1,10 @@
 package com.ruoyi.auction.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
 import com.ruoyi.auction.controller.forepart.vo.AuctionSalesroomVO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods;
-import com.baomidou.mybatisplus.extension.service.IService;
-
+import com.ruoyi.auction.domain.AuctionSalesroomGoods;
 import java.util.List;
 
 /**
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
index 178b42f..463181d 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
@@ -1,14 +1,11 @@
 package com.ruoyi.auction.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
 import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroom;
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.auction.domain.AuctionSalesroom;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import org.springframework.web.bind.annotation.RequestBody;
-
-import java.util.List;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionVideoService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionVideoService.java
index 6521fcd..fdf08f4 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionVideoService.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionVideoService.java
@@ -1,12 +1,11 @@
 package com.ruoyi.auction.service;
 
-import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionVideo;
-import com.ruoyi.auction.domain.pojo.AuctionVideo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionVideo;
+import com.ruoyi.auction.domain.AuctionVideo;
 import com.ruoyi.system.api.domain.PromotionVideo;
-import org.springframework.web.bind.annotation.RequestBody;
-
 import java.util.List;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IMemberAuctionCollectionService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IMemberAuctionCollectionService.java
new file mode 100644
index 0000000..a6c19cc
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IMemberAuctionCollectionService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.auction.service;
+
+import com.ruoyi.auction.domain.MemberAuctionCollection;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 用户收藏的普通拍卖商品 服务类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+public interface IMemberAuctionCollectionService extends IService<MemberAuctionCollection> {
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBidRecordServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBidRecordServiceImpl.java
index 285b1c8..40de217 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBidRecordServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBidRecordServiceImpl.java
@@ -2,24 +2,18 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
-import com.ruoyi.auction.domain.pojo.AuctionBidRecord;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods;
+import com.ruoyi.auction.domain.AuctionBidRecord;
+import com.ruoyi.auction.domain.AuctionSalesroomGoods;
 import com.ruoyi.auction.mapper.AuctionBidRecordMapper;
 import com.ruoyi.auction.service.IAuctionBidRecordService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.auction.service.IAuctionSalesroomGoodsService;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.BidStatusEnum;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Service;
 
 /**
  * <p>
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 8f7e180..d6b7aef 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
@@ -2,12 +2,15 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO;
 import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery;
 import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO;
-import com.ruoyi.auction.domain.pojo.AuctionGoods;
+import com.ruoyi.auction.domain.AuctionGoods;
 import com.ruoyi.auction.mapper.AuctionGoodsMapper;
 import com.ruoyi.auction.service.IAuctionGoodsService;
+import com.ruoyi.common.core.exception.ServiceException;
 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.domain.GoodsSku;
 import com.ruoyi.system.api.feignClient.GoodsSkuClient;
@@ -63,4 +66,26 @@
                 .page(new Page<>(query.getPageCurr(), query.getPageSize()));
         return PageDTO.of(page, AuctionGoodsVO.class);
     }
+
+    @Override
+    public void saveAuctionGoods(AuctionGoodsDTO dto) {
+        Long id = dto.getId();
+        Long goodsSkuId = dto.getGoodsSkuId();
+        // 添加
+        if (StringUtils.isNull(id)) {
+            if (StringUtils.isNull(goodsSkuId)) {
+                throw new ServiceException("商品id不能为空");
+            }
+            GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(goodsSkuId).getData();
+            if (StringUtils.isNull(goodsSku)) {
+                throw new ServiceException("商品不存在");
+            }
+            AuctionGoods auctionGoods = BeanUtils.copyBean(dto, AuctionGoods.class);
+            this.save(auctionGoods);
+
+        } else {
+            // 编辑
+
+        }
+    }
 }
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 2ea8ce2..98daca9 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
@@ -2,17 +2,17 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
 import com.ruoyi.auction.controller.forepart.dto.OrderDTO;
 import com.ruoyi.auction.controller.forepart.vo.AuctionSalesroomVO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO;
-import com.ruoyi.auction.domain.pojo.AuctionBidRecord;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroom;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods;
+import com.ruoyi.auction.domain.AuctionBidRecord;
+import com.ruoyi.auction.domain.AuctionSalesroom;
+import com.ruoyi.auction.domain.AuctionSalesroomGoods;
 import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper;
 import com.ruoyi.auction.service.IAuctionBidRecordService;
 import com.ruoyi.auction.service.IAuctionSalesroomGoodsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.auction.service.IAuctionSalesroomService;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
@@ -25,13 +25,12 @@
 import com.ruoyi.system.api.feignClient.GoodsSkuClient;
 import com.ruoyi.system.api.feignClient.MemberClient;
 import com.ruoyi.system.api.feignClient.OrderClient;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Service;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
index 8f3b9df..ba88837 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -3,25 +3,22 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
 import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO;
 import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroom;
-import com.ruoyi.auction.domain.pojo.AuctionVideo;
+import com.ruoyi.auction.domain.AuctionSalesroom;
+import com.ruoyi.auction.domain.AuctionVideo;
 import com.ruoyi.auction.mapper.AuctionSalesroomMapper;
 import com.ruoyi.auction.service.IAuctionSalesroomService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.auction.service.IAuctionVideoService;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.system.api.domain.MemberAddress;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
-import org.springframework.stereotype.Service;
-
 import javax.annotation.Resource;
-import java.util.List;
+import org.springframework.stereotype.Service;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionVideoServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionVideoServiceImpl.java
index 1c0a0cf..d5d6e4b 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionVideoServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionVideoServiceImpl.java
@@ -2,21 +2,20 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionVideo;
-import com.ruoyi.auction.domain.pojo.AuctionSalesroomGoods;
-import com.ruoyi.auction.domain.pojo.AuctionVideo;
+import com.ruoyi.auction.domain.AuctionSalesroomGoods;
+import com.ruoyi.auction.domain.AuctionVideo;
 import com.ruoyi.auction.mapper.AuctionVideoMapper;
 import com.ruoyi.auction.service.IAuctionSalesroomGoodsService;
 import com.ruoyi.auction.service.IAuctionVideoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.system.api.domain.PromotionVideo;
 import com.ruoyi.system.api.feignClient.PromotionClient;
+import java.util.List;
+import javax.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestBody;
-
-import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * <p>
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/MemberAuctionCollectionServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/MemberAuctionCollectionServiceImpl.java
new file mode 100644
index 0000000..2aee5f2
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/MemberAuctionCollectionServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.auction.service.impl;
+
+import com.ruoyi.auction.domain.MemberAuctionCollection;
+import com.ruoyi.auction.mapper.MemberAuctionCollectionMapper;
+import com.ruoyi.auction.service.IMemberAuctionCollectionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户收藏的普通拍卖商品 服务实现类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+@Service
+public class MemberAuctionCollectionServiceImpl extends ServiceImpl<MemberAuctionCollectionMapper, MemberAuctionCollection> implements IMemberAuctionCollectionService {
+
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/MemberAuctionCollectionMapper.xml b/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/MemberAuctionCollectionMapper.xml
new file mode 100644
index 0000000..69f8d93
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/MemberAuctionCollectionMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.auction.mapper.MemberAuctionCollectionMapper">
+
+</mapper>
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/MemberGoodsCollectionController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/MemberGoodsCollectionController.java
new file mode 100644
index 0000000..098d61d
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/MemberGoodsCollectionController.java
@@ -0,0 +1,19 @@
+package com.ruoyi.goods.controller.inner;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 会员收藏普通商品 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+@RestController
+@RequestMapping("/member-goods-collection")
+public class MemberGoodsCollectionController {
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/MemberGoodsCollection.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/MemberGoodsCollection.java
new file mode 100644
index 0000000..7e6d355
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/MemberGoodsCollection.java
@@ -0,0 +1,63 @@
+package com.ruoyi.goods.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 会员收藏普通商品
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_member_goods_collection")
+@ApiModel(value = "MemberGoodsCollection对象", description = "会员收藏普通商品")
+public class MemberGoodsCollection implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "收藏目标id")
+    private Long targetId;
+
+    @ApiModelProperty(value = "会员id")
+    private Long memberId;
+
+    @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;
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/MemberGoodsCollectionMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/MemberGoodsCollectionMapper.java
new file mode 100644
index 0000000..432a8af
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/MemberGoodsCollectionMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.goods.mapper;
+
+import com.ruoyi.goods.domain.MemberGoodsCollection;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 会员收藏普通商品 Mapper 接口
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+public interface MemberGoodsCollectionMapper extends BaseMapper<MemberGoodsCollection> {
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java
new file mode 100644
index 0000000..907e374
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.goods.service;
+
+import com.ruoyi.goods.domain.MemberGoodsCollection;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 会员收藏普通商品 服务类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+public interface IMemberGoodsCollectionService extends IService<MemberGoodsCollection> {
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java
index 975ab4c..f685434 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java
@@ -112,12 +112,12 @@
     private void handleStartDelayTask(Long id, DelayTaskEnum delayTaskEnum, LocalDateTime startTime,
             Long timeout) {
         String startTaskKey = delayTaskEnum.getCode() + "-" + id;
-        //查询延时任务
-        DelayTask startDelayTask = sysUserClient.getDelayTask(
-                startTaskKey).getData();
         redisService.setCacheObject(
                 startTaskKey,
                 startTime, timeout, TimeUnit.SECONDS);
+        //查询延时任务
+        DelayTask startDelayTask = sysUserClient.getDelayTask(
+                startTaskKey).getData();
         if (StringUtils.isNull(startDelayTask)) {
             startDelayTask = new DelayTask();
             startDelayTask.setDelFlag(0);
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
index 69dc106..8383908 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -12,6 +12,7 @@
 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.common.redis.service.RedisService;
 import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO;
 import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery;
 import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
@@ -20,6 +21,7 @@
 import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
 import com.ruoyi.goods.service.IGoodsSkuService;
 import com.ruoyi.goods.service.async.AsyncMethodService;
+import com.ruoyi.system.api.constants.DelayTaskEnum;
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.Order;
@@ -50,6 +52,7 @@
     private final OrderClient orderClient;
     private final IGoodsSkuService goodsSkuService;
     private final AsyncMethodService asyncMethodService;
+    private final RedisService redisService;
     // 创建一个静态共享的ObjectMapper实例以重用
     private static final ObjectMapper objectMapper = new ObjectMapper();
     /**
@@ -141,9 +144,15 @@
             throw new ServiceException("团购商品不存在");
         }
         //判断商品状态
-        if (dto.getListingStatus().equals(ListingStatusEnum.REMOVED_FROM_THE_SHELF)
-                && groupPurchase.getStartStatus().equals(StartStatusEnum.STARTED)) {
-            throw new ServiceException("该商品已开始团购,不能下架");
+        if (dto.getListingStatus().equals(ListingStatusEnum.REMOVED_FROM_THE_SHELF)) {
+            if (groupPurchase.getStartStatus().equals(StartStatusEnum.STARTED)) {
+                throw new ServiceException("该商品已开始团购,不能下架");
+            }
+            //移除该团购商品延时任务
+            redisService.deleteObject(DelayTaskEnum.GROUP_PURCHASES_START_TASK.getCode() + "-"
+                    + groupPurchase.getId());
+            redisService.deleteObject(
+                    DelayTaskEnum.GROUP_PURCHASES_END_TASK.getCode() + "-" + groupPurchase.getId());
         }
         //修改状态
         groupPurchase.setListingStatus(dto.getListingStatus());
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
index 60955b8..d44a70c 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -5,6 +5,7 @@
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.common.core.constant.CacheConstants;
+import com.ruoyi.common.core.enums.ListingStatusEnum;
 import com.ruoyi.common.core.enums.StartStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -19,6 +20,7 @@
 import com.ruoyi.goods.service.IGoodsSeckillService;
 import com.ruoyi.goods.service.IGoodsSkuService;
 import com.ruoyi.goods.service.async.AsyncMethodService;
+import com.ruoyi.system.api.constants.DelayTaskEnum;
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
 import com.ruoyi.system.api.domain.GoodsSeckill;
 import com.ruoyi.system.api.domain.GoodsSku;
@@ -109,7 +111,10 @@
         //查询秒杀商品
         GoodsSeckill goodsSeckill = this.getById(upd.getId());
         if (StringUtils.isNull(goodsSeckill)) {
-            throw new RuntimeException("秒杀商品不存在");
+            throw new ServiceException("秒杀商品不存在");
+        }
+        if (goodsSeckill.getStartStatus().equals(StartStatusEnum.STARTED)) {
+            throw new ServiceException("秒杀商品已开始秒杀,不能修改");
         }
         GoodsSeckill goodsSeckillUpd = BeanUtils.copyBean(upd, GoodsSeckill.class);
         this.updateById(goodsSeckillUpd);
@@ -123,10 +128,21 @@
      */
     @Override
     public void updStatus(ListStatusDTO dto) {
+        GoodsSeckill goodsSeckill = this.getById(dto.getId());
+        if (StringUtils.isNull(goodsSeckill)) {
+            throw new ServiceException("秒杀商品不存在");
+        }
         this.lambdaUpdate()
                 .eq(GoodsSeckill::getId, dto.getId())
                 .set(GoodsSeckill::getListingStatus, dto.getListingStatus())
                 .update();
+        if (dto.getListingStatus().equals(ListingStatusEnum.REMOVED_FROM_THE_SHELF)) {
+            //移除该秒杀商品的延时任务
+            redisService.deleteObject(
+                    DelayTaskEnum.SECKILL_START_TASK.getCode() + "-" + goodsSeckill.getId());
+            redisService.deleteObject(
+                    DelayTaskEnum.SECKILL_END_TASK.getCode() + "-" + goodsSeckill.getId());
+        }
     }
 
     /**
@@ -139,7 +155,7 @@
     public GoodsSeckillVO getDetail(Long id) {
         GoodsSeckill goodsSeckill = this.getById(id);
         if (StringUtils.isNull(goodsSeckill)) {
-            throw new RuntimeException("秒杀商品不存在");
+            throw new ServiceException("秒杀商品不存在");
         }
         GoodsSeckillVO vo = BeanUtils.copyBean(goodsSeckill, GoodsSeckillVO.class);
         GoodsSku goods = goodsSkuService.getById(goodsSeckill.getGoodsSkuId());
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java
new file mode 100644
index 0000000..93d95ed
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.goods.service.impl;
+
+import com.ruoyi.goods.domain.MemberGoodsCollection;
+import com.ruoyi.goods.mapper.MemberGoodsCollectionMapper;
+import com.ruoyi.goods.service.IMemberGoodsCollectionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 会员收藏普通商品 服务实现类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-27
+ */
+@Service
+public class MemberGoodsCollectionServiceImpl extends ServiceImpl<MemberGoodsCollectionMapper, MemberGoodsCollection> implements IMemberGoodsCollectionService {
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/MemberGoodsCollectionMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/MemberGoodsCollectionMapper.xml
new file mode 100644
index 0000000..a45512c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/MemberGoodsCollectionMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.goods.mapper.MemberGoodsCollectionMapper">
+
+</mapper>

--
Gitblit v1.7.1