From 1d0743632c39e137873960fcc76182943622719d Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 29 Sep 2021 14:44:48 +0800 Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 87 ++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 81 insertions(+), 6 deletions(-) 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 7e0522b..c5eb694 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 @@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.common.enumerates.AgentLevelEnum; import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.*; @@ -53,6 +54,7 @@ private final MallMoneyFlowMapper mallMoneyFlowMapper; private final IApiMallMemberWalletService walletService; private final MallMemberPaymentMapper mallMemberPaymentMapper; + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; @Value("${spring.profiles.active}") private String active; @@ -62,7 +64,7 @@ public FebsResponse register(RegisterDto registerDto) { MallMember mallMember = this.baseMapper.selectInfoByAccount(registerDto.getAccount()); if (mallMember != null) { - throw new FebsException("该手机号/邮箱已被占用"); + throw new FebsException("该账号已被占用"); } String account = registerDto.getAccount(); @@ -95,7 +97,7 @@ mallMember.setName(registerDto.getAccount()); mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); - mallMember.setLevel("1"); + mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name()); mallMember.setSex("男"); this.baseMapper.insert(mallMember); @@ -106,6 +108,9 @@ //推荐人和推荐人链 boolean flag = false; String parentId = mallMember.getReferrerId(); + if (StrUtil.isBlank(parentId)) { + flag = true; + } String ids = ""; while (!flag) { if (StrUtil.isBlank(ids)) { @@ -162,9 +167,7 @@ redisUtils.set(redisKey, token, 360000); Map<String, Object> authInfo = new HashMap<>(); authInfo.put("token", token); - if ("dev".equals(active)) { - authInfo.put("rasToken", generateAsaToken(token)); - } + authInfo.put("rasToken", generateAsaToken(token)); return new FebsResponse().success().data(authInfo); } @@ -211,6 +214,19 @@ mallMemberVo.setReferrerName(referMember.getName()); } + if (StrUtil.isNotBlank(mallMember.getTradePassword())) { + mallMemberVo.setHasTradePwd(1); + } + + MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(id); + if (payment != null) { + mallMemberVo.setHasPayment(1); + } + + DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel()); + if (dic != null) { + mallMemberVo.setLevelName(dic.getDescription()); + } MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); mallMemberVo.setBalance(wallet.getBalance()); return new FebsResponse().success().data(mallMemberVo); @@ -237,7 +253,8 @@ @Override public FebsResponse setTradePwd(ForgetPwdDto forgetPwdDto) { - MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount()); + MallMember memberId = LoginUserUtil.getLoginUser(); + MallMember mallMember = this.baseMapper.selectById(memberId); if (mallMember == null) { throw new FebsException("账号不存在"); } @@ -329,6 +346,15 @@ Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember loginMember = this.baseMapper.selectById(memberId); + + if (loginMember.getPhone().equals(transferDto.getAccount()) || loginMember.getInviteId().equals(transferDto.getAccount())) { + throw new FebsException("不能给自己转账"); + } + + if (StrUtil.isBlank(loginMember.getTradePassword())) { + throw new FebsException("未设置支付密码"); + } + if (!loginMember.getTradePassword().equals(SecureUtil.md5(transferDto.getTradePwd()))) { throw new FebsException("支付密码错误"); } @@ -345,12 +371,32 @@ public void withdrawal(WithdrawalDto withdrawalDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = this.baseMapper.selectById(memberId); + if (StrUtil.isBlank(mallMember.getTradePassword())) { + throw new FebsException("未设置支付密码"); + } + if (!mallMember.getTradePassword().equals(SecureUtil.md5(withdrawalDto.getTradePwd()))) { throw new FebsException("支付密码错误"); } if (withdrawalDto.getAmount().compareTo(BigDecimal.valueOf(100)) < 0) { throw new FebsException("最小提现金额为100"); + } + + MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(memberId); + if (payment == null) { + throw new FebsException("未设置收款方式"); + } + + BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); + MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); + if (profit != null) { + // 可提现 + BigDecimal canMoney = wallet.getBalance().subtract(profit); + + if(withdrawalDto.getAmount().compareTo(canMoney) > 0) { + throw new FebsException("提现金额不足"); + } } walletService.reduceBalance(withdrawalDto.getAmount(), memberId); @@ -377,4 +423,33 @@ MallMember member = LoginUserUtil.getLoginUser(); return mallMemberPaymentMapper.selectByMemberId(member.getId()); } + + @Override + public void bindPhone(AccountAndCodeDto accountAndCodeDto) { + boolean b = commonService.verifyCode(accountAndCodeDto.getAccount(), accountAndCodeDto.getCode()); + if (!b) { + throw new FebsException("验证码错误"); + } + + Long id = LoginUserUtil.getLoginUser().getId(); + MallMember member = this.baseMapper.selectById(id); + + member.setBindPhone(accountAndCodeDto.getAccount()); + this.baseMapper.updateById(member); + } + + @Override + public BigDecimal canMoney() { + Long memberId = LoginUserUtil.getLoginUser().getId(); + MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); + BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); + + BigDecimal canMoney = wallet.getBalance(); + if (profit != null) { + if(canMoney.compareTo(BigDecimal.ZERO) > 0) { + canMoney = canMoney.subtract(profit); + } + } + return canMoney; + } } -- Gitblit v1.9.1