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 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 segmentList = segmentService.list(new LambdaQueryWrapper().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失败"); } } } }