Przeglądaj źródła

搜索热榜修改

wxd 3 tygodni temu
rodzic
commit
4dc0396e91

+ 8 - 0
alien-entity/src/main/java/shop/alien/entity/second/SecondGoods.java

@@ -20,6 +20,14 @@ import java.util.Date;
 public class SecondGoods implements Serializable {
     private static final long serialVersionUID = 1L;
 
+    // 商品状态常量
+    public static final int STATUS_DRAFT = 0; // 草稿
+    public static final int STATUS_REVIEWING = 1; // 审核中
+    public static final int STATUS_REVIEW_FAILED = 2; // 审核失败
+    public static final int STATUS_ON_SALE = 3; // 已上架
+    public static final int STATUS_OFF_SALE = 4; // 已下架
+    public static final int STATUS_SOLD_OUT = 5; // 已售出
+
     @TableId(value = "id", type = IdType.AUTO)
     @ApiModelProperty(value = "主键ID")
     private Integer id;

+ 59 - 0
alien-entity/src/main/java/shop/alien/mapper/second/SecondGoodsMapper.java

@@ -186,4 +186,63 @@ public interface SecondGoodsMapper extends BaseMapper<SecondGoods> {
             "on sg.category_two_id = sgc2.id "+
             "${ew.customSqlSegment}")
     IPage<SecondGoodsVo> getUserGoodsPage(IPage<SecondGoodsVo> page, QueryWrapper<SecondGoodsVo> queryWrapper);
+
+    /**
+     * 获取我的商品列表
+     * @param page 分页参数
+     * @param queryWrapper 查询条件
+     * @return 商品列表
+     */
+    @Select("SELECT " +
+            "sg.*, " +
+            "sgc1.category_name as categoryOneName, " +
+            "sgc2.category_name as categoryTwoName, "+
+            "ROUND(ST_Distance_Sphere(ST_GeomFromText(CONCAT('POINT(',#{currentLongitude},' ',#{currentLatitude} , ')' )), ST_GeomFromText(CONCAT('POINT(', REPLACE(sg.position, ',', ' '), ')' ))) / 1000, 2) AS distance "+
+            " FROM second_goods sg " +
+            "left JOIN second_goods_category sgc1 " +
+            "on sg.category_one_id = sgc1.id " +
+            "left JOIN second_goods_category sgc2 " +
+            "on sg.category_two_id = sgc2.id "+
+            "${ew.customSqlSegment}")
+    IPage<SecondGoodsVo> getMyGoodsPage(IPage<SecondGoodsVo> page, QueryWrapper<SecondGoodsVo> queryWrapper);
+
+    /**
+     * 获取我的草稿列表
+     * @param page 分页参数
+     * @param queryWrapper 查询条件
+     * @return 商品列表
+     */
+    @Select("SELECT " +
+            "sg.*, " +
+            "sgc1.category_name as categoryOneName, " +
+            "sgc2.category_name as categoryTwoName, "+
+            "ROUND(ST_Distance_Sphere(ST_GeomFromText(CONCAT('POINT(',#{currentLongitude},' ',#{currentLatitude} , ')' )), ST_GeomFromText(CONCAT('POINT(', REPLACE(sg.position, ',', ' '), ')' ))) / 1000, 2) AS distance "+
+            " FROM second_goods sg " +
+            "left JOIN second_goods_category sgc1 " +
+            "on sg.category_one_id = sgc1.id " +
+            "left JOIN second_goods_category sgc2 " +
+            "on sg.category_two_id = sgc2.id "+
+            "${ew.customSqlSegment}")
+    IPage<SecondGoodsVo> getDraftList(IPage<SecondGoodsVo> page, QueryWrapper<SecondGoodsVo> queryWrapper);
+
+    /**
+     * 获取用户点赞的商品列表
+     * @param page 分页参数
+     * @param queryWrapper 查询条件
+     * @return 点赞的商品列表
+     */
+    @Select("SELECT " +
+            "sg.*, " +
+            "sgc1.category_name as categoryOneName, " +
+            "sgc2.category_name as categoryTwoName, "+
+            "ROUND(ST_Distance_Sphere(ST_GeomFromText(CONCAT('POINT(',#{currentLongitude},' ',#{currentLatitude} , ')' )), ST_GeomFromText(CONCAT('POINT(', REPLACE(sg.position, ',', ' '), ')' ))) / 1000, 2) AS distance "+
+            " FROM second_goods sg " +
+            "left JOIN life_like_record lc " +
+            "on sg.id = lc.huifu_id " +
+            "left JOIN second_goods_category sgc1 " +
+            "on sg.category_one_id = sgc1.id " +
+            "left JOIN second_goods_category sgc2 " +
+            "on sg.category_two_id = sgc2.id "+
+            "${ew.customSqlSegment}")
+    IPage<SecondGoodsVo> getLikeGoodsPage(IPage<SecondGoodsVo> page, QueryWrapper<SecondGoodsVo> queryWrapper);
 }

