| | |
| | | if (lat > 90 || lat < -90) { |
| | | return clientError("纬度范围应该在-90到90"); |
| | | } |
| | | if (time == null) { |
| | | return clientError("时间戳不能为空"); |
| | | } |
| | | if (serviceName == null || serviceName.trim().isEmpty()) { |
| | | return clientError("服务名不能为空"); |
| | | } |
| | | SimuResult result = simuService.queryByPosition(lon, lat, time, serviceName); |
| | | if (result == null) { |
| | | return notFound("未查找到相关数据"); |
| | | } |
| | | return success(result); |
| | | } |
| | | |
| | | @ApiOperation(value = "realTime") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "date1", value = "5分钟前的时间,格式为2025-05-31 14:15:20"), |
| | | @ApiImplicitParam(name = "rainfall1", value = "5分钟前的降雨强度"), |
| | | @ApiImplicitParam(name = "date2", value = "当前时间,格式为2025-05-31 14:20:20"), |
| | | @ApiImplicitParam(name = "rainfall2", value = "当前的降雨强度"), |
| | | @ApiImplicitParam(name = "serviceName", value = "服务名") |
| | | }) |
| | | @GetMapping("/realTime") |
| | | public R<Object> realTimeSimulate(String date1, double rainfall1, |
| | | String date2, double rainfall2, String serviceName) { |
| | | RealTimeInput input = new RealTimeInput(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | LocalDateTime t1 = LocalDateTime.parse(date1, formatter); |
| | | LocalDateTime t2 = LocalDateTime.parse(date2, formatter); |
| | | RealTimeInput.RealTimeData d1 = new RealTimeInput.RealTimeData(); |
| | | d1.setDateTime(t1); |
| | | d1.setIntensity(rainfall1); |
| | | RealTimeInput.RealTimeData d2 = new RealTimeInput.RealTimeData(); |
| | | d2.setDateTime(t2); |
| | | d2.setIntensity(rainfall2); |
| | | input.setData(Arrays.asList(d1, d2)); |
| | | input.setServiceName(serviceName); |
| | | |
| | | try { |
| | | String layerJsonName = resolveService.realTimeSimulate(input); |
| | | return success(layerJsonName); |
| | | } catch (IOException e) { |
| | | log.error("real-time simulate exception:", e); |
| | | return fail("实时模拟异常"); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "realTime") |
| | | @PostMapping("/realTime2") |
| | | public R<Object> realTimeSimulate(@RequestBody RealTimeSimuParam param) { |
| | | try { |
| | | String layerJsonName = rts.realTimeSimulate(param); |
| | | return success(layerJsonName); |
| | | } catch (IOException e) { |
| | | log.error("real-time simulate exception:", e); |
| | | return fail("实时模拟异常"); |
| | | if (time != null) { |
| | | SimuResult result = simuService.queryByPosition(lon, lat, time, serviceName); |
| | | if (result == null) { |
| | | return notFound("未查找到相关数据"); |
| | | } |
| | | return success(result, 1); |
| | | } else { |
| | | List<SimuResult> simuResults = simuService.queryByPosition(lon, lat, serviceName); |
| | | if (simuResults.isEmpty()) { |
| | | return notFound("未查找到相关数据"); |
| | | } |
| | | return success(simuResults, simuResults.size()); |
| | | } |
| | | } |
| | | } |