| | |
| | | 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; |
| | |
| | | // BigDecimal totalProfit = igtOnHookPlanOrder.getProfit(); |
| | | BigDecimal planAmount = igtOnHookPlanOrder.getPlanAmount(); |
| | | // BigDecimal avaAmount = igtOnHookPlanOrder.getAvaAmount(); |
| | | //更新用户表是否正在挂机状态字段为否 |
| | | //更新用户表是否正在挂机状态字段为结算中 |
| | | DappMemberEntity dappMember = dappMemberDao.selectById(memberId); |
| | | dappMember.setIsOnHook(3); |
| | | dappMemberDao.updateById(dappMember); |
| | |
| | | if(multiply.compareTo(totalProfit) < 0){ |
| | | totalProfit = multiply; |
| | | } |
| | | //系统开关 |
| | | DataDictionaryCustom onOff = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.ON_OFF.getType(), DataDictionaryEnum.ON_OFF.getCode()); |
| | | String onOffStr = onOff.getValue() == null ? "OFF":onOff.getValue(); |
| | | if("ON".equals(onOffStr)){ |
| | | totalProfit = BigDecimal.ZERO; |
| | | planAmount = BigDecimal.ZERO; |
| | | } |
| | | |
| | | String refererIds = dappMemberEntity.getRefererIds(); |
| | | List<String> refererIdList = StrUtil.split(refererIds, ",", -1, true, true); |
| | |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | //根据上下级,筛选用户的级别 |
| | | ArrayList<String> refererIdLisstUp = new ArrayList<>(); |
| | | // String levelNext = MemberLevelEnum.LEVEL_MB.getType(); |
| | | //自己挂机,初始级别即当前挂机人的级别 |
| | | String levelNext = dappMemberEntity.getIdentity(); |
| | | 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,igtOnHookPlanOrder.getId()); |
| | | //生成流水佣金和盈利分成和流水记录,返回盈利分成和流水佣金总共分成 |
| | | // BigDecimal profitSharingTotal = dappWalletService.updateLSYJYLFC(refererIdList, totalProfit,igtOnHookPlanOrder.getId()); |
| | | BigDecimal profitSharingTotal = dappWalletService.updateLSYJ(refererIdLisstUp, totalProfit,igtOnHookPlanOrder.getId()); |
| | | // BigDecimal profitFlowTotal = dappWalletService.updateYLFC(refererIdLisstUp, totalProfit,igtOnHookPlanOrder.getId()); |
| | | BigDecimal profitFlowTotal = dappWalletService.updateYLFC(refererIdLisstUp, planAmount,igtOnHookPlanOrder.getId()); |
| | | //平台分成 |
| | | //平台拿走35%盈利分成和流水佣金剩下的全部 |
| | | // BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal).subtract(profitFlowTotal); |
| | | BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal); |
| | | BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,systemAdd,igtOnHookPlanOrder.getId()); |
| | | //个人固定拿走60% |
| | |
| | | igtOnHookPlanOrderDao.updateById(igtOnHookPlanOrder); |
| | | |
| | | BigDecimal totalMoney = planAmount.add(totalProfit); |
| | | |
| | | if("ON".equals(onOffStr)){ |
| | | totalMoney = BigDecimal.ZERO; |
| | | } |
| | | DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId); |
| | | dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntity.getId(),totalMoney); |
| | | |
| | |
| | | Date date = dappOnHookAwardNow.getAwardTime(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
| | | String yyyyMMddHHMM = sdf.format(date); |
| | | List<DappOnHookAward> dappOnHookAwards = dappOnHookAwardDao.selectInfoByByAwardTime(yyyyMMddHHMM); |
| | | // List<DappOnHookAward> dappOnHookAwards = dappOnHookAwardDao.selectInfoByByAwardTime(yyyyMMddHHMM); |
| | | List<DappOnHookAward> dappOnHookAwards = dappOnHookAwardDao.selectByIdLimitTT(Long.parseLong(onHookAwardRedisId)); |
| | | if(CollUtil.isNotEmpty(dappOnHookAwards)){ |
| | | for(DappOnHookAward dappOnHookAward : dappOnHookAwards){ |
| | | ApiAwardInfoVo apiAwardInfoVo = new ApiAwardInfoVo(); |
| | |
| | | DateTime dateTime = DateUtil.offsetMinute(awardTime, 5); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
| | | String yyyyMMddHHMM = sdf.format(dateTime); |
| | | DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM); |
| | | long onHookAwardNextId = Long.parseLong(onHookAwardRedisId) + 1; |
| | | // DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM); |
| | | DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectById(onHookAwardNextId); |
| | | |
| | | //系统挂机总次数 = 时长 * 60 / 5 |
| | | DataDictionaryCustom maxHoursDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.MAX_HOURS.getType(), DataDictionaryEnum.MAX_HOURS.getCode()); |
| | |
| | | if(multiply.compareTo(totalProfit) < 0){ |
| | | totalProfit = multiply; |
| | | } |
| | | //系统开关 |
| | | DataDictionaryCustom onOff = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.ON_OFF.getType(), DataDictionaryEnum.ON_OFF.getCode()); |
| | | String onOffStr = onOff.getValue() == null ? "OFF":onOff.getValue(); |
| | | if("ON".equals(onOffStr)){ |
| | | totalProfit = BigDecimal.ZERO; |
| | | planAmount = BigDecimal.ZERO; |
| | | } |
| | | |
| | | // BigDecimal totalProfit = planAmount.multiply(hangingRevenueLevel).setScale(4,BigDecimal.ROUND_DOWN); |
| | | |
| | |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | //根据上下级,筛选用户的级别 |
| | | ArrayList<String> refererIdLisstUp = new ArrayList<>(); |
| | | // String levelNext = MemberLevelEnum.LEVEL_MB.getType(); |
| | | //自己挂机,初始级别即当前挂机人的级别 |
| | | String levelNext = dappMemberEntity.getIdentity(); |
| | | 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,igtOnHookPlanOrder.getId()); |
| | | BigDecimal profitSharingTotal = dappWalletService.updateLSYJ(refererIdLisstUp, totalProfit,igtOnHookPlanOrder.getId()); |
| | | // BigDecimal profitFlowTotal = dappWalletService.updateYLFC(refererIdLisstUp, totalProfit,igtOnHookPlanOrder.getId()); |
| | | BigDecimal profitFlowTotal = dappWalletService.updateYLFC(refererIdLisstUp, planAmount,igtOnHookPlanOrder.getId()); |
| | | //平台分成 |
| | | //平台拿走35%盈利分成和流水佣金剩下的全部 |
| | | //平台拿走40% - 盈利分成和流水佣金剩下的全部 |
| | | // BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal).subtract(profitFlowTotal); |
| | | BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal); |
| | | BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,systemAdd,igtOnHookPlanOrder.getId()); |
| | | //个人固定拿走60% |
| | |
| | | dappMemberEntity.setIsOnHook(3); |
| | | dappMemberDao.updateById(dappMemberEntity); |
| | | |
| | | if("ON".equals(onOffStr)){ |
| | | totalMoney = BigDecimal.ZERO; |
| | | } |
| | | DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId); |
| | | BigDecimal availableAmount = dappWalletCoinEntity.getAvailableAmount(); |
| | | dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntity.getId(),totalMoney); |