注销功能接口提供完善

This commit is contained in:
Chopper 2022-03-31 16:49:12 +08:00
parent b1291d3c43
commit cf01011504
6 changed files with 135 additions and 2 deletions

View File

@ -125,7 +125,6 @@ public class MemberBuyerController {
@ApiOperation(value = "修改密码") @ApiOperation(value = "修改密码")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "mobile", value = "手机号", required = true, paramType = "query"),
@ApiImplicitParam(name = "password", value = "是否保存登录", required = true, paramType = "query") @ApiImplicitParam(name = "password", value = "是否保存登录", required = true, paramType = "query")
}) })
@PostMapping("/resetPassword") @PostMapping("/resetPassword")
@ -152,6 +151,34 @@ public class MemberBuyerController {
return ResultUtil.data(memberService.modifyPass(password, newPassword)); return ResultUtil.data(memberService.modifyPass(password, newPassword));
} }
@ApiOperation(value = "初始设置密码")
@ApiImplicitParams({
@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, paramType = "query")
})
@PutMapping("/canInitPassword")
public ResultMessage<Object> canInitPassword() {
return ResultUtil.data(memberService.canInitPass());
}
@ApiOperation(value = "初始设置密码")
@ApiImplicitParams({
@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, paramType = "query")
})
@PutMapping("/initPassword")
public ResultMessage<Object> initPassword(@NotNull(message = "密码不能为空") @RequestParam String password) {
memberService.initPass(password);
return ResultUtil.success();
}
@ApiOperation(value = "注销账号")
@ApiImplicitParams({
@ApiImplicitParam(name = "password", value = "密码", required = true, paramType = "query")
})
@PutMapping("/cancellation")
public ResultMessage<Member> cancellation(@NotNull(message = "密码不能为空") @RequestParam String password) {
memberService.cancellation(password);
return ResultUtil.success();
}
@ApiOperation(value = "刷新token") @ApiOperation(value = "刷新token")
@GetMapping("/refresh/{refreshToken}") @GetMapping("/refresh/{refreshToken}")

View File

@ -40,6 +40,7 @@ public enum ResultCode {
FILE_TYPE_NOT_SUPPORT(1010, "不支持上传的文件类型!"), FILE_TYPE_NOT_SUPPORT(1010, "不支持上传的文件类型!"),
PLATFORM_NOT_SUPPORTED_IM(1006, "平台未开启IM"), PLATFORM_NOT_SUPPORTED_IM(1006, "平台未开启IM"),
STORE_NOT_SUPPORTED_IM(1007, "店铺未开启IM"), STORE_NOT_SUPPORTED_IM(1007, "店铺未开启IM"),
UNINITIALIZED_PASSWORD(1008, "非初始化密码,无法进行初始化设置"),
/** /**
* 分类 * 分类
*/ */

View File

@ -112,4 +112,11 @@ public interface ConnectService extends IService<Connect> {
* @return * @return
*/ */
Connect queryConnect(ConnectQueryDTO connectQueryDTO); Connect queryConnect(ConnectQueryDTO connectQueryDTO);
/**
* 根据会员id删除记录
*
* @param userId 会员id
*/
void deleteByMemberId(String userId);
} }

View File

@ -245,6 +245,13 @@ public class ConnectServiceImpl extends ServiceImpl<ConnectMapper, Connect> impl
return this.getOne(queryWrapper); return this.getOne(queryWrapper);
} }
@Override
public void deleteByMemberId(String userId) {
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Connect::getUserId, userId);
this.remove(queryWrapper);
}
/** /**
* 会员绑定 绑定微信小程序 * 会员绑定 绑定微信小程序
* <p> * <p>

View File

@ -25,6 +25,11 @@ import java.util.Map;
*/ */
public interface MemberService extends IService<Member> { public interface MemberService extends IService<Member> {
/**
* 默认密码
*/
static String DEFAULT_PASSWORD = "111111";
/** /**
* 获取当前登录的用户信息 * 获取当前登录的用户信息
* *
@ -92,6 +97,29 @@ public interface MemberService extends IService<Member> {
*/ */
Member modifyPass(String oldPassword, String newPassword); Member modifyPass(String oldPassword, String newPassword);
/**
* 是否可以初始化密码
*
* @return
*/
boolean canInitPass();
/**
* 初始化密码
*
* @param password 密码
* @return 操作结果
*/
void initPass(String password);
/**
* 注销账号
*
* @param password 密码
* @return 操作结果
*/
void cancellation(String password);
/** /**
* 注册会员 * 注册会员
* *
@ -239,6 +267,7 @@ public interface MemberService extends IService<Member> {
/** /**
* 获取用户VO * 获取用户VO
*
* @param id 会员id * @param id 会员id
* @return 用户VO * @return 用户VO
*/ */

View File

@ -198,6 +198,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
Member member = new Member(username, UuidUtils.getUUID(), authUser.getAvatar(), authUser.getNickname(), Member member = new Member(username, UuidUtils.getUUID(), authUser.getAvatar(), authUser.getNickname(),
authUser.getGender() != null ? Convert.toInt(authUser.getGender().getCode()) : 0); authUser.getGender() != null ? Convert.toInt(authUser.getGender().getCode()) : 0);
registerHandler(member); registerHandler(member);
member.setPassword(DEFAULT_PASSWORD);
//绑定登录方式 //绑定登录方式
loginBindUser(member, authUser.getUuid(), authUser.getSource()); loginBindUser(member, authUser.getUuid(), authUser.getSource());
return memberTokenGenerate.createToken(member, false); return memberTokenGenerate.createToken(member, false);
@ -283,6 +284,67 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
return member; return member;
} }
@Override
public boolean canInitPass() {
AuthUser tokenUser = UserContext.getCurrentUser();
if (tokenUser == null) {
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
}
Member member = this.getById(tokenUser.getId());
if (member.getPassword().equals(DEFAULT_PASSWORD)) {
return true;
}
return false;
}
@Override
public void initPass(String password) {
AuthUser tokenUser = UserContext.getCurrentUser();
if (tokenUser == null) {
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
}
Member member = this.getById(tokenUser.getId());
if (member.getPassword().equals(DEFAULT_PASSWORD)) {
//修改会员密码
LambdaUpdateWrapper<Member> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.eq(Member::getId, member.getId());
lambdaUpdateWrapper.set(Member::getPassword, new BCryptPasswordEncoder().encode(password));
this.update(lambdaUpdateWrapper);
}
throw new ServiceException(ResultCode.UNINITIALIZED_PASSWORD);
}
@Override
public void cancellation(String password) {
AuthUser tokenUser = UserContext.getCurrentUser();
if (tokenUser == null) {
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
}
Member member = this.getById(tokenUser.getId());
if (member.getPassword().equals(new BCryptPasswordEncoder().encode(password))) {
//删除联合登录
connectService.deleteByMemberId(member.getId());
//混淆用户信息
this.confusionMember(member);
}
}
/**
* 混淆之前的会员信息
*
* @param member
*/
private void confusionMember(Member member) {
member.setUsername(UuidUtils.getUUID());
member.setMobile(UuidUtils.getUUID() + member.getMobile());
member.setNickName("用户已注销");
member.setDisabled(false);
this.updateById(member);
}
@Override @Override
public Token register(String userName, String password, String mobilePhone) { public Token register(String userName, String password, String mobilePhone) {
//检测会员信息 //检测会员信息