Jelajahi Sumber

feat(second): 二手商品记录添加用户信息

- 在二手商品详情页面添加用户名称和联系方式展示
- 修改相关服务接口,增加用户信息查询和设置
- 优化数据查询逻辑,提高页面加载效率
- 在 SecondGoodsRecord 类中添加 userId 字段
- 在 SecondGoodsRecordDetailVo 中添加用户电话、用户 ID、用户名称和操作名称字段
- 更新 fromRecord 方法以设置新增的字段值
- 在 SecondTradeRecordVo 类中添加了 userPhone 和 userName 字段
- 实现用户信息的查询和关联
- 优化二手商品详情和交易记录的展示
wxd 3 bulan lalu
induk
melakukan
710ac27ff3

+ 5 - 1
alien-entity/src/main/java/shop/alien/entity/second/SecondGoodsRecord.java

@@ -20,7 +20,11 @@ public class SecondGoodsRecord implements Serializable {
     @ApiModelProperty(value = "主键ID")
     private Integer id;
 
-    
+
+    @TableField("user_id")
+    @ApiModelProperty(value = "用户ID")
+    private Integer userId;
+
     @TableField("goods_id")
     @ApiModelProperty(value = "商品ID")
     private Integer goodsId;

+ 19 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondGoodsRecordDetailVo.java

@@ -1,5 +1,6 @@
 package shop.alien.entity.second.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -21,6 +22,22 @@ public class SecondGoodsRecordDetailVo {
     @ApiModelProperty(value = "商品ID")
     private Integer goodsId;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "用户电话")
+    private String userPhone;
+
+    @TableField("user_id")
+    @ApiModelProperty(value = "用户ID")
+    private Integer userId;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+    @TableField("operation_name")
+    @ApiModelProperty(value = "操作名称")
+    private String operationName;
+
     @ApiModelProperty(value = "商品标题")
     private String title;
 
@@ -101,6 +118,8 @@ public class SecondGoodsRecordDetailVo {
     public static SecondGoodsRecordDetailVo fromRecord(SecondGoodsRecord record) {
         SecondGoodsRecordDetailVo vo = new SecondGoodsRecordDetailVo();
         vo.setId(record.getId());
+        vo.setUserId(record.getUserId());
+        vo.setOperationName(record.getOperationName());
         vo.setGoodsId(record.getGoodsId());
         vo.setTitle(record.getTitle());
         vo.setDescription(record.getDescription());

+ 9 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondTradeRecordVo.java

@@ -1,6 +1,7 @@
 package shop.alien.entity.second.vo;
 
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -26,6 +27,14 @@ public class SecondTradeRecordVo extends SecondTradeRecord {
     @ApiModelProperty(value = "商品标题")
     private String title;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "用户电话")
+    private String userPhone;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
     @ApiModelProperty(value = "商品封面图片")
     private String homeImage;
 

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

@@ -160,6 +160,16 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
         // 2. 转换为VO对象
         SecondGoodsRecordDetailVo detailVo = SecondGoodsRecordDetailVo.fromRecord(record);
 
+        // 获取联系人
+        QueryWrapper<LifeUser> userQueryWrapper = new QueryWrapper<>();
+        userQueryWrapper.lambda()
+                .eq(LifeUser::getId, record.getUserId())
+                .eq(LifeUser::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED);
+        LifeUser user = lifeUserMapper.selectOne(userQueryWrapper);
+
+        detailVo.setUserName(user.getUserName());
+        detailVo.setUserPhone(user.getUserPhone());
+
         // 3. 获取商品图片列表
         QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
         imageQueryWrapper.lambda()
@@ -208,6 +218,14 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
                 secondTradeRecordVos.add(secondTradeRecordVo);
                 // 交易节点
                 secondTradeRecordVo.setOperationJsonList(platformSecondTradeService.getOperationJsonList(tradeRecord.getId()));
+                // 获取联系人
+                QueryWrapper<LifeUser> userQueryWrapper = new QueryWrapper<>();
+                userQueryWrapper.lambda()
+                        .eq(LifeUser::getId, secondTradeRecordVo.getBuyerId())
+                        .eq(LifeUser::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED);
+                LifeUser user = lifeUserMapper.selectOne(userQueryWrapper);
+                secondTradeRecordVo.setUserName(user.getUserName());
+                secondTradeRecordVo.setUserPhone(user.getUserPhone());
             }
         }
         detailVo.setTradeRecords(secondTradeRecordVos);
@@ -267,6 +285,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
             SecondGoodsRecord record = new SecondGoodsRecord();
             record.setOperationName(operationName);
             record.setGoodsId(goods.getId());
+            record.setUserId(goods.getUserId());
             record.setTitle(goods.getTitle());
             record.setDescription(goods.getDescription());
             // 价格转换