@Override public Expression<?> count(CriteriaQuery<Long> countQuery, CriteriaBuilder criteriaBuilder, Root<Commission> root) { // orderCommission 没有传统主键! return OrderCommission.getIdSelection(criteriaBuilder, root.join("orderCommission")); }
OrderCommission orderCommission = orderCommissionRepository.findOne(new OrderCommissionPK(order)); if (orderCommission == null) orderCommission = new OrderCommission(); orderCommission.setGenerateTime(LocalDateTime.now()); orderCommission.setRefund(false); orderCommission.setSource(order);
@EventListener(MainOrderFinishEvent.class) @ThreadSafe @Override public void orderFinish(MainOrderFinishEvent event) { final MainOrder order = event.getMainOrder(); OrderCommission orderCommission = orderCommissionRepository.findOne(new OrderCommissionPK(order)); if (orderCommission == null) { doSettlement(order); orderCommission = orderCommissionRepository.findOne(new OrderCommissionPK(order)); } assert orderCommission != null; orderCommission.setPending(false); }
commission.setWho(login); commission.setRate(rate); commission.setAmount(orderCommission.getSource().getCommissioningAmount().multiply(rate) .setScale(2, BigDecimal.ROUND_HALF_UP)); commission.setType(type); final SalesAchievement salesAchievement = orderCommission.getSource().getSalesAchievement(); if (salesAchievement != null && salesAchievement.getCurrentRate() != null && !salesAchievement.getCurrentRate().equals(BigDecimal.ZERO)) { BigDecimal achievementRate = rate.multiply(salesAchievement.getCurrentRate()) .setScale(7, BigDecimal.ROUND_DOWN); BigDecimal achievementAmount = orderCommission.getSource().getCommissioningAmount().multiply(achievementRate) .setScale(2, BigDecimal.ROUND_HALF_UP); final Login salesmanLogin = salesAchievement.getWhose().getLogin();