KKSU
2023-12-13 e89fa51bb8592aae31ed345400c5a632e394739d
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;
@@ -78,6 +75,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) {
@@ -806,6 +804,150 @@
        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;
    }
    private String refererIds(String parentId) {
        boolean flag = false;
        if (StrUtil.isBlank(parentId)) {