Compare commits

..

11 Commits

6 changed files with 64 additions and 47 deletions

View File

@ -74,6 +74,7 @@ public interface OrderConvert {
@Mapping(source = "orderMainPO.damageAmount", target = "damageAmount"), @Mapping(source = "orderMainPO.damageAmount", target = "damageAmount"),
@Mapping(source = "orderMainPO.damageDesc", target = "damageDesc"), @Mapping(source = "orderMainPO.damageDesc", target = "damageDesc"),
@Mapping(source = "companyStoreDTO.name", target = "storeName"), @Mapping(source = "companyStoreDTO.name", target = "storeName"),
@Mapping(source = "companyStoreDTO.phone", target = "storePhone"),
@Mapping(source = "companyStoreDTO.detailedAddress", target = "detailedAddress"), @Mapping(source = "companyStoreDTO.detailedAddress", target = "detailedAddress"),
@Mapping(source = "companyStoreDTO.latitude", target = "latitude"), @Mapping(source = "companyStoreDTO.latitude", target = "latitude"),
@Mapping(source = "companyStoreDTO.longitude", target = "longitude"), @Mapping(source = "companyStoreDTO.longitude", target = "longitude"),

View File

@ -25,6 +25,9 @@ public class OrderDetailDTO {
@ApiModelProperty("门店名称") @ApiModelProperty("门店名称")
private String storeName; private String storeName;
@ApiModelProperty("门店电话")
private String storePhone;
@ApiModelProperty("详细地址") @ApiModelProperty("详细地址")
private String detailedAddress; private String detailedAddress;

View File

@ -27,4 +27,7 @@ public class PayOrderDTO {
@ApiModelProperty("支付状态") @ApiModelProperty("支付状态")
private String payStatus; private String payStatus;
@ApiModelProperty("子订单类型(首租、续租、逾期、押金、租电等)")
private String suborderType;
} }

View File

@ -584,7 +584,7 @@ public class OrderServiceImpl implements OrderService {
} }
LambdaQueryWrapper<OrderSubPO> querySubWrapper2 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderSubPO> querySubWrapper2 = new LambdaQueryWrapper<>();
querySubWrapper2.eq(OrderSubPO::getOrderId, orderMainPO.getOrderId()) querySubWrapper2.eq(OrderSubPO::getOrderId, orderMainPO.getOrderId())
.in(OrderSubPO::getPayStatus, Arrays.asList(PayStatusEnum.SUCCESS.getCode(), PayStatusEnum.REFUNDING.getCode(), PayStatusEnum.REFUND_SUCCESS.getCode())).orderByDesc(OrderSubPO::getUpdateTime); .in(OrderSubPO::getPayStatus, Arrays.asList(PayStatusEnum.USERPAYING.getCode(),PayStatusEnum.SUCCESS.getCode(), PayStatusEnum.REFUNDING.getCode(), PayStatusEnum.REFUND_SUCCESS.getCode())).orderByDesc(OrderSubPO::getUpdateTime);
List<OrderSubPO> orderSubPOList2 = orderSubRepo.list(querySubWrapper2); List<OrderSubPO> orderSubPOList2 = orderSubRepo.list(querySubWrapper2);
if(!CollectionUtils.isEmpty(orderSubPOList2)){ if(!CollectionUtils.isEmpty(orderSubPOList2)){
orderDetailDTO.setLastPayOrderNo(orderSubPOList2.get(0).getPaymentId()); orderDetailDTO.setLastPayOrderNo(orderSubPOList2.get(0).getPaymentId());
@ -688,14 +688,15 @@ public class OrderServiceImpl implements OrderService {
return getOrderDetailByOrderNo(orderMainPO.getOrderNo()); return getOrderDetailByOrderNo(orderMainPO.getOrderNo());
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void rejectRentOrder(RejectOrderReq rejectOrderReq) { public void rejectRentOrder(RejectOrderReq rejectOrderReq) {
OrderMainPO orderMainPO = queryOrderMainPoByOrderNo(rejectOrderReq.getOrderNo(), "0"); OrderMainPO orderMainPO = queryOrderMainPoByOrderNo(rejectOrderReq.getOrderNo(), "0");
if(!orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode())){ if(!orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode()) && !orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_RETURN.getCode())){
throw new BizException("订单状态异常,非待取车状态,无法驳回"); throw new BizException("订单状态异常,非待取车或待还车状态,无法驳回");
} }
SimpleUserInfoDTO userInfoDTO = jwtUtil.getUserInfoFromToken(); SimpleUserInfoDTO userInfoDTO = jwtUtil.getUserInfoFromToken();
if(orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode())){
//获取租车子订单 //获取租车子订单
LambdaQueryWrapper<OrderSubPO> orderSubWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderSubPO> orderSubWrapper = new LambdaQueryWrapper<>();
orderSubWrapper.eq(OrderSubPO::getOrderId, orderMainPO.getOrderId()) orderSubWrapper.eq(OrderSubPO::getOrderId, orderMainPO.getOrderId())
@ -725,10 +726,19 @@ public class OrderServiceImpl implements OrderService {
fdSubOrder.setPaymentId(orderSubPO.getPaymentId()); fdSubOrder.setPaymentId(orderSubPO.getPaymentId());
fdSubOrder.setRefundId(outRefundNo); fdSubOrder.setRefundId(outRefundNo);
fdSubOrder.setRemark(rejectOrderReq.getRejectReason()); fdSubOrder.setRemark(rejectOrderReq.getRejectReason());
fdSubOrder.setCreatedAt(LocalDateTime.now());
orderSubRepo.save(fdSubOrder); orderSubRepo.save(fdSubOrder);
} }
} }
}); });
} else {
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_ING.getCode());
updateWrapper.set(OrderMainPO::getActEndRentTime, LocalDateTime.now());
updateWrapper.eq(OrderMainPO::getOrderNo, rejectOrderReq.getOrderNo());
orderMainRepo.update(updateWrapper);
}
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)