+ 2 - 2
alien-entity/src/main/resources/mapper/second/SecondGoodsMapper.xml

@@ -56,7 +56,7 @@
     <select id="getHotSellingRankingTop10" resultType="shop.alien.entity.second.SecondGoods">
         SELECT label, SUM(like_count) AS like_count
         FROM second_goods
-        WHERE delete_flag = 0
+        WHERE delete_flag = 0 and label IS NOT NULL and goods_status = 3
         GROUP BY label
         ORDER BY like_count DESC
         LIMIT 10
@@ -66,7 +66,7 @@
     <select id="getCollectTop10" resultType="shop.alien.entity.second.SecondGoods">
         SELECT label, SUM(collect_count) AS collect_count
         FROM second_goods
-        WHERE delete_flag = 0
+        WHERE delete_flag = 0 and label IS NOT NULL and goods_status = 3
         GROUP BY label
         ORDER BY collect_count DESC
             LIMIT 10

+ 125 - 20
alien-second/src/main/java/shop/alien/second/controller/SecondGoodsController.java

@@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiSort;
+import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
@@ -39,6 +36,7 @@ public class SecondGoodsController {
     @GetMapping("/getSecondGoodsById")
     @ApiOperation("根据ID获取二手商品 - 商品编辑回显")
     public R<SecondGoodsVo> getSecondGoodsById(@ApiParam("根据ID获取二手商品 - 商品编辑回显") @RequestParam Integer id) {
+        log.info("SecondGoodsController.getSecondGoodsById?id={}", id);
         return R.data(secondGoodsService.getSecondGoodsById(id), "获取成功");
     }
 
@@ -48,6 +46,7 @@ public class SecondGoodsController {
     @PostMapping("/save")
     @ApiOperation("发布二手商品")
     public R<Void> addSecondGoods(@ApiParam("二手商品信息") @RequestBody SecondGoodsVo secondGoods) {
+        log.info("SecondGoodsController.addSecondGoods?secondGoods={}", secondGoods.toString());
         JSONObject data = JwtUtil.getCurrentUserInfo();
         if (null != data) {
             int userId = data.getInteger("userId");
@@ -73,6 +72,7 @@ public class SecondGoodsController {
     @PostMapping("/edit")
     @ApiOperation("更新二手商品")
     public R<Void> updateSecondGoods(@ApiParam("二手商品信息") @RequestBody SecondGoodsVo secondGoods) {
+        log.info("SecondGoodsController.updateSecondGoods?secondGoods={}", secondGoods.toString());
         // 添加商品 0 创建 1 更新
         if (!secondGoodsService.createBasicInfo(secondGoods,1)) {
             return R.fail("添加二手商品失败");
@@ -87,6 +87,7 @@ public class SecondGoodsController {
     @PostMapping("/shelve")
     @ApiOperation("上架二手商品")
     public R<Void> shelveSecondGoods(@ApiParam("上架二手商品") @RequestBody SecondGoodsVo secondGoods) {
+        log.info("SecondGoodsController.shelveSecondGoods?secondGoods={}", secondGoods.toString());
         // 修改商品状态为3 - 已上架
         secondGoods.setGoodsStatus(3);
         secondGoodsService.updateById(secondGoods);
@@ -99,6 +100,7 @@ public class SecondGoodsController {
     @PostMapping("/delete")
     @ApiOperation("删除二手商品")
     public R<Void> deleteSecondGoods(@ApiParam("删除二手商品") @RequestBody SecondGoodsVo secondGoods) {
+        log.info("SecondGoodsController.deleteSecondGoods?secondGoods={}", secondGoods.toString());
         secondGoodsService.removeById(secondGoods.getId());
         return R.success("删除成功");
     }
@@ -110,6 +112,7 @@ public class SecondGoodsController {
     @ApiOperation("搜索结果-商品列表")
     public R<IPage<SecondGoodsVo>> searchGoodsList(
             @ApiParam("二手商品搜索条件") @RequestBody SecondGoodsVo secondGoodsVo) {
+        log.info("SecondGoodsController.searchGoodsList?secondGoodsVo={}", secondGoodsVo.toString());
         R<IPage<SecondGoodsVo>> result = new R<>();
         IPage<SecondGoodsVo> page = new Page<>(secondGoodsVo.getPageNum(), secondGoodsVo.getPageSize());
         JSONObject data = JwtUtil.getCurrentUserInfo();
@@ -145,10 +148,14 @@ public class SecondGoodsController {
      */
     @GetMapping("/getShieldedGoodsPage")
     @ApiOperation("获取用户屏蔽的商品列表(分页)")
+    @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "size", value = "分页条数", dataType = "Integer", paramType = "query", required = true)})
     public R<IPage<SecondGoodsVo>> getShieldedGoodsPage(
-            @ApiParam("分页参数") @RequestBody SecondGoodsVo secondGoodsVo) {
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
+        log.info("SecondGoodsController.getShieldedGoodsPage?page={},size={},", pageNum,pageSize);
         R<IPage<SecondGoodsVo>> result = new R<>();
-        IPage<SecondGoodsVo> page = new Page<>(secondGoodsVo.getPageNum(), secondGoodsVo.getPageSize());
+        IPage<SecondGoodsVo> page = new Page<>(pageNum, pageSize);
         JSONObject data = JwtUtil.getCurrentUserInfo();
         if (null != data) {
             int userId = data.getInteger("userId");
@@ -162,10 +169,14 @@ public class SecondGoodsController {
      */
     @GetMapping("/getCollectGoodsPage")
     @ApiOperation("我收藏的商品列表-分页")
+    @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "size", value = "分页条数", dataType = "Integer", paramType = "query", required = true)})
     public R<IPage<SecondGoodsVo>> getCollectGoodsPage(
-            @ApiParam("分页参数") @RequestBody SecondGoodsVo secondGoodsVo) {
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
+        log.info("SecondGoodsController.getCollectGoodsPage?page={},size={},", pageNum,pageSize);
         R<IPage<SecondGoodsVo>> result = new R<>();
-        IPage<SecondGoodsVo> page = new Page<>(secondGoodsVo.getPageNum(), secondGoodsVo.getPageSize());
+        IPage<SecondGoodsVo> page = new Page<>(pageNum,pageSize);
         JSONObject data = JwtUtil.getCurrentUserInfo();
         if (null != data) {
             int userId = data.getInteger("userId");
@@ -175,31 +186,61 @@ public class SecondGoodsController {
     }
 
     /**
-     * 我卖出的商品列表-分页
+     * 我的商品-个人主页用户发布的商品
      */
-    @GetMapping("/getSellGoodsPage")
-    @ApiOperation("根据商品状态获取商品列表 - 0:草稿(我的草稿列表) 1:审核中 2:审核失败 3:已上架 4:已下架 5:已售出(我卖出的商品列表) -分页")
-    public R<IPage<SecondGoodsVo>> getSellGoodsPage(
-            @ApiParam("分页参数") @RequestBody SecondGoodsVo secondGoodsVo) {
+    @GetMapping("/getMyGoodsPage")
+    @ApiOperation("我的商品-个人主页用户发布的商品")
+    @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "size", value = "分页条数", dataType = "Integer", paramType = "query", required = true)})
+    public R<IPage<SecondGoodsVo>> getMyGoodsPage(
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
+        log.info("SecondGoodsController.getMyGoodsPage?page={},size={},", pageNum,pageSize);
         R<IPage<SecondGoodsVo>> result = new R<>();
-        IPage<SecondGoodsVo> page = new Page<>(secondGoodsVo.getPageNum(), secondGoodsVo.getPageSize());
+        IPage<SecondGoodsVo> page = new Page<>(pageNum,pageSize);
         JSONObject data = JwtUtil.getCurrentUserInfo();
         if (null != data) {
             int userId = data.getInteger("userId");
-            result = R.data(secondGoodsService.getSellGoodsPage(page,secondGoodsVo,userId));
+            result = R.data(secondGoodsService.getMyGoodsPage(page,userId));
+        }
+        return result;
+    }
+
+    /**
+     * 获取商品草稿列表
+     */
+    @GetMapping("/getDraftList")
+    @ApiOperation("获取商品草稿列表")
+    @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "size", value = "分页条数", dataType = "Integer", paramType = "query", required = true)})
+    public R<IPage<SecondGoodsVo>> getDraftList(
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
+        log.info("SecondGoodsController.getDraftList?page={},size={},", pageNum,pageSize);
+        R<IPage<SecondGoodsVo>> result = new R<>();
+        IPage<SecondGoodsVo> page = new Page<>(pageNum,pageSize);
+        JSONObject data = JwtUtil.getCurrentUserInfo();
+        if (null != data) {
+            int userId = data.getInteger("userId");
+            result = R.data(secondGoodsService.getDraftList(page,userId));
         }
         return result;
     }
 
+
     /**
      * 我购买的商品列表-分页
      */
     @GetMapping("/getBuyGoodsPage")
     @ApiOperation("我购买的商品列表-分页")
+    @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "size", value = "分页条数", dataType = "Integer", paramType = "query", required = true)})
     public R<IPage<SecondGoodsVo>> getBuyGoodsPage(
-            @ApiParam("分页参数") @RequestBody SecondGoodsVo secondGoodsVo) {
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
+        log.info("SecondGoodsController.getDraftList?page={},size={},", pageNum,pageSize);
         R<IPage<SecondGoodsVo>> result = new R<>();
-        IPage<SecondGoodsVo> page = new Page<>(secondGoodsVo.getPageNum(), secondGoodsVo.getPageSize());
+        IPage<SecondGoodsVo> page = new Page<>(pageNum, pageNum);
         JSONObject data = JwtUtil.getCurrentUserInfo();
         if (null != data) {
             int userId = data.getInteger("userId");
@@ -213,10 +254,17 @@ public class SecondGoodsController {
      */
     @GetMapping("/getUserGoodsPage")
     @ApiOperation("他的商品-个人主页用户发布的商品")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "userId", value = "主页用户id", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "page", value = "分页页数", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "size", value = "分页条数", dataType = "Integer", paramType = "query", required = true)})
     public R<IPage<SecondGoodsVo>> getUserGoodsPage(
-            @ApiParam("分页参数") @RequestBody SecondGoodsVo secondGoodsVo) {
-        IPage<SecondGoodsVo> page = new Page<>(secondGoodsVo.getPageNum(), secondGoodsVo.getPageSize());
-        return R.data(secondGoodsService.getUserGoodsPage(page,secondGoodsVo));
+            @RequestParam Integer userId,
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
+        log.info("SecondGoodsController.getDraftList?userId={},page={},size={},",userId, pageNum,pageSize);
+        IPage<SecondGoodsVo> page = new Page<>(pageNum, pageSize);
+        return R.data(secondGoodsService.getUserGoodsPage(page, userId));
     }
 
     /**
@@ -225,6 +273,7 @@ public class SecondGoodsController {
     @GetMapping("/getDraftCount")
     @ApiOperation("获取商品草稿数量")
     public R<Integer> getDraftCount(@ApiParam("商品id") @RequestParam Integer goodsId) {
+        log.info("SecondGoodsController.getDraftCount?goodsId={}", goodsId);
         // 获取商品草稿数量
         QueryWrapper<SecondGoods> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda()
@@ -233,4 +282,60 @@ public class SecondGoodsController {
         return R.data(secondGoodsService.count(queryWrapper));
     }
 
+    /**
+     * 商品审核状态查询-消息跳转用
+     */
+    @GetMapping("/getGoodsAuditStatus")
+    @ApiOperation("商品审核状态查询-消息跳转用(商品状态 0:草稿 1:审核中 2:审核失败 3:已上架 4:已下架 5:已售出)")
+    public R<Integer> getGoodsAuditStatus(@ApiParam("商品id") @RequestParam Integer goodsId) {
+        log.info("SecondGoodsController.getGoodsAuditStatus?goodsId={}", goodsId);
+        // 获取商品审核状态
+        QueryWrapper<SecondGoods> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda()
+                .eq(SecondGoods::getId, goodsId);
+        return R.data(secondGoodsService.getOne(queryWrapper).getGoodsStatus());
+    }
+
+    /**
+     * 我的 - 点赞商品列表
+     */
+    @GetMapping("/getLikeGoodsPage")
+    @ApiOperation("我的 - 点赞商品列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page", value = "分页页数", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "size", value = "分页条数", dataType = "Integer", paramType = "query", required = true)})
+    public R<IPage<SecondGoodsVo>> getLikeGoodsPage(
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
+        log.info("SecondGoodsController.getLikeGoodsPage?page={},size={},", pageNum,pageSize);
+        IPage<SecondGoodsVo> page = new Page<>(pageNum, pageSize);
+        R<IPage<SecondGoodsVo>> result = new R<>();
+        JSONObject data = JwtUtil.getCurrentUserInfo();
+        if (null != data) {
+            int userId = data.getInteger("userId");
+            String phone = data.getString("phone");
+            result = R.data(secondGoodsService.getLikeGoodsPage(page,userId,phone));
+        }
+        return result;
+    }
+
+
+    /**
+     * 我的 - 交易列表
+     * 我卖出的商品列表-分页
+     */
+    @GetMapping("/getSellGoodsPage")
+    @ApiOperation("根据商品状态获取商品列表 - 0:草稿(我的草稿列表) 1:审核中 2:审核失败 3:已上架 4:已下架 5:已售出(我卖出的商品列表) -分页")
+    public R<IPage<SecondGoodsVo>> getSellGoodsPage(
+            @ApiParam("分页参数") @RequestBody SecondGoodsVo secondGoodsVo) {
+        log.info("SecondGoodsController.getSellGoodsPage?secondGoodsVo={}", secondGoodsVo.toString());
+        R<IPage<SecondGoodsVo>> result = new R<>();
+        IPage<SecondGoodsVo> page = new Page<>(secondGoodsVo.getPageNum(), secondGoodsVo.getPageSize());
+        JSONObject data = JwtUtil.getCurrentUserInfo();
+        if (null != data) {
+            int userId = data.getInteger("userId");
+            result = R.data(secondGoodsService.getSellGoodsPage(page,secondGoodsVo,userId));
+        }
+        return result;
+    }
 }

+ 26 - 1
alien-second/src/main/java/shop/alien/second/service/SecondGoodsService.java

@@ -107,5 +107,30 @@ public interface SecondGoodsService extends IService<SecondGoods> {
      * @param secondGoodsVo 搜索条件
      * @return 分页后的用户商品列表
      */
-    IPage<SecondGoodsVo> getUserGoodsPage(IPage<SecondGoodsVo> page, SecondGoodsVo secondGoodsVo);
+    IPage<SecondGoodsVo> getUserGoodsPage(IPage<SecondGoodsVo> page, Integer userId);
+
+    /**
+     * 获取个人主页用户发布的商品列表(分页)
+     * @param page 搜索条件
+     * @param userId 用户ID
+     * @return 分页后的用户商品列表
+     */
+    IPage<SecondGoodsVo> getMyGoodsPage(IPage<SecondGoodsVo> page, int userId);
+
+    /**
+     * 获取商品草稿列表(分页)
+     * @param page 搜索条件
+     * @param userId 用户ID
+     * @return 分页后的商品草稿列表
+     */
+    IPage<SecondGoodsVo> getDraftList(IPage<SecondGoodsVo> page, int userId);
+
+    /**
+     * 获取商品点赞商品列表(分页)
+     * @param page 搜索条件
+     * @param userId 用户ID
+     * @param phone 手机号
+     * @return 分页后的商品点赞商品列表
+     */
+    IPage<SecondGoodsVo> getLikeGoodsPage(IPage<SecondGoodsVo> page, int userId, String phone);
 }

+ 56 - 4
alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsServiceImpl.java

@@ -507,20 +507,71 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
     /**
      * 获取用户商品列表
      * @param page 分页参数
-     * @param secondGoodsVo 查询参数
+     * @param userId 主页用户id
      * @return IPage<SecondGoodsVo> 用户商品列表
      */
     @Override
-    public IPage<SecondGoodsVo> getUserGoodsPage(IPage<SecondGoodsVo> page, SecondGoodsVo secondGoodsVo) {
+    public IPage<SecondGoodsVo> getUserGoodsPage(IPage<SecondGoodsVo> page, Integer userId) {
         QueryWrapper<SecondGoodsVo> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("sg.delete_flag", 0)
-                .eq("sg.user_id", secondGoodsVo.getUserId()) // 主页用户ID
+                .eq("sg.user_id", userId) // 主页用户ID
                 .in("sg.goods_status",3,5) // 3-上架 5-已售出
-                .orderByAsc("distance");
+                .orderByAsc("FIELD(sg.goods_status, 3, 5)")
+                .orderByDesc("sg.release_time");
         return secondGoodsMapper.getUserGoodsPage(page, queryWrapper);
     }
 
     /**
+     * 获取我的商品列表
+     * @param page 分页参数
+     * @param userId 用户ID
+     * @return IPage<SecondGoodsVo> 我的商品列表
+     */
+    @Override
+    public IPage<SecondGoodsVo> getMyGoodsPage(IPage<SecondGoodsVo> page, int userId) {
+        QueryWrapper<SecondGoodsVo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("sg.delete_flag", 0)
+                .eq("sg.user_id", userId) // 用户ID
+                .in("sg.goods_status", 2, 3, 4, 5) // 3-上架 5-已售出
+                .orderByAsc("FIELD(sg.goods_status, 2, 4, 5, 3)")
+                .orderByDesc("sg.release_time");
+        return secondGoodsMapper.getMyGoodsPage(page, queryWrapper);
+    }
+
+    /**
+     * 获取草稿列表
+     * @param page 分页参数
+     * @param userId 用户ID
+     * @return IPage<SecondGoodsVo> 草稿列表
+     */
+    @Override
+    public IPage<SecondGoodsVo> getDraftList(IPage<SecondGoodsVo> page, int userId) {
+        QueryWrapper<SecondGoodsVo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("sg.delete_flag", 0)
+                .eq("sg.user_id", userId) // 用户ID
+                .eq("sg.goods_status", 0);
+        return secondGoodsMapper.getDraftList(page, queryWrapper);
+    }
+
+    /**
+     * 获取点赞商品列表
+     * @param page 分页参数
+     * @param userId 用户ID
+     * @param phone 手机号
+     * @return IPage<SecondGoodsVo> 点赞商品列表
+     */
+    @Override
+    public IPage<SecondGoodsVo> getLikeGoodsPage(IPage<SecondGoodsVo> page, int userId, String phone) {
+        QueryWrapper<SecondGoodsVo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("sg.delete_flag", 0)
+                .eq("lc.delete_flag",0)
+                .eq("lc.dianzan_id", "user_"+phone)
+                .eq("lc.type", 6) // 6-二手商品
+                .eq("sg.user_id", userId); // 用户ID
+        return secondGoodsMapper.getLikeGoodsPage(page, queryWrapper);
+    }
+
+    /**
      * 查询搜索结果
      * @param page 分页参数
      * @param secondGoodsVo 查询参数
@@ -532,6 +583,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
         QueryWrapper<SecondGoodsVo> queryWrapper = new QueryWrapper<>();
         queryWrapper.notIn(CollectionUtil.isNotEmpty(shieldedGoodsIds), "sg.id", shieldedGoodsIds)
                 .notIn(CollectionUtil.isNotEmpty(userIdList), "sg.user_id", userIdList)
+                .eq("sg.goods_status", 3)// 3-上架
                 .eq("sg.delete_flag", 0);
         // 添加对 searchData 的模糊查询
         if (!StringUtils.isEmpty(secondGoodsVo.getSearchData())) {