From 562ac2c071de933e04aec1fb32ee98c7a85d448d Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 11 May 2022 12:15:46 +0800 Subject: [PATCH] add profit --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 136 ++++++++++++++++++++++++++++++++------------- 1 files changed, 96 insertions(+), 40 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 1fadbdf..ada57e5 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 @@ -2,6 +2,7 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.AgentLevelEnum; +import cc.mrbird.febs.common.enumerates.FlowTypeEnum; import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.*; @@ -12,9 +13,7 @@ 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; -import cc.mrbird.febs.mall.vo.TeamListVo; +import cc.mrbird.febs.mall.vo.*; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -33,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -56,6 +56,7 @@ private final MallMemberPaymentMapper mallMemberPaymentMapper; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + @Value("${spring.profiles.active}") private String active; @@ -64,7 +65,7 @@ public FebsResponse register(RegisterDto registerDto) { MallMember mallMember = this.baseMapper.selectInfoByAccount(registerDto.getAccount()); if (mallMember != null) { - throw new FebsException("该手机号/邮箱已被占用"); + throw new FebsException("该账号已被占用"); } String account = registerDto.getAccount(); @@ -97,7 +98,7 @@ mallMember.setName(registerDto.getAccount()); mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); - mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name()); + mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name()); mallMember.setSex("男"); this.baseMapper.insert(mallMember); @@ -108,6 +109,9 @@ //推荐人和推荐人链 boolean flag = false; String parentId = mallMember.getReferrerId(); + if (StrUtil.isBlank(parentId)) { + flag = true; + } String ids = ""; while (!flag) { if (StrUtil.isBlank(ids)) { @@ -164,9 +168,7 @@ redisUtils.set(redisKey, token, 360000); Map<String, Object> authInfo = new HashMap<>(); authInfo.put("token", token); - if ("dev".equals(active)) { - authInfo.put("rasToken", generateAsaToken(token)); - } + authInfo.put("rasToken", generateAsaToken(token)); return new FebsResponse().success().data(authInfo); } @@ -228,6 +230,9 @@ } MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); mallMemberVo.setBalance(wallet.getBalance()); + mallMemberVo.setScore(wallet.getScore()); + mallMemberVo.setPrizeScore(wallet.getPrizeScore()); + mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id)); return new FebsResponse().success().data(mallMemberVo); } @@ -252,7 +257,8 @@ @Override public FebsResponse setTradePwd(ForgetPwdDto forgetPwdDto) { - MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount()); + MallMember memberId = LoginUserUtil.getLoginUser(); + MallMember mallMember = this.baseMapper.selectById(memberId); if (mallMember == null) { throw new FebsException("账号不存在"); } @@ -307,8 +313,19 @@ own.setCnt(this.baseMapper.selectOwnCntByInviteId(mallMember.getInviteId())); own.setOrderCnt(this.baseMapper.selectOwnOrderCntByInviteId(mallMember.getInviteId())); own.setId(mallMember.getId()); - list.add(0, own); - return new FebsResponse().success().data(list); +// list.add(0, own); + + MyTeamVo myTeamVo = new MyTeamVo(); + myTeamVo.setTeam(list); + myTeamVo.setMyAchieve(BigDecimal.valueOf(100)); + myTeamVo.setMyTeamAchieve(BigDecimal.valueOf(100)); + myTeamVo.setMyTeamCnt(100); + return new FebsResponse().success().data(myTeamVo); + } + + @Override + public MyTeamVo teamListForMine(TeamListDto teamListDto) { + return null; } @Override @@ -321,7 +338,7 @@ } @Override - public void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, String description, String remark, Long rtMemberId, Integer status) { + public void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, String description, String remark, Long rtMemberId, Integer status, Integer flowType) { MallMoneyFlow flow = new MallMoneyFlow(); flow.setMemberId(memberId); flow.setAmount(amount); @@ -331,6 +348,7 @@ flow.setRemark(remark); flow.setRtMemberId(rtMemberId); flow.setStatus(status); + flow.setFlowType(flowType); mallMoneyFlowMapper.insert(flow); } @@ -344,6 +362,11 @@ Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember loginMember = this.baseMapper.selectById(memberId); + + if (loginMember.getPhone().equals(transferDto.getAccount()) || loginMember.getInviteId().equals(transferDto.getAccount())) { + throw new FebsException("不能给自己转账"); + } + if (StrUtil.isBlank(loginMember.getTradePassword())) { throw new FebsException("未设置支付密码"); } @@ -354,36 +377,10 @@ 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); + this.addMoneyFlow(memberId, transferDto.getAmount().negate(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, mallMember.getId(), null, FlowTypeEnum.BALANCE.getValue()); 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); + this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.BALANCE.getValue()); } @Override @@ -419,4 +416,63 @@ member.setBindPhone(accountAndCodeDto.getAccount()); this.baseMapper.updateById(member); } + + @Override + public BigDecimal canMoney() { + Long memberId = LoginUserUtil.getLoginUser().getId(); + MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); + BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); + + BigDecimal canMoney = wallet.getBalance(); + if (profit != null) { + if(canMoney.compareTo(BigDecimal.ZERO) > 0) { + canMoney = canMoney.subtract(profit); + } + } + return canMoney; + } + + @Override + public List<MallMember> findRankList(RankListDto rankListDto) { + IPage<MallMember> page = new Page<>(rankListDto.getPageNum(), rankListDto.getPageSize()); + + MallMember member = new MallMember(); + member.setQuery("2"); + member.setCreatedTime(new Date()); + IPage<MallMember> list = this.baseMapper.selectRankListInPage(page, member); + + return list.getRecords(); + } + + @Override + public MallMember findMemberInfoByAccount(String phone) { + return this.baseMapper.selectInfoByAccount(phone); + } + + @Override + public MyCommissionVo myCommission() { + Long id = LoginUserUtil.getLoginUser().getId(); + MallMember mallMember = this.baseMapper.selectById(id); + + MyCommissionVo commissionVo = MallMemberConversion.INSTANCE.entityToCommissionVo(mallMember); + + MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId()); + if (referMember != null) { + commissionVo.setReferrerName(referMember.getName()); + commissionVo.setAvatar(referMember.getAvatar()); + } + + DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel()); + if (dic != null) { + commissionVo.setLevelName(dic.getDescription()); + } + + MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(id); + commissionVo.setCommission(wallet.getCommission()); + commissionVo.setToday(mallMoneyFlowMapper.selectCommissionIncome(1, new Date(), id)); + commissionVo.setMonth(mallMoneyFlowMapper.selectCommissionIncome(2, new Date(), id)); + commissionVo.setTotal(mallMoneyFlowMapper.selectCommissionIncome(null, null, id)); + commissionVo.setWaitCommission(BigDecimal.ZERO); + return commissionVo; + } } -- Gitblit v1.9.1