xiaoyong931011
2021-09-16 528cc3c8aaf586b631b46b186eebf4023bc7956b
Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall
3 files added
6 files modified
210 ■■■■■ 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 36 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/conversion/MallMemberConversion.java 18 ●●●●● 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/entity/MallMember.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 40 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java 18 ●●●●● 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;