KKSU
2024-12-30 95c54326a4e93c4084ad424a6edd3eb93195328d
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -130,14 +130,23 @@
        //对于邀请码的验证和上级联系人的验证
        Integer count = this.baseMapper.selectCount(null);
        if (count != null && count != 0) {
            if(!StrUtil.isEmpty(registerDto.getInviteId())){
                String inviteId = registerDto.getInviteId();
                MallMember inviteMember = this.baseMapper.selectInfoByInviteId(inviteId);
                if (inviteMember == null) {
                    throw new FebsException("邀请码不存在");
                }
                mallMember.setReferrerId(registerDto.getInviteId());
            if(StrUtil.isEmpty(registerDto.getInviteId())){
                throw new FebsException("请输入邀请码");
            }
            String inviteId = registerDto.getInviteId();
            MallMember inviteMember = this.baseMapper.selectInfoByInviteId(inviteId);
            if (inviteMember == null) {
                throw new FebsException("邀请码不存在");
            }
            mallMember.setReferrerId(registerDto.getInviteId());
//            if(!StrUtil.isEmpty(registerDto.getInviteId())){
//                String inviteId = registerDto.getInviteId();
//                MallMember inviteMember = this.baseMapper.selectInfoByInviteId(inviteId);
//                if (inviteMember == null) {
//                    throw new FebsException("邀请码不存在");
//                }
//                mallMember.setReferrerId(registerDto.getInviteId());
//            }
        }
        mallMember.setName(account);
        mallMember.setAvatar("https://res.runstep.cc/rslogo.png");
@@ -486,7 +495,7 @@
         * 用户的等级level是否允许兑换碳币
         */
        RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, loginMember.getLevel()));
        if(ObjectUtil.isEmpty(runVip) || runVip.getWithdrawState() != YesOrNoEnum.YES.getValue()){
        if(ObjectUtil.isEmpty(runVip) || runVip.getInsideState() != YesOrNoEnum.YES.getValue()){
            throw new FebsException("请先升级会员");
        }
@@ -529,6 +538,7 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void withdrawal(WithdrawalDto withdrawalDto) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        MallMember loginMember = this.baseMapper.selectById(memberId);
@@ -571,12 +581,20 @@
                        RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN_PERCENT.getType(),
                        RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN_PERCENT.getCode()).getValue()
        ).setScale(4, BigDecimal.ROUND_DOWN);
        BigDecimal withdrawalAmount = withdrawalDto.getAmount().multiply(balanceToCoin).setScale(2, BigDecimal.ROUND_DOWN);
        BigDecimal fee = balanceToCoinPercent;
//        BigDecimal fee = balanceToCoinPercent.multiply(withdrawalAmount).setScale(2, BigDecimal.ROUND_DOWN);
        BigDecimal withdrawalAmountReal = withdrawalAmount.subtract(fee);
        if(BigDecimal.ZERO.compareTo(withdrawalAmountReal) >= 0){
            throw new FebsException(minCnt+"手续费不足");
        }
        /**
         *  减少碳币,增加进行中提现记录
         */
        BigDecimal withdrawalAmount = withdrawalDto.getAmount().multiply(balanceToCoin).setScale(2, BigDecimal.ROUND_DOWN);
        BigDecimal fee = balanceToCoinPercent.multiply(withdrawalAmount).setScale(2, BigDecimal.ROUND_DOWN);
        BigDecimal withdrawalAmountReal = withdrawalAmount.subtract(fee);
        walletService.reduceBalance(withdrawalDto.getAmount(), loginMember.getId());
        String orderNo = MallUtils.getOrderNum("TX");
        MallMemberWithdraw withdraw = new MallMemberWithdraw();
        withdraw.setWithdrawNo(orderNo);
@@ -586,9 +604,9 @@
        withdraw.setAmountFee(fee);
        withdraw.setName(mallMemberPayment.getBank());
        withdraw.setType(mallMemberPayment.getBankNo());
        withdraw.setWithdrawTimes(withdrawalDto.getAmount());
        mallMemberWithdrawMapper.insert(withdraw);
        walletService.reduceBalance(withdrawalDto.getAmount(), loginMember.getId());
        this.runVipMoneyFlowAdd(
                loginMember.getId(),
                loginMember.getId(),
@@ -603,6 +621,7 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void commissionChange(CommissionChangeDto commissionChange) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        BigDecimal minScore = new BigDecimal(
@@ -627,6 +646,11 @@
        RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, loginMember.getLevel()));
        if(ObjectUtil.isEmpty(runVip) || runVip.getChangeState() != YesOrNoEnum.YES.getValue()){
            throw new FebsException("请先升级会员");
        }
        MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
        if(minScore.compareTo(mallMemberWallet.getScore()) > 0){
            throw new FebsException("碳积分不足");
        }
        BigDecimal scoreBalancePercent = new BigDecimal(
@@ -1542,6 +1566,10 @@
    public static String hidePhoneNumber(String phoneNumber) {
        //判断字符串的长度小于4就直接返回
        if (phoneNumber.length() < 4) {
            return phoneNumber;
        }
        // 获取前3位和后4位
        String prefix = phoneNumber.substring(0, 3);
        // 生成隐藏的电话号码