diff --git a/pom.xml b/pom.xml
index 2079d64..7f4ac89 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,6 +71,13 @@
3.12.0
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.12.0
+
+
org.springframework.boot
diff --git a/src/main/java/com/bao/dating/common/ip2location/Ip2LocationConfig.java b/src/main/java/com/bao/dating/common/ip2location/Ip2LocationConfig.java
new file mode 100644
index 0000000..89b3d15
--- /dev/null
+++ b/src/main/java/com/bao/dating/common/ip2location/Ip2LocationConfig.java
@@ -0,0 +1,14 @@
+package com.bao.dating.common.ip2location;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "ip2location.api")
+public class Ip2LocationConfig {
+ private String key;
+ private String url;
+ private int timeout;
+}
diff --git a/src/main/java/com/bao/dating/config/WebConfig.java b/src/main/java/com/bao/dating/config/WebConfig.java
index 98a0683..69b7303 100644
--- a/src/main/java/com/bao/dating/config/WebConfig.java
+++ b/src/main/java/com/bao/dating/config/WebConfig.java
@@ -29,7 +29,7 @@ public class WebConfig implements WebMvcConfigurer {
.addPathPatterns("/**")
// 忽略的接口
.excludePathPatterns(
- "/user/login"
+ "/user/login","/user/register","/user/emailLogin","/ip/location"
);
}
}
diff --git a/src/main/java/com/bao/dating/controller/IpLocationController.java b/src/main/java/com/bao/dating/controller/IpLocationController.java
new file mode 100644
index 0000000..9e9ed90
--- /dev/null
+++ b/src/main/java/com/bao/dating/controller/IpLocationController.java
@@ -0,0 +1,37 @@
+package com.bao.dating.controller;
+
+import com.bao.dating.common.Result;
+import com.bao.dating.common.ResultCode;
+import com.bao.dating.pojo.vo.IpLocationVO;
+import com.bao.dating.service.Ip2LocationClientService;
+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;
+
+@RestController
+@RequestMapping("/ip")
+public class IpLocationController {
+ @Autowired
+ private Ip2LocationClientService ip2LocationClientService;
+ /**
+ * 前端访问接口,获取IP地址位置信息
+ * @param ip 可选参数,要查询的IP地址
+ * @return IP位置信息(JSON格式)
+ */
+ @GetMapping("/location")
+ public Result> getIpLocation(@RequestParam(required = false) String ip) {
+ if (ip.isEmpty()){
+ return Result.error(ResultCode.PARAM_ERROR);
+ }
+ try {
+ // 调用工具类获取API响应
+ IpLocationVO ipLocationVo = ip2LocationClientService.getIpLocation(ip);
+ return Result.success(ResultCode.SUCCESS,ipLocationVo);
+ } catch (Exception e) {
+ // 异常处理:返回错误信息(实际项目建议封装统一响应格式)
+ return Result.error(ResultCode.SYSTEM_ERROR,e.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/com/bao/dating/controller/PostFavoriteController.java b/src/main/java/com/bao/dating/controller/PostFavoriteController.java
index fd44e56..607381e 100644
--- a/src/main/java/com/bao/dating/controller/PostFavoriteController.java
+++ b/src/main/java/com/bao/dating/controller/PostFavoriteController.java
@@ -2,12 +2,13 @@ package com.bao.dating.controller;
import com.bao.dating.common.Result;
import com.bao.dating.common.ResultCode;
+import com.bao.dating.pojo.entity.Post;
import com.bao.dating.pojo.entity.User;
import com.bao.dating.service.PostFavoriteService;
-import com.bao.dating.service.PostService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
import java.util.Map;
@RestController
@@ -15,6 +16,13 @@ import java.util.Map;
public class PostFavoriteController {
@Autowired
private PostFavoriteService postFavoriteService;
+
+ /**
+ * 收藏
+ * @param postId 动态ID
+ * @param user 当前登录用户对象
+ * @return 结果
+ */
@PostMapping("/{post_id}/favorites")
public Result