用户信息管理接口

main
2991692032 2 months ago
parent 1351060646
commit d05eb50b44

@ -66,8 +66,8 @@
| id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 用户ID |
| username | VARCHAR(50) | NOT NULL, UNIQUE | 用户名 |
| email | VARCHAR(100) | NOT NULL, UNIQUE | 邮箱地址(学校邮箱) |
| password | VARCHAR(255) | NOT NULL | 密码(加密存储 |
| nickname | VARCHAR(50) | NOT NULL | 昵称 |
| password | VARCHAR(255) | NOT NULL | 密码(加密存储 |
| | | | |
| avatar | VARCHAR(255) | | 头像URL |
| bio | TEXT | | 个人简介 |
| gender | TINYINT | | 性别0-未知, 1-男, 2-女) |
@ -256,3 +256,155 @@ CREATE TABLE `users` (
}
```
### 3.2用户信息管理模块
#### 3.2.1获取用户个人信息
#### 请求信息
- **URL**: `/users/profile`
- **方法**: `GET`
- **描述**: 获取当前登录用户的个人资料信息
#### 响应结果
```json
Copy{
"code": 200,
"message": "success",
"data": {
"id": 12345,
"username": "student123",
"email": "student@school.edu",
"nickname": "测试员",
"avatar": "https://example.com/avatars/default.png",
"bio": "这是一个个人简介",
"gender": 2,
"studentId": "20220101001",
"department": "计算机学院",
"major": "软件工程",
"grade": "2023级",
"points": 100,
"role": 0,
"isVerified": 1
}
}
```
#### 3.2.2 更新用户个人信息
#### 请求信息
- **URL**: `/users/profile`
- **方法**: `PUT`
- **描述**: 更新当前登录用户的个人资料
#### 请求参数
```json
Copy{
"nickname": "新昵称",
"bio": "这是更新后的个人简介",
"gender": 2,
"department": "计算机学院",
"major": "软件工程",
"grade": "2023级"
}
```
#### 响应结果
```json
Copy{
"code": 200,
"message": "更新成功",
"data": null
}
```
#### 3.2.3 修改用户密码
#### 请求信息
- **URL**: `/users/password`
- **方法**: `PUT`
- **描述**: 修改当前登录用户的密码
#### 请求参数
```json
Copy{
"oldPassword": "旧密码",
"newPassword": "新密码",
"confirmPassword": "确认新密码"
}
```
#### 响应结果
```json
Copy{
"code": 200,
"message": "密码修改成功",
"data": null
}
```
#### 3.2.4 上传用户头像
#### 请求信息
- **URL**: `/users/avatar`
- **方法**: `POST`
- **描述**: 上传或更新用户头像
#### 请求参数
```
Copy
file: [图片文件]
```
#### 响应结果
```json
Copy{
"code": 200,
"message": "头像上传成功",
"data": {
"avatar": "https://example.com/avatars/user_123456.jpg"
}
}
```
### 2.5 更新用户邮箱
#### 请求信息
- **URL**: `/users/email`
- **方法**: `PUT`
- **描述**: 更新用户邮箱地址
#### 请求参数
```json
Copy{
"email": "new_email@school.edu",
"code": "123456" // 邮箱验证码
}
```
#### 响应结果
```json
Copy{
"code": 200,
"message": "邮箱更新成功",
"data": null
}
```

@ -6,7 +6,6 @@ import com.unilife.model.dto.LoginDTO;
import com.unilife.model.dto.LoginEmailDTO;
import com.unilife.model.dto.RegisterDTO;
import com.unilife.model.vo.LoginVO;
import com.unilife.model.vo.RegisterVO;
import com.unilife.service.UserService;
import com.unilife.utils.BaseContext;
import com.unilife.utils.JwtUtil;
@ -14,14 +13,12 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.time.Duration;
@Api(tags = "用户管理")
@ -34,19 +31,17 @@ public class UserController {
private UserService userService;
@Autowired
private JwtUtil jwtUtil;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@ApiOperation(value = "用户注册")
@PostMapping("register")
public Result register(@RequestBody RegisterDTO registerDTO, HttpServletRequest request) {
public Result<?> register(@RequestBody RegisterDTO registerDTO, HttpServletRequest request) {
return userService.register(registerDTO,request);
}
@ApiOperation(value = "用户登录")
@PostMapping("login")
public Result login(@RequestBody LoginDTO loginDTO,HttpServletRequest request) {
Result login = userService.login(loginDTO,request);
public Result<?> login(@RequestBody LoginDTO loginDTO,HttpServletRequest request) {
Result<?> login = userService.login(loginDTO,request);
//登陆成功后生成jwt令牌
LoginVO vo=(LoginVO) login.getData();
if (vo == null) {
@ -63,7 +58,7 @@ public class UserController {
@ApiOperation(value = "获取邮箱验证码")
@PostMapping("code")
public Result getCode(@RequestBody EmailDTO emailDto,HttpServletRequest request) {
public Result<?> getCode(@RequestBody EmailDTO emailDto,HttpServletRequest request) {
String email=emailDto.getEmail();
log.debug("收到的原始邮箱: {}", email);
return userService.sendVerificationCode(email,request);
@ -71,7 +66,7 @@ public class UserController {
@ApiOperation(value = "邮箱验证码登录")
@PostMapping("login/code")
public Result loginWithEmailCode(@RequestBody LoginEmailDTO loginEmailDTO,HttpServletRequest request) {
public Result<?> loginWithEmailCode(@RequestBody LoginEmailDTO loginEmailDTO,HttpServletRequest request) {
return userService.loginWithEmail(loginEmailDTO,request);
}

Loading…
Cancel
Save