View File

@ -14,11 +14,11 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Collections; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* 当前未提车订单处理任务 * 当前未提车或未还车订单处理任务
*/ */
@Slf4j @Slf4j
@Component @Component
@ -41,34 +41,34 @@ public class NoPickCarProcessTask {
@Scheduled(cron = "0 5 0 * * ?")//0点过5分执行 @Scheduled(cron = "0 5 0 * * ?")//0点过5分执行
@SchedulerLock(name = "checkNoPickCarOrders", lockAtMostFor = "9m", lockAtLeastFor = "1m") @SchedulerLock(name = "checkNoPickCarOrders", lockAtMostFor = "9m", lockAtLeastFor = "1m")
public void checkNoPickCarOrders() { public void checkNoPickCarOrders() {
log.info("开始执行当天未提车订单检查任务"); log.info("开始执行当天未提车或未还车订单检查任务");
try { try {
processNoPickCarOrders(); processNoPickCarOrders();
log.info("当天未提车订单检查任务执行完成"); log.info("当天未提车或未还车订单检查任务执行完成");
} catch (Exception e) { } catch (Exception e) {
log.error("当天未提车订单检查任务失败", e); log.error("当天未提车或未还车订单检查任务失败", e);
} }
} }
/** /**
* 处理当天未提车订单 * 处理当天未提车或未还车订单
*/ */
private void processNoPickCarOrders() { private void processNoPickCarOrders() {
try { try {
// 查询所有进行中的订单且当前时间已超过预计还车时间 // 查询所有进行中的订单且当前时间已超过预计还车时间
LambdaQueryWrapper<OrderMainPO> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderMainPO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OrderMainPO::getDelFlag, "0").in(OrderMainPO::getOrderStatus, queryWrapper.eq(OrderMainPO::getDelFlag, "0").in(OrderMainPO::getOrderStatus,
Collections.singletonList(OrderStatusEnum.WAIT_PICK.getCode())) Arrays.asList(OrderStatusEnum.WAIT_PICK.getCode(), OrderStatusEnum.WAIT_RETURN.getCode()))
.lt(OrderMainPO::getUpdateTime, LocalDateTime.now()); .lt(OrderMainPO::getUpdateTime, LocalDateTime.now());
List<OrderMainPO> orders = orderMainRepo.list(queryWrapper); List<OrderMainPO> orders = orderMainRepo.list(queryWrapper);
if (orders.isEmpty()) { if (orders.isEmpty()) {
log.info("无当天未提车订单"); log.info("无当天未提车或未还车订单");
return; return;
} }
log.info("发现{}个当天未提车订单,开始处理", orders.size()); log.info("发现{}个当天未提车或未还车订单,开始处理", orders.size());
int successCount = 0; int successCount = 0;
for (OrderMainPO order : orders) { for (OrderMainPO order : orders) {
@ -79,20 +79,20 @@ public class NoPickCarProcessTask {
} }
} }
log.info("当天未提车订单处理完成,成功处理{}个订单", successCount); log.info("当天未提车或未还车订单处理完成,成功处理{}个订单", successCount);
} catch (Exception e) { } catch (Exception e) {
log.error("处理当天未提车订单失败", e); log.error("处理当天未提车或未还车订单失败", e);
throw e; throw e;
} }
} }
/** /**
* 处理当天未提车订单 * 处理当天未提车或未还车订单
* *
* @param orderMainPO * @param orderMainPO
*/ */
private void processWayPay(OrderMainPO orderMainPO) { private void processWayPay(OrderMainPO orderMainPO) {
RejectOrderReq rejectOrderReq = new RejectOrderReq(orderMainPO.getOrderNo(), "当天未提车取消"); RejectOrderReq rejectOrderReq = new RejectOrderReq(orderMainPO.getOrderNo(), "当天未提车或未还车取消");
orderService.rejectRentOrder(rejectOrderReq); orderService.rejectRentOrder(rejectOrderReq);
} }
} }

View File

@ -52,7 +52,7 @@
</foreach> </foreach>
</if> </if>
<if test="queryBrandName != null and queryBrandName != ''"> <if test="queryBrandName != null and queryBrandName != ''">
and m.brand_name like concat('%', #{queryBrandName}, '%') and (m.brand_name like concat('%', #{queryBrandName}, '%') or m.model_name like concat('%', #{queryBrandName}, '%'))
</if> </if>
</where> </where>
order by o.update_time desc order by o.update_time desc