KKSU
2024-05-24 b922c159f4791e940ff4b017848e4998d3b44e1b
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -2,10 +2,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
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.enumerates.*;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.LoginUserUtil;
@@ -14,6 +11,7 @@
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.entity.MallNewsInfo;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.AsyncService;
import cc.mrbird.febs.mall.service.IAdminMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
@@ -78,6 +76,7 @@
    private final MallScoreRecordMapper mallScoreRecordMapper;
    private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper;
    private final NBYHService nbyhService;
    private final MallMemberAmountMapper mallMemberAmountMapper;
    @Override
    public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
@@ -641,6 +640,7 @@
        return this.baseMapper.selectInfoByInviteId(inviteId);
    }
    private final AsyncService asyncService;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void modifyReferer(MallMember member) {
@@ -666,6 +666,15 @@
        for (MallMember child : childs) {
            child.setReferrerIds(member.getInviteId() + "," + refererIds);
            this.baseMapper.updateById(child);
        }
        log.info("异步更新用户信息");
        List<MallMember> mallMembers = this.baseMapper.selectList(null);
        if(CollUtil.isEmpty(mallMembers)){
            return;
        }
        for(MallMember mallMemberDown : mallMembers){
            asyncService.updateAllMemberReferrerId(mallMemberDown);
        }
    }
@@ -875,6 +884,95 @@
    }
    @Override
    public IPage<AdminMallMemberVo> getFcmMallMemberList(MallMember mallMember, QueryRequest request) {
        Page<AdminMallMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<AdminMallMemberVo> adminMallMemberVoIPage = this.baseMapper.getFcmMallMemberList(page, mallMember);
        return adminMallMemberVoIPage;
    }
    @Override
    public FebsResponse frozenWith(Long id, int i) {
        MallMember mallMember = mallMemberMapper.selectById(id);
        if(ObjectUtil.isEmpty(mallMember)) {
            return new FebsResponse().fail().message("会员信息不存在");
        }
        mallMember.setIsFrozen(i);
        mallMemberMapper.updateById(mallMember);
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse updateSystemPayInfo(MallSystemPayDto mallSystemPayDto) {
        Long amountId = mallSystemPayDto.getId();
        MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectById(amountId);
        MallMember mallMember = mallMemberMapper.selectById(mallMemberAmount.getMemberId());
        if(ObjectUtil.isEmpty(mallMember)){
            throw new FebsException("会员不存在");
        }
        BigDecimal bigDecimal = mallSystemPayDto.getAddBalance();
        Integer type = mallSystemPayDto.getType();
        Integer flowType = 0;
        if (type == 1) {
            BigDecimal add = mallMemberAmount.getTrendsNft().add(bigDecimal);
            if(BigDecimal.ZERO.compareTo(add) > 0){
                throw new FebsException("输入合适的值");
            }
            mallMemberAmount.setTrendsNft(add);
            mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount);
            flowType = FlowTypeNewEnum.NFT.getValue();
        } else if (type == 2) {
            BigDecimal add = mallMemberAmount.getFcmCntAva().add(bigDecimal);
            if(BigDecimal.ZERO.compareTo(add) > 0){
                throw new FebsException("输入合适的值");
            }
            mallMemberAmount.setFcmCntAva(add);
            mallMemberAmountMapper.updateFcmCntAvaById(mallMemberAmount);
            flowType = FlowTypeNewEnum.FCM_COIN.getValue();
        } else if (type == 3) {
            BigDecimal add = mallMemberAmount.getTokenAva().add(bigDecimal);
            if(BigDecimal.ZERO.compareTo(add) > 0){
                throw new FebsException("输入合适的值");
            }
            mallMemberAmount.setTokenAva(add);
            mallMemberAmountMapper.updateTokenAvaById(mallMemberAmount);
            flowType = FlowTypeNewEnum.TOKEN.getValue();
        } else {
            throw new FebsException("参数错误");
        }
        String orderNo = MallUtils.getOrderNum("BF");
        mallMoneyFlowService.addMoneyFlow(
                mallMemberAmount.getMemberId(),
                bigDecimal,
                MoneyFlowTypeNewEnum.SYSTEM_PEY.getValue(),
                orderNo,
                mallMemberAmount.getMemberId(),
                flowType,
                MoneyFlowTypeNewEnum.SYSTEM_PEY.getDescrition());
        return new FebsResponse().success();
    }
    @Override
    public MallMemberVo getMallmemberAmountByMemberId(long id) {
        MallMemberVo mallMemberVo = mallMemberMapper.getMallmemberAmountByMemberId(id);
        return mallMemberVo;
    }
    @Override
    public IPage<MallMemberCharge> memberChargeList(MoneyChargeListDto moneyChargeListDto, QueryRequest request) {
        Page<MallMemberCharge> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MallMemberCharge> mallMemberChargeIPage = mallMemberMapper.getMemberChargeListInPage(page, moneyChargeListDto);
        return mallMemberChargeIPage;
    }
    @Override
    public IPage<MallMemberWithdraw> memberWithDrawList(MoneyChargeListDto moneyChargeListDto, QueryRequest request) {
        Page<MallMemberWithdraw> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MallMemberWithdraw> mallMemberWithdrawIPage = mallMemberMapper.getMemberWithDrawListInPage(page, moneyChargeListDto);
        return mallMemberWithdrawIPage;
    }
    private String refererIds(String parentId) {
        boolean flag = false;
        if (StrUtil.isBlank(parentId)) {