| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.zy.acs.framework.exception.CoolException; |
| | | import com.zy.acs.manager.core.service.MapService; |
| | | import com.zy.acs.manager.manager.entity.Code; |
| | | import com.zy.acs.manager.manager.entity.CodeGap; |
| | | import com.zy.acs.manager.manager.mapper.CodeGapMapper; |
| | | import com.zy.acs.manager.manager.service.CodeGapService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Service("codeGapService") |
| | | public class CodeGapServiceImpl extends ServiceImpl<CodeGapMapper, CodeGap> implements CodeGapService { |
| | | |
| | | @Autowired |
| | | private MapService mapService; |
| | | |
| | | @Override |
| | | public CodeGap createCodeGapByCode(Code code0, Code code1, Long userId) { |
| | | if (code0.getData().equals(code1.getData())) { |
| | | return null; |
| | | } |
| | | CodeGap codeGap = findByCodeOfBoth(code0.getId(), code1.getId()); |
| | | if (null == codeGap) { |
| | | Date now = new Date(); |
| | | codeGap = new CodeGap(); |
| | | |
| | | codeGap.setCode0(code0.getId()); |
| | | codeGap.setCode1(code1.getId()); |
| | | double distance = mapService.calculateDistance(code0.getX(), code0.getY(), code1.getX(), code1.getY()); |
| | | codeGap.setDistance(distance); |
| | | |
| | | codeGap.setStatus(1); |
| | | codeGap.setCreateBy(userId); |
| | | codeGap.setCreateTime(now); |
| | | codeGap.setUpdateBy(userId); |
| | | codeGap.setUpdateTime(now); |
| | | if (!this.save(codeGap)) { |
| | | throw new CoolException(code0.getData() + "-" + code1.getData() + " save fail![Route]"); |
| | | } |
| | | } |
| | | return codeGap; |
| | | } |
| | | |
| | | @Override |
| | | public CodeGap findByCodeOfBoth(Long code0, Long code1) { |
| | | CodeGap codeGap = getOne(new LambdaQueryWrapper<CodeGap>().eq(CodeGap::getCode0, code0).eq(CodeGap::getCode1, code1)); |