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