From 8bf923b44bbe9b45b73ddcc25df75c9c59f54e07 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Thu, 15 Jun 2023 11:19:44 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 206 insertions(+), 21 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index e97394b..73f91e2 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -4,8 +4,10 @@ import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.enumerates.AgentLevelEnum; import cc.mrbird.febs.common.enumerates.FlowTypeEnum; +import cc.mrbird.febs.common.enumerates.GreenScoreEnum; 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.MallUtils; import cc.mrbird.febs.mall.dto.*; @@ -34,8 +36,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -69,6 +70,8 @@ private final IMallMoneyFlowService mallMoneyFlowService; private final UnipayService unipayService; private final MallMemberBankMapper mallMemberBankMapper; + private final MallScoreRecordMapper mallScoreRecordMapper; + private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper; @Override public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { @@ -121,6 +124,10 @@ // throw new FebsException("团队存在线下服务中心,账号为【"+phoneList.toString()+"】"); // } mallMember.setStoreMaster(value); + }else if (type == 3){ + mallMember.setCreater(value); + } else if (type == 4){ + mallMember.setPartner(value); } else { throw new FebsException("参数错误"); } @@ -168,24 +175,36 @@ } Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); - MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); +// MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); /** * 调用汇聚代付 */ - SinglePayDto singlePayDto = new SinglePayDto(); - singlePayDto.setMerchantOrderNo(mallMemberWithdraw.getWithdrawNo()); - singlePayDto.setReceiverAccountNoEncBankNo(mallMemberBank.getBankNo()); - singlePayDto.setReceiverAccountNoEncName(mallMemberBank.getName()); - singlePayDto.setReceiverAccountType("201"); - BigDecimal paidAmount = mallMemberWithdraw.getAmount().subtract(mallMemberWithdraw.getAmountFee()).setScale(2, BigDecimal.ROUND_DOWN); - singlePayDto.setPaidAmount(paidAmount); - singlePayDto.setCurrency("201"); - singlePayDto.setIsChecked("202"); - singlePayDto.setPaidDesc("用户提现"); - singlePayDto.setPaidUse("202"); - String singlePayRep = unipayService.singlePay(singlePayDto); - if(!mallMemberWithdraw.getWithdrawNo().equals(singlePayRep)){ - return new FebsResponse().fail().message("提现失败,请稍后查看错误信息一览"); +// SinglePayDto singlePayDto = new SinglePayDto(); +// singlePayDto.setMerchantOrderNo(mallMemberWithdraw.getWithdrawNo()); +// singlePayDto.setReceiverAccountNoEncBankNo(mallMemberBank.getBankNo()); +// singlePayDto.setReceiverAccountNoEncName(mallMemberBank.getName()); +// singlePayDto.setReceiverAccountType("201"); +// BigDecimal paidAmount = mallMemberWithdraw.getAmount().subtract(mallMemberWithdraw.getAmountFee()).setScale(2, BigDecimal.ROUND_DOWN); +// singlePayDto.setPaidAmount(paidAmount); +// singlePayDto.setCurrency("201"); +// singlePayDto.setIsChecked("202"); +// singlePayDto.setPaidDesc("用户提现"); +// singlePayDto.setPaidUse("202"); +// String singlePayRep = unipayService.singlePay(singlePayDto); +// if(!mallMemberWithdraw.getWithdrawNo().equals(singlePayRep)){ +// return new FebsResponse().fail().message("提现失败,请稍后查看错误信息一览"); +// } + + mallMemberWithdraw.setStatus(2); + mallMemberWithdrawMapper.updateById(mallMemberWithdraw); + + QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>(); + flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo()); + flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue()); + MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper); + if(ObjectUtil.isNotEmpty(mallMoneyFlow)){ + mallMoneyFlow.setStatus(2); + mallMoneyFlowMapper.updateById(mallMoneyFlow); } return new FebsResponse().success(); @@ -211,9 +230,11 @@ MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper); mallMoneyFlow.setStatus(3); mallMoneyFlowMapper.updateById(mallMoneyFlow); - - //用户佣金增加对应的余额 - iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); + if(AppContants.MEMBER_WITHDRAW_NORMAL.equals(mallMemberWithdraw.getRemark())){ + //用户佣金增加对应的余额 + iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount().add(mallMemberWithdraw.getAmountFee()),mallMemberWithdraw.getMemberId(),"balance"); +// mallMoneyFlowService.addMoneyFlow(mallMemberWithdraw.getMemberId(), mallMemberWithdraw.getAmount().add(mallMemberWithdraw.getAmountFee()), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), mallMemberWithdraw.getWithdrawNo(), FlowTypeEnum.BALANCE.getValue()); + } return new FebsResponse().success(); } @@ -592,7 +613,7 @@ member.setReferrerIds(refererIds); this.baseMapper.updateById(member); - List<MallMember> childs = this.baseMapper.selectByRefererId(member.getInviteId()); + List<MallMember> childs = this.baseMapper.selectAllChildAgentListByInviteId(member.getInviteId()); if (CollUtil.isEmpty(childs)) { return; } @@ -625,8 +646,104 @@ if(ObjectUtil.isNotEmpty(mallMemberBank)){ adminMallMemberPaymentVo.setBankNo(mallMemberBank.getBankNo()); adminMallMemberPaymentVo.setBankName(mallMemberBank.getName()); + adminMallMemberPaymentVo.setDigitalNo(mallMemberBank.getDigitalNo()); + adminMallMemberPaymentVo.setSubbranchName(mallMemberBank.getSubbranchName()); + adminMallMemberPaymentVo.setBank(mallMemberBank.getBankName()); } return adminMallMemberPaymentVo; + } + + @Override + public FebsResponse updateVoucher(MallSystemPayDto mallSystemPayDto) { + Long memberId = mallSystemPayDto.getId(); + MallMember mallMember = mallMemberMapper.selectById(memberId); + if(ObjectUtil.isEmpty(mallMember)){ + return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); + } + + BigDecimal addBalance = mallSystemPayDto.getAddBalance(); + if(addBalance.compareTo(BigDecimal.ZERO) <= 0){ + return new FebsResponse().fail().message("请输入正确的数量"); + } + + DataDictionaryCustom totalCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + GreenScoreEnum.TOTAL_CNT.getType(), + GreenScoreEnum.TOTAL_CNT.getCode() + ); + + BigDecimal totalCnt = new BigDecimal(totalCntDic.getValue()); + //凭证占总数的10% + BigDecimal roleCnt = totalCnt.multiply(new BigDecimal(0.1)); + //获取已卖出的凭证数量 + BigDecimal roleCntSale = mallScoreRecordMapper.selectSumScoreCnt().setScale(2,BigDecimal.ROUND_DOWN); + roleCntSale = roleCntSale.add(addBalance); + + if(roleCnt.compareTo(roleCntSale) < 0){ + return new FebsResponse().fail().message("已拨付:"+roleCntSale); + } + /** + * 增加一条会员购买记录 + * mall_score_record + */ + MallScoreRecord mallScoreRecord = new MallScoreRecord(); + mallScoreRecord.setMemberId(memberId); + mallScoreRecord.setScoreNo(MallUtils.getOrderNum("MSR")); + mallScoreRecord.setScoreCnt(addBalance); + mallScoreRecord.setSurplusCnt(addBalance); + mallScoreRecordMapper.insert(mallScoreRecord); + /** + * 减少剩余绿色凭证数量 + */ + DataDictionaryCustom surplusCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + GreenScoreEnum.SURPLUS_CNT.getType(), + GreenScoreEnum.SURPLUS_CNT.getCode() + ); + BigDecimal surplusCnt = new BigDecimal(surplusCntDic.getValue()); + surplusCnt = surplusCnt.subtract(addBalance); + surplusCntDic.setValue(surplusCnt.toString()); + dataDictionaryCustomMapper.updateById(surplusCntDic); + return new FebsResponse().success(); + } + + @Override + public IPage<MallScoreRecord> gerRoleReleaseList(AdminRoleReleaseDto roleReleaseDto, QueryRequest request) { + Page<MallScoreRecord> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallScoreRecord> mallScoreRecordIPage = mallScoreRecordMapper.gerRoleReleaseListInPage(page, roleReleaseDto); + return mallScoreRecordIPage; + } + + @Override + public IPage<MallMoneyFlow> roleReleaseChild(QueryRequest request, MallScoreRecord mallScoreRecord) { + Page<MallMoneyFlow> page = new Page<>(request.getPageNum(), request.getPageSize()); + MallScoreRecord mallScore = mallScoreRecordMapper.selectById(mallScoreRecord.getId()); + IPage<MallMoneyFlow> mallMoneyFlowIPage = mallScoreRecordMapper.gerRoleReleaseChildInPage(page, mallScore); + return mallMoneyFlowIPage; + } + + @Override + public IPage<MallScoreAchieveRelease> gerAchieveReleaseList(AdminRoleReleaseDto roleReleaseDto, QueryRequest request) { + Page<MallScoreAchieveRelease> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallScoreAchieveRelease> MallScoreAchieveReleases = mallScoreAchieveReleaseMapper.gerAchieveReleaseListInPage(page, roleReleaseDto); + return MallScoreAchieveReleases; + } + + @Override + public IPage<MallMoneyFlow> achieveReleaseChild(QueryRequest request, MallScoreAchieveRelease mallScoreAchieveRelease) { + Page<MallMoneyFlow> page = new Page<>(request.getPageNum(), request.getPageSize()); + MallScoreAchieveRelease mallScoreAchieve = mallScoreAchieveReleaseMapper.selectById(mallScoreAchieveRelease.getId()); + IPage<MallMoneyFlow> mallMoneyFlowIPage = mallScoreAchieveReleaseMapper.gerAchieveReleaseChildInPage(page, mallScoreAchieve); + return mallMoneyFlowIPage; + } + + @Override + public FebsResponse insideWithType(Long id, int i) { + MallMember mallMember = mallMemberMapper.selectById(id); + if(ObjectUtil.isEmpty(mallMember)) { + return new FebsResponse().fail().message("会员信息不存在"); + } + mallMember.setInsideWith(i); + mallMemberMapper.updateById(mallMember); + return new FebsResponse().success(); } private String refererIds(String parentId) { @@ -653,4 +770,72 @@ return ids; } + + @Override + public List<MallMember> findParentMemberList(List<String> inviteIds, Integer level, boolean containsParent) { + List<MallMember> mallMembers = this.baseMapper.selectByInviteIds(inviteIds); + if(CollUtil.isEmpty(mallMembers)) { + return mallMembers; + } + + + List<MallMember> result = new ArrayList<>(); + int index = containsParent ? 0 : 1; + int count = 0; + while(true) { + if (level != null && count == level) { + break; + } + + if (index >= mallMembers.size()) { + break; + } + + String inviteId = inviteIds.get(index); + List<MallMember> collect = mallMembers.stream().filter(item -> item.getInviteId().equals(inviteId)).collect(Collectors.toList()); + result.add(collect.get(0)); + + index++; + count++; + } + return result; + } + + @Override + public TreeItemVo findMatrixTree() { + return null; + } + + @Override + public List<ChargeListExportVo> findChargeListForExcel(MoneyChargeListDto moneyChargeListDto) { + return this.mallMoneyFlowMapper.selectChargeListForExcel(moneyChargeListDto); + } + + @Override + public IPage<AdminTeamListVo> findTeamList(MallMember mallMember, QueryRequest request) { + Page<AdminTeamListVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminTeamListVo> teamListInPage = this.mallMemberMapper.selectTeamListInPage(mallMember, page); + if (CollUtil.isEmpty(teamListInPage.getRecords())) { + return teamListInPage; + } + + List<Long> memberIds = teamListInPage.getRecords().stream().map(AdminTeamListVo::getId).collect(Collectors.toList()); + List<MallMoneyFlow> mallMoneyFlows = this.mallMoneyFlowMapper.selectMemberProfitByMemberIds(memberIds); + if (CollUtil.isNotEmpty(mallMoneyFlows)) { + Map<Long, MallMoneyFlow> map = new HashMap<>(); + mallMoneyFlows.forEach(item -> { + map.put(item.getMemberId(), item); + }); + + teamListInPage.getRecords().forEach(item -> { + MallMoneyFlow mallMoneyFlow = map.get(item.getId()); + if (mallMoneyFlow != null) { + item.setTeamProfitAmount(mallMoneyFlow.getAmount()); + } + }); + } + + + return teamListInPage; + } } -- Gitblit v1.9.1