|
@@ -33,7 +33,6 @@ import shop.alien.mapper.ReviewCommentMapper;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 订单评价 服务实现类
|
|
* 订单评价 服务实现类
|
|
@@ -285,9 +284,6 @@ public class OrderReviewServiceImpl extends ServiceImpl<OrderReviewMapper, Order
|
|
|
if (reviewId == null) {
|
|
if (reviewId == null) {
|
|
|
return R.fail("评价ID不能为空");
|
|
return R.fail("评价ID不能为空");
|
|
|
}
|
|
}
|
|
|
- if (userId == null) {
|
|
|
|
|
- return R.fail("用户ID不能为空");
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
// 查询评价
|
|
// 查询评价
|
|
|
OrderReview review = this.getById(reviewId);
|
|
OrderReview review = this.getById(reviewId);
|
|
@@ -295,9 +291,11 @@ public class OrderReviewServiceImpl extends ServiceImpl<OrderReviewMapper, Order
|
|
|
return R.fail("评价不存在");
|
|
return R.fail("评价不存在");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 验证是否为评价用户
|
|
|
|
|
- if (!review.getUserId().equals(userId)) {
|
|
|
|
|
- return R.fail("只能删除自己的评价");
|
|
|
|
|
|
|
+ // 当userId有值时,验证是否为评价用户(只能删除自己的评价)
|
|
|
|
|
+ if (userId != null) {
|
|
|
|
|
+ if (!review.getUserId().equals(userId)) {
|
|
|
|
|
+ return R.fail("只能删除自己的评价");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 查询该评价下的所有评论
|
|
// 查询该评价下的所有评论
|
|
@@ -327,18 +325,29 @@ public class OrderReviewServiceImpl extends ServiceImpl<OrderReviewMapper, Order
|
|
|
.eq(ReviewComment::getHeadType, 1)
|
|
.eq(ReviewComment::getHeadType, 1)
|
|
|
.eq(ReviewComment::getDeleteFlag, 0);
|
|
.eq(ReviewComment::getDeleteFlag, 0);
|
|
|
replyUpdateWrapper.set(ReviewComment::getDeleteFlag, 1);
|
|
replyUpdateWrapper.set(ReviewComment::getDeleteFlag, 1);
|
|
|
- replyUpdateWrapper.set(ReviewComment::getUpdatedUserId, userId);
|
|
|
|
|
|
|
+ if (userId != null) {
|
|
|
|
|
+ replyUpdateWrapper.set(ReviewComment::getUpdatedUserId, userId);
|
|
|
|
|
+ }
|
|
|
replyUpdateWrapper.set(ReviewComment::getUpdatedTime, new Date());
|
|
replyUpdateWrapper.set(ReviewComment::getUpdatedTime, new Date());
|
|
|
reviewCommentService.remove(replyUpdateWrapper);
|
|
reviewCommentService.remove(replyUpdateWrapper);
|
|
|
|
|
|
|
|
// 删除评论
|
|
// 删除评论
|
|
|
comment.setDeleteFlag(1);
|
|
comment.setDeleteFlag(1);
|
|
|
- comment.setUpdatedUserId(userId);
|
|
|
|
|
|
|
+ if (userId != null) {
|
|
|
|
|
+ comment.setUpdatedUserId(userId);
|
|
|
|
|
+ }
|
|
|
comment.setUpdatedTime(new Date());
|
|
comment.setUpdatedTime(new Date());
|
|
|
reviewCommentService.removeById(comment.getId());
|
|
reviewCommentService.removeById(comment.getId());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- log.info("删除评价成功,评价ID={}", reviewId);
|
|
|
|
|
|
|
+ // 更新律师评分
|
|
|
|
|
+ updateLawyerServiceScore(review.getLawyerUserId());
|
|
|
|
|
+
|
|
|
|
|
+ if (userId != null) {
|
|
|
|
|
+ log.info("删除评价成功,评价ID={}, 操作人ID={}", reviewId, userId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.info("管理员删除评价成功,评价ID={}", reviewId);
|
|
|
|
|
+ }
|
|
|
return R.data(true, "删除成功");
|
|
return R.data(true, "删除成功");
|
|
|
} else {
|
|
} else {
|
|
|
log.error("删除评价失败,评价ID={}", reviewId);
|
|
log.error("删除评价失败,评价ID={}", reviewId);
|
|
@@ -505,17 +514,14 @@ public class OrderReviewServiceImpl extends ServiceImpl<OrderReviewMapper, Order
|
|
|
if (!CollectionUtils.isEmpty(records)) {
|
|
if (!CollectionUtils.isEmpty(records)) {
|
|
|
// 删除点赞记录(逻辑删除)
|
|
// 删除点赞记录(逻辑删除)
|
|
|
for (LifeLikeRecord record : records) {
|
|
for (LifeLikeRecord record : records) {
|
|
|
- record.setDeleteFlag(1);
|
|
|
|
|
- record.setUpdatedUserId(userId);
|
|
|
|
|
- record.setUpdatedTime(new Date());
|
|
|
|
|
- lifeLikeRecordMapper.updateById(record);
|
|
|
|
|
|
|
+ int updateResult = lifeLikeRecordMapper.deleteById(record.getId());
|
|
|
|
|
+ log.info("逻辑删除点赞记录,recordId={}, updateResult={}", record.getId(), updateResult);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 更新评价点赞数
|
|
|
|
|
|
|
+ // 更新评价点赞数(移除 gt 条件,确保即使为 0 也能正确更新)
|
|
|
LambdaUpdateWrapper<OrderReview> updateWrapper = new LambdaUpdateWrapper<>();
|
|
LambdaUpdateWrapper<OrderReview> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
updateWrapper.eq(OrderReview::getId, reviewId);
|
|
updateWrapper.eq(OrderReview::getId, reviewId);
|
|
|
- updateWrapper.gt(OrderReview::getLikeCount, 0);
|
|
|
|
|
- updateWrapper.setSql("like_count = like_count - 1");
|
|
|
|
|
|
|
+ updateWrapper.setSql("like_count = GREATEST(0, like_count - 1)");
|
|
|
int result = orderReviewMapper.update(null, updateWrapper);
|
|
int result = orderReviewMapper.update(null, updateWrapper);
|
|
|
|
|
|
|
|
if (result > 0) {
|
|
if (result > 0) {
|