Compare commits
11 Commits
6b0a8ce008
...
zhangli-te
| Author | SHA1 | Date | |
|---|---|---|---|
| c1658a5972 | |||
| cdb3985120 | |||
| 3d91ab0aad | |||
| 1afa9895b0 | |||
| b2ea7e7a02 | |||
| 711f7c5954 | |||
| 152f82933f | |||
| 859fcdc118 | |||
| 798f68aa2b | |||
| 6ce070ffc7 | |||
| 47dc672789 |
@ -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"),
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -27,4 +27,7 @@ public class PayOrderDTO {
|
|||||||
|
|
||||||
@ApiModelProperty("支付状态")
|
@ApiModelProperty("支付状态")
|
||||||
private String payStatus;
|
private String payStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty("子订单类型(首租、续租、逾期、押金、租电等)")
|
||||||
|
private String suborderType;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user