用户模块
This commit is contained in:
@ -62,7 +62,6 @@ public class FileInfoController {
|
||||
*/
|
||||
@PostMapping("upload")
|
||||
@Operation(summary = "Web端文件上传(服务器)", description = "参数:文件添加请求体,权限:管理员,方法名:addFileInfo")
|
||||
@SysLog(title = "文件管理", content = "Web端文件上传(服务器)")
|
||||
public BaseResponse<String> uploadFile(@RequestPart("file") MultipartFile multipartFile, UploadFileRequest uploadFileRequest) throws IOException{
|
||||
// 校验文件
|
||||
fileInfoService.validFile(multipartFile, uploadFileRequest);
|
||||
|
@ -8,24 +8,25 @@ import com.greenorange.promotion.annotation.SysLog;
|
||||
import com.greenorange.promotion.common.BaseResponse;
|
||||
import com.greenorange.promotion.common.ErrorCode;
|
||||
import com.greenorange.promotion.common.ResultUtils;
|
||||
import com.greenorange.promotion.constant.SystemConstant;
|
||||
import com.greenorange.promotion.constant.UserConstant;
|
||||
import com.greenorange.promotion.exception.ThrowUtils;
|
||||
import com.greenorange.promotion.model.dto.CommonBatchRequest;
|
||||
import com.greenorange.promotion.model.dto.CommonRequest;
|
||||
import com.greenorange.promotion.model.dto.user.UserInfoAddRequest;
|
||||
import com.greenorange.promotion.model.dto.user.UserInfoLoginRequest;
|
||||
import com.greenorange.promotion.model.dto.user.UserInfoQueryRequest;
|
||||
import com.greenorange.promotion.model.dto.user.UserInfoUpdateRequest;
|
||||
import com.greenorange.promotion.model.dto.CommonStringRequest;
|
||||
import com.greenorange.promotion.model.dto.user.*;
|
||||
import com.greenorange.promotion.model.entity.UserInfo;
|
||||
import com.greenorange.promotion.model.vo.user.UserInfoVO;
|
||||
import com.greenorange.promotion.service.common.CommonService;
|
||||
import com.greenorange.promotion.service.user.UserInfoService;
|
||||
import com.greenorange.promotion.utils.JWTUtils;
|
||||
import com.greenorange.promotion.utils.RegexUtils;
|
||||
import com.greenorange.promotion.utils.SendSmsUtil;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -59,30 +60,121 @@ public class UserInfoController {
|
||||
private JWTUtils jwtUtils;
|
||||
|
||||
|
||||
/**
|
||||
* 小程序端用户获取验证码
|
||||
* @param commonStringRequest 手机号
|
||||
* @return 验证码
|
||||
*/
|
||||
@PostMapping("code")
|
||||
@Operation(summary = "小程序端用户获取验证码", description = "参数:手机号,权限:管理员(boss, admin),方法名:getVerificationCode")
|
||||
@SysLog(title = "用户管理", content = "小程序端用户获取验证码")
|
||||
public BaseResponse<String> getVerificationCode(@Valid @RequestBody CommonStringRequest commonStringRequest) {
|
||||
String phoneNumber = commonStringRequest.getTemplateString();
|
||||
String verificationCode = userInfoService.getVerificationCode(phoneNumber);
|
||||
return ResultUtils.success(verificationCode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 小程序端用户注册
|
||||
* @param userInfoRegisterRequest 小程序用户注册请求体
|
||||
* @return 是否注册成功
|
||||
*/
|
||||
@PostMapping("register")
|
||||
@Operation(summary = "小程序端用户注册", description = "参数:小程序用户注册请求体,权限:管理员(boss, admin),方法名:userInfoMiniRegister")
|
||||
@SysLog(title = "用户管理", content = "小程序端用户注册")
|
||||
public BaseResponse<Boolean> userInfoMiniRegister(@Valid @RequestBody UserInfoRegisterRequest userInfoRegisterRequest) {
|
||||
userInfoService.userInfoMiniRegister(userInfoRegisterRequest);
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 小程序端用户密码登录
|
||||
* @param userInfoMiniPasswordLoginRequest 小程序用户密码登录请求体
|
||||
* @return token
|
||||
*/
|
||||
@PostMapping("mini/pwd/login")
|
||||
@Operation(summary = "小程序端用户密码登录", description = "参数:小程序用户密码登录请求体,权限:管理员(boss, admin),方法名:userInfoMiniLogin")
|
||||
@SysLog(title = "用户管理", content = "小程序端用户密码登录")
|
||||
public BaseResponse<String> userInfoMiniLoginByPwd(@Valid @RequestBody UserInfoMiniPasswordLoginRequest userInfoMiniPasswordLoginRequest) {
|
||||
String token = userInfoService.userInfoMiniLoginByPwd(userInfoMiniPasswordLoginRequest);
|
||||
return ResultUtils.success(token);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 小程序端用户验证码登录
|
||||
* @param userInfoMiniVerifyCodeLoginRequest 小程序用户验证码登录请求体
|
||||
* @return token
|
||||
*/
|
||||
@PostMapping("mini/vcd/login")
|
||||
@Operation(summary = "小程序端用户验证码登录", description = "参数:小程序用户验证码登录请求体,权限:管理员(boss, admin),方法名:userInfoMiniLoginByVcd")
|
||||
@SysLog(title = "用户管理", content = "小程序端用户验证码登录")
|
||||
public BaseResponse<String> userInfoMiniLoginByVcd(@Valid @RequestBody UserInfoMiniVerifyCodeLoginRequest userInfoMiniVerifyCodeLoginRequest) {
|
||||
String token = userInfoService.userInfoMiniLoginByVcd(userInfoMiniVerifyCodeLoginRequest);
|
||||
return ResultUtils.success(token);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 小程序用户重置密码
|
||||
* @param userInfoResetRequest 小程序用户密码重置请求体
|
||||
* @return 是否重置成功
|
||||
*/
|
||||
@PostMapping("mini/reset/pwd")
|
||||
@Operation(summary = "小程序用户重置密码", description = "参数:小程序用户密码重置请求体,权限:管理员(boss, admin),方法名:userInfoMiniResetPwd")
|
||||
@SysLog(title = "用户管理", content = "小程序端用户重置密码")
|
||||
public BaseResponse<Boolean> userInfoMiniResetPwd(@Valid @RequestBody UserInfoResetRequest userInfoResetRequest) {
|
||||
userInfoService.userInfoMiniResetPwd(userInfoResetRequest);
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 小程序端用户退出登录(用户退出时将 token 加入 Redis 黑名单)
|
||||
* @return 是否退出登录成功
|
||||
*/
|
||||
@GetMapping("mini/logout")
|
||||
@Operation(summary = "小程序端用户退出登录", description = "参数:JWT,权限:管理员(boss, admin),方法名:userInfoMiniLogout")
|
||||
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
||||
@SysLog(title = "用户管理", content = "小程序端用户退出登录")
|
||||
public BaseResponse<Boolean> userInfoMiniLogout(@RequestHeader("Authorization") String token) {
|
||||
// 获取token的过期时间
|
||||
DecodedJWT decodedJWT = jwtUtils.verify(token);
|
||||
long expirationTime = decodedJWT.getExpiresAt().getTime() - System.currentTimeMillis();
|
||||
// 将token存入Redis黑名单,并设置过期时间与token一致
|
||||
redisTemplate.opsForValue().set(token, token, expirationTime, TimeUnit.MILLISECONDS);
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* web端管理员登录
|
||||
* @param userInfoLoginRequest 用户登录请求体
|
||||
* @param userInfoLoginRequest web用户登录请求体
|
||||
* @return 是否登录成功
|
||||
*/
|
||||
@PostMapping("login")
|
||||
@Operation(summary = "web端管理员登录", description = "参数:用户登录请求体,权限:管理员(boss, admin),方法名:userInfoLogin")
|
||||
@Operation(summary = "web端管理员登录", description = "参数:web用户登录请求体,权限:管理员(boss, admin),方法名:userInfoLogin")
|
||||
@SysLog(title = "用户管理", content = "web端管理员登录")
|
||||
public BaseResponse<String> userInfoLogin(@Valid @RequestBody UserInfoLoginRequest userInfoLoginRequest, HttpServletRequest request) {
|
||||
String userAccount = userInfoLoginRequest.getUserAccount();
|
||||
String userPassword = userInfoLoginRequest.getUserPassword();
|
||||
String token = userInfoService.userInfoLogin(userAccount, userPassword, request);
|
||||
public BaseResponse<String> userInfoLogin(@Valid @RequestBody UserInfoLoginRequest userInfoLoginRequest) {
|
||||
String token = userInfoService.userInfoLogin(userInfoLoginRequest);
|
||||
return ResultUtils.success(token);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* web端管理员退出登录(用户退出时将 token 加入 Redis 黑名单)
|
||||
* @return 是否退出登录成功
|
||||
*/
|
||||
@PostMapping("logout")
|
||||
@GetMapping("logout")
|
||||
@Operation(summary = "web端管理员退出登录", description = "参数:JWT,权限:管理员(boss, admin),方法名:userInfoLogout")
|
||||
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
||||
@SysLog(title = "用户管理", content = "web端管理员退出登录")
|
||||
@ -98,6 +190,8 @@ public class UserInfoController {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* web端管理员添加用户表
|
||||
* @param userInfoAddRequest 用户表添加请求体
|
||||
@ -105,6 +199,8 @@ public class UserInfoController {
|
||||
*/
|
||||
@PostMapping("add")
|
||||
@Operation(summary = "web端管理员添加用户", description = "参数:用户表添加请求体,权限:管理员(boss, admin),方法名:addUserInfo")
|
||||
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
||||
@SysLog(title = "用户管理", content = "web端管理员添加用户")
|
||||
public BaseResponse<Boolean> addUserInfo(@Valid @RequestBody UserInfoAddRequest userInfoAddRequest) {
|
||||
UserInfo userInfo = commonService.copyProperties(userInfoAddRequest, UserInfo.class);
|
||||
userInfoService.save(userInfo);
|
||||
|
Reference in New Issue
Block a user