xiaoyong931011
2022-11-23 6ecb1b986263a544fd341830f388fd6263bf4349
20221117
4 files modified
1 files added
131 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/enumerate/MemberLevelEnum.java 54 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java 3 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java 39 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 13 ●●●● patch | view | raw | blame | history
src/test/java/cc/mrbird/febs/JunitTest.java 22 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/enumerate/MemberLevelEnum.java
New file
@@ -0,0 +1,54 @@
package cc.mrbird.febs.dapp.enumerate;
import lombok.Getter;
@Getter
public enum MemberLevelEnum {
    LEVEL_GP("LEVEL_GP",9),
    LEVEL_SP("LEVEL_SP",8),
    LEVEL_BP("LEVEL_BP",7),
    LEVEL_GIB("LEVEL_GIB",6),
    LEVEL_AIB("LEVEL_AIB",5),
    LEVEL_CIB("LEVEL_CIB",4),
    LEVEL_FIB("LEVEL_FIB",3),
    LEVEL_IB("LEVEL_IB",2),
    LEVEL_MB("LEVEL_MB",1);
    private String type;
    private Integer code;
    MemberLevelEnum(String type, Integer code) {
        this.type = type;
        this.code = code;
    }
    public int getLevelCode(String Level){
        int codeOne = 0;
        for (MemberLevelEnum value : MemberLevelEnum.values()) {
            if(value.type.equals(Level)){
                codeOne = value.code;
            }
        }
        return codeOne;
    }
    //比较两个级别的大小,levelOne大于levelTwo返回1,否则返回0
    public int compareLevel(String levelOne ,String levelTwo) {
        int codeOne = 0;
        int codeTwo = 0;
        for (MemberLevelEnum value : MemberLevelEnum.values()) {
            if(value.type.equals(levelOne)){
                codeOne = value.code;
            }
            if(value.type.equals(levelTwo)){
                codeTwo = value.code;
            }
        }
        if(codeOne > codeTwo){
            return 1;
        }
        return 0;
    }
}
src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
@@ -66,7 +66,8 @@
     * 生成流水佣金和盈利分成和流水记录,返回剩余盈利
     * @param refererIds
     */
    BigDecimal updateLSYJYLFC(List<String> refererIds, BigDecimal totalProfit,long id);
    BigDecimal updateLSYJ(List<String> refererIds, BigDecimal totalProfit,long id);
    BigDecimal updateYLFC(List<String> refererIds, BigDecimal totalProfit,long id);
    /**
     * 平台分成,返回剩余盈利
src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
@@ -9,6 +9,7 @@
import cc.mrbird.febs.dapp.dto.ApiStartDto;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
import cc.mrbird.febs.dapp.enumerate.MemberLevelEnum;
import cc.mrbird.febs.dapp.enumerate.MemberOnHookPlanEnum;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.ApiIgtOnHookPlanService;
@@ -191,13 +192,25 @@
//                }
//            }
//        }
        //根据上下级,筛选用户的级别
        ArrayList<String> refererIdLisstUp = new ArrayList<>();
        String levelNext = MemberLevelEnum.LEVEL_MB.getType();
        for(String inviteId : refererIdList){
            DappMemberEntity dappMemberUp = dappMemberDao.selectMemberInfoByInviteId(inviteId);
            String identityUp = dappMemberUp.getIdentity();
            int compareLevelResult = MemberLevelEnum.LEVEL_MB.compareLevel(identityUp, levelNext);
            if(0 < compareLevelResult){
                levelNext = identityUp;
                refererIdLisstUp.add(inviteId);
            }
        }
        //生成流水佣金和盈利分成和流水记录,返回剩余盈利
        BigDecimal profitSharingTotal = dappWalletService.updateLSYJYLFC(refererIdList, totalProfit.multiply(new BigDecimal(0.4)),igtOnHookPlanOrder.getId());
        //生成流水佣金和盈利分成和流水记录,返回盈利分成和流水佣金总共分成
//        BigDecimal profitSharingTotal = dappWalletService.updateLSYJYLFC(refererIdList, totalProfit,igtOnHookPlanOrder.getId());
        BigDecimal profitSharingTotal = dappWalletService.updateLSYJ(refererIdLisstUp, totalProfit.multiply(new BigDecimal(0.2)),igtOnHookPlanOrder.getId());
        BigDecimal profitFlowTotal = dappWalletService.updateYLFC(refererIdLisstUp, totalProfit.multiply(new BigDecimal(0.2)),igtOnHookPlanOrder.getId());
        //平台分成
        //平台拿走35%盈利分成和流水佣金剩下的全部
        BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal);
        BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal).subtract(profitFlowTotal);
        BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,systemAdd,igtOnHookPlanOrder.getId());
        //个人固定拿走60%
        totalProfit = totalProfit.multiply(new BigDecimal(0.6));
@@ -573,11 +586,25 @@
//                }
//            }
//        }
        //根据上下级,筛选用户的级别
        ArrayList<String> refererIdLisstUp = new ArrayList<>();
        String levelNext = MemberLevelEnum.LEVEL_MB.getType();
        for(String inviteId : refererIdList){
            DappMemberEntity dappMemberUp = dappMemberDao.selectMemberInfoByInviteId(inviteId);
            String identityUp = dappMemberUp.getIdentity();
            int compareLevelResult = MemberLevelEnum.LEVEL_MB.compareLevel(identityUp, levelNext);
            if(0 < compareLevelResult){
                levelNext = identityUp;
                refererIdLisstUp.add(inviteId);
            }
        }
        //生成流水佣金和盈利分成和流水记录,返回剩余盈利
        BigDecimal profitSharingTotal = dappWalletService.updateLSYJYLFC(refererIdList, totalProfit.multiply(new BigDecimal(0.4)),igtOnHookPlanOrder.getId());
        BigDecimal profitSharingTotal = dappWalletService.updateLSYJ(refererIdLisstUp, totalProfit.multiply(new BigDecimal(0.2)),igtOnHookPlanOrder.getId());
        BigDecimal profitFlowTotal = dappWalletService.updateYLFC(refererIdLisstUp, totalProfit.multiply(new BigDecimal(0.2)),igtOnHookPlanOrder.getId());
        //平台分成
        //平台拿走35%盈利分成和流水佣金剩下的全部
        BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal);
        BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal).subtract(profitFlowTotal);
        BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,systemAdd,igtOnHookPlanOrder.getId());
        //个人固定拿走60%
        totalProfit = totalProfit.multiply(new BigDecimal(0.6));
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -975,7 +975,7 @@
        return new FebsResponse().success().message(MessageSourceUtils.getString("Operation_001"));
    }
    @Override
    public BigDecimal updateLSYJYLFC(List<String> refererIdList,BigDecimal totalProfit,long id) {
    public BigDecimal updateLSYJ(List<String> refererIdList,BigDecimal totalProfit,long id) {
        //计算盈利分成
        BigDecimal profitSharingTotal = BigDecimal.ZERO;
        if(BigDecimal.ZERO.compareTo(totalProfit)>=0){
@@ -1187,10 +1187,17 @@
                    profitSharingTotal = profitSharingTotal.add(multiply);
                }
            }
        }
        return profitSharingTotal;
    }
    @Override
    public BigDecimal updateYLFC(List<String> refererIdList, BigDecimal totalProfit, long id) {
        //计算流水佣金
        BigDecimal profitSharingTotal = BigDecimal.ZERO;
        if(BigDecimal.ZERO.compareTo(totalProfit)>=0){
            return profitSharingTotal;
        }
        if(CollUtil.isNotEmpty(refererIdList)){
            String LEVEL_AIB = isIdentity(refererIdList, DataDictionaryEnum.LEVEL_AIB.getCode());
            if(!DataDictionaryEnum.LEVEL_AIB.getCode().equals(LEVEL_AIB)){
src/test/java/cc/mrbird/febs/JunitTest.java
@@ -9,6 +9,7 @@
import cc.mrbird.febs.common.utils.ShareCodeUtil;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
import cc.mrbird.febs.dapp.enumerate.MemberLevelEnum;
import cc.mrbird.febs.dapp.enumerate.MemberOnHookPlanEnum;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.ApiIgtOnHookPlanService;
@@ -55,6 +56,27 @@
    @Autowired
    private DappMemberDao dappMemberDao;
    @Test
    public void referenceId(){
        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(1129L);
        String refererIds = dappMemberEntity.getRefererIds();
        List<String> refererIdList = StrUtil.split(refererIds, ",", -1, true, true);
        //根据上下级,筛选用户的级别
        ArrayList<String> refererIdLisstUp = new ArrayList<>();
        String levelNext = MemberLevelEnum.LEVEL_MB.getType();
        for(String inviteId : refererIdList){
            DappMemberEntity dappMemberUp = dappMemberDao.selectMemberInfoByInviteId(inviteId);
            String identityUp = dappMemberUp.getIdentity();
            int compareLevelResult = MemberLevelEnum.LEVEL_MB.compareLevel(identityUp, levelNext);
            if(0 < compareLevelResult){
                levelNext = identityUp;
                refererIdLisstUp.add(inviteId);
            }
        }
        System.out.println(refererIdLisstUp);
    }
//    @Test
//    public void incomeTest() {
//        mineProfitJob.start();