| | |
| | | package com.xiaopeng.order.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.xiaopeng.api.model.order.XpOrderReassign; |
| | | import com.xiaopeng.common.core.enums.OrderStatusEnum; |
| | | import com.xiaopeng.order.mapper.XpOrderReassignMapper; |
| | | import com.xiaopeng.order.service.IXpOrderReassignService; |
| | | import com.xiaopeng.order.service.IXpOrderService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class XpOrderReassignServiceImpl extends ServiceImpl<XpOrderReassignMapper, XpOrderReassign> implements IXpOrderReassignService { |
| | | |
| | | @Resource |
| | | private IXpOrderService xpOrderService; |
| | | |
| | | /** |
| | | * 获取没有完成的数据 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<XpOrderReassign> findListNotComplete(){ |
| | | return baseMapper.findListNotComplete(); |
| | | } |
| | | |
| | | public XpOrderReassign getByOrderId(Long orderId){ |
| | | LambdaQueryWrapper<XpOrderReassign> query = new LambdaQueryWrapper<>(); |
| | | query.eq(XpOrderReassign::getOrderId,orderId); |
| | | return super.getOne(query); |
| | | } |
| | | |
| | | @Override |
| | | public boolean saveInfo(XpOrderReassign entity){ |
| | | boolean b = false; |
| | | XpOrderReassign byOrderId = getByOrderId(entity.getOrderId()); |
| | | |
| | | entity.setUpdateTime(LocalDateTime.now()); |
| | | if(byOrderId == null){ |
| | | entity.setCreateTime(LocalDateTime.now()); |
| | | b = save(entity); |
| | | }else{ |
| | | boolean canceled = false; |
| | | //修改数据 改派大于等于3次后将取消订单 |
| | | entity.setId(byOrderId.getId()); |
| | | entity.setReassignNum(byOrderId.getReassignNum()+1); |
| | | |
| | | if(!entity.getIsComplete() && entity.getReassignNum()>=3){//在改派订单中未获取到车辆 并改派次数 >=3 则直接完成 |
| | | entity.setIsComplete(true); |
| | | entity.setRemarks("改派3此后未获取匹配车辆,系统强制取消订单"); |
| | | canceled = true; |
| | | } |
| | | b = updateById(entity); |
| | | //是否取消订单 |
| | | if(canceled){ |
| | | xpOrderService.updateOrderStatus(entity.getOrderId(),OrderStatusEnum.CANCELED.getCode()); |
| | | } |
| | | } |
| | | return b; |
| | | } |
| | | |
| | | |
| | | } |