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<OrderPositionMapper, OrderPosition> implements IOrderPositionService {
|
|
@Resource
|
private OrderPositionMapper orderPositionMapper;
|
|
@Resource
|
private MongoTemplate mongoTemplate;
|
|
|
/**
|
* 获取轨迹数据
|
*
|
* @param orderId
|
* @param orderType
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public List<Map<String, Object>> queryTrack(Integer orderId, Integer orderType) throws Exception {
|
List<OrderPosition> positions = queryPosition(orderId, orderType);
|
List<Map<String, Object>> lonlat = new ArrayList<>();
|
for (OrderPosition orderPosition : positions) {
|
Map<String, Object> 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<OrderPosition> 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<OrderPosition> positions = mongoTemplate.find(query, OrderPosition.class);
|
return positions;
|
}
|
}
|