KKSU
2024-03-26 38371de8bcb3b06d200a61b93356bad3507a1896
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -824,25 +824,36 @@
        List<MallMember> thirdLevelRecord = getStarRecord(fourLevelRecord,  MemberLevelEnum.THIRD_LEVEL.name(), amount, orderNo, 0L,MoneyFlowTypeEnum.STAR_PERK_THREE.getValue());
        List<MallMember> secondLevelRecord = getStarRecord(thirdLevelRecord,  MemberLevelEnum.SECOND_LEVEL.name(), amount, orderNo, 0L,MoneyFlowTypeEnum.STAR_PERK_TWO.getValue());
    }
        public static void main(String[] args) {
//            Long number = 0L; // 这里可以替换成你需要检查的数字
//            if (number % 3 == 0) {
//                System.out.println(number + " 可以被3整除");
//            } else {
//                System.out.println(number + " 不能被3整除");
//        public static void main(String[] args) {
////            Long number = 0L; // 这里可以替换成你需要检查的数字
////            if (number % 3 == 0) {
////                System.out.println(number + " 可以被3整除");
////            } else {
////                System.out.println(number + " 不能被3整除");
////            }
////
////            DateTime nowTimeFormat = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date()));
////            System.out.println(nowTimeFormat);
//            BigDecimal bigDecimal = new BigDecimal("1");
//            BigDecimal cycle = new BigDecimal("2");
//            BigDecimal remainder = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余
//            System.out.println(remainder);
//            BigDecimal remainderDirect = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余
//            if(remainderDirect.compareTo(BigDecimal.ONE) == 0){
//                System.out.println(remainderDirect);
//            }
//
//            DateTime nowTimeFormat = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date()));
//            System.out.println(nowTimeFormat);
            BigDecimal bigDecimal = new BigDecimal("1");
            BigDecimal cycle = new BigDecimal("2");
            BigDecimal remainder = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余
            System.out.println(remainder);
            BigDecimal remainderDirect = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余
            if(remainderDirect.compareTo(BigDecimal.ONE) == 0){
                System.out.println(remainderDirect);
            }
//        }
    public static void main(String[] args) {
        DateTime dateTime = DateUtil.parseDate("2024-3-27");
        System.out.println(dateTime);
        System.out.println(DateUtil.compare(DateUtil.date(),dateTime));
        if(DateUtil.compare(DateUtil.date(),dateTime)<= 0){
            System.out.println(dateTime);
        }
    }
    @Override
    public void BuyToSell() {
        /**
@@ -909,6 +920,19 @@
                        mallProductBuy.setTotalPerk(totalPerk.subtract(profit).setScale(2,BigDecimal.ROUND_DOWN));
                        mallProductBuyMapper.updateById(mallProductBuy);
                    }
                    MallMemberAmount mallMemberAmountPerk = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
                    if(BigDecimal.ZERO.compareTo(mallMemberAmountPerk.getTotalPerk()) >= 0){
                        continue;
                    }
                    if(mallMemberAmountPerk.getTotalPerk().compareTo(profit) <= 0){
                        profit = mallMemberAmountPerk.getTotalPerk();
                        mallMemberAmountPerk.setTotalPerk(BigDecimal.ZERO);
                        mallMemberAmountMapper.updateTotalPerkById(mallMemberAmountPerk);
                    }else{
                        mallMemberAmountPerk.setTotalPerk(mallMemberAmountPerk.getTotalPerk().subtract(profit).setScale(2,BigDecimal.ROUND_DOWN));
                        mallMemberAmountMapper.updateTotalPerkById(mallMemberAmountPerk);
                    }
//                    insertSell(mallProductBuy.getMemberId(),profit,profit,BigDecimal.ZERO,BigDecimal.ZERO);
                    String orderNoSY = MallUtils.getOrderNum("SYNFT");
                    mallMoneyFlowService.addMoneyFlow(
@@ -934,33 +958,36 @@
                        Long memberId = mallProductBuy.getMemberId();
                        MallMember mallMember = memberMapper.selectById(memberId);
                        if(ObjectUtil.isNotEmpty(mallMember)){
                            //直推
                            String referrerId = mallMember.getReferrerId();
                            MallMember directMember = memberMapper.selectInfoByInviteId(referrerId);
                            if(ObjectUtil.isNotEmpty(directMember)){
                                BigDecimal basicPerkDirectPercent = new BigDecimal(dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                        DataDictionaryEnum.BASIC_PERK_DIRECT.getType(),
                                        DataDictionaryEnum.BASIC_PERK_DIRECT.getCode()
                                ).getValue()).multiply(new BigDecimal("0.01"));
                            if(DateUtil.compare(payTime,DateUtil.parseDate("2024-3-26"))<= 0){
                                //直推
                                String referrerId = mallMember.getReferrerId();
                                MallMember directMember = memberMapper.selectInfoByInviteId(referrerId);
                                if(ObjectUtil.isNotEmpty(directMember)){
                                    BigDecimal basicPerkDirectPercent = new BigDecimal(dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                            DataDictionaryEnum.BASIC_PERK_DIRECT.getType(),
                                            DataDictionaryEnum.BASIC_PERK_DIRECT.getCode()
                                    ).getValue()).multiply(new BigDecimal("0.01"));
//                            BigDecimal basicPerkDirect = profit.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
                                BigDecimal basicPerkDirect = nftTotal.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
                                /**
                                 * 先插入流水记录,然后定时器每小时,循环一次找寻对应的数据执行
                                 */
                                String orderNo = MallUtils.getOrderNum("DNFT");
                                mallMoneyFlowService.addMoneyFlow(
                                        directMember.getId(),
                                        basicPerkDirect,
                                        MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getValue(),
                                        orderNo,
                                        null,
                                        FlowTypeNewEnum.NFT.getValue(),
                                        MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getDescrition(),
                                        AppContants.MEMBER_FLOW_ING);
                                    BigDecimal basicPerkDirect = nftTotal.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
                                    /**
                                     * 先插入流水记录,然后定时器每小时,循环一次找寻对应的数据执行
                                     */
                                    String orderNo = MallUtils.getOrderNum("DNFT");
                                    mallMoneyFlowService.addMoneyFlow(
                                            directMember.getId(),
                                            basicPerkDirect,
                                            MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getValue(),
                                            orderNo,
                                            null,
                                            FlowTypeNewEnum.NFT.getValue(),
                                            MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getDescrition(),
                                            AppContants.MEMBER_FLOW_ING);
                                MallMemberAmount mallMemberAmountDirect = mallMemberAmountMapper.selectByMemberId(directMember.getId());
                                mallMemberAmountDirect.setFrozenNft(mallMemberAmountDirect.getFrozenNft().add(basicPerkDirect));
                                mallMemberAmountMapper.updateFrozenNftById(mallMemberAmountDirect);
                                    MallMemberAmount mallMemberAmountDirect = mallMemberAmountMapper.selectByMemberId(directMember.getId());
                                    mallMemberAmountDirect.setFrozenNft(mallMemberAmountDirect.getFrozenNft().add(basicPerkDirect));
                                    mallMemberAmountMapper.updateFrozenNftById(mallMemberAmountDirect);
                                }
                            }
                            /**
@@ -1241,6 +1268,13 @@
                        AppContants.MEMBER_FLOW_ING);
            }else {
                MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
                if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
                    continue;
                }
                mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
                mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
                MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1250,7 +1284,7 @@
                String orderNo = MallUtils.getOrderNum("NFT");
                mallMoneyFlowService.addMoneyFlow(
                        memberId,
                        mallMoneyFlow.getAmount().negate(),
                        mallMoneyFlow.getAmount(),
                        MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_DONE.getValue(),
                        orderNo,
                        null,
@@ -1308,6 +1342,13 @@
                        AppContants.MEMBER_FLOW_ING);
            }else {
                MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
                if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
                    continue;
                }
                mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
                mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
                MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1317,7 +1358,7 @@
                String orderNo = MallUtils.getOrderNum("NFT");
                mallMoneyFlowService.addMoneyFlow(
                        memberId,
                        mallMoneyFlow.getAmount().negate(),
                        mallMoneyFlow.getAmount(),
                        MoneyFlowTypeNewEnum.TEAM_PERK_DIRECT_DONE.getValue(),
                        orderNo,
                        null,
@@ -1375,6 +1416,14 @@
                        AppContants.MEMBER_FLOW_ING);
            }else {
                MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
                if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
                    continue;
                }
                mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
                mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
                MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1384,7 +1433,7 @@
                String orderNo = MallUtils.getOrderNum("NFT");
                mallMoneyFlowService.addMoneyFlow(
                        memberId,
                        mallMoneyFlow.getAmount().negate(),
                        mallMoneyFlow.getAmount(),
                        MoneyFlowTypeNewEnum.TEAM_PERK_EQUALS_DONE.getValue(),
                        orderNo,
                        null,