Răsfoiți Sursa

按照人员ID查询评价列表 查看评价明细的时候 反馈人员信息

lutong 3 luni în urmă
părinte
comite
704510e18a

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreStaffReviewDetailVo.java

@@ -3,6 +3,7 @@ package shop.alien.entity.store.vo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
+import shop.alien.entity.store.StoreStaffConfig;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -21,5 +22,8 @@ public class StoreStaffReviewDetailVo {
 
 
     @ApiModelProperty(value = "评论列表(包含回复)")
     @ApiModelProperty(value = "评论列表(包含回复)")
     private List<StoreStaffCommentVo> commentList;
     private List<StoreStaffCommentVo> commentList;
+
+    @ApiModelProperty(value = "人员信息")
+    private StoreStaffConfig staffInfo;
 }
 }
 
 

+ 25 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreStaffReviewListWithStaffVo.java

@@ -0,0 +1,25 @@
+package shop.alien.entity.store.vo;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.StoreStaffConfig;
+
+/**
+ * 员工评价列表(包含人员信息)VO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "StoreStaffReviewListWithStaffVo对象", description = "员工评价列表(包含人员信息)VO")
+public class StoreStaffReviewListWithStaffVo {
+
+    @ApiModelProperty(value = "人员信息")
+    private StoreStaffConfig staffInfo;
+
+    @ApiModelProperty(value = "评价列表")
+    private IPage<StoreStaffReviewVo> reviewList;
+}
+

+ 23 - 0
alien-store/src/main/java/shop/alien/store/controller/StoreStaffReviewController.java

@@ -9,6 +9,7 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreStaffReview;
 import shop.alien.entity.store.StoreStaffReview;
 import shop.alien.entity.store.dto.StoreStaffReviewDto;
 import shop.alien.entity.store.dto.StoreStaffReviewDto;
 import shop.alien.entity.store.vo.StoreStaffReviewDetailVo;
 import shop.alien.entity.store.vo.StoreStaffReviewDetailVo;
+import shop.alien.entity.store.vo.StoreStaffReviewListWithStaffVo;
 import shop.alien.entity.store.vo.StoreStaffReviewVo;
 import shop.alien.entity.store.vo.StoreStaffReviewVo;
 import shop.alien.store.service.StoreStaffReviewService;
 import shop.alien.store.service.StoreStaffReviewService;
 
 
@@ -159,4 +160,26 @@ public class StoreStaffReviewController {
         }
         }
         return storeStaffReviewService.deleteReviewByAdmin(reviewId);
         return storeStaffReviewService.deleteReviewByAdmin(reviewId);
     }
     }
+
+    @ApiOperation("根据人员ID查询评价列表(包含人员信息)")
+    @ApiOperationSupport(order = 8)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page", value = "页数(默认1)", dataTypeClass = Integer.class, paramType = "query", required = false),
+            @ApiImplicitParam(name = "size", value = "页容(默认10)", dataTypeClass = Integer.class, paramType = "query", required = false),
+            @ApiImplicitParam(name = "staffUserId", value = "人员ID(必填)", dataTypeClass = Integer.class, paramType = "query", required = true),
+            @ApiImplicitParam(name = "currentUserId", value = "当前用户ID(用于判断是否已点赞)", dataTypeClass = Integer.class, paramType = "query", required = false)
+    })
+    @GetMapping("/list/byStaffId")
+    public R<StoreStaffReviewListWithStaffVo> getReviewListByStaffId(
+            @RequestParam(defaultValue = "1") int page,
+            @RequestParam(defaultValue = "10") int size,
+            @RequestParam Integer staffUserId,
+            @RequestParam(required = false) Integer currentUserId) {
+        log.info("根据人员ID查询评价列表, page={}, size={}, staffUserId={}, currentUserId={}",
+                page, size, staffUserId, currentUserId);
+        if (staffUserId == null) {
+            return R.fail("人员ID不能为空");
+        }
+        return storeStaffReviewService.getReviewListByStaffId(page, size, staffUserId, currentUserId);
+    }
 }
 }

+ 12 - 0
alien-store/src/main/java/shop/alien/store/service/StoreStaffReviewService.java

@@ -6,6 +6,7 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreStaffReview;
 import shop.alien.entity.store.StoreStaffReview;
 import shop.alien.entity.store.dto.StoreStaffReviewDto;
 import shop.alien.entity.store.dto.StoreStaffReviewDto;
 import shop.alien.entity.store.vo.StoreStaffReviewDetailVo;
 import shop.alien.entity.store.vo.StoreStaffReviewDetailVo;
+import shop.alien.entity.store.vo.StoreStaffReviewListWithStaffVo;
 import shop.alien.entity.store.vo.StoreStaffReviewVo;
 import shop.alien.entity.store.vo.StoreStaffReviewVo;
 
 
 /**
 /**
@@ -79,5 +80,16 @@ public interface StoreStaffReviewService extends IService<StoreStaffReview> {
      * @return R<Boolean>
      * @return R<Boolean>
      */
      */
     R<Boolean> deleteReviewByAdmin(Integer reviewId);
     R<Boolean> deleteReviewByAdmin(Integer reviewId);
