|  |  |  | 
|---|
|  |  |  | public FebsResponse register(RegisterDto registerDto) { | 
|---|
|  |  |  | MallMember mallMember = this.baseMapper.selectInfoByAccount(registerDto.getAccount()); | 
|---|
|  |  |  | if (mallMember != null) { | 
|---|
|  |  |  | throw new FebsException("该账号已被占用"); | 
|---|
|  |  |  | throw new FebsException("该账号已被使用"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<MallMember> mallMembers = this.baseMapper.selectMemberByName(registerDto.getName()); | 
|---|
|  |  |  | 
|---|
|  |  |  | mallMemberVo.setScore(wallet.getScore()); | 
|---|
|  |  |  | mallMemberVo.setPrizeScore(wallet.getPrizeScore()); | 
|---|
|  |  |  | mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id)); | 
|---|
|  |  |  | //提现冻结金额 | 
|---|
|  |  |  | BigDecimal froBalance = mallMoneyFlowMapper.selectSumAmountByStatusAndMemberId(MallMoneyFlow.STATUS_ING, id); | 
|---|
|  |  |  | mallMemberVo.setFroBalance(froBalance); | 
|---|
|  |  |  | //剩余保证金 | 
|---|
|  |  |  | BigDecimal avaAmount = mallMemberStarBuyMapper.selectSumAvaAmountByStatusAndMemberId(1,id); | 
|---|
|  |  |  | mallMemberVo.setAvaAmount(avaAmount); | 
|---|
|  |  |  | String accountLevel = mallMemberVo.getAccountLevel(); | 
|---|
|  |  |  | Integer memberLevelCode = MemberAccountLevelEnum.NORMAL.getMemberLevelCode(accountLevel); | 
|---|
|  |  |  | mallMemberVo.setAccountLevelCode(memberLevelCode); | 
|---|
|  |  |  | return new FebsResponse().success().data(mallMemberVo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MyTeamVo myTeamVo = new MyTeamVo(); | 
|---|
|  |  |  | myTeamVo.setTeam(list); | 
|---|
|  |  |  | myTeamVo.setMyAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1)); | 
|---|
|  |  |  | myTeamVo.setMyAchieve(mallOrderInfoMapper.selectTotalAmount(memberId)); | 
|---|
|  |  |  | myTeamVo.setMyTeamAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2)); | 
|---|
|  |  |  | myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size()); | 
|---|
|  |  |  | return new FebsResponse().success().data(myTeamVo); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | walletService.reduceBalance(transferDto.getAmount(), memberId); | 
|---|
|  |  |  | String orderNo = MallUtils.getOrderNum("T"); | 
|---|
|  |  |  | this.addMoneyFlow(memberId, transferDto.getAmount().negate(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, mallMember.getId(), null, FlowTypeEnum.BALANCE.getValue()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String orderNo = MallUtils.getOrderNum("NZ"); | 
|---|
|  |  |  | //        this.addMoneyFlow(memberId, transferDto.getAmount().negate(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, mallMember.getId(), null, FlowTypeEnum.BALANCE.getValue()); | 
|---|
|  |  |  | //生成流水 | 
|---|
|  |  |  | Long outFlowId = mallMoneyFlowService.addMoneyFlow( | 
|---|
|  |  |  | memberId, | 
|---|
|  |  |  | orderNo, | 
|---|
|  |  |  | transferDto.getAmount().negate(), | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.WITHDRAW_INSIDE.getCode(), | 
|---|
|  |  |  | MallMoneyFlow.STATUS_SUCCESS, | 
|---|
|  |  |  | MallMoneyFlow.IS_RETURN_Y, | 
|---|
|  |  |  | memberId, | 
|---|
|  |  |  | FlowTypeEnum.BALANCE.getValue(), | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.WITHDRAW_INSIDE.getName() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | walletService.addBalance(transferDto.getAmount(), mallMember.getId()); | 
|---|
|  |  |  | this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.BALANCE.getValue()); | 
|---|
|  |  |  | //生成流水 | 
|---|
|  |  |  | Long inFlowId = mallMoneyFlowService.addMoneyFlow( | 
|---|
|  |  |  | mallMember.getId(), | 
|---|
|  |  |  | orderNo, | 
|---|
|  |  |  | transferDto.getAmount(), | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.WITHDRAW_INSIDE.getCode(), | 
|---|
|  |  |  | MallMoneyFlow.STATUS_SUCCESS, | 
|---|
|  |  |  | MallMoneyFlow.IS_RETURN_Y, | 
|---|
|  |  |  | mallMember.getId(), | 
|---|
|  |  |  | FlowTypeEnum.BALANCE.getValue(), | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.WITHDRAW_INSIDE.getName() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //        this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.BALANCE.getValue()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | public BigDecimal canMoney() { | 
|---|
|  |  |  | Long memberId = LoginUserUtil.getLoginUser().getId(); | 
|---|
|  |  |  | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); | 
|---|
|  |  |  | BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BigDecimal canMoney = wallet.getCommission(); | 
|---|
|  |  |  | if (profit != null) { | 
|---|
|  |  |  | if(canMoney.compareTo(BigDecimal.ZERO) > 0) { | 
|---|
|  |  |  | canMoney = canMoney.subtract(profit); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal canMoney = wallet.getBalance(); | 
|---|
|  |  |  | canMoney = canMoney.compareTo(BigDecimal.ZERO) > 0 ? canMoney : BigDecimal.ZERO; | 
|---|
|  |  |  | return canMoney; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | public FebsResponse updateMemberBank(UpdateMemberBankDto updateMemberBankDto) { | 
|---|
|  |  |  | Long id = updateMemberBankDto.getId(); | 
|---|
|  |  |  | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(id); | 
|---|
|  |  |  | mallMemberBank.setName(updateMemberBankDto.getName()); | 
|---|
|  |  |  | mallMemberBank.setIdType(updateMemberBankDto.getIdType()); | 
|---|
|  |  |  | mallMemberBank.setIdCardNum(updateMemberBankDto.getIdCardNum()); | 
|---|
|  |  |  | mallMemberBank.setBankNo(updateMemberBankDto.getBankNo()); | 
|---|
|  |  |  | mallMemberBank.setPhone(updateMemberBankDto.getPhone()); | 
|---|
|  |  |  | mallMemberBankMapper.updateById(mallMemberBank); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | //产生用户升级会员等级记录 | 
|---|
|  |  |  | MallMemberStarBuy mallMemberStarBuy = new MallMemberStarBuy(); | 
|---|
|  |  |  | mallMemberStarBuy.setMemberId(mallMember.getId()); | 
|---|
|  |  |  | mallMemberStarBuy.setBuyCode(MallUtils.getLogisticsNum("ms")); | 
|---|
|  |  |  | mallMemberStarBuy.setBuyCode(MallUtils.getLogisticsNum("MS")); | 
|---|
|  |  |  | mallMemberStarBuy.setStarName(buyStarDescription); | 
|---|
|  |  |  | mallMemberStarBuy.setStarCode(buyStarCode); | 
|---|
|  |  |  | mallMemberStarBuy.setAmount(buyStarPriceBigDecimal); | 
|---|
|  |  |  | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //更新会员星级 | 
|---|
|  |  |  | this.baseMapper.updateAccountLevelById(buyStarDescription,mallMember.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //直推返利 | 
|---|
|  |  |  | if(StrUtil.isNotEmpty(mallMember.getReferrerId())){ | 
|---|
|  |  |  | //下单人的直推上级 | 
|---|
|  |  |  | MallMember mallMemberOne = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId()); | 
|---|
|  |  |  | //生成直推返利的流水记录 | 
|---|
|  |  |  | if(ObjectUtil.isNotEmpty(mallMemberOne)){ | 
|---|
|  |  |  | DataDictionaryCustom rewardPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.REWARD_PERCENT.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.REWARD_PERCENT.getCode() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | buyStarPriceBigDecimal = buyStarPriceBigDecimal.compareTo(BigDecimal.ZERO) > 0 ? buyStarPriceBigDecimal : BigDecimal.ZERO; | 
|---|
|  |  |  | BigDecimal rewardPercent = new BigDecimal(rewardPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN); | 
|---|
|  |  |  | BigDecimal directRewardAmount = buyStarPriceBigDecimal.multiply(rewardPercent).setScale(4, BigDecimal.ROUND_DOWN); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long marketSubsidyFlowId = mallMoneyFlowService.addMoneyFlow( | 
|---|
|  |  |  | mallMember.getId(), | 
|---|
|  |  |  | mallMemberStarBuy.getBuyCode(), | 
|---|
|  |  |  | directRewardAmount, | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.DIRECT_REWARD.getCode(), | 
|---|
|  |  |  | MallMoneyFlow.STATUS_SUCCESS, | 
|---|
|  |  |  | MallMoneyFlow.IS_RETURN_Y, | 
|---|
|  |  |  | mallMemberOne.getId(), | 
|---|
|  |  |  | FlowTypeEnum.BALANCE.getValue(), | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.DIRECT_REWARD.getName() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | memberWalletService.addBalance(directRewardAmount,mallMemberOne.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|