xiaoyong931011
2022-12-22 2abd05a4ab94edfacb73edc59866a9057be6fca8
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.MemberAgentLevelEnum;
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.LoginUserUtil;
import cc.mrbird.febs.common.utils.MallUtils;
@@ -160,25 +157,22 @@
        Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId();
        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("提现失败,请稍后查看错误信息一览");
        if(ObjectUtil.isEmpty(mallMemberBank)){
            return new FebsResponse().fail().message("提现地址不存在");
        }
        //更新提现记录状态为成功
        mallMemberWithdrawMapper.updateStatusById(2,mallMemberWithdraw.getId());
        //更新提现流水记录为成功
        String withdrawNo = mallMemberWithdraw.getWithdrawNo();
        MallMoneyFlow withdrawMoneyFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn(
                mallMemberWithdraw.getMemberId(),
                withdrawNo,
                MallMoneyFlowTypeEnum.WITHDRAW.getCode(),
                MallMoneyFlow.STATUS_ING,
                MallMoneyFlow.IS_RETURN_Y
        );
        withdrawMoneyFlow.setStatus(MallMoneyFlow.STATUS_SUCCESS);
        mallMoneyFlowMapper.updateById(withdrawMoneyFlow);
        return new FebsResponse().success();
    }
@@ -192,19 +186,22 @@
        if(1 != mallMemberWithdraw.getStatus()){
            return new FebsResponse().fail().message("当前状态不是提现中");
        }
        //更新提现记录状态为失败
        mallMemberWithdrawMapper.updateStatusById(3,mallMemberWithdraw.getId());
        //更新提现流水记录为成功
        String withdrawNo = mallMemberWithdraw.getWithdrawNo();
        MallMoneyFlow withdrawMoneyFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn(
                mallMemberWithdraw.getMemberId(),
                withdrawNo,
                MallMoneyFlowTypeEnum.WITHDRAW.getCode(),
                MallMoneyFlow.STATUS_ING,
                MallMoneyFlow.IS_RETURN_Y
        );
        withdrawMoneyFlow.setStatus(MallMoneyFlow.STATUS_FAIL);
        mallMoneyFlowMapper.updateById(withdrawMoneyFlow);
        mallMemberWithdraw.setStatus(3);
        mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
        QueryWrapper<MallMoneyFlow> objectQueryWrapper = new QueryWrapper<>();
        objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
        objectQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
        MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper);
        mallMoneyFlow.setStatus(3);
        mallMoneyFlowMapper.updateById(mallMoneyFlow);
        //用户佣金增加对应的余额
        iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"commission");
        //用户余额增加对应的余额
        iApiMallMemberWalletService.addBalance(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId());
        return new FebsResponse().success();
    }
@@ -401,13 +398,32 @@
        } else {
            iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType);
        }
        mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type);
        mallMoneyFlowService.addMoneyFlow(
                memberId,
                null,
                bigDecimal,
                MallMoneyFlowTypeEnum.SYSTEM_CHARGE.getCode(),
                MallMoneyFlow.STATUS_SUCCESS,
                MallMoneyFlow.IS_RETURN_Y,
                memberId,
                FlowTypeEnum.BALANCE.getValue(),
                MallMoneyFlowTypeEnum.SYSTEM_CHARGE.getName()
        );
        return new FebsResponse().success();
    }
    @Override
    public AdminAgentLevelSetInfoVo getAgentLevelSetInfoByMemberId(long id) {
        AdminAgentLevelSetInfoVo adminAgentLevelSetInfoVo = mallMemberMapper.getAgentLevelSetInfoByMemberId(id);
        AdminAgentLevelSetInfoVo adminAgentLevelSetInfoVo = new AdminAgentLevelSetInfoVo();
        AdminAgentLevelSetInfoVo adminAgentLevelSetInfo = mallMemberMapper.getAgentLevelSetInfoByMemberId(id);
        if(ObjectUtil.isEmpty(adminAgentLevelSetInfo)){
            adminAgentLevelSetInfoVo.setId(id);
            adminAgentLevelSetInfoVo.setLevelCode(MemberAgentLevelEnum.AGENT.getCodeByName(MemberAgentLevelEnum.AGENT.getName()));
        }else{
            adminAgentLevelSetInfoVo.setId(id);
            adminAgentLevelSetInfoVo.setLevelCode(MemberAgentLevelEnum.AGENT.getCodeByName(adminAgentLevelSetInfo.getLevelCode()));
        }
        return adminAgentLevelSetInfoVo;
    }
@@ -420,9 +436,8 @@
        }
        String levelCode = agentLevelSetUpdateDto.getLevelCode();
        String nameByCode = MemberAgentLevelEnum.AGENT.getNameByCode(levelCode);
        mallMember.setLevel(nameByCode);
        mallMember.setLevelStatus(1);
        mallMemberMapper.updateById(mallMember);
        mallMemberMapper.updateLevelStatusById(1,memberId);
        mallMemberMapper.updateLevelById(nameByCode,memberId);
        return new FebsResponse().success();
    }