Переглянути джерело

商品发布业务代码初始化

wxd 1 місяць тому
батько
коміт
749b70361f

+ 60 - 0
alien-entity/src/main/java/shop/alien/entity/second/SecondShield.java

@@ -0,0 +1,60 @@
+package shop.alien.entity.second;
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 二手屏蔽
+ */
+@Data
+@JsonInclude
+@TableName("second_shield")
+public class SecondShield implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键ID")
+    private Integer id;
+
+    @TableField("user_id")
+    @ApiModelProperty(value = "用户ID")
+    private Integer userId;
+
+    @TableField("shield_id")
+    @ApiModelProperty(value = "屏蔽ID")
+    private Integer shieldId;
+
+    @TableField("shield_type")
+    @ApiModelProperty(value = "屏蔽类型 1:商品 2:卖家")
+    private Integer shieldType;
+
+    @TableField("delete_flag")
+    @ApiModelProperty(value = "删除标记 0:未删除 1:已删除")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @TableField(value = "created_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createdTime;
+
+    @TableField("created_user_id")
+    @ApiModelProperty(value = "创建人ID")
+    private Integer createdUserId;
+
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updatedTime;
+
+    @TableField("updated_user_id")
+    @ApiModelProperty(value = "修改人ID")
+    private Integer updatedUserId;
+}

+ 27 - 4
alien-second/src/main/java/shop/alien/second/controller/SecondGoodsController.java

@@ -1,29 +1,38 @@
 package shop.alien.second.controller;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
+import io.swagger.annotations.ApiSort;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.second.SecondGoods;
 import shop.alien.entity.second.vo.SecondGoodsVo;
 import shop.alien.second.service.SecondGoodsService;
+import shop.alien.util.common.JwtUtil;
 
 import java.util.List;
 
 /**
  * 二手商品控制器
  */
+@Slf4j
+@Api(tags = {"二手平台-商品管理"})
+@ApiSort(1)
+@CrossOrigin
 @RestController
 @RequestMapping("/secondGoods")
-@Api(tags = "二手商品管理")
+@RequiredArgsConstructor
 public class SecondGoodsController {
 
-    @Autowired
-    private SecondGoodsService secondGoodsService;
+    private final SecondGoodsService secondGoodsService;
 
     /**
      * 获取所有二手商品
@@ -72,6 +81,20 @@ public class SecondGoodsController {
     }
 
     /**
+     * 获取用户屏蔽的商品列表(分页)
+     */
+    @GetMapping("/shielded-list")
+    @ApiOperation("获取用户屏蔽的商品列表(分页)")
+    public R<IPage<SecondGoods>> getShieldedGoodsList(
+            @ApiParam("当前页码") @RequestParam Integer pageNum,
+            @ApiParam("每页数量") @RequestParam Integer pageSize,
+            @ApiParam("用户ID") @RequestParam Integer userId,
+            @ApiParam("屏蔽类型 1:商品 2:卖家") @RequestParam Integer shieldType) {
+        IPage<SecondGoods> page = new Page<>(pageNum, pageSize);
+        return R.data(secondGoodsService.getShieldedGoodsListByType(page, userId, shieldType), "获取成功");
+    }
+
+    /**
      * 添加二手商品
      */
     @PostMapping("/save")

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

@@ -34,4 +34,19 @@ public interface SecondGoodsMapper extends BaseMapper<SecondGoods> {
      * @return 包含图片信息的二手商品列表
      */
     IPage<SecondGoods> selectGoodsWithImages(IPage<SecondGoods> page, @Param("categoryId") Integer categoryId, @Param("status") Integer status);
+
+    /**
+     * 查询用户屏蔽的商品列表
+     * @param page 分页参数
+     * @param userId 用户ID
+     * @return 分页后的屏蔽商品列表
+     */
+    IPage<SecondGoods> getShieldedGoodsListByType(IPage<SecondGoods> page, @Param("userId") Integer userId, @Param("shieldType") Integer shieldType);
+
+    /**
+     * 查询用户屏蔽的商品列表
+     * @param userId 用户ID
+     * @return 屏蔽的商品列表
+     */
+    List<SecondGoods> getShieldedGoodsList(@Param("userId") Integer userId);
 }

+ 18 - 0
alien-second/src/main/java/shop/alien/second/service/SecondGoodsService.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import shop.alien.entity.second.SecondGoods;
 import shop.alien.entity.second.vo.SecondGoodsVo;
 
+import java.util.List;
+
 /**
  * 二手商品服务接口
  */
@@ -34,4 +36,20 @@ public interface SecondGoodsService extends IService<SecondGoods> {
      * @return 二手商品列表
      */
     IPage<SecondGoods> getGoodsWithImages(IPage<SecondGoods> page, Integer categoryId, Integer status);
+
+    /**
+     * 获取用户屏蔽的商品列表
+     * @param userId 用户ID
+     * @return 屏蔽的商品列表
+     */
+    List<SecondGoods> getShieldedGoodsList(Integer userId);
+
+    /**
+     * 获取用户屏蔽的商品列表(分页)
+     * @param page 分页参数
+     * @param userId 用户ID
+     * @param shieldType 屏蔽类型
+     * @return 分页后的屏蔽商品列表
+     */
+    IPage<SecondGoods> getShieldedGoodsListByType(IPage<SecondGoods> page, Integer userId, Integer shieldType);
 }

+ 15 - 0
alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsServiceImpl.java

@@ -235,4 +235,19 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
         // 示例返回占位符
         return "http://example.com/covers/" + System.currentTimeMillis() + ".jpg";
     }
+
+    /**
+     * 获取用户屏蔽的商品列表
+     * @param userId 用户ID
+     * @return 屏蔽的商品列表
+     */
+    @Override
+    public List<SecondGoods> getShieldedGoodsList(Integer userId) {
+        return secondGoodsMapper.getShieldedGoodsList(userId);
+    }
+
+    @Override
+    public IPage<SecondGoods> getShieldedGoodsListByType(IPage<SecondGoods> page, Integer userId, Integer shieldType) {
+        return secondGoodsMapper.getShieldedGoodsListByType(page, userId, shieldType);
+    }
 }

+ 11 - 0
alien-second/src/main/resources/mapper/SecondGoodsMapper.xml

@@ -54,4 +54,15 @@
             </if>
         </where>
     </select>
+
+    <!-- 查询用户屏蔽的商品列表 -->
+    <select id="getShieldedGoodsListByType" resultType="shop.alien.entity.second.SecondGoods">
+        SELECT sg.*
+        FROM second_goods sg
+        INNER JOIN second_shield ss ON 
+            (sg.id = ss.shield_id AND ss.shield_type = 1) OR 
+            (sg.user_id = ss.shield_id AND ss.shield_type = 2)
+        WHERE ss.user_id = #{userId} AND ss.delete_flag = 0 AND sg.delete_flag = 0
+        AND ss.shield_type = #{shieldType}
+    </select>
 </mapper>