注销功能接口提供完善

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 = "修改密码")
@ApiImplicitParams({
@ApiImplicitParam(name = "mobile", value = "手机号", required = true, paramType = "query"),
@ApiImplicitParam(name = "password", value = "是否保存登录", required = true, paramType = "query")
})
@PostMapping("/resetPassword")
@ -152,6 +151,34 @@ public class MemberBuyerController {
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")
@GetMapping("/refresh/{refreshToken}")

View File

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

View File

@ -112,4 +112,11 @@ public interface ConnectService extends IService<Connect> {
* @return
*/
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);
}
@Override
public void deleteByMemberId(String userId) {
LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Connect::getUserId, userId);
this.remove(queryWrapper);
}
/**
* 会员绑定 绑定微信小程序
* <p>

View File

@ -25,6 +25,11 @@ import java.util.Map;
*/
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);
/**
* 是否可以初始化密码
*
* @return
*/
boolean canInitPass();
/**
* 初始化密码
*
* @param password 密码
* @return 操作结果
*/
void initPass(String password);
/**
* 注销账号
*
* @param password 密码
* @return 操作结果
*/
void cancellation(String password);
/**
* 注册会员
*
@ -209,7 +237,7 @@ public interface MemberService extends IService<Member> {
/**
* 获取指定会员数据
*
* @param columns 指定获取的列
* @param columns 指定获取的列
* @param memberIds 会员ids
* @return 指定会员数据
*/
@ -239,6 +267,7 @@ public interface MemberService extends IService<Member> {
/**
* 获取用户VO
*
* @param id 会员id
* @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(),
authUser.getGender() != null ? Convert.toInt(authUser.getGender().getCode()) : 0);
registerHandler(member);
member.setPassword(DEFAULT_PASSWORD);
//绑定登录方式
loginBindUser(member, authUser.getUuid(), authUser.getSource());
return memberTokenGenerate.createToken(member, false);
@ -283,6 +284,67 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
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
public Token register(String userName, String password, String mobilePhone) {
//检测会员信息