From c6b2efa459a6ed7c03723423a2205a7d32d961e0 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 12 Jan 2023 14:49:49 +0800 Subject: [PATCH] 20221227 充值归集 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 94 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 73 insertions(+), 21 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 0817960..e4dfc1a 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 @@ -73,7 +73,7 @@ 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()); @@ -255,6 +255,15 @@ 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); } @@ -326,7 +335,7 @@ 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); @@ -385,11 +394,34 @@ } 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 @@ -430,14 +462,8 @@ 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; } @@ -582,11 +608,7 @@ 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(); } @@ -611,7 +633,7 @@ cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(value); String price = jsonObject.get("price").toString(); String status = jsonObject.get("status").toString(); - apiMallMemberStarVo.setPrice(new BigDecimal(price).setScale(BigDecimal.ROUND_DOWN,2)); + apiMallMemberStarVo.setPrice(new BigDecimal(price).setScale(2,BigDecimal.ROUND_DOWN)); apiMallMemberStarVo.setStatus(Integer.parseInt(status)); apiMallMemberStarVos.add(apiMallMemberStarVo); } @@ -664,7 +686,7 @@ if (!SecureUtil.md5(tradePassword).equals(mallMember.getTradePassword())) { throw new FebsException("支付密码错误"); } - BigDecimal buyStarPriceBigDecimal = new BigDecimal(buyStarPrice).setScale(BigDecimal.ROUND_DOWN, 2); + BigDecimal buyStarPriceBigDecimal = new BigDecimal(buyStarPrice).setScale(2, BigDecimal.ROUND_DOWN); int reduce = memberWalletService.reduce(buyStarPriceBigDecimal, mallMember.getId(), "balance"); if (reduce == 2) { throw new FebsException("余额不足"); @@ -672,7 +694,7 @@ //产生用户升级会员等级记录 MallMemberStarBuy mallMemberStarBuy = new MallMemberStarBuy(); mallMemberStarBuy.setMemberId(mallMember.getId()); - mallMemberStarBuy.setBuyCode(MallUtils.getLogisticsNum("s")); + mallMemberStarBuy.setBuyCode(MallUtils.getLogisticsNum("MS")); mallMemberStarBuy.setStarName(buyStarDescription); mallMemberStarBuy.setStarCode(buyStarCode); mallMemberStarBuy.setAmount(buyStarPriceBigDecimal); @@ -693,6 +715,36 @@ ); //更新会员星级 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(); } } -- Gitblit v1.9.1