fix: 添加订单和商品存在性检查以改善评价流程 (pg)

- 在MemberEvaluationServiceImpl中引入订单和商品存在性检查。
- 当订单或商品不存在时,抛出异常以避免错误日志的产生。
- 同时,在OrderEveryDayTaskExecute中捕获异常时更新评价状态。
This commit is contained in:
misworga831 2024-12-12 16:53:20 +08:00
parent 554aed024c
commit 478dd1d201
2 changed files with 17 additions and 7 deletions

View File

@ -29,14 +29,14 @@ import cn.lili.modules.system.service.SettingService;
import cn.lili.timetask.handler.EveryDayExecute; import cn.lili.timetask.handler.EveryDayExecute;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import java.util.List;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author paulG * @author paulG
* @since 2021/3/11 * @since 2021/3/11
@ -198,8 +198,9 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
try { try {
memberEvaluationService.addMemberEvaluation(memberEvaluationDTO, false); memberEvaluationService.addMemberEvaluation(memberEvaluationDTO, false);
} catch (Exception e) { } catch (Exception e) {
// 修改订单货物评价状态为已评价避免无限调用评价异常
orderItemService.updateCommentStatus(orderItem.getSn(), CommentStatusEnum.FINISHED);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
} }

View File

@ -102,8 +102,18 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
public MemberEvaluationDTO addMemberEvaluation(MemberEvaluationDTO memberEvaluationDTO, Boolean isSelf) { public MemberEvaluationDTO addMemberEvaluation(MemberEvaluationDTO memberEvaluationDTO, Boolean isSelf) {
//获取子订单信息 //获取子订单信息
OrderItem orderItem = orderItemService.getBySn(memberEvaluationDTO.getOrderItemSn()); OrderItem orderItem = orderItemService.getBySn(memberEvaluationDTO.getOrderItemSn());
if (orderItem == null) {
throw new ServiceException(ResultCode.ORDER_ITEM_NOT_EXIST);
}
//获取订单信息 //获取订单信息
Order order = orderService.getBySn(orderItem.getOrderSn()); Order order = orderService.getBySn(orderItem.getOrderSn());
if (order == null) {
throw new ServiceException(ResultCode.ORDER_NOT_EXIST);
}
//检测是否可以添加会员评价 //检测是否可以添加会员评价
Member member; Member member;
@ -119,13 +129,12 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
throw new ServiceException(ResultCode.USER_NOT_EXIST); throw new ServiceException(ResultCode.USER_NOT_EXIST);
} }
} }
//获取商品信息 //获取商品信息
GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(memberEvaluationDTO.getSkuId()); GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(memberEvaluationDTO.getSkuId());
// 商品是否存在
if (goodsSku == null) { if (goodsSku == null) {
log.error("商品不存在商品ID" + memberEvaluationDTO.getSkuId()); throw new ServiceException(ResultCode.GOODS_NOT_EXIST);
return null;
} }
//新增用户评价 //新增用户评价