KKSU
2024-03-26 38371de8bcb3b06d200a61b93356bad3507a1896
抽奖
5 files modified
129 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java 46 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java 69 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -5,6 +5,8 @@
@Getter
public enum DataDictionaryEnum {
    //卖方确认获取5%的GSD
    FCM_GSD_IN("FCM_GSD_IN","FCM_GSD_IN"),
    //卡牌互转手续费
    FCM_INSIDE_NFT_PERCENT("FCM_INSIDE_NFT_PERCENT","FCM_INSIDE_NFT_PERCENT"),
    //销毁数量 按照比例销毁或者返利给节点
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java
@@ -11,6 +11,7 @@
@Getter
public enum MoneyFlowTypeNewEnum {
    NFT_TRANS_GFD(32,"赠送GFD"),
    NFT_TRANS_OUT_FEE(31,"卡牌转出手续费"),
    NFT_TRANS_IN(30,"卡牌转入"),
    NFT_TRANS_OUT(29,"卡牌转出"),
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -824,23 +824,34 @@
        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
@@ -947,6 +958,7 @@
                        Long memberId = mallProductBuy.getMemberId();
                        MallMember mallMember = memberMapper.selectById(memberId);
                        if(ObjectUtil.isNotEmpty(mallMember)){
                            if(DateUtil.compare(payTime,DateUtil.parseDate("2024-3-26"))<= 0){
                            //直推
                            String referrerId = mallMember.getReferrerId();
                            MallMember directMember = memberMapper.selectInfoByInviteId(referrerId);
@@ -976,6 +988,8 @@
                                mallMemberAmountMapper.updateFrozenNftById(mallMemberAmountDirect);
                            }
                            }
                            /**
                             * 团队奖励
                             *
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java
@@ -6,6 +6,7 @@
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeNewEnum;
import cc.mrbird.febs.common.enumerates.ProductEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.mall.dto.*;
@@ -573,6 +574,16 @@
        mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_CONFIRM.getValue());
        mallProductSellRecordMapper.updateById(mallProductSellRecord);
        DataDictionaryCustom gsdInDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.FCM_GSD_IN.getType(),
                DataDictionaryEnum.FCM_GSD_IN.getCode()
        );
        BigDecimal gsdInPercent = new BigDecimal(gsdInDic.getValue()).multiply(AppContants.BASIC_PERCENT);
        BigDecimal gsdIn = gsdInPercent.multiply(mallProductSellRecord.getNftCnt()).setScale(2,BigDecimal.ROUND_DOWN);
        MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallProductSellRecord.getMemberId());
        mallMemberAmount.setGsd(mallMemberAmount.getGsd().add(gsdIn));
        mallMemberAmountMapper.updateGsdById(mallMemberAmount);
        agentProducer.sendFcmOrderSellInsureMsg(sellRecordId);
        return new FebsResponse().success();
    }
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -1277,6 +1277,75 @@
                MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
                mallMemberAmount.setTotalPerk(mallMemberAmount.getTotalPerk().add(totalPerk));
                mallMemberAmountMapper.updateTotalPerkById(mallMemberAmount);
                /**
                 * 更新用户上级收益,冻结7天,7天时间到期自动释放到动态钱包
                 */
                Long memberId = mallProductBuy.getMemberId();
                MallMember mallMember = mallMemberMapper.selectById(memberId);
                if(ObjectUtil.isNotEmpty(mallMember)){
                    //直推
                    String referrerId = mallMember.getReferrerId();
                    MallMember directMember = mallMemberMapper.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 nftTotal = mallProductBuy.getNftTotal();
                        BigDecimal basicPerkDirect = nftTotal.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
                        /**
                         * 如果用户是冻结,则直接销毁
                         */
                        Integer isFrozen = directMember.getIsFrozen();
                        if(ProductEnum.MEMBER_FROZEN.getValue() == isFrozen){
                            MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(directMember.getId());
                            if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(basicPerkDirect)) >= 0){
                                return;
                            }
                            mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(basicPerkDirect));
                            mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
                            //插入一条流水记录
                            String orderNo = MallUtils.getOrderNum("FNFTW");
                            mallMoneyFlowService.addMoneyFlow(
                                    memberId,
                                    basicPerkDirect.negate(),
                                    MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_WRONG.getValue(),
                                    orderNo,
                                    null,
                                    FlowTypeNewEnum.NFT.getValue(),
                                    MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_WRONG.getDescrition(),
                                    AppContants.MEMBER_FLOW_ING);
                        }else {
                            MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(directMember.getId());
                            if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(basicPerkDirect)) >= 0){
                                return;
                            }
                            mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(basicPerkDirect));
                            mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
                            MallMemberAmount mallMemberAmountNft = mallMemberAmountMapper.selectByMemberId(directMember.getId());
                            mallMemberAmountNft.setTrendsNft(mallMemberAmountNft.getTrendsNft().add(basicPerkDirect));
                            mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountNft);
                            //插入一条流水记录
                            String orderNo = MallUtils.getOrderNum("NFT");
                            mallMoneyFlowService.addMoneyFlow(
                                    memberId,
                                    basicPerkDirect,
                                    MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_DONE.getValue(),
                                    orderNo,
                                    null,
                                    FlowTypeNewEnum.NFT.getValue(),
                                    MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_DONE.getDescrition(),
                                    AppContants.MEMBER_FLOW_DONE);
                        }
                    }
                }
            }
        }
    }