package com.ruoyi.order.mapper;
|
|
import org.junit.jupiter.api.Test;
|
|
import java.io.BufferedReader;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.io.InputStreamReader;
|
import java.nio.charset.StandardCharsets;
|
import java.util.stream.Collectors;
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
class ChargingOrderShareIncomeMapperTest {
|
|
@Test
|
void usesNetShareRecordAmountsWithoutDeductingOrderRefundAgain() throws IOException {
|
String mapper = resource("mapper/order/TChargingOrderMapper.xml");
|
String detailQuery = select(mapper, "chargingOrderShareIncomeByOrderIds");
|
String channelQuery = select(mapper, "chargingOrderShareIncomeByPayChannel");
|
String summaryQuery = select(mapper, "chargingOrderShareIncomeSummaryByOrderIds");
|
|
assertTrue(detailQuery.contains("sum(IFNULL(s.share_amount, 0)) as partnerIncome"));
|
assertTrue(detailQuery.contains("sum(IFNULL(s.channel_pay_amount, 0) - IFNULL(s.share_amount, 0)) as platformIncome"));
|
assertTrue(channelQuery.contains("sum(IFNULL(s.share_amount, 0)) as shareAmount"));
|
assertTrue(summaryQuery.contains("sum(IFNULL(s.share_amount, 0)) as partnerIncomeTotal"));
|
assertTrue(summaryQuery.contains("sum(IFNULL(s.channel_pay_amount, 0) - IFNULL(s.share_amount, 0)) as platformIncomeTotal"));
|
|
assertFalse(detailQuery.contains("third_refund_amount"));
|
assertFalse(channelQuery.contains("third_refund_amount"));
|
assertFalse(summaryQuery.contains("third_refund_amount"));
|
}
|
|
private String select(String mapper, String id) {
|
int start = mapper.indexOf("<select id=\"" + id + "\"");
|
int end = mapper.indexOf("</select>", start);
|
assertTrue(start >= 0 && end > start);
|
return mapper.substring(start, end);
|
}
|
|
private String resource(String path) throws IOException {
|
InputStream input = getClass().getClassLoader().getResourceAsStream(path);
|
assertNotNull(input);
|
try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8))) {
|
return reader.lines().collect(Collectors.joining("\n"));
|
}
|
}
|
}
|