Administrator
2026-06-12 bad3d455414d91a78c3112761f65a2d74ed9bde7
feat(mall): 更新用户注册和登录功能

- 移除服务实现类中不必要的依赖注入
- 添加密码确认验证逻辑,确保两次输入密码一致
- 在用户注册时创建默认地址信息记录
- 更新登录DTO中的字段描述为英文
- 扩展注册DTO包含姓名、邮箱、电话号码和确认密码字段
- 添加相应的数据验证注解和API文档说明
3 files modified
57 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/dto/LoginDto.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java 22 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/LoginDto.java
@@ -15,10 +15,10 @@
public class LoginDto {
    @NotBlank(message = "The account cannot be empty")
    @ApiModelProperty(value = "手机号", example = "15773001234")
    @ApiModelProperty(value = "account", example = "15773001234")
    private String account;
    @NotBlank(message = "The password cannot be empty")
    @ApiModelProperty(value = "密码", example = "123456")
    @ApiModelProperty(value = "password", example = "123456")
    private String password;
}
src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java
@@ -14,12 +14,28 @@
@ApiModel(value = "RegisterDto", description = "用户注册参数接收类")
public class RegisterDto {
    @NotBlank(message = "The account cannot be empty")
    @ApiModelProperty(value = "手机号", example = "15773001234")
    @NotBlank(message = "The First Name cannot be empty")
    @ApiModelProperty(value = "First Name", example = "15773001234")
    private String firstName;
    @NotBlank(message = "The LastName cannot be empty")
    @ApiModelProperty(value = "LastName", example = "15773001234")
    private String lastName;
    @NotBlank(message = "The Email Address cannot be empty")
    @ApiModelProperty(value = "Email Address", example = "15773001234")
    private String account;
    @NotBlank(message = "The Phone Number cannot be empty")
    @ApiModelProperty(value = "Phone Number", example = "15773001234")
    private String phoneNumber;
    @NotBlank(message = "The password cannot be empty")
    @ApiModelProperty(value = "密码", example = "123456")
    @ApiModelProperty(value = "Password", example = "123456")
    private String password;
    @NotBlank(message = "The Confirm Password cannot be empty")
    @ApiModelProperty(value = "Confirm Password", example = "15773001234")
    private String confirmPassword;
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -65,30 +65,13 @@
    private final MallMemberWalletMapper mallMemberWalletMapper;
    private final ICommonService commonService;
    private final RedisUtils redisUtils;
    private final MallOrderInfoMapper mallOrderInfoMapper;
    private final MallShoppingCartMapper mallShoppingCartMapper;
    private final MallMoneyFlowMapper mallMoneyFlowMapper;
    private final IApiMallMemberWalletService walletService;
    private final MallMemberPaymentMapper mallMemberPaymentMapper;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    private final MallShopApplyMapper mallShopApplyMapper;
    private final MallRegisterAppealMapper mallRegisterAppealMapper;
    private final MallTeamLeaderMapper mallTeamLeaderMapper;
    private final SpringContextHolder springContextHolder;
    private final MallAgentRecordMapper mallAgentRecordMapper;
    private final IMallMoneyFlowService mallMoneyFlowService;
    private final IMallMemberCollectionService mallMemberCollectionService;
    private final IMallMemberFootprintService mallMemberFootprintService;
    private final SalemanCouponMapper salemanCouponMapper;
    private final CouponGoodsMapper couponGoodsMapper;
    private final MallGoodsCouponMapper mallGoodsCouponMapper;
    private final MallMemberCouponMapper mallMemberCouponMapper;
    private final MallGoodsMapper mallGoodsMapper;
    private final MallVipConfigMapper mallVipConfigMapper;
    private final MallStoreMapper mallStoreMapper;
    private final MallStoreItemMapper mallStoreItemMapper;
    private final MallStoreMemberMapper mallStoreMemberMapper;
    private final MallAddressInfoMapper mallAddressInfoMapper;
    @Value("${spring.profiles.active}")
@@ -106,6 +89,10 @@
         * 验证两次密码是否一致
         */
        String password = registerDto.getPassword();
        String confirmPassword = registerDto.getConfirmPassword();
        if (!password.equals(confirmPassword)) {
            throw new FebsException("The two passwords are inconsistent");
        }
        mallMember = new MallMember();
        mallMember.setName(account);
        mallMember.setEmail(registerDto.getAccount());
@@ -114,6 +101,14 @@
        mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
        this.baseMapper.insert(mallMember);
        MallAddressInfo mallAddressInfo = new MallAddressInfo();
        mallAddressInfo.setMemberId(mallMember.getId());
        mallAddressInfo.setName(registerDto.getLastName());
        mallAddressInfo.setFristName(registerDto.getFirstName());
        mallAddressInfo.setPhone(registerDto.getPhoneNumber());
        mallAddressInfoMapper.insert(mallAddressInfo);
        MallMemberWallet wallet = new MallMemberWallet();
        wallet.setBalance(BigDecimal.ZERO);
        wallet.setMemberId(mallMember.getId());