package com.stylefeng.guns.modular.system.service.impl; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; 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.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; 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; @Value("${filePath}") private String filePath; /** * 获取轨迹数据 * @param orderId * @param orderType * @return * @throws Exception */ @Override public List> queryTrack(Integer orderId, Integer orderType) throws Exception { // return orderPositionMapper.queryTrack(orderId, orderType); //将数据存储到文件中 File file = new File(filePath + orderId + "_" + orderType + ".txt"); if(!file.exists()){ return new ArrayList<>(); } //读取文件(字符流) BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); //循环取出数据 String str = null; StringBuffer sb = new StringBuffer(); while ((str = in.readLine()) != null) { sb.append(str); } List list = JSONArray.parseArray(sb.toString(), OrderPosition.class); List> lonlat = new ArrayList<>(); for(OrderPosition orderPosition : list){ 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{ //将数据存储到文件中 File file = new File(filePath + orderId + "_" + orderType + ".txt"); if(!file.exists()){ return new ArrayList<>(); } //读取文件(字符流) BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); //循环取出数据 String str = null; StringBuffer sb = new StringBuffer(); while ((str = in.readLine()) != null) { sb.append(str); } List list = new ArrayList<>(); if(ToolUtil.isNotEmpty(sb.toString())){ list = JSONArray.parseArray(sb.toString(), OrderPosition.class); } System.err.println("坐标:" + sb); return list; } }