Helius
2021-09-16 cc39b5661472a3dd26efc83eb1733386d7c30682
add some member/login interface
2 files added
4 files modified
114 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/utils/LoginUserUtil.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/utils/LoginUserUtil.java
New file
@@ -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");
    }
}
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);
    }
}
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();
    }
}
src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java
New file
@@ -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;
}
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();
}
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("退出登录");
    }
}