From f87780ba93a3e605a1c9f6b362e3d36f784686a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Thu, 21 Aug 2025 15:45:33 +0800 Subject: [PATCH] =?UTF-8?q?08-21-GPS=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/gps/controller/GpsController.java | 63 +++++++++++++++++++ .../java/org/dromara/gps/domain/GpsLogin.java | 37 +++++++++++ 2 files changed, 100 insertions(+) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/controller/GpsController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/domain/GpsLogin.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/controller/GpsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/controller/GpsController.java new file mode 100644 index 00000000..dcd8e2dd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/controller/GpsController.java @@ -0,0 +1,63 @@ +package org.dromara.gps.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.R; +import org.dromara.gps.domain.GpsLogin; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; +import java.util.HashMap; +import java.util.stream.Collectors; + +@Slf4j +@RestController +@RequestMapping("/GPS") +public class GpsController { + + HttpClient client = HttpClient.newBuilder() + .connectTimeout(Duration.ofSeconds(10)) // 设置连接超时 + .build(); + + @GetMapping("/login") + public R login(@RequestParam GpsLogin loginData) throws IOException, InterruptedException { + + //对象转HashMap + ObjectMapper mapper = new ObjectMapper(); + HashMap params = mapper.convertValue(loginData, HashMap.class); + + //拼接URL + String baseUrl = "http://openapi.18gps.net//GetDateServices.asmx/loginSystem"; + String query = params.entrySet().stream() + .map(entry -> entry.getKey() + "=" + entry.getValue()) + .collect(Collectors.joining("&")); + String requestUrl = baseUrl + "?" + query; + + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create(requestUrl)) + .timeout(Duration.ofSeconds(10)) // 设置响应超时 + .GET() // 使用GET请求方式 + .build(); + + //获取响应 + HttpResponse response = client.send( + request, + HttpResponse.BodyHandlers.ofString() + ); + + log.info("响应体:{}", response.body()); + + return R.ok(); + } + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/domain/GpsLogin.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/domain/GpsLogin.java new file mode 100644 index 00000000..d9375b24 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/domain/GpsLogin.java @@ -0,0 +1,37 @@ +package org.dromara.gps.domain; + +import lombok.Data; + +@Data +public class GpsLogin { + + private String LoginName; + + private String LoginPassword; + + /** + * 登陆类型 [单位用户:ENTERPRISE/设备登录:USER] + */ + private String LoginType; + + /*** + * 语言类型 [cn,中文;en,英文] + */ + private String language; + + /** + * 应用类型[默认APP] + */ + private String apply; + + /** + * MD5验证[默认0不验证] 非必填 + */ + private String ISMD5; + + /** + * 应用域 Id,应用域请找台提供。可以不填,但最好填。 + */ + private String ApiKey; + +}