From 2221b7618f62d23fbf2000725be39e0d5b970fee Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sat, 25 Sep 2021 11:31:02 +0800 Subject: [PATCH] add common function --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 48 insertions(+), 4 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 9a61d7f..0db78a7 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,11 +1,9 @@ package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; import cc.mrbird.febs.common.exception.FebsException; -import cc.mrbird.febs.common.utils.AppContants; -import cc.mrbird.febs.common.utils.LoginUserUtil; -import cc.mrbird.febs.common.utils.RedisUtils; -import cc.mrbird.febs.common.utils.ShareCodeUtil; +import cc.mrbird.febs.common.utils.*; import cc.mrbird.febs.mall.conversion.MallMemberConversion; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.MallMember; @@ -14,6 +12,7 @@ import cc.mrbird.febs.mall.entity.MallShoppingCart; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IApiMallMemberService; +import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.mall.vo.MallMemberVo; import cc.mrbird.febs.mall.vo.MoneyFlowVo; @@ -55,6 +54,7 @@ private final MallOrderInfoMapper mallOrderInfoMapper; private final MallShoppingCartMapper mallShoppingCartMapper; private final MallMoneyFlowMapper mallMoneyFlowMapper; + private final IApiMallMemberWalletService walletService; @Value("${spring.profiles.active}") private String active; @@ -208,6 +208,11 @@ MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember); + MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId()); + if (referMember != null) { + mallMemberVo.setReferrerName(referMember.getName()); + } + MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); mallMemberVo.setBalance(wallet.getBalance()); return new FebsResponse().success().data(mallMemberVo); @@ -315,4 +320,43 @@ flow.setStatus(status); mallMoneyFlowMapper.insert(flow); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void transfer(TransferDto transferDto) { + MallMember mallMember = this.baseMapper.selectInfoByAccount(transferDto.getAccount()); + if (mallMember == null) { + throw new FebsException("用户不存在"); + } + + Long memberId = LoginUserUtil.getLoginUser().getId(); + MallMember loginMember = this.baseMapper.selectById(memberId); + if (!loginMember.getTradePassword().equals(SecureUtil.md5(transferDto.getTradePwd()))) { + throw new FebsException("支付密码错误"); + } + + 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); + + walletService.addBalance(transferDto.getAmount(), mallMember.getId()); + this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null); + } + + @Override + public void withdrawal(WithdrawalDto withdrawalDto) { + Long memberId = LoginUserUtil.getLoginUser().getId(); + MallMember mallMember = this.baseMapper.selectById(memberId); + if (!mallMember.getTradePassword().equals(SecureUtil.md5(withdrawalDto.getTradePwd()))) { + throw new FebsException("支付密码错误"); + } + + if (withdrawalDto.getAmount().compareTo(BigDecimal.valueOf(100)) < 0) { + throw new FebsException("最小提现金额为100"); + } + + walletService.reduceBalance(withdrawalDto.getAmount(), memberId); + String orderNo = MallUtils.getOrderNum("W"); + this.addMoneyFlow(memberId, withdrawalDto.getAmount().negate(), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), orderNo, null, null, null, 1); + } } -- Gitblit v1.9.1