From 83dbfeab6fe421bf11b39429dca32469b8a1b9f8 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Sat, 25 Sep 2021 18:44:44 +0800 Subject: [PATCH] 20210925 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 95 +++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 87 insertions(+), 8 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 979c1f7..10d2594 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,19 +1,15 @@ 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; -import cc.mrbird.febs.mall.entity.MallMemberWallet; -import cc.mrbird.febs.mall.entity.MallMoneyFlow; -import cc.mrbird.febs.mall.entity.MallShoppingCart; +import cc.mrbird.febs.mall.entity.*; 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 +51,8 @@ private final MallOrderInfoMapper mallOrderInfoMapper; private final MallShoppingCartMapper mallShoppingCartMapper; private final MallMoneyFlowMapper mallMoneyFlowMapper; + private final IApiMallMemberWalletService walletService; + private final MallMemberPaymentMapper mallMemberPaymentMapper; @Value("${spring.profiles.active}") private String active; @@ -213,6 +211,15 @@ mallMemberVo.setReferrerName(referMember.getName()); } + if (StrUtil.isNotBlank(mallMember.getTradePassword())) { + mallMemberVo.setHasTradePwd(1); + } + + MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(id); + if (payment != null) { + mallMemberVo.setHasPayment(1); + } + MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); mallMemberVo.setBalance(wallet.getBalance()); return new FebsResponse().success().data(mallMemberVo); @@ -320,4 +327,76 @@ 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 (StrUtil.isBlank(loginMember.getTradePassword())) { + throw new FebsException("未设置支付密码"); + } + + 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 (StrUtil.isBlank(mallMember.getTradePassword())) { + throw new FebsException("未设置支付密码"); + } + + if (!mallMember.getTradePassword().equals(SecureUtil.md5(withdrawalDto.getTradePwd()))) { + throw new FebsException("支付密码错误"); + } + + if (withdrawalDto.getAmount().compareTo(BigDecimal.valueOf(100)) < 0) { + throw new FebsException("最小提现金额为100"); + } + + MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(memberId); + if (payment == null) { + throw new FebsException("未设置收款方式"); + } + + walletService.reduceBalance(withdrawalDto.getAmount(), memberId); + String orderNo = MallUtils.getOrderNum("W"); + this.addMoneyFlow(memberId, withdrawalDto.getAmount().negate(), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), orderNo, null, null, null, 1); + } + + @Override + public void setPayment(MallMemberPayment mallMemberPayment) { + MallMember member = LoginUserUtil.getLoginUser(); + + MallMemberPayment exist = mallMemberPaymentMapper.selectByMemberId(member.getId()); + if (exist == null) { + mallMemberPayment.setMemberId(member.getId()); + mallMemberPaymentMapper.insert(mallMemberPayment); + } else { + mallMemberPayment.setId(exist.getId()); + mallMemberPaymentMapper.updateById(mallMemberPayment); + } + } + + @Override + public MallMemberPayment findMemberPayment() { + MallMember member = LoginUserUtil.getLoginUser(); + return mallMemberPaymentMapper.selectByMemberId(member.getId()); + } } -- Gitblit v1.9.1