From 528cc3c8aaf586b631b46b186eebf4023bc7956b Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 16 Sep 2021 18:52:57 +0800 Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall --- src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java | 18 ++++ src/main/java/cc/mrbird/febs/mall/entity/MallMember.java | 35 ++++++++ src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java | 9 ++ src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java | 36 +++++++++ src/main/java/cc/mrbird/febs/mall/conversion/MallMemberConversion.java | 18 ++++ 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 | 6 + src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 40 ++++++++++ 9 files changed, 210 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..fda16b8 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,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(); + } } diff --git a/src/main/java/cc/mrbird/febs/mall/conversion/MallMemberConversion.java b/src/main/java/cc/mrbird/febs/mall/conversion/MallMemberConversion.java new file mode 100644 index 0000000..37a27f6 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/conversion/MallMemberConversion.java @@ -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); + +} 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/entity/MallMember.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java index 41188de..b01bd14 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java +++ b/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; /** 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..c1e43b2 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,9 @@ FebsResponse toLogin(LoginDto loginDto); + FebsResponse forgetPwd(ForgetPwdDto forgetPwdDto); + + FebsResponse logout(); + + FebsResponse findMemberInfo(); } 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..0483305 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,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); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java index 7679f6a..a51685b 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java +++ b/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; -- Gitblit v1.9.1