| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package com.campus.trade.controller;
- import com.campus.trade.common.Result;
- import com.campus.trade.dto.ChangePasswordRequest;
- import com.campus.trade.dto.LoginRequest;
- import com.campus.trade.dto.RegisterRequest;
- import com.campus.trade.service.AuthService;
- import com.campus.trade.vo.UserProfileVO;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.responses.ApiResponse;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.servlet.http.HttpSession;
- import jakarta.validation.Valid;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.MediaType;
- import org.springframework.web.bind.annotation.*;
- @RestController
- @RequestMapping("/auth")
- @Tag(name = "Auth", description = "注册 / 登录 / 登出 / 修改密码")
- public class AuthController {
- @Autowired
- private AuthService authService;
- @Operation(summary = "用户注册", description = "学号+姓名+密码+校园卡照片,提交后进入待审核状态")
- @ApiResponse(responseCode = "200", description = "注册成功")
- @ApiResponse(responseCode = "409", description = "学号已注册")
- @PostMapping(value = "/register", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
- public Result<Long> register(@Valid RegisterRequest req) {
- Long userId = authService.register(req);
- return Result.success(userId);
- }
- @Operation(summary = "用户登录", description = "学号+密码登录,创建 Session 会话")
- @PostMapping("/login")
- public Result<UserProfileVO> login(@Valid @RequestBody LoginRequest req, HttpSession session) {
- return Result.success(authService.login(req, session));
- }
- @Operation(summary = "用户登出", description = "销毁当前 Session")
- @PostMapping("/logout")
- public Result<Void> logout(HttpSession session) {
- session.invalidate();
- return Result.success();
- }
- @Operation(summary = "提交实名认证", description = "上传校园卡照片进行实名审核;被拒后可重新提交")
- @PostMapping(value = "/submit-auth", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
- public Result<Void> submitAuth(@RequestParam("campusCardImage") org.springframework.web.multipart.MultipartFile campusCardImage,
- HttpSession session) {
- authService.submitAuth(campusCardImage, session);
- return Result.success();
- }
- @Operation(summary = "修改密码", description = "需提供旧密码验证")
- @PostMapping("/change-password")
- public Result<Void> changePassword(@Valid @RequestBody ChangePasswordRequest req, HttpSession session) {
- authService.changePassword(req, session);
- return Result.success();
- }
- }
|