修复了注册和登录时的验证码异常
This commit is contained in:
parent
69f31ede73
commit
9cb208f5a0
|
@ -155,7 +155,8 @@ public class ProjectController {
|
||||||
// 更新项目价格
|
// 更新项目价格
|
||||||
projectAllDetailVO.setProjectPrice(projectPrice);
|
projectAllDetailVO.setProjectPrice(projectPrice);
|
||||||
// 获取用户申请的推广码列表
|
// 获取用户申请的推广码列表
|
||||||
List<PromoCodeApply> promoCodeApplyList = commonService.findByFieldEqTargetField(PromoCodeApply::getUserId, userId, promoCodeApplyService);
|
Map<SFunction<PromoCodeApply, ?>, Object> promoConditions = Map.of(PromoCodeApply::getUserId, userId, PromoCodeApply::getProjectId, id);
|
||||||
|
List<PromoCodeApply> promoCodeApplyList = commonService.findByFieldEqTargetFields(promoConditions, promoCodeApplyService);
|
||||||
List<PromoCodeApplyVO> promoCodeApplyVOList = commonService.convertList(promoCodeApplyList, PromoCodeApplyVO.class);
|
List<PromoCodeApplyVO> promoCodeApplyVOList = commonService.convertList(promoCodeApplyList, PromoCodeApplyVO.class);
|
||||||
// 填充项目详情VO
|
// 填充项目详情VO
|
||||||
projectAllDetailVO.setProjectNotificationVOList(projectNotificationVOS);
|
projectAllDetailVO.setProjectNotificationVOList(projectNotificationVOS);
|
||||||
|
|
|
@ -52,6 +52,24 @@ public class ProjectNotificationController {
|
||||||
@Resource
|
@Resource
|
||||||
private ProjectService projectService;
|
private ProjectService projectService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序端用户根据id查询项目通知详情
|
||||||
|
* @param commonRequest 项目通知添加请求体
|
||||||
|
* @return 项目通知详情
|
||||||
|
*/
|
||||||
|
@PostMapping("mini/query/id")
|
||||||
|
@Operation(summary = "小程序端用户根据id查询项目通知详情", description = "参数:项目通知id,权限:小程序用户,方法名:miniQueryProjectNotificationById")
|
||||||
|
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
||||||
|
// @SysLog(title = "项目通知管理", content = "小程序端用户根据id查询项目通知详情")
|
||||||
|
public BaseResponse<ProjectNotificationVO> miniQueryProjectNotificationById(@Valid @RequestBody CommonRequest commonRequest) {
|
||||||
|
Long id = commonRequest.getId();
|
||||||
|
ProjectNotification projectNotification = projectNotificationService.getById(id);
|
||||||
|
ProjectNotificationVO projectNotificationVO = commonService.copyProperties(projectNotification, ProjectNotificationVO.class);
|
||||||
|
return ResultUtils.success(projectNotificationVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* web端管理员添加项目通知
|
* web端管理员添加项目通知
|
||||||
* @param projectNotificationAddRequest 项目通知添加请求体
|
* @param projectNotificationAddRequest 项目通知添加请求体
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.greenorange.promotion.controller.project;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
|
||||||
import com.greenorange.promotion.annotation.RequiresPermission;
|
import com.greenorange.promotion.annotation.RequiresPermission;
|
||||||
import com.greenorange.promotion.annotation.SysLog;
|
import com.greenorange.promotion.annotation.SysLog;
|
||||||
import com.greenorange.promotion.common.BaseResponse;
|
import com.greenorange.promotion.common.BaseResponse;
|
||||||
|
@ -38,6 +39,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,12 +78,18 @@ public class PromoCodeApplyController {
|
||||||
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
||||||
// @SysLog(title = "项目管理", content = "小程序用户申请推广码")
|
// @SysLog(title = "项目管理", content = "小程序用户申请推广码")
|
||||||
public BaseResponse<Boolean> applyPromoCode(@Valid @RequestBody PromoCodeApplyRequest promoCodeApplyRequest, HttpServletRequest request) {
|
public BaseResponse<Boolean> applyPromoCode(@Valid @RequestBody PromoCodeApplyRequest promoCodeApplyRequest, HttpServletRequest request) {
|
||||||
|
// 获取用户id
|
||||||
|
Long userId = (Long) request.getAttribute("userId");
|
||||||
// 取出当前项目的推广码
|
// 取出当前项目的推广码
|
||||||
Long projectId = promoCodeApplyRequest.getProjectId();
|
Long projectId = promoCodeApplyRequest.getProjectId();
|
||||||
LambdaQueryWrapper<PromoCode> promoCodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
String phoneNumber = promoCodeApplyRequest.getSalespersonPhone();
|
||||||
promoCodeLambdaQueryWrapper.eq(PromoCode::getProjectId, projectId);
|
// 判断是否重复绑定了手机号
|
||||||
promoCodeLambdaQueryWrapper.eq(PromoCode::getPromoCodeStatus, false);
|
Map<SFunction<PromoCodeApply, ?>, Object> applyConditions = Map.of(PromoCodeApply::getUserId, userId, PromoCodeApply::getProjectId, projectId, PromoCodeApply::getSalespersonPhone, phoneNumber);
|
||||||
List<PromoCode> promoCodeList = promoCodeService.list(promoCodeLambdaQueryWrapper);
|
List<PromoCodeApply> promoCodeApplyList = commonService.findByFieldEqTargetFields(applyConditions, promoCodeApplyService);
|
||||||
|
ThrowUtils.throwIf(!promoCodeApplyList.isEmpty(), ErrorCode.OPERATION_ERROR, "不能重复绑定手机号");
|
||||||
|
|
||||||
|
Map<SFunction<PromoCode, ?>, Object> fieldConditions = Map.of(PromoCode::getProjectId, projectId, PromoCode::getPromoCodeStatus, false);
|
||||||
|
List<PromoCode> promoCodeList = commonService.findByFieldEqTargetFields(fieldConditions, promoCodeService);
|
||||||
ThrowUtils.throwIf(promoCodeList.size() == 0, ErrorCode.OPERATION_ERROR, "当前项目没有推广码");
|
ThrowUtils.throwIf(promoCodeList.size() == 0, ErrorCode.OPERATION_ERROR, "当前项目没有推广码");
|
||||||
PromoCode promoCode = promoCodeList.get(0);
|
PromoCode promoCode = promoCodeList.get(0);
|
||||||
promoCode.setPromoCodeStatus(true);
|
promoCode.setPromoCodeStatus(true);
|
||||||
|
@ -89,6 +97,7 @@ public class PromoCodeApplyController {
|
||||||
// 获取推广码参数信息
|
// 获取推广码参数信息
|
||||||
String promoCodeInfoKey = promoCode.getPromoCodeInfoKey();
|
String promoCodeInfoKey = promoCode.getPromoCodeInfoKey();
|
||||||
String promoCodeLink = promoCode.getPromoCodeLink();
|
String promoCodeLink = promoCode.getPromoCodeLink();
|
||||||
|
String promoCodeImage = promoCode.getPromoCodeImage();
|
||||||
// 获取项目的参数信息
|
// 获取项目的参数信息
|
||||||
Project project = projectService.getById(projectId);
|
Project project = projectService.getById(projectId);
|
||||||
// 更新项目的推广人数
|
// 更新项目的推广人数
|
||||||
|
@ -100,14 +109,14 @@ public class PromoCodeApplyController {
|
||||||
// 获取业务员信息
|
// 获取业务员信息
|
||||||
String salespersonName = promoCodeApplyRequest.getSalespersonName();
|
String salespersonName = promoCodeApplyRequest.getSalespersonName();
|
||||||
String salespersonPhone = promoCodeApplyRequest.getSalespersonPhone();
|
String salespersonPhone = promoCodeApplyRequest.getSalespersonPhone();
|
||||||
// 获取用户id
|
|
||||||
Long userId = (Long) request.getAttribute("userId");
|
|
||||||
// 添加推广码申请记录
|
// 添加推广码申请记录
|
||||||
PromoCodeApply promoCodeApply = PromoCodeApply.builder()
|
PromoCodeApply promoCodeApply = PromoCodeApply.builder()
|
||||||
.salespersonName(salespersonName)
|
.salespersonName(salespersonName)
|
||||||
.salespersonPhone(salespersonPhone)
|
.salespersonPhone(salespersonPhone)
|
||||||
.promoCodeInfoKey(promoCodeInfoKey)
|
.promoCodeInfoKey(promoCodeInfoKey)
|
||||||
.promoCodeLink(promoCodeLink)
|
.promoCodeLink(promoCodeLink)
|
||||||
|
.promoCodeImage(promoCodeImage)
|
||||||
|
.projectId(projectId)
|
||||||
.projectName(projectName)
|
.projectName(projectName)
|
||||||
.projectImage(projectImage)
|
.projectImage(projectImage)
|
||||||
.userId(userId)
|
.userId(userId)
|
||||||
|
|
|
@ -66,16 +66,31 @@ public class UserInfoController {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 小程序端用户获取验证码
|
* 小程序端用户获取验证码(用于注册)
|
||||||
* @param commonStringRequest 手机号
|
* @param commonStringRequest 手机号
|
||||||
* @return 验证码
|
* @return 验证码
|
||||||
*/
|
*/
|
||||||
@PostMapping("code")
|
@PostMapping("code")
|
||||||
@Operation(summary = "小程序端用户获取验证码", description = "参数:手机号,权限:管理员(boss, admin),方法名:getVerificationCode")
|
@Operation(summary = "小程序端用户获取验证码(用于注册)", description = "参数:手机号,权限:管理员(boss, admin),方法名:getVerificationCodeForRegister")
|
||||||
@SysLog(title = "用户管理", content = "小程序端用户获取验证码")
|
// @SysLog(title = "用户管理", content = "小程序端用户获取验证码")
|
||||||
|
public BaseResponse<String> getVerificationCodeForRegister(@Valid @RequestBody CommonStringRequest commonStringRequest) {
|
||||||
|
String phoneNumber = commonStringRequest.getTemplateString();
|
||||||
|
String verificationCode = userInfoService.getVerificationCodeForRegister(phoneNumber);
|
||||||
|
return ResultUtils.success(verificationCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序端用户获取验证码(用于密码登录和忘记密码)
|
||||||
|
* @param commonStringRequest 手机号
|
||||||
|
* @return 验证码
|
||||||
|
*/
|
||||||
|
@PostMapping("code")
|
||||||
|
@Operation(summary = "小程序端用户获取验证码(用于密码登录和忘记密码)", description = "参数:手机号,权限:管理员(boss, admin),方法名:getVerificationCode")
|
||||||
|
// @SysLog(title = "用户管理", content = "小程序端用户获取验证码")
|
||||||
public BaseResponse<String> getVerificationCode(@Valid @RequestBody CommonStringRequest commonStringRequest) {
|
public BaseResponse<String> getVerificationCode(@Valid @RequestBody CommonStringRequest commonStringRequest) {
|
||||||
String phoneNumber = commonStringRequest.getTemplateString();
|
String phoneNumber = commonStringRequest.getTemplateString();
|
||||||
String verificationCode = userInfoService.getVerificationCode(phoneNumber);
|
String verificationCode = userInfoService.getVerificationCodeForPwdLogin(phoneNumber);
|
||||||
return ResultUtils.success(verificationCode);
|
return ResultUtils.success(verificationCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +102,7 @@ public class UserInfoController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("inviteCode")
|
@PostMapping("inviteCode")
|
||||||
@Operation(summary = "小程序端用户根据id获取上级邀请码", description = "参数:用户id,权限:管理员(boss, admin),方法名:getParentUserInviteCode")
|
@Operation(summary = "小程序端用户根据id获取上级邀请码", description = "参数:用户id,权限:管理员(boss, admin),方法名:getParentUserInviteCode")
|
||||||
@SysLog(title = "用户管理", content = "小程序端用户根据id获取上级邀请码")
|
// @SysLog(title = "用户管理", content = "小程序端用户根据id获取上级邀请码")
|
||||||
public BaseResponse<String> getParentUserInviteCode(@Valid @RequestBody CommonRequest commonRequest) {
|
public BaseResponse<String> getParentUserInviteCode(@Valid @RequestBody CommonRequest commonRequest) {
|
||||||
Long id = commonRequest.getId();
|
Long id = commonRequest.getId();
|
||||||
UserInfo userInfo = userInfoService.getById(id);
|
UserInfo userInfo = userInfoService.getById(id);
|
||||||
|
@ -103,7 +118,7 @@ public class UserInfoController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("register")
|
@PostMapping("register")
|
||||||
@Operation(summary = "小程序端用户注册", description = "参数:小程序用户注册请求体,权限:管理员(boss, admin),方法名:userInfoMiniRegister")
|
@Operation(summary = "小程序端用户注册", description = "参数:小程序用户注册请求体,权限:管理员(boss, admin),方法名:userInfoMiniRegister")
|
||||||
@SysLog(title = "用户管理", content = "小程序端用户注册")
|
// @SysLog(title = "用户管理", content = "小程序端用户注册")
|
||||||
public BaseResponse<Boolean> userInfoMiniRegister(@Valid @RequestBody UserInfoRegisterRequest userInfoRegisterRequest) {
|
public BaseResponse<Boolean> userInfoMiniRegister(@Valid @RequestBody UserInfoRegisterRequest userInfoRegisterRequest) {
|
||||||
userInfoService.userInfoMiniRegister(userInfoRegisterRequest);
|
userInfoService.userInfoMiniRegister(userInfoRegisterRequest);
|
||||||
return ResultUtils.success(true);
|
return ResultUtils.success(true);
|
||||||
|
@ -118,7 +133,7 @@ public class UserInfoController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("mini/pwd/login")
|
@PostMapping("mini/pwd/login")
|
||||||
@Operation(summary = "小程序端用户密码登录", description = "参数:小程序用户密码登录请求体,权限:管理员(boss, admin),方法名:userInfoMiniLogin")
|
@Operation(summary = "小程序端用户密码登录", description = "参数:小程序用户密码登录请求体,权限:管理员(boss, admin),方法名:userInfoMiniLogin")
|
||||||
@SysLog(title = "用户管理", content = "小程序端用户密码登录")
|
// @SysLog(title = "用户管理", content = "小程序端用户密码登录")
|
||||||
public BaseResponse<String> userInfoMiniLoginByPwd(@Valid @RequestBody UserInfoMiniPasswordLoginRequest userInfoMiniPasswordLoginRequest) {
|
public BaseResponse<String> userInfoMiniLoginByPwd(@Valid @RequestBody UserInfoMiniPasswordLoginRequest userInfoMiniPasswordLoginRequest) {
|
||||||
String token = userInfoService.userInfoMiniLoginByPwd(userInfoMiniPasswordLoginRequest);
|
String token = userInfoService.userInfoMiniLoginByPwd(userInfoMiniPasswordLoginRequest);
|
||||||
return ResultUtils.success(token);
|
return ResultUtils.success(token);
|
||||||
|
@ -132,7 +147,7 @@ public class UserInfoController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("mini/vcd/login")
|
@PostMapping("mini/vcd/login")
|
||||||
@Operation(summary = "小程序端用户验证码登录", description = "参数:小程序用户验证码登录请求体,权限:管理员(boss, admin),方法名:userInfoMiniLoginByVcd")
|
@Operation(summary = "小程序端用户验证码登录", description = "参数:小程序用户验证码登录请求体,权限:管理员(boss, admin),方法名:userInfoMiniLoginByVcd")
|
||||||
@SysLog(title = "用户管理", content = "小程序端用户验证码登录")
|
// @SysLog(title = "用户管理", content = "小程序端用户验证码登录")
|
||||||
public BaseResponse<String> userInfoMiniLoginByVcd(@Valid @RequestBody UserInfoMiniVerifyCodeLoginRequest userInfoMiniVerifyCodeLoginRequest) {
|
public BaseResponse<String> userInfoMiniLoginByVcd(@Valid @RequestBody UserInfoMiniVerifyCodeLoginRequest userInfoMiniVerifyCodeLoginRequest) {
|
||||||
String token = userInfoService.userInfoMiniLoginByVcd(userInfoMiniVerifyCodeLoginRequest);
|
String token = userInfoService.userInfoMiniLoginByVcd(userInfoMiniVerifyCodeLoginRequest);
|
||||||
return ResultUtils.success(token);
|
return ResultUtils.success(token);
|
||||||
|
@ -146,7 +161,7 @@ public class UserInfoController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("mini/out/reset/pwd")
|
@PostMapping("mini/out/reset/pwd")
|
||||||
@Operation(summary = "小程序用户重置密码(外部)", description = "参数:小程序用户密码重置请求体,权限:管理员(boss, admin),方法名:userInfoMiniOuterResetPwd")
|
@Operation(summary = "小程序用户重置密码(外部)", description = "参数:小程序用户密码重置请求体,权限:管理员(boss, admin),方法名:userInfoMiniOuterResetPwd")
|
||||||
@SysLog(title = "用户管理", content = "小程序用户重置密码(外部)")
|
// @SysLog(title = "用户管理", content = "小程序用户重置密码(外部)")
|
||||||
public BaseResponse<Boolean> userInfoMiniOuterResetPwd(@Valid @RequestBody UserInfoResetRequest userInfoResetRequest) {
|
public BaseResponse<Boolean> userInfoMiniOuterResetPwd(@Valid @RequestBody UserInfoResetRequest userInfoResetRequest) {
|
||||||
userInfoService.userInfoMiniResetPwd(userInfoResetRequest);
|
userInfoService.userInfoMiniResetPwd(userInfoResetRequest);
|
||||||
return ResultUtils.success(true);
|
return ResultUtils.success(true);
|
||||||
|
@ -175,7 +190,7 @@ public class UserInfoController {
|
||||||
@GetMapping("get/jwt/web")
|
@GetMapping("get/jwt/web")
|
||||||
@Operation(summary = "web端用户根据jwt获取用户信息", description = "参数:无,权限:管理员(boss, admin),方法名:getWebUserInfoByJWT")
|
@Operation(summary = "web端用户根据jwt获取用户信息", description = "参数:无,权限:管理员(boss, admin),方法名:getWebUserInfoByJWT")
|
||||||
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
||||||
@SysLog(title = "用户管理", content = "web端用户根据jwt获取用户信息")
|
// @SysLog(title = "用户管理", content = "web端用户根据jwt获取用户信息")
|
||||||
public BaseResponse<UserInfoVO> getWebUserInfoByJWT(HttpServletRequest request) {
|
public BaseResponse<UserInfoVO> getWebUserInfoByJWT(HttpServletRequest request) {
|
||||||
Long userId = (Long) request.getAttribute("userId");
|
Long userId = (Long) request.getAttribute("userId");
|
||||||
UserInfo userInfo = userInfoService.getById(userId);
|
UserInfo userInfo = userInfoService.getById(userId);
|
||||||
|
@ -390,20 +405,20 @@ public class UserInfoController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* (小程序端)查询当前用户到根节点的userId路径
|
// * (小程序端)查询当前用户到根节点的userId路径
|
||||||
* @param commonRequest 用户id
|
// * @param commonRequest 用户id
|
||||||
* @return 用户表列表
|
// * @return 用户表列表
|
||||||
*/
|
// */
|
||||||
@PostMapping("query/path")
|
// @PostMapping("query/path")
|
||||||
@Operation(summary = "查询当前用户到根节点的userId路径", description = "参数:用户id,权限:管理员(boss, admin),方法名:findPathToRootUserIdList")
|
// @Operation(summary = "查询当前用户到根节点的userId路径", description = "参数:用户id,权限:管理员(boss, admin),方法名:findPathToRootUserIdList")
|
||||||
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
// @RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
||||||
@SysLog(title = "用户管理", content = "查询当前用户到根节点的userId路径")
|
// @SysLog(title = "用户管理", content = "查询当前用户到根节点的userId路径")
|
||||||
public BaseResponse<List<Long>> findPathToRootUserIdList(@Valid @RequestBody CommonRequest commonRequest) {
|
// public BaseResponse<List<Long>> findPathToRootUserIdList(@Valid @RequestBody CommonRequest commonRequest) {
|
||||||
Long userId = commonRequest.getId();
|
// Long userId = commonRequest.getId();
|
||||||
List<Long> pathToRoot = userInfoService.findPathToRoot(userId);
|
// List<Long> pathToRoot = userInfoService.findPathToRoot(userId);
|
||||||
return ResultUtils.success(pathToRoot);
|
// return ResultUtils.success(pathToRoot);
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import java.io.Serializable;
|
||||||
"salespersonPhone",
|
"salespersonPhone",
|
||||||
"promoCodeInfoKey",
|
"promoCodeInfoKey",
|
||||||
"promoCodeLink",
|
"promoCodeLink",
|
||||||
|
"projectId",
|
||||||
"projectName",
|
"projectName",
|
||||||
"projectImage",
|
"projectImage",
|
||||||
"userId",
|
"userId",
|
||||||
|
@ -60,6 +61,13 @@ public class PromoCodeApplyAddRequest implements Serializable {
|
||||||
@Schema(description = "推广码图片", example = "http://xxx.png")
|
@Schema(description = "推广码图片", example = "http://xxx.png")
|
||||||
private String promoCodeImage;
|
private String promoCodeImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定的项目ID
|
||||||
|
*/
|
||||||
|
@Min(value = 1L, message = "用户ID ID不能小于1")
|
||||||
|
@Schema(description = "绑定的项目ID", example = "1")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 绑定的项目名称
|
* 绑定的项目名称
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -19,6 +19,7 @@ import java.io.Serializable;
|
||||||
"salespersonPhone",
|
"salespersonPhone",
|
||||||
"promoCodeInfoKey",
|
"promoCodeInfoKey",
|
||||||
"promoCodeLink",
|
"promoCodeLink",
|
||||||
|
"projectId",
|
||||||
"projectName",
|
"projectName",
|
||||||
"projectImage",
|
"projectImage",
|
||||||
"userId",
|
"userId",
|
||||||
|
@ -68,6 +69,13 @@ public class PromoCodeApplyUpdateRequest implements Serializable {
|
||||||
@Schema(description = "推广码图片", example = "http://xxx.png")
|
@Schema(description = "推广码图片", example = "http://xxx.png")
|
||||||
private String promoCodeImage;
|
private String promoCodeImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定的项目ID
|
||||||
|
*/
|
||||||
|
@Min(value = 1L, message = "用户ID ID不能小于1")
|
||||||
|
@Schema(description = "绑定的项目ID", example = "1")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 绑定的项目名称
|
* 绑定的项目名称
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -54,6 +54,11 @@ public class PromoCodeApply implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String promoCodeImage;
|
private String promoCodeImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 绑定的项目名称
|
* 绑定的项目名称
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -70,6 +70,11 @@ public class ProjectAllDetailVO implements Serializable {
|
||||||
@Schema(description = "项目流程(富文本)", example = "富文本")
|
@Schema(description = "项目流程(富文本)", example = "富文本")
|
||||||
private String projectFlow;
|
private String projectFlow;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请推广码说明(富文本)
|
||||||
|
*/
|
||||||
|
private String applyPromoCodeDesc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目通知列表
|
* 项目通知列表
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -6,6 +6,7 @@ import lombok.Data;
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目通知 视图对象
|
* 项目通知 视图对象
|
||||||
|
@ -38,6 +39,12 @@ public class ProjectNotificationVO implements Serializable {
|
||||||
@Schema(description = "项目ID", example = "1")
|
@Schema(description = "项目ID", example = "1")
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "创建时间", example = "2023-04-01 12:00:00")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
|
@ -6,6 +6,7 @@ import lombok.Data;
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推广码申请记录 视图对象
|
* 推广码申请记录 视图对象
|
||||||
|
@ -50,6 +51,12 @@ public class PromoCodeApplyVO implements Serializable {
|
||||||
@Schema(description = "推广码图片", example = "http://xxx.png")
|
@Schema(description = "推广码图片", example = "http://xxx.png")
|
||||||
private String promoCodeImage;
|
private String promoCodeImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定的项目ID
|
||||||
|
*/
|
||||||
|
@Schema(description = "绑定的项目ID", example = "1")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 绑定的项目名称
|
* 绑定的项目名称
|
||||||
*/
|
*/
|
||||||
|
@ -68,6 +75,12 @@ public class PromoCodeApplyVO implements Serializable {
|
||||||
@Schema(description = "用户ID", example = "1")
|
@Schema(description = "用户ID", example = "1")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "创建时间", example = "2025-07-01 12:00:00")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
|
@ -52,9 +52,15 @@ public interface UserInfoService extends IService<UserInfo> {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 小程序用户获取验证码
|
* 小程序用户获取验证码(用于密码登录和忘记密码)
|
||||||
*/
|
*/
|
||||||
String getVerificationCode(String phoneNumber);
|
String getVerificationCodeForPwdLogin(String phoneNumber);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序用户获取验证码(用于注册)
|
||||||
|
*/
|
||||||
|
String getVerificationCodeForRegister(String phoneNumber);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -271,21 +271,21 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 小程序用户获取验证码
|
* 小程序用户获取验证码(用于密码登录和忘记密码)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getVerificationCode(String phoneNumber) {
|
public String getVerificationCodeForPwdLogin(String phoneNumber) {
|
||||||
ThrowUtils.throwIf(RegexUtils.isPhoneInvalid(phoneNumber), ErrorCode.PARAMS_ERROR, "手机号格式错误");
|
ThrowUtils.throwIf(RegexUtils.isPhoneInvalid(phoneNumber), ErrorCode.PARAMS_ERROR, "手机号格式错误");
|
||||||
|
|
||||||
// // 判断手机号是否已注册
|
// 判断手机号是否已注册
|
||||||
// LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
// lambdaQueryWrapper.eq(UserInfo::getPhoneNumber, phoneNumber);
|
lambdaQueryWrapper.eq(UserInfo::getPhoneNumber, phoneNumber);
|
||||||
// UserInfo userInfo = this.getOne(lambdaQueryWrapper);
|
UserInfo userInfo = this.getOne(lambdaQueryWrapper);
|
||||||
// ThrowUtils.throwIf(userInfo == null, ErrorCode.OPERATION_ERROR, "手机号未注册");
|
ThrowUtils.throwIf(userInfo == null, ErrorCode.OPERATION_ERROR, "手机号未注册");
|
||||||
|
|
||||||
String verificationCode = SendSmsUtil.getVerificationCode(phoneNumber);
|
String verificationCode = SendSmsUtil.getVerificationCode(phoneNumber);
|
||||||
ThrowUtils.throwIf(verificationCode == null, ErrorCode.OPERATION_ERROR, "验证码获取失败");
|
ThrowUtils.throwIf(verificationCode == null, ErrorCode.OPERATION_ERROR, "验证码获取失败");
|
||||||
redisTemplate.opsForValue().set(SystemConstant.VERIFICATION_CODE + ":" + verificationCode, verificationCode, 5, TimeUnit.MINUTES);
|
redisTemplate.opsForValue().set(SystemConstant.VERIFICATION_CODE + ":" + verificationCode, verificationCode, 1, TimeUnit.MINUTES);
|
||||||
return verificationCode;
|
return verificationCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,6 +299,20 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序用户获取验证码(用于注册)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getVerificationCodeForRegister(String phoneNumber) {
|
||||||
|
ThrowUtils.throwIf(RegexUtils.isPhoneInvalid(phoneNumber), ErrorCode.PARAMS_ERROR, "手机号格式错误");
|
||||||
|
|
||||||
|
String verificationCode = SendSmsUtil.getVerificationCode(phoneNumber);
|
||||||
|
ThrowUtils.throwIf(verificationCode == null, ErrorCode.OPERATION_ERROR, "验证码获取失败");
|
||||||
|
redisTemplate.opsForValue().set(SystemConstant.VERIFICATION_CODE + ":" + verificationCode, verificationCode, 1, TimeUnit.MINUTES);
|
||||||
|
return verificationCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,13 +17,17 @@ spring:
|
||||||
database: 9
|
database: 9
|
||||||
password: Cksys6509
|
password: Cksys6509
|
||||||
|
|
||||||
|
|
||||||
servlet:
|
servlet:
|
||||||
multipart:
|
multipart:
|
||||||
max-file-size: 20MB
|
max-file-size: 20MB
|
||||||
max-request-size: 20MB
|
max-request-size: 20MB
|
||||||
|
|
||||||
|
|
||||||
|
jackson:
|
||||||
|
date-format: yyyy-MM-dd HH:mm:ss
|
||||||
|
time-zone: GMT+8
|
||||||
|
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
default-flat-param-object: true
|
default-flat-param-object: true
|
||||||
|
|
||||||
|
@ -39,7 +43,6 @@ server:
|
||||||
port: 3456
|
port: 3456
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
mapper-locations: classpath:mapper/*.xml
|
mapper-locations: classpath:mapper/*.xml
|
||||||
configuration:
|
configuration:
|
||||||
|
|
|
@ -24,6 +24,11 @@ spring:
|
||||||
max-request-size: 20MB
|
max-request-size: 20MB
|
||||||
|
|
||||||
|
|
||||||
|
jackson:
|
||||||
|
date-format: yyyy-MM-dd HH:mm:ss
|
||||||
|
time-zone: GMT+8
|
||||||
|
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
default-flat-param-object: true
|
default-flat-param-object: true
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,11 @@ spring:
|
||||||
max-request-size: 20MB
|
max-request-size: 20MB
|
||||||
|
|
||||||
|
|
||||||
|
jackson:
|
||||||
|
date-format: yyyy-MM-dd HH:mm:ss
|
||||||
|
time-zone: GMT+8
|
||||||
|
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
default-flat-param-object: true
|
default-flat-param-object: true
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,10 @@ spring:
|
||||||
max-request-size: 20MB
|
max-request-size: 20MB
|
||||||
|
|
||||||
|
|
||||||
|
jackson:
|
||||||
|
date-format: yyyy-MM-dd HH:mm:ss
|
||||||
|
time-zone: GMT+8
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
default-flat-param-object: true
|
default-flat-param-object: true
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user