| package com.zy.acs.manager.manager.service.impl; | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
| import com.zy.acs.manager.manager.entity.Segment; | 
| import com.zy.acs.manager.manager.entity.Travel; | 
| import com.zy.acs.manager.manager.enums.SegmentStateType; | 
| import com.zy.acs.manager.manager.enums.TravelStateType; | 
| import com.zy.acs.manager.manager.mapper.TravelMapper; | 
| import com.zy.acs.manager.manager.service.SegmentService; | 
| import com.zy.acs.manager.manager.service.TravelService; | 
| import com.zy.acs.framework.exception.CoolException; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
|   | 
| import java.util.Date; | 
| import java.util.List; | 
|   | 
| @Service("travelService") | 
| public class TravelServiceImpl extends ServiceImpl<TravelMapper, Travel> implements TravelService { | 
|   | 
|     @Autowired | 
|     private SegmentService segmentService; | 
|   | 
|     @Override | 
|     public void checkFinish(Long travelId) { | 
|         Travel travel = this.getById(travelId); | 
|         if (TravelStateType.FINISH.toString().equals(travel.getState())) { | 
|             return; | 
|         } | 
|         List<Segment> segmentList = segmentService.list(new LambdaQueryWrapper<Segment>().eq(Segment::getTravelId, travelId)); | 
|         boolean finish = true; | 
|         for (Segment segment : segmentList) { | 
|             if (!SegmentStateType.FINISH.toString().equals(segment.getState())) { | 
|                 finish = false; | 
|                 break; | 
|             } | 
|         } | 
|         if (finish) { | 
|             travel.setState(TravelStateType.FINISH.toString()); | 
|             travel.setUpdateTime(new Date()); | 
|             if (!this.updateById(travel)) { | 
|                 throw new CoolException("更新Travel失败"); | 
|             } | 
|         } | 
|     } | 
|   | 
| } |