You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dsl3/controller/UserAuthController.java

89 lines
3.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.aurora.controller;
import com.aurora.annotation.AccessLimit;
import com.aurora.annotation.OptLog;
import com.aurora.model.dto.*;
import com.aurora.service.UserAuthService;
import com.aurora.model.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import static com.aurora.constant.OptTypeConstant.UPDATE;
@Api(tags = "用户账号模块")
@RestController
public class UserAuthController {
@Autowired
private UserAuthService userAuthService;//用于调用用户账号相关的业务方法
@AccessLimit(seconds = 60,maxCount = 1)//自定义限流注解限制60s内只能调用1次防止验证码被频繁发送
@ApiOperation(value = "发送邮箱验证码")//给指定用户名(邮箱)发送验证码
@ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String")
@GetMapping("/users/code")
public ResultVO<?> sendCode(String username) {
//String username:接收用户的邮箱账号
userAuthService.sendCode(username);
return ResultVO.ok();
}
@ApiOperation(value = "获取用户区域分布")//获取用户在不同区域的分布情况(用于后台数据统计分布)
@GetMapping("/admin/users/area")
//返回用户区域分布列表
public ResultVO<List<UserAreaDTO>> listUserAreas(ConditionVO conditionVO) {
return ResultVO.ok(userAuthService.listUserAreas(conditionVO));
}
@ApiOperation(value = "查询后台用户列表")//分页
@GetMapping("/admin/users")
public ResultVO<PageResultDTO<UserAdminDTO>> listUsers(ConditionVO conditionVO) {
return ResultVO.ok(userAuthService.listUsers(conditionVO));
}
@ApiOperation(value = "用户注册")
@PostMapping("/users/register")
public ResultVO<?> register(@Valid @RequestBody UserVO userVO) {
userAuthService.register(userVO);
return ResultVO.ok();
}
@OptLog(optType = UPDATE)
@ApiOperation(value = "修改密码")//用户自主修改个人密码
@PutMapping("/users/password")
public ResultVO<?> updatePassword(@Valid @RequestBody UserVO user) {
//UserVO user封装密码修改的参数包含原密码、新密码、验证码等信息且会被@Valid校验
userAuthService.updatePassword(user);
return ResultVO.ok();
}
@OptLog(optType = UPDATE)
@ApiOperation(value = "修改管理员密码")//后台
@PutMapping("/admin/users/password")
public ResultVO<?> updateAdminPassword(@Valid @RequestBody PasswordVO passwordVO) {
userAuthService.updateAdminPassword(passwordVO);
return ResultVO.ok();
}
@ApiOperation("用户登出")//处理用户的登出请求(清除登录状态)
@PostMapping("/users/logout")
public ResultVO<UserLogoutStatusDTO> logout() {//返回登出结果
return ResultVO.ok(userAuthService.logout());
}
@ApiOperation(value = "qq登录")//通过QQ账号进行第三方登录
@PostMapping("/users/oauth/qq")
//返回登录结果和用户信息
public ResultVO<UserInfoDTO> qqLogin(@Valid @RequestBody QQLoginVO qqLoginVO) {
//QQLoginVO qqLoginVO封装QQ登录的参数包含QQ授权码、openid等第三方登录所需信息且会被@Valid校验
return ResultVO.ok(userAuthService.qqLogin(qqLoginVO));
}
}