package com.stylefeng.guns.modular.system.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.modular.system.dao.OrderPositionMapper; import com.stylefeng.guns.modular.system.model.OrderPosition; import com.stylefeng.guns.modular.system.service.IOrderPositionService; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class OrderPositionServiceImpl extends ServiceImpl implements IOrderPositionService { @Resource private OrderPositionMapper orderPositionMapper; @Resource private MongoTemplate mongoTemplate; /** * 获取轨迹数据 * * @param orderId * @param orderType * @return * @throws Exception */ @Override public List> queryTrack(Integer orderId, Integer orderType) throws Exception { List positions = queryPosition(orderId, orderType); List> lonlat = new ArrayList<>(); for (OrderPosition orderPosition : positions) { Map map = new HashMap<>(); map.put("lon", orderPosition.getLon()); map.put("lat", orderPosition.getLat()); lonlat.add(map); } return lonlat; } /** * 获取坐标文件中的坐标数据 * * @param orderId * @param orderType * @return * @throws Exception */ @Override public List queryPosition(Integer orderId, Integer orderType) throws Exception { Query query = new Query() .addCriteria(Criteria.where("orderId").is(orderId).and("orderType").is(orderType)) .with(new Sort(Sort.Direction.ASC, "insertTime")); List positions = mongoTemplate.find(query, OrderPosition.class); return positions; } }