| | |
| | | if (CollUtil.isNotEmpty(orders)) { |
| | | for (YdOrderEntity order : orders) { |
| | | if ("P".equals(order.getYdProductEntity().getProUnit())) { |
| | | totalPower = totalPower.add(BigDecimal.valueOf(order.getQuantity() * 1024)); |
| | | totalPower = totalPower.add(BigDecimal.valueOf(order.getQuantity() * order.getYdProductEntity().getProNum() * 1024)); |
| | | } else { |
| | | totalPower = totalPower.add(BigDecimal.valueOf(order.getQuantity())); |
| | | totalPower = totalPower.add(BigDecimal.valueOf(order.getQuantity() * order.getYdProductEntity().getProNum())); |
| | | } |
| | | } |
| | | } |
| | |
| | | } else { |
| | | needPower = basicLevelSetting.getCalculationPower(); |
| | | } |
| | | return totalPower.compareTo(needPower) > 0; |
| | | return totalPower.compareTo(needPower) >= 0; |
| | | } |
| | | |
| | | /** |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void xchProfitDistributor(BigDecimal totalProfit) { |
| | | Date currentDate = new Date(); |
| | | List<YdProductEntity> products = ydProductDao.selectList(null); |
| | | List<YdProductEntity> products = ydProductDao.selectXchProductList(); |
| | | if (CollUtil.isNotEmpty(products)) { |
| | | BigDecimal totalCount = BigDecimal.ZERO; |
| | | for (YdProductEntity product : products) { |
| | | BigDecimal count = product.getTotalT(); |
| | | BigDecimal count = product.getTotalT().multiply(BigDecimal.valueOf(product.getProNum())); |
| | | if ("P".equals(product.getProUnit())) { |
| | | count = count.multiply(BigDecimal.valueOf(1024)); |
| | | } |
| | |
| | | // 单位XCH收益 |
| | | BigDecimal unitProfit = totalProfit.divide(totalCount, 8, BigDecimal.ROUND_DOWN); |
| | | log.info("单位XCH收益:{}", unitProfit); |
| | | |
| | | List<MemberEntity> partners = memberDao.selectPartnerMemberList(); |
| | | YdBasicSettingEntity setting = ydBasicSettingDao.selectById(1L); |
| | | |
| | | List<YdOrderEntity> orders = ydOrderDao.selectAllValidOrders(); |
| | | if (CollUtil.isNotEmpty(orders)) { |
| | |
| | | List<String> inviteIds = StrUtil.split(memberEntity.getRefererIds(), ','); |
| | | List<MemberEntity> agents = memberDao.selectYdParentAgent(inviteIds); |
| | | |
| | | BigDecimal count = BigDecimal.valueOf(order.getQuantity()); |
| | | BigDecimal count = BigDecimal.valueOf(order.getQuantity() * order.getYdProductEntity().getProNum()); |
| | | if ("P".equals(order.getYdProductEntity().getProUnit())) { |
| | | count = count.multiply(BigDecimal.valueOf(1024)); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | BigDecimal partnerAmount = orderProfit.multiply(setting.getPartnerXchRatio()); |
| | | remainProfit = remainProfit.subtract(partnerAmount); |
| | | // 合伙人收益 |
| | | if (CollUtil.isNotEmpty(partners)) { |
| | | BigDecimal unitPartnerAmount = partnerAmount.divide(BigDecimal.valueOf(partners.size()), 8, BigDecimal.ROUND_DOWN); |
| | | for (MemberEntity partner : partners) { |
| | | String conent = "合伙人XCH分红"; |
| | | LogRecordUtils.insertMemberAccountMoneyChangeWithId(partner.getId(), conent, unitPartnerAmount, "XCH", 1, 10, order.getId()); |
| | | } |
| | | } |
| | | |
| | | remainProfit = remainProfit.subtract(orderProfit.multiply(order.getYdProductEntity().getManageExpense())); |
| | | String content = "XCH收益"; |
| | | LogRecordUtils.insertMemberAccountMoneyChangeWithId(order.getMemberId(), content, remainProfit, "XCH", 1, 4, order.getId()); |