用户模块

This commit is contained in:
2025-05-07 04:14:21 +08:00
parent e1b1bfc721
commit 6e0576df5b
42 changed files with 1882 additions and 96 deletions

View File

@ -1,6 +1,7 @@
package com.greenorange.promotion.controller.user;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.greenorange.promotion.annotation.RequiresPermission;
@ -16,15 +17,19 @@ import com.greenorange.promotion.model.dto.CommonRequest;
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.entity.UserMainInfo;
import com.greenorange.promotion.model.vo.user.UserInfoVO;
import com.greenorange.promotion.model.vo.userMainInfo.UserMainInfoVO;
import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.user.UserInfoService;
import com.greenorange.promotion.service.user.UserMainInfoService;
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;
@ -48,6 +53,10 @@ public class UserInfoController {
private UserInfoService userInfoService;
@Resource
private UserMainInfoService userMainInfoService;
@Resource
private CommonService commonService;
@ -75,6 +84,21 @@ public class UserInfoController {
}
/**
* 小程序端用户根据id获取上级邀请码
* @param commonRequest 用户id
* @return 上级邀请码
*/
@PostMapping("inviteCode")
@Operation(summary = "小程序端用户根据id获取上级邀请码", description = "参数用户id权限管理员boss, admin)方法名getParentUserInviteCode")
@SysLog(title = "用户管理", content = "小程序端用户根据id获取上级邀请码")
public BaseResponse<String> getParentUserInviteCode(@Valid @RequestBody CommonRequest commonRequest) {
Long id = commonRequest.getId();
UserInfo userInfo = userInfoService.getById(id);
return ResultUtils.success(userInfo.getInvitationCode());
}
/**
* 小程序端用户注册
@ -120,19 +144,75 @@ public class UserInfoController {
/**
* 小程序用户重置密码
* 小程序用户重置密码(外部)
* @param userInfoResetRequest 小程序用户密码重置请求体
* @return 是否重置成功
*/
@PostMapping("mini/reset/pwd")
@Operation(summary = "小程序用户重置密码", description = "参数小程序用户密码重置请求体权限管理员boss, admin)方法名userInfoMiniResetPwd")
@SysLog(title = "用户管理", content = "小程序用户重置密码")
public BaseResponse<Boolean> userInfoMiniResetPwd(@Valid @RequestBody UserInfoResetRequest userInfoResetRequest) {
@PostMapping("mini/out/reset/pwd")
@Operation(summary = "小程序用户重置密码(外部)", description = "参数小程序用户密码重置请求体权限管理员boss, admin)方法名userInfoMiniOuterResetPwd")
@SysLog(title = "用户管理", content = "小程序用户重置密码(外部)")
public BaseResponse<Boolean> userInfoMiniOuterResetPwd(@Valid @RequestBody UserInfoResetRequest userInfoResetRequest) {
userInfoService.userInfoMiniResetPwd(userInfoResetRequest);
return ResultUtils.success(true);
}
/**
* 小程序用户重置密码(内部)
* @param userInfoResetRequest 小程序用户密码重置请求体
* @return 是否重置成功
*/
@PostMapping("mini/in/reset/pwd")
@Operation(summary = "小程序用户重置密码(内部)", description = "参数小程序用户密码重置请求体权限管理员boss, admin)方法名userInfoMiniInnerResetPwd")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "用户管理", content = "小程序用户重置密码(内部)")
public BaseResponse<Boolean> userInfoMiniInnerResetPwd(@Valid @RequestBody UserInfoResetRequest userInfoResetRequest) {
userInfoService.userInfoMiniResetPwd(userInfoResetRequest);
return ResultUtils.success(true);
}
/**
* 小程序端用户根据jwt获取用户信息
* @return 用户信息
*/
@GetMapping("get/jwt")
@Operation(summary = "小程序端用户根据jwt获取用户信息", description = "参数权限管理员boss, admin)方法名getMiniUserInfoByJWT")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "用户管理", content = "小程序端用户根据jwt获取用户信息")
public BaseResponse<UserInfoVO> getMiniUserInfoByJWT(HttpServletRequest request) {
String userAccount = (String) request.getAttribute("userAccount");
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount);
UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper);
UserInfoVO userInfoVO = commonService.copyProperties(userInfo, UserInfoVO.class);
return ResultUtils.success(userInfoVO);
}
/**
* 小程序端用户根据jwt获取用户主要信息
* @return 用户信息
*/
@GetMapping("get/main/jwt")
@Operation(summary = "小程序端用户根据jwt获取用户主要信息", description = "参数权限管理员boss, admin)方法名getMiniUserInfoByJWT")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "用户管理", content = "小程序端用户根据jwt获取用户主要信息")
public BaseResponse<UserMainInfoVO> getMiniUserMainInfoByJWT(HttpServletRequest request) {
String userAccount = (String) request.getAttribute("userAccount");
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount);
UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper);
Long id = userInfo.getId();
LambdaQueryWrapper<UserMainInfo> userMainInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
userMainInfoLambdaQueryWrapper.eq(UserMainInfo::getUserId, id);
UserMainInfo userMainInfo = userMainInfoService.getOne(userMainInfoLambdaQueryWrapper);
UserMainInfoVO userMainInfoVO = commonService.copyProperties(userMainInfo, UserMainInfoVO.class);
return ResultUtils.success(userMainInfoVO);
}
/**