| | |
| | | //对于邀请码的验证和上级联系人的验证 |
| | | 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"); |
| | | mallMember.setAccountStatus(YesOrNoEnum.YES.getValue()); |
| | | mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); |
| | | mallMember.setSex("男"); |
| | |
| | | RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, mallMemberVo.getLevel())); |
| | | mallMemberVo.setLevelName(runVip.getVipName()); |
| | | mallMemberVo.setLevelPng(runVip.getVipPng()); |
| | | mallMemberVo.setChangeState(runVip.getChangeState()); |
| | | mallMemberVo.setWithdrawState(runVip.getWithdrawState()); |
| | | |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); |
| | | mallMemberVo.setBalance(wallet.getBalance()); |
| | | mallMemberVo.setScore(wallet.getScore()); |
| | | |
| | | mallMemberVo.setMinScore( |
| | | new BigDecimal( |
| | | dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | RunVipDataDictionaryEnum.RUN_VIP_SCORE_MIN.getType(), |
| | | RunVipDataDictionaryEnum.RUN_VIP_SCORE_MIN.getCode()).getValue() |
| | | ).setScale(0,BigDecimal.ROUND_DOWN) |
| | | ); |
| | | mallMemberVo.setScoreBalance( |
| | | new BigDecimal( |
| | | dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | RunVipDataDictionaryEnum.RUN_VIP_SCORE_TO_BALANCE.getType(), |
| | | RunVipDataDictionaryEnum.RUN_VIP_SCORE_TO_BALANCE.getCode()).getValue() |
| | | ).setScale(2, BigDecimal.ROUND_DOWN) |
| | | ); |
| | | mallMemberVo.setBalanceCoin( |
| | | new BigDecimal( |
| | | dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getType(), |
| | | RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getCode()).getValue() |
| | | ).setScale(2, BigDecimal.ROUND_DOWN) |
| | | ); |
| | | mallMemberVo.setBalanceCoinPercent( |
| | | new BigDecimal( |
| | | dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN_PERCENT.getType(), |
| | | RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN_PERCENT.getCode()).getValue() |
| | | ).setScale(4, BigDecimal.ROUND_DOWN) |
| | | ); |
| | | return new FebsResponse().success().data(mallMemberVo); |
| | | } |
| | | |
| | |
| | | mallMember.setAvatar(modifyMemberInfoDto.getPhoto()); |
| | | } |
| | | |
| | | this.baseMapper.updateById(mallMember); |
| | | this.baseMapper.updateNameAndAvatar(member.getId(),modifyMemberInfoDto.getName(),modifyMemberInfoDto.getPhoto()); |
| | | return new FebsResponse().success().message("修改成功"); |
| | | } |
| | | |
| | |
| | | }else{ |
| | | item.setMyTeamCnt(mallMemberRefs.size()); |
| | | //获取mallMembers的所有id |
| | | myTeamVo.setMyTeamBalance(getTeamBalance(mallMemberRefs)); |
| | | item.setMyTeamBalance(getTeamBalance(mallMemberRefs)); |
| | | } |
| | | }); |
| | | myTeamVo.setTeam(teamListVos); |
| | | |
| | | |
| | | return new FebsResponse().success().data(myTeamVo); |
| | |
| | | * 用户的等级level是否允许兑换碳币 |
| | | */ |
| | | RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, loginMember.getLevel())); |
| | | if(ObjectUtil.isEmpty(runVip) || runVip.getChangeState() != YesOrNoEnum.YES.getValue()){ |
| | | if(ObjectUtil.isEmpty(runVip) || runVip.getInsideState() != YesOrNoEnum.YES.getValue()){ |
| | | throw new FebsException("请先升级会员"); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void withdrawal(WithdrawalDto withdrawalDto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | MallMember loginMember = this.baseMapper.selectById(memberId); |
| | |
| | | /** |
| | | * 减少碳币,增加进行中提现记录 |
| | | */ |
| | | walletService.reduceBalance(withdrawalDto.getAmount(), loginMember.getId()); |
| | | |
| | | 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); |
| | |
| | | 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(), |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void commissionChange(CommissionChangeDto commissionChange) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | BigDecimal minScore = new BigDecimal( |
| | |
| | | @Override |
| | | public void setPayment(ApiMallMemberPaymentDto apiMallMemberPaymentDto) { |
| | | |
| | | List<MallMemberPayment> mallMemberPayments = mallMemberPaymentMapper.selectList( |
| | | new LambdaQueryWrapper<MallMemberPayment>().eq(MallMemberPayment::getBank, apiMallMemberPaymentDto.getBank())); |
| | | if(CollUtil.isNotEmpty(mallMemberPayments)){ |
| | | throw new FebsException("地址已使用"); |
| | | } |
| | | |
| | | MallMember member = LoginUserUtil.getLoginUser(); |
| | | if(null == apiMallMemberPaymentDto.getId()){//新增 |
| | | List<MallMemberPayment> mallMemberPayments = mallMemberPaymentMapper.selectList( |
| | | new LambdaQueryWrapper<MallMemberPayment>().eq(MallMemberPayment::getBank, apiMallMemberPaymentDto.getBank())); |
| | | if(CollUtil.isNotEmpty(mallMemberPayments)){ |
| | | throw new FebsException("地址已使用"); |
| | | } |
| | | MallMemberPayment mallMemberPayment = new MallMemberPayment(); |
| | | mallMemberPayment.setMemberId(member.getId()); |
| | | mallMemberPayment.setBankNo(apiMallMemberPaymentDto.getBankNo()); |
| | | mallMemberPayment.setBank(apiMallMemberPaymentDto.getBank()); |
| | | mallMemberPaymentMapper.insert(mallMemberPayment); |
| | | }else{ |
| | | List<MallMemberPayment> mallMemberPayments = mallMemberPaymentMapper.selectList( |
| | | new LambdaQueryWrapper<MallMemberPayment>().eq(MallMemberPayment::getBank, apiMallMemberPaymentDto.getBank())); |
| | | if(CollUtil.isNotEmpty(mallMemberPayments) && mallMemberPayments.size() > 1){ |
| | | throw new FebsException("地址已使用"); |
| | | } |
| | | MallMemberPayment mallMemberPayment = mallMemberPaymentMapper.selectById(apiMallMemberPaymentDto.getId()); |
| | | mallMemberPayment.setMemberId(member.getId()); |
| | | mallMemberPayment.setBankNo(apiMallMemberPaymentDto.getBankNo()); |
| | |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | |
| | | public static String hidePhoneNumber(String phoneNumber) { |
| | | //判断字符串的长度小于4就直接返回 |
| | | if (phoneNumber.length() < 4) { |
| | | return phoneNumber; |
| | | } |
| | | // 获取前3位和后4位 |
| | | String prefix = phoneNumber.substring(0, 3); |
| | | // 生成隐藏的电话号码 |
| | | return prefix + "****"; |
| | | } |
| | | |
| | | @Override |
| | | public List<ApiChartVo> dayRecord(ApiRecordDto apiRecordDto) { |
| | | /** |
| | |
| | | mallMoneyFlowLambdaQueryWrapper.ge(MallMoneyFlow :: getCreatedTime , dateTime); |
| | | } |
| | | mallMoneyFlowLambdaQueryWrapper.eq(MallMoneyFlow :: getFlowType, FlowTypeEnum.SCORE.getValue()); |
| | | mallMoneyFlowLambdaQueryWrapper.eq(MallMoneyFlow :: getType, RunVipMoneyFlowTypeEnum.SCORE_OUT_BALANCE.getValue()); |
| | | mallMoneyFlowLambdaQueryWrapper.in( |
| | | MallMoneyFlow :: getType, |
| | | RunVipMoneyFlowTypeEnum.GET_SCORE.getValue(), |
| | | RunVipMoneyFlowTypeEnum.SYS_SCORE.getValue() |
| | | ); |
| | | List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(mallMoneyFlowLambdaQueryWrapper); |
| | | |
| | | List<ApiChartVo> apiChartVos = new ArrayList<>(); |
| | |
| | | sortedList.forEach(entry -> { |
| | | ApiChartVo apiChartVo = new ApiChartVo(); |
| | | MallMember mallMember = this.baseMapper.selectById(entry.getKey()); |
| | | apiChartVo.setPhone(mallMember.getPhone()); |
| | | apiChartVo.setName(hidePhoneNumber(mallMember.getName())); |
| | | apiChartVo.setAvatar(mallMember.getAvatar()); |
| | | apiChartVo.setScore(entry.getValue()); |
| | | apiChartVos.add(apiChartVo); |