收益逻辑修正

This commit is contained in:
Jerry Yan 2025-02-28 15:01:26 +08:00
parent 553ef3a2cd
commit 5494352fb0
2 changed files with 15 additions and 8 deletions

View File

@ -33,6 +33,10 @@ public class HttpSaver {
return;
}
HttpServletRequest request = attributes.getRequest();
saveRequestToFile(request);
}
public static void saveRequestToFile(HttpServletRequest request) throws IOException {
StringBuilder rawReq = new StringBuilder();
rawReq.append(request.getMethod()).append(" ").append(request.getRequestURL());
String queryString = request.getQueryString();

View File

@ -80,7 +80,7 @@ public class BrokerBiz {
brokerRecord.setOrderPrice(order.getPayPrice());
brokerRecord.setBrokerRate(broker.getBrokerRate());
BigDecimal brokerRate = brokerRecord.getBrokerRate();
BigDecimal brokerPrice = order.getPayPrice().multiply(brokerRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN);
BigDecimal brokerPrice = order.getPayPrice().multiply(brokerRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);
brokerRecord.setDirectPrice(order.getPayPrice());
brokerRecord.setBrokerPrice(brokerPrice);
reason += "金额:" + order.getPayPrice() + "元,提成比例:" + brokerRate + "%,提成金额:" + brokerPrice + "";
@ -89,12 +89,15 @@ public class BrokerBiz {
} else {
BrokerRespVO broker = brokerInfoList.get(0);
BigDecimal realRate = broker.getBrokerRate();
BigDecimal brokerPrice = order.getPayPrice().multiply(realRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN);
BigDecimal brokerPrice = order.getPayPrice().multiply(realRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);
AtomicBoolean isFirst = new AtomicBoolean(true);
// todo 需要计算实际提成比例
BigDecimal firstRate = BigDecimal.valueOf(50);
BigDecimal secondRate = BigDecimal.valueOf(100).subtract(firstRate).divide(BigDecimal.valueOf(brokerInfoList.size() - 1), 2, RoundingMode.HALF_DOWN);
brokerInfoList.forEach(item -> {
BigDecimal firstRate = scenicConfig.getBrokerDirectRate();
if (firstRate == null) {
firstRate = BigDecimal.ZERO;
}
BigDecimal secondRate = BigDecimal.valueOf(100).subtract(firstRate).divide(BigDecimal.valueOf(brokerInfoList.size() - 1), 2, RoundingMode.DOWN);
for (BrokerRespVO item : brokerInfoList) {
String reason = "多人提成:支付金额:" + order.getPayPrice() + "元,可提成比例:" + realRate + "%,可提成金额:" + brokerPrice + "";
BrokerRecord brokerRecord = new BrokerRecord();
brokerRecord.setBrokerId(item.getId());
@ -108,14 +111,14 @@ public class BrokerBiz {
brokerRecord.setDirectPrice(BigDecimal.ZERO);
}
brokerRecord.setOrderPrice(order.getPayPrice());
brokerRecord.setBrokerRate(interBrokerRate);
BigDecimal interBrokerPrice = order.getPayPrice().multiply(interBrokerRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN);
brokerRecord.setBrokerRate(interBrokerRate.multiply(realRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN));
BigDecimal interBrokerPrice = brokerPrice.multiply(interBrokerRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);
brokerRecord.setBrokerPrice(interBrokerPrice);
reason += "二次提成比例:" + interBrokerRate + "%,提成金额:" + interBrokerPrice + "";
brokerRecord.setReason(reason);
brokerRecordList.add(brokerRecord);
isFirst.set(false);
});
}
}
revokeOrder(orderId);
brokerRecordList.forEach(brokerRecord -> {