package org.springblade.modules.equipage.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import liquibase.pro.packaged.C; import lombok.AllArgsConstructor; import org.apache.commons.io.FileUtils; import org.apache.commons.net.ftp.FTPConnectionClosedException; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.equipage.entity.Car; import org.springblade.modules.equipage.service.CarService; import org.springblade.modules.equipage.vo.CarVo; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.*; import java.io.*; import java.net.URL; import java.net.URLDecoder; import java.nio.charset.Charset; import java.util.*; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; import static org.springblade.common.config.FtpConfig.*; /** * @author zhongrj * @time 2021-07-06 * @desc 车辆控制层 */ @RestController @AllArgsConstructor @RequestMapping("/car") public class CarController { private final CarService carService; private static String csvurl; /** * 自定义分页 * * @param query page,size * @param car 车辆信息对象 */ @GetMapping("/page") public R> page(CarVo car, Query query) { IPage pages = carService.selectCarPage(Condition.getPage(query), car); return R.data(pages); } /** * 新增 * * @param car 车辆信息对象 */ @PostMapping("/save") @ApiOperation(value = "新增", notes = "传入car") public R save(@RequestBody Car car) { return R.status(carService.save(car)); } /** * 修改 * * @param car 车辆信息对象 */ @PostMapping("/update") public R update(@RequestBody Car car) { return R.status(carService.updateById(car)); } /** * 新增或修改 * * @param car 车辆信息对象 */ @PostMapping("/submit") public R submit(@RequestBody Car car) { return R.status(carService.saveOrUpdate(car)); } /** * 删除 * * @param ids 车辆信息ids 数组 */ @PostMapping("/remove") public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { return R.status(carService.removeByIds(Func.toLongList(ids))); } /** * 详情 * * @param car 车辆信息对象 */ @GetMapping("/detail") @ApiOperation(value = "详情", notes = "传入car") public R detail(Car car) { CarVo detail = carService.selectCarInfo(car); return R.data(detail); } /** * 查询车辆实时位置 */ @GetMapping("/locationcar") public String locationcar(String imei) { String url = "http://dvopenapi.aimap.net.cn/openapi/device/location"; String res = null; Map params = new HashMap<>(); params.put("imei", imei); params.put("appId", "PO00000761"); params.put("timestamp", System.currentTimeMillis()); String secert = "dXRGb2pRNVdWOGQ3d1ouV29UYzc1MnJaUnBwTzUx"; String computeSign = ""; try { computeSign = Md5SignUtil.signRequest(params, secert); } catch (IOException e1) { e1.printStackTrace(); } params.put("sign", computeSign); try { //String res = HttpReqUtil.getInstance().doGet(url, params, null); res = HttpReqUtil.getInstance().doPost(url, params, null); System.out.println("----" + res); } catch (Exception e) { e.printStackTrace(); } return res; } /** * 查询车辆轨迹 */ @GetMapping("/locationhistoryTrack") public R locationhistoryTrack(String beginTime, String endTime, String rectify,String callbackId) throws AWTException { String url = "http://dvopenapi.aimap.net.cn/openapi/device/historyTrack"; String res = null; Map params = new HashMap<>(); params.put("imei", "861636056082414"); params.put("beginTime", beginTime); params.put("endTime", endTime); params.put("rectify", rectify); params.put("callbackUrl", "http://2h3f861221.wicp.vip/car/SaveUrl"); params.put("callbackId", callbackId); params.put("appId", "PO00000761"); params.put("timestamp", System.currentTimeMillis()); String secert = "dXRGb2pRNVdWOGQ3d1ouV29UYzc1MnJaUnBwTzUx"; String computeSign = ""; try { computeSign = Md5SignUtil.signRequest(params, secert); } catch (IOException e1) { e1.printStackTrace(); } params.put("sign", computeSign); try { //String res = HttpReqUtil.getInstance().doGet(url, params, null); res = HttpReqUtil.getInstance().doPost(url, params, null); Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } return R.data(csvurl); } /** * 实时视频直播指令下发接口 */ @GetMapping("/cmd") public String cmd(int camera, String action) { String url = "http://dvopenapi.aimap.net.cn/openapi/live/cmd"; String res = null; Map params = new HashMap<>(); //设备imei号 params.put("imei", "861636056082414"); //摄像头ID params.put("camera", camera); //实时视频指令类型 params.put("action", action); params.put("appId", "PO00000761"); params.put("timestamp", System.currentTimeMillis()); String secert = "dXRGb2pRNVdWOGQ3d1ouV29UYzc1MnJaUnBwTzUx"; String computeSign = ""; try { computeSign = Md5SignUtil.signRequest(params, secert); } catch (IOException e1) { e1.printStackTrace(); } params.put("sign", computeSign); try { //String res = HttpReqUtil.getInstance().doGet(url, params, null); long startTime=System.currentTimeMillis(); //获取开始时间 res = HttpReqUtil.getInstance().doPost(url, params, null); long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(endTime-startTime)+"ms"); } catch (Exception e) { e.printStackTrace(); } return res; } /** * 轨迹回调 * * @param callbackId * @param fileUrl * @throws UnsupportedEncodingException */ @PostMapping("/SaveUrl") @ApiOperation(value = "详情", notes = "传入car") public void SaveUrl(String callbackId, String fileUrl) throws Exception { csvurl = null; DowloadZipUtil dowloadZipUtil = new DowloadZipUtil(); File file = dowloadZipUtil.downloadFile(fileUrl, "D:\\caiji"); //文件名 String name = file.getName(); String substring = name.substring(0, name.length() - 4); //解压数据 FileZip fileZip = new FileZip(); fileZip.ZipUncompress("D:\\caiji\\" + substring + ".zip", "D:\\caiji"); csvurl =substring + ".csv"; } /** * 人员 * @return * @throws Exception */ @GetMapping("/Peo") public String cs() throws Exception { String url = "http://223.82.109.183:2080/Escort/getgis.php"; Map params = new HashMap<>(); //设备imei号 params.put("acc", "7731"); String res = null; res = HttpReqUtil.getInstance().doPost(url, params, null); return res; } /** * 轨迹 * @return * @throws Exception */ @GetMapping("/Peog") public String Peocar() throws Exception { String url = "http://223.82.109.183:2080/Escort/getgistrack.php"; Map params = new HashMap<>(); //设备imei号 params.put("number", "7730"); params.put("acc", "7731"); String res = null; res = HttpReqUtil.getInstance().doPost(url, params, null); return res; } }