src/main/java/cc/mrbird/febs/common/utils/LoginUserUtil.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/conversion/MallMemberConversion.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/entity/MallMember.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java | ●●●●● 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,44 @@ package cc.mrbird.febs.mall.controller; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.vo.MallMemberVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; 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 = "获取商城用户信息") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MallMemberVo.class) }) @GetMapping(value = "/findMemberInfo") public FebsResponse findMemberInfo() { return memberService.findMemberInfo(); } @ApiOperation(value = "推出登录", notes = "推出登录") @PostMapping(value = "/logout") public FebsResponse logout() { return memberService.logout(); } } src/main/java/cc/mrbird/febs/mall/conversion/MallMemberConversion.java
New file @@ -0,0 +1,18 @@ package cc.mrbird.febs.mall.conversion; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.vo.MallMemberVo; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; /** * @author wzy * @date 2021-09-16 **/ @Mapper public abstract class MallMemberConversion { public static final MallMemberConversion INSTANCE = Mappers.getMapper(MallMemberConversion.class); public abstract MallMemberVo entityToVo(MallMember mallMember); } 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/entity/MallMember.java
@@ -15,22 +15,54 @@ @TableName("mall_member") public class MallMember extends BaseEntity { /** * 姓名 */ private String name; /** * 手机号 */ private String phone; /** * 邮箱 */ private String email; /** * 密码 */ private String password; /** * 头像 */ private String avatar; /** * 性别 */ private String sex; /** * 邀请码 */ private String inviteId; /** * 父级邀请码 */ private String referrerId; /** * 邀请码链 */ private String referrerIds; /** * 代理级别 */ private String level; /** @@ -46,6 +78,9 @@ */ public static final Integer ACCOUNT_STATUS_DISABLED = 2; /** * 账号类型 */ private Integer accountType; /** 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,9 @@ FebsResponse toLogin(LoginDto loginDto); FebsResponse forgetPwd(ForgetPwdDto forgetPwdDto); FebsResponse logout(); FebsResponse findMemberInfo(); } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -3,14 +3,18 @@ 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.conversion.MallMemberConversion; 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; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.mall.vo.MallMemberVo; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -152,4 +156,40 @@ 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("退出登录"); } @Override public FebsResponse findMemberInfo() { Long id = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = this.baseMapper.selectById(id); MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember); return new FebsResponse().data(mallMemberVo); } } src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
@@ -1,25 +1,43 @@ package cc.mrbird.febs.mall.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data @ApiModel(value = "MallMemberVo", description = "商城用户信息返回类") public class MallMemberVo { @ApiModelProperty(value = "id") private Long id; @ApiModelProperty(value = "昵称") private String name; @ApiModelProperty(value = "手机号") private String phone; @ApiModelProperty(value = "邮箱") private String email; @ApiModelProperty(value = "性别") private String sex; @ApiModelProperty(value = "邀请码") private String inviteId; @ApiModelProperty(value = "头像") private String avatar; @ApiModelProperty(value = "余额") private String balance; @ApiModelProperty(value = "代理等级") private String levelName; private String referrerName; private String level;