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);
        }
    }
@@ -806,6 +815,164 @@
        return new FebsResponse().success().message("可以转账");
    }
    @Override
    public FebsResponse outsideWithType(Long id, int i) {
        MallMember mallMember = mallMemberMapper.selectById(id);
        if(ObjectUtil.isEmpty(mallMember)) {
            return new FebsResponse().fail().message("会员信息不存在");
        }
        mallMember.setOutsideWith(i);
        mallMemberMapper.updateById(mallMember);
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse chargeAgreeWithType(MallMemberWithdraw mallMemberWithdrawInfo) {
        MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(mallMemberWithdrawInfo.getId());
        if(ObjectUtil.isEmpty(mallMemberWithdraw)){
            return new FebsResponse().fail().message("系统繁忙,请刷新后重试");
        }
        if(1 != mallMemberWithdraw.getStatus()){
            return new FebsResponse().fail().message("当前状态不是提现中");
        }
        Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId();
        MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId);
        if(ObjectUtil.isEmpty(mallMemberBank)){
            return new FebsResponse().fail().message("提现银行卡已删除");
        }
        String agreeType = mallMemberWithdrawInfo.getAgreeType();
        if("1".equals(agreeType)){
            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();
        }else{
            String bankName = mallMemberBank.getBankName();
            NBYHResponse nbyhResponse = new NBYHResponse();
            if("宁波银行".equals(bankName)){
                nbyhResponse = nbyhService.tradeSinge(mallMemberWithdraw.getId());
            }else{
                nbyhResponse = nbyhService.tradeSingeOuterTransfer(mallMemberWithdraw.getId());
            }
            if(nbyhResponse.isFlag()){
                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().message(nbyhResponse.getMsg());
            }else{
                return new FebsResponse().fail().message(nbyhResponse.getMsg());
            }
        }
    }
    @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)) {