refactor(auth):重构认证服务,分离用户逻辑到独立服务

- 将用户相关业务迁移至用户模块,通过OpenFeign远程调用。
This commit is contained in:
Hanserwei
2025-10-04 22:03:09 +08:00
parent 19457b5638
commit 534a49a358
48 changed files with 697 additions and 521 deletions

View File

@@ -20,6 +20,18 @@
<groupId>com.hanserwei</groupId>
<artifactId>hanserwei-common</artifactId>
</dependency>
<!-- OpenFeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!-- 负载均衡 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,45 @@
package com.hanserwei.hannote.user.api;
import com.hanserwei.framework.common.response.Response;
import com.hanserwei.hannote.user.constant.ApiConstants;
import com.hanserwei.hannote.user.dto.req.FindUserByEmailReqDTO;
import com.hanserwei.hannote.user.dto.req.RegisterUserReqDTO;
import com.hanserwei.hannote.user.dto.req.UpdateUserPasswordReqDTO;
import com.hanserwei.hannote.user.dto.resp.FindUserByEmailRspDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = ApiConstants.SERVICE_NAME)
public interface UserFeignApi {
String PREFIX = "/user";
/**
* 用户注册
*
* @param registerUserReqDTO 注册信息
* @return 响应
*/
@PostMapping(value = PREFIX + "/register")
Response<Long> registerUser(@RequestBody RegisterUserReqDTO registerUserReqDTO);
/**
* 根据手机号查询用户信息
*
* @param findUserByEmailReqDTO 查询信息请求
* @return 响应
*/
@PostMapping(value = PREFIX + "/findByEmail")
Response<FindUserByEmailRspDTO> findByPhone(@RequestBody FindUserByEmailReqDTO findUserByEmailReqDTO);
/**
* 更新密码
*
* @param updateUserPasswordReqDTO 修改密码请求
* @return 响应
*/
@PostMapping(value = PREFIX + "/password/update")
Response<?> updatePassword(@RequestBody UpdateUserPasswordReqDTO updateUserPasswordReqDTO);
}

View File

@@ -0,0 +1,9 @@
package com.hanserwei.hannote.user.constant;
public interface ApiConstants {
/**
* 服务名称
*/
String SERVICE_NAME = "han-note-user";
}

View File

@@ -0,0 +1,23 @@
package com.hanserwei.hannote.user.dto.req;
import com.hanserwei.framework.common.validate.EmailNumber;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FindUserByEmailReqDTO {
/**
* 邮箱号
*/
@NotBlank(message = "邮箱号不能为空")
@EmailNumber
private String email;
}

View File

@@ -0,0 +1,23 @@
package com.hanserwei.hannote.user.dto.req;
import com.hanserwei.framework.common.validate.EmailNumber;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RegisterUserReqDTO {
/**
* 手机号
*/
@NotBlank(message = "邮箱号不能为空")
@EmailNumber
private String email;
}

View File

@@ -0,0 +1,18 @@
package com.hanserwei.hannote.user.dto.req;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class UpdateUserPasswordReqDTO {
@NotBlank(message = "密码不能为空")
private String encodePassword;
}

View File

@@ -0,0 +1,18 @@
package com.hanserwei.hannote.user.dto.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FindUserByEmailRspDTO {
private Long id;
private String password;
}