From cc39b5661472a3dd26efc83eb1733386d7c30682 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 16 Sep 2021 17:28:35 +0800 Subject: [PATCH] add some member/login interface --- src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java | 9 ++++ src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java | 24 ++++++++++++ src/main/java/cc/mrbird/febs/common/utils/LoginUserUtil.java | 19 +++++++++ src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java | 29 ++++++++++++++ src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java | 4 ++ src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 29 ++++++++++++++ 6 files changed, 114 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/utils/LoginUserUtil.java b/src/main/java/cc/mrbird/febs/common/utils/LoginUserUtil.java new file mode 100644 index 0000000..08cdb4a --- /dev/null +++ b/src/main/java/cc/mrbird/febs/common/utils/LoginUserUtil.java @@ -0,0 +1,19 @@ +package cc.mrbird.febs.common.utils; + +import cc.mrbird.febs.mall.entity.MallMember; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; + +/** + * @author xxx + * @date 2020-08-24 + **/ +public class LoginUserUtil { + + public static MallMember getLoginUser() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); + return (MallMember) request.getSession().getAttribute("member"); + } +} diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java index 3dc024f..843b622 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.controller; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.mall.dto.ForgetPwdDto; import cc.mrbird.febs.mall.dto.LoginDto; import cc.mrbird.febs.mall.dto.RegisterDto; import cc.mrbird.febs.mall.service.IApiMallMemberService; @@ -36,9 +37,17 @@ return memberService.register(registerDto); } + @ApiOperation(value = "账号密码登录接口", notes = "账号密码登录接口") @PostMapping(value = "/toLogin") public FebsResponse login(@RequestBody LoginDto loginDto) { return memberService.toLogin(loginDto); } + + + @ApiOperation(value = "忘记/修改密码", notes = "忘记/修改密码") + @PostMapping(value = "/forgetPwd") + public FebsResponse forgetPwd(@RequestBody ForgetPwdDto forgetPwdDto) { + return memberService.forgetPwd(forgetPwdDto); + } } diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java index 0021335..85f77bf 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java @@ -1,8 +1,32 @@ package cc.mrbird.febs.mall.controller; +import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.mall.service.IApiMallMemberService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + /** * @author wzy * @date 2021-09-16 **/ +@Slf4j +@RestController +@RequestMapping(value = "/api/member") +@RequiredArgsConstructor +@Api(value = "ApiMallMemberController", tags = "商城用户接口类") public class ApiMallMemberController { + + private final IApiMallMemberService memberService; + + + @ApiOperation(value = "推出登录", notes = "推出登录") + @PostMapping(value = "/logout") + public FebsResponse logout() { + return memberService.logout(); + } } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java new file mode 100644 index 0000000..2e402c8 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java @@ -0,0 +1,29 @@ +package cc.mrbird.febs.mall.dto; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @author wzy + * @date 2021-09-16 + **/ +@Data +@ApiModel(value = "ForgetPwdDto", description = "忘记/修改密码参数接收类") +public class ForgetPwdDto { + + @NotBlank(message = "账号不能为空") + @ApiModelProperty(value = "账号", example = "15773001234") + private String account; + + @NotBlank(message = "密码不能为空") + @ApiModelProperty(value = "新密码", example = "123456") + private String password; + + @NotBlank(message = "验证码不能为空") + @ApiModelProperty(value = "验证码", example = "123456") + private String code; +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java index f0d3815..66d3053 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.service; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.mall.dto.ForgetPwdDto; import cc.mrbird.febs.mall.dto.LoginDto; import cc.mrbird.febs.mall.dto.RegisterDto; import cc.mrbird.febs.mall.entity.MallMember; @@ -11,4 +12,7 @@ FebsResponse toLogin(LoginDto loginDto); + FebsResponse forgetPwd(ForgetPwdDto forgetPwdDto); + + FebsResponse logout(); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index 8b3273e..134b87a 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -3,8 +3,10 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.AppContants; +import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.common.utils.ShareCodeUtil; +import cc.mrbird.febs.mall.dto.ForgetPwdDto; import cc.mrbird.febs.mall.dto.LoginDto; import cc.mrbird.febs.mall.dto.RegisterDto; import cc.mrbird.febs.mall.entity.MallMember; @@ -152,4 +154,31 @@ RSA rsa = new RSA(null, AppContants.PUBLIC_KEY); return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey); } + + @Override + public FebsResponse forgetPwd(ForgetPwdDto forgetPwdDto) { + MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount()); + if (mallMember == null) { + throw new FebsException("账号不存在"); + } + + boolean b = commonService.verifyCode(forgetPwdDto.getAccount(), forgetPwdDto.getCode()); + if (!b) { + throw new FebsException("验证码错误"); + } + + String pwd = SecureUtil.md5(forgetPwdDto.getPassword()); + mallMember.setPassword(pwd); + + this.baseMapper.updateById(mallMember); + return new FebsResponse().success().message("重置成功"); + } + + @Override + public FebsResponse logout() { + Long id = LoginUserUtil.getLoginUser().getId(); + redisUtils.del(AppContants.APP_LOGIN_PREFIX + id); + return new FebsResponse().success().message("退出登录"); + } + } -- Gitblit v1.9.1