xiaoyong931011
2023-04-26 d2afc5875ab0d87573ea3d8a78eeed9af4ca1953
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -1,10 +1,7 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
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.*;
import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
@@ -39,6 +36,7 @@
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @author wzy
@@ -114,7 +112,7 @@
        mallMember.setName(registerDto.getName());
        mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
        mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
        mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
        mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode());
        mallMember.setSex("男");
        mallMember.setBindPhone(registerDto.getAccount());
@@ -196,7 +194,8 @@
    @Override
    public FebsResponse forgetPwd(ForgetPwdDto forgetPwdDto) {
        MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount());
        MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getPhone());
//        MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount());
        if (mallMember == null) {
            throw new FebsException("账号不存在");
        }
@@ -249,6 +248,9 @@
        mallMemberVo.setBalance(wallet.getBalance());
        mallMemberVo.setScore(wallet.getScore());
        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
        mallMemberVo.setTotalScore(wallet.getTotalScore());
        mallMemberVo.setStar(wallet.getStar());
        mallMemberVo.setVoucherCnt(wallet.getVoucherCnt());
        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
        return new FebsResponse().success().data(mallMemberVo);
    }
@@ -363,6 +365,10 @@
        if (mallMember == null) {
            throw new FebsException("用户不存在");
        }
        Integer insideWith = mallMember.getInsideWith() == null ? 2 :mallMember.getInsideWith();
        if (1 != insideWith) {
            throw new FebsException("功能升级中");
        }
        Long memberId = LoginUserUtil.getLoginUser().getId();
        MallMember loginMember = this.baseMapper.selectById(memberId);
@@ -379,12 +385,40 @@
            throw new FebsException("支付密码错误");
        }
        walletService.reduceBalance(transferDto.getAmount(), memberId);
        String orderNo = MallUtils.getOrderNum("T");
        this.addMoneyFlow(memberId, transferDto.getAmount().negate(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, mallMember.getId(), null, FlowTypeEnum.BALANCE.getValue());
        DataDictionaryCustom cashOutSettingDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.CASHOUT_SETTING.getType(),
                DataDictionaryEnum.CASHOUT_SETTING.getCode()
        );
        CashOutSettingVo cashOutSettingVo = JSONObject.parseObject(cashOutSettingDic.getValue(), CashOutSettingVo.class);
        BigDecimal insideFee = cashOutSettingVo.getInsideFee().multiply(BigDecimal.valueOf(0.01));
        //转账手续费
        BigDecimal insideFeeAmount = transferDto.getAmount().multiply(insideFee).setScale(2, BigDecimal.ROUND_DOWN);
        walletService.addBalance(transferDto.getAmount(), mallMember.getId());
        this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.BALANCE.getValue());
        BigDecimal avaAmount = transferDto.getAmount().subtract(insideFeeAmount).setScale(2, BigDecimal.ROUND_DOWN);
        walletService.reduceBalance(avaAmount, memberId);
        String orderNo = MallUtils.getOrderNum("T");
        this.addMoneyFlow(
                memberId,
                avaAmount.negate(),
                MoneyFlowTypeEnum.TRANSFER.getValue(),
                orderNo,
                null,
                null,
                mallMember.getId(),
                null,
                FlowTypeEnum.BALANCE.getValue());
        walletService.addBalance(avaAmount, mallMember.getId());
        this.addMoneyFlow(
                mallMember.getId(),
                avaAmount,
                MoneyFlowTypeEnum.TRANSFER.getValue(),
                orderNo,
                null,
                null,
                memberId,
                null,
                FlowTypeEnum.BALANCE.getValue());
    }
    @Override
@@ -472,7 +506,7 @@
        }
        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(id);
        commissionVo.setCommission(wallet.getCommission());
        commissionVo.setCommission(wallet.getBalance());
        commissionVo.setToday(mallMoneyFlowMapper.selectCommissionIncome(1, new Date(), id));
        commissionVo.setMonth(mallMoneyFlowMapper.selectCommissionIncome(2, new Date(), id));
        commissionVo.setTotal(mallMoneyFlowMapper.selectCommissionIncome(null, null, id));
@@ -528,6 +562,17 @@
        if (dic != null) {
            cashOutSettingVo = JSONObject.parseObject(dic.getValue(), CashOutSettingVo.class);
        }
        DataDictionaryCustom voucherOnOffDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                GreenScoreEnum.VOUCHER_ON_OFF.getType(), GreenScoreEnum.VOUCHER_ON_OFF.getCode());
        if(ObjectUtil.isNotEmpty(voucherOnOffDic)){
            cashOutSettingVo.setVoucherOnOff(voucherOnOffDic.getValue());
            DataDictionaryCustom voucherPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    GreenScoreEnum.VOUCHER_PERCENT.getType(), GreenScoreEnum.VOUCHER_PERCENT.getCode());
            if(ObjectUtil.isNotEmpty(voucherPercentDic)){
                cashOutSettingVo.setVoucherPercent(new BigDecimal(voucherPercentDic.getValue()));
            }
        }
        return cashOutSettingVo;
    }
@@ -582,6 +627,12 @@
        mallMemberBank.setIdCardNum(updateMemberBankDto.getIdCardNum());
        mallMemberBank.setBankNo(updateMemberBankDto.getBankNo());
        mallMemberBank.setPhone(updateMemberBankDto.getPhone());
        mallMemberBank.setDigitalNo(updateMemberBankDto.getDigitalNo());
        mallMemberBank.setBankName(updateMemberBankDto.getBankName());
        mallMemberBank.setSubbranchName(updateMemberBankDto.getSubbranchName());
        mallMemberBank.setProvince(updateMemberBankDto.getProvince());
        mallMemberBank.setCity(updateMemberBankDto.getCity());
        mallMemberBank.setSkhh(updateMemberBankDto.getSkhh());
        mallMemberBankMapper.updateById(mallMemberBank);
        return new FebsResponse().success();
    }
@@ -592,4 +643,14 @@
        mallMemberBankMapper.deleteById(id);
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse findBankName() {
        List<String> bankNameList = new ArrayList<>();
        List<DataDictionaryCustom> typeBank = dataDictionaryCustomMapper.selectDicByType("TYPE_BANK");
        if(CollUtil.isNotEmpty(typeBank)){
            bankNameList = typeBank.stream().map(DataDictionaryCustom::getValue).collect(Collectors.toList());
        }
        return new FebsResponse().success().data(bankNameList);
    }
}