Jelajahi Sumber

订单模块代码优化

wangzhijun 1 bulan lalu
induk
melakukan
74e3ec08ee

+ 18 - 89
nightFragrance-massage/src/main/java/com/ylx/order/service/impl/TOrderServiceImpl.java

@@ -265,17 +265,9 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
     @Override
     public void logicDeleteOrder(Long orderId) {
         // 1. 查询订单是否存在
-        TOrder order = getById(orderId);
-        if (order == null) {
-            throw new ServiceException("订单不存在");
-        }
-
-        // 3. 如果已经是删除状态,可提示或直接返回
-        if (Integer.valueOf(1).equals(order.getIsDelete())) {
-            throw new ServiceException("订单已在回收站中");
-        }
+        TOrder order = validateAndGetOrder(orderId, null);
 
-        // 4. 执行逻辑删除
+        // 2. 执行逻辑删除
         order.setIsDelete(DELETED);
         order.setDeletedTime(LocalDateTime.now());
         boolean updated = updateById(order);
@@ -316,10 +308,8 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         Integer newStatus = dto.getStatus();
 
         // 1. 查询订单
-        TOrder order = this.baseMapper.selectById(orderId);
-        if (order == null) {
-            throw new ServiceException("订单不存在");
-        }
+        TOrder order = validateAndGetOrder(orderId, null);
+
         Integer oldStatus = order.getStatus();
 
         // 2. 更新订单状态
@@ -494,15 +484,8 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
      */
     @Override
     public OrderDetailVO getOrderDetailById(Long orderId) {
-        if (orderId == null || orderId <= 0) {
-            throw new ServiceException("订单ID无效");
-        }
-
         // 1. 根据ID查询订单主表
-        TOrder order = this.baseMapper.selectById(orderId);
-        if (order == null || order.getIsDelete() == DELETED) {
-            throw new ServiceException("订单不存在,订单ID:" + orderId);
-        }
+        TOrder order = validateAndGetOrder(orderId, null);
 
         // 2. 查询订单状态流转记录
         LambdaQueryWrapper<OrderStatusFlow> flowWrapper = Wrappers.<OrderStatusFlow>lambdaQuery().eq(OrderStatusFlow::getOrderId, order.getId()).orderByAsc(OrderStatusFlow::getCreateTime);
@@ -656,15 +639,13 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int cancelOrder(OrderCancleDTO dto) {
+        Long orderId = dto.getId();
+        Long userId = this.getCurrentUserId();
         // 1. 查询订单
-        TOrder order = this.baseMapper.selectById(dto.getId());
-        if (order == null) {
-            throw new IllegalArgumentException("订单不存在");
-        }
+        TOrder order = validateAndGetOrder(orderId, null);
 
         // 2. 权限校验:仅限订单所属用户取消
-        Long currentUserId = SecurityUtils.getUserId();
-        if (!order.getUserId().equals(currentUserId)) {
+        if (!order.getUserId().equals(userId)) {
             throw new RuntimeException("您无权操作此订单");
         }
 
@@ -680,7 +661,7 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
 
         // 5. 执行取消更新
         TOrder updateOrder = new TOrder();
-        updateOrder.setId(dto.getId());
+        updateOrder.setId(orderId);
         updateOrder.setStatus(OrderStatusEnum.CANCELLED.getCode());
         updateOrder.setCancelledReason(dto.getCancelledReason());
         updateOrder.setCancelledTime(LocalDateTime.now());
@@ -832,22 +813,14 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         Long orderId = dto.getOrderId();
 
         // 2. 查询订单:只查归属商户、未删除、手机号字段
-        TOrder order = baseMapper.selectOne(Wrappers.lambdaQuery(TOrder.class)
-                .select(TOrder::getId, TOrder::getMerchantId, TOrder::getContactPhoneNumber)
-                .eq(TOrder::getId, orderId)
-                .eq(TOrder::getMerchantId, merchantId)
-                .eq(TOrder::getIsDelete, NOT_DELETE));
+        TOrder order = validateAndGetOrder(orderId, merchantId);
 
-        // 3. 校验订单
-        if (ObjectUtil.isNull(order)) {
-            throw new ServiceException("订单不存在或不属于当前商户");
-        }
         String phone = order.getContactPhoneNumber();
         if (StrUtil.isBlank(phone)) {
             throw new ServiceException("该订单未预留客户联系电话");
         }
 
-        // 4. 封装返回明文手机号
+        // 3. 封装返回明文手机号
         OrderCustomerPhoneVO vo = new OrderCustomerPhoneVO();
         vo.setContactPhoneNumber(phone);
         return vo;
@@ -863,16 +836,7 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         String cancelReason = dto.getCancelReason();
 
         // 2. 查询订单基础信息
-        TOrder order = baseMapper.selectOne(Wrappers.lambdaQuery(TOrder.class)
-                .select(TOrder::getId, TOrder::getMerchantId, TOrder::getStatus, TOrder::getUserId, TOrder::getFinalAmount, TOrder::getProjectId)
-                .eq(TOrder::getId, orderId)
-                .eq(TOrder::getMerchantId, merchantId)
-                .eq(TOrder::getIsDelete, NOT_DELETE));
-
-        // 订单不存在/不属于当前商户
-        if (ObjectUtil.isNull(order)) {
-            throw new ServiceException("订单不存在,无法操作");
-        }
+        TOrder order = validateAndGetOrder(orderId, merchantId);
 
         // 3. 状态校验:仅【商户已接单】允许取消转售后
         Integer statusCode = order.getStatus();
@@ -941,14 +905,7 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         Long merchantId = Long.parseLong(loginUser.getId());
         Long orderId = dto.getOrderId();
 
-        TOrder order = baseMapper.selectOne(Wrappers.lambdaQuery(TOrder.class)
-                .select(TOrder::getId, TOrder::getMerchantId, TOrder::getStatus, TOrder::getArrivedTime)
-                .eq(TOrder::getId, orderId)
-                .eq(TOrder::getMerchantId, merchantId)
-                .eq(TOrder::getIsDelete, NOT_DELETE));
-        if (ObjectUtil.isNull(order)) {
-            throw new ServiceException("订单不存在或不属于当前商户");
-        }
+        TOrder order = validateAndGetOrder(orderId, merchantId);
 
         // 判断当前订单状态判断是否为【已到达】的订单,非【已到达】订单直接抛出异常(前端toast提示操作失败)
         if (ObjectUtil.isNull(order.getArrivedTime())) {
@@ -984,14 +941,7 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         Long merchantId = Long.parseLong(loginUser.getId());
         Long orderId = dto.getOrderId();
 
-        TOrder order = baseMapper.selectOne(Wrappers.lambdaQuery(TOrder.class)
-                .select(TOrder::getId, TOrder::getMerchantId, TOrder::getStatus, TOrder::getStartTime)
-                .eq(TOrder::getId, orderId)
-                .eq(TOrder::getMerchantId, merchantId)
-                .eq(TOrder::getIsDelete, NOT_DELETE));
-        if (ObjectUtil.isNull(order)) {
-            throw new ServiceException("订单不存在或不属于当前商户");
-        }
+        TOrder order = validateAndGetOrder(orderId, merchantId);
 
         Integer status = order.getStatus();
         if (!OrderStatusEnum.IN_SERVICE.getCode().equals(status)) {
@@ -1046,14 +996,7 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         String phoneTail = dto.getPhoneTail();
 
         // 查询订单
-        TOrder order = baseMapper.selectOne(Wrappers.lambdaQuery(TOrder.class)
-                .select(TOrder::getId, TOrder::getMerchantId, TOrder::getExecStatus, TOrder::getContactPhoneNumber)
-                .eq(TOrder::getId, orderId)
-                .eq(TOrder::getMerchantId, merchantId)
-                .eq(TOrder::getIsDelete, NOT_DELETE));
-        if (ObjectUtil.isNull(order)) {
-            throw new ServiceException("订单不存在或不属于当前商户");
-        }
+        TOrder order = validateAndGetOrder(orderId, merchantId);
 
         Integer execStatus = order.getExecStatus();
 
@@ -1113,14 +1056,7 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
     public MerchantOrderDetailVO getMerchantOrderDetail(MerchantOrderDetailDTO dto) {
 
         // 1. 根据ID查询订单主表
-        TOrder order = this.baseMapper.selectById(dto.getOrderId());
-        if (ObjectUtil.isNull(order)) {
-            throw new ServiceException("订单不存在");
-        }
-
-        if (ObjectUtil.notEqual(order.getIsDelete(), NOT_DELETE)) {
-            throw new ServiceException("订单已被删除");
-        }
+        TOrder order = validateAndGetOrder(dto.getOrderId(), null);
 
         MerchantOrderDetailVO vo = new MerchantOrderDetailVO<>();
 
@@ -1209,14 +1145,7 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         Long orderId = dto.getOrderId();
 
         // 查询订单
-        TOrder order = baseMapper.selectOne(Wrappers.lambdaQuery(TOrder.class)
-                .select(TOrder::getId, TOrder::getMerchantId, TOrder::getStatus)
-                .eq(TOrder::getId, orderId)
-                .eq(TOrder::getMerchantId, merchantId)
-                .eq(TOrder::getIsDelete, NOT_DELETE));
-        if (ObjectUtil.isNull(order)) {
-            throw new ServiceException("订单不存在或不属于当前商户");
-        }
+        TOrder order = validateAndGetOrder(orderId, merchantId);
 
         // 获取履约状态
         Integer execStatus = order.getExecStatus();