+
+    /**
+     * 根据人员ID查询评价列表(包含人员信息)
+     *
+     * @param pageNum 页码
+     * @param pageSize 页大小
+     * @param staffUserId 员工用户ID(必填)
+     * @param currentUserId 当前用户ID(用于判断是否已点赞,可为null)
+     * @return R<StoreStaffReviewListWithStaffVo>
+     */
+    R<StoreStaffReviewListWithStaffVo> getReviewListByStaffId(int pageNum, int pageSize, Integer staffUserId, Integer currentUserId);
 }
 }
 
 

+ 47 - 0
alien-store/src/main/java/shop/alien/store/service/impl/StoreStaffReviewServiceImpl.java

@@ -19,6 +19,7 @@ import shop.alien.entity.store.StoreStaffReview;
 import shop.alien.entity.store.dto.StoreStaffReviewDto;
 import shop.alien.entity.store.dto.StoreStaffReviewDto;
 import shop.alien.entity.store.vo.StoreStaffCommentVo;
 import shop.alien.entity.store.vo.StoreStaffCommentVo;
 import shop.alien.entity.store.vo.StoreStaffReviewDetailVo;
 import shop.alien.entity.store.vo.StoreStaffReviewDetailVo;
+import shop.alien.entity.store.vo.StoreStaffReviewListWithStaffVo;
 import shop.alien.entity.store.vo.StoreStaffReviewVo;
 import shop.alien.entity.store.vo.StoreStaffReviewVo;
 import shop.alien.entity.store.StoreStaffConfig;
 import shop.alien.entity.store.StoreStaffConfig;
 import shop.alien.mapper.LifeLikeRecordMapper;
 import shop.alien.mapper.LifeLikeRecordMapper;
@@ -122,10 +123,21 @@ public class StoreStaffReviewServiceImpl extends ServiceImpl<StoreStaffReviewMap
             });
             });
         }
         }
 
 
+        // 查询人员信息
+        StoreStaffConfig staffInfo = null;
+        if (reviewVo.getStaffUserId() != null) {
+            try {
+                staffInfo = storeStaffConfigMapper.selectById(reviewVo.getStaffUserId());
+            } catch (Exception e) {
+                log.warn("查询人员信息失败, staffUserId={}, error={}", reviewVo.getStaffUserId(), e.getMessage());
+            }
+        }
+
         // 构建返回结果
         // 构建返回结果
         StoreStaffReviewDetailVo detailVo = new StoreStaffReviewDetailVo();
         StoreStaffReviewDetailVo detailVo = new StoreStaffReviewDetailVo();
         detailVo.setReview(reviewVo);
         detailVo.setReview(reviewVo);
         detailVo.setCommentList(comments != null ? comments : new ArrayList<>());
         detailVo.setCommentList(comments != null ? comments : new ArrayList<>());
+        detailVo.setStaffInfo(staffInfo);
 
 
         return R.data(detailVo);
         return R.data(detailVo);
     }
     }
@@ -473,4 +485,39 @@ public class StoreStaffReviewServiceImpl extends ServiceImpl<StoreStaffReviewMap
         comment.setUpdatedTime(new Date());
         comment.setUpdatedTime(new Date());
         storeStaffCommentService.updateById(comment);
         storeStaffCommentService.updateById(comment);
     }
     }
+
+    @Override
+    public R<StoreStaffReviewListWithStaffVo> getReviewListByStaffId(int pageNum, int pageSize, Integer staffUserId, Integer currentUserId) {
+        log.info("根据人员ID查询评价列表, pageNum={}, pageSize={}, staffUserId={}, currentUserId={}",
+                pageNum, pageSize, staffUserId, currentUserId);
+
+        if (staffUserId == null) {
+            return R.fail("人员ID不能为空");
+        }
+
+        // 查询人员信息
+        StoreStaffConfig staffInfo = null;
+        try {
+            staffInfo = storeStaffConfigMapper.selectById(staffUserId);
+            if (staffInfo == null) {
+                log.warn("人员信息不存在, staffUserId={}", staffUserId);
+            }
+        } catch (Exception e) {
+            log.warn("查询人员信息失败, staffUserId={}, error={}", staffUserId, e.getMessage());
+        }
+
+        // 查询评价列表
+        Page<StoreStaffReviewVo> page = new Page<>(pageNum, pageSize);
+        IPage<StoreStaffReviewVo> reviewList = storeStaffReviewMapper.getReviewListWithUser(page, staffUserId, null, currentUserId);
+
+        // 处理评价图片JSON字符串转换为列表
+        reviewList.getRecords().forEach(this::parseReviewImages);
+
+        // 构建返回结果
+        StoreStaffReviewListWithStaffVo result = new StoreStaffReviewListWithStaffVo();
+        result.setStaffInfo(staffInfo);
+        result.setReviewList(reviewList);
+
+        return R.data(result);
+    }
 }
 }