From 880071fb9de0abeca36e88d05457caff523512ef Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Sun, 18 Jan 2026 15:42:25 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=9C=8818=E6=97=A5.=E8=B5=84=E9=87=91?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E8=A1=A8=E8=A1=A8=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/Util/ExcelHeaderTranslator.java | 4 +- .../demo/controller/cash/CashRefundController.java | 17 +++- .../serviceImpl/coin/ExportExcelServiceImpl.java | 90 +++++++++++++++++++++- 3 files changed, 106 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/example/demo/Util/ExcelHeaderTranslator.java b/src/main/java/com/example/demo/Util/ExcelHeaderTranslator.java index 342ce65..30553a3 100644 --- a/src/main/java/com/example/demo/Util/ExcelHeaderTranslator.java +++ b/src/main/java/com/example/demo/Util/ExcelHeaderTranslator.java @@ -568,7 +568,7 @@ public class ExcelHeaderTranslator { headers.put("handlingCharge", "手续费"); headers.put("payType", "付款类型"); headers.put("statusName", "退款状态"); - headers.put("refundCurrencyName", "退款币种"); + headers.put("refundCurrency", "退款币种"); headers.put("refundAmount", "退款金额"); // 如果需要翻译,则翻译表头 @@ -585,7 +585,7 @@ public class ExcelHeaderTranslator { public List getFundsColumnOrder() { return Arrays.asList( "id", "jwcode", "name", "marketName", "orderCode", "paymentCurrencyName", "paymentAmount", - "receivedCurrencyName", "receivedAmount", "handlingCharge", "payType", "statusName", "refundCurrencyName", + "receivedCurrencyName", "receivedAmount", "handlingCharge", "payType", "statusName", "refundCurrency", "refundAmount" ); } diff --git a/src/main/java/com/example/demo/controller/cash/CashRefundController.java b/src/main/java/com/example/demo/controller/cash/CashRefundController.java index 9bdad51..86c2cb5 100644 --- a/src/main/java/com/example/demo/controller/cash/CashRefundController.java +++ b/src/main/java/com/example/demo/controller/cash/CashRefundController.java @@ -583,6 +583,11 @@ public class CashRefundController { if (funds.getPayType() != null) { funds.setPayType(languageTranslationUtil.translate(funds.getPayType(), lang)); } + // 翻译状态名称 + if (funds.getStatus() != null) { + String statusName = convertStatusToString(funds.getStatus()); + funds.setStatusName(languageTranslationUtil.translate(statusName, lang)); + } } } @@ -709,6 +714,16 @@ public class CashRefundController { } } } - + /** + * 将类型数字转换为中文描述 + */ + private String convertStatusToString(Integer type) { + if (type == null) return ""; + switch (type) { + case 4: return "正常"; + case 6: return "已退款"; + default: return "其他"; + } + } } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java index 4d867d7..989fbf5 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java @@ -764,7 +764,28 @@ public class ExportExcelServiceImpl implements ExportExcelService { writeSheet = EasyExcel.writerSheet("Sheet1") .head(head) .build(); - } else { + } + // 如果是资金流水表,添加动态表头处理器 + else if ("fundUser".equals(exportType)) { + Map headers = excelHeaderTranslator.getFundsHeaders(lang); + List columnOrder = excelHeaderTranslator.getFundsColumnOrder(); + + // 构建自定义表头 + List> head = new ArrayList<>(); + for (String fieldName : columnOrder) { + String headerText = headers.get(fieldName); + if (headerText != null) { + List headItems = new ArrayList<>(); + headItems.add(headerText); + head.add(headItems); + } + } + + writeSheet = EasyExcel.writerSheet("Sheet1") + .head(head) + .build(); + } + else { writeSheet = EasyExcel.writerSheet("Sheet1").build(); } @@ -871,6 +892,12 @@ public class ExportExcelServiceImpl implements ExportExcelService { translatePerformanceList((List) list, lang); } + // 添加资金流水翻译支持 + if ("fundsUser".equals(exportType) && list.get(0) instanceof FundsDTO) { + fillUserStatusDescriptions((List) list); + translateFundsList((List) list, lang); + } + excelWriter.write(list, writeSheet); page.setPageNum(page.getPageNum() + 1); totalCount += list.size(); @@ -1029,6 +1056,30 @@ public class ExportExcelServiceImpl implements ExportExcelService { } /** + * 填充用户数据的状态描述 + */ + private void fillUserStatusDescriptions(List funds) { + if (funds != null && !funds.isEmpty()) { + for (FundsDTO fund : funds) { + if (fund.getStatus() != null) { + fund.setStatusName(convertStatusToString(fund.getStatus())); + } + } + } + } + /** + * 将类型数字转换为中文描述 + */ + private String convertStatusToString(Integer type) { + if (type == null) return ""; + switch (type) { + case 4: return "正常"; + case 6: return "已退款"; + default: return "其他"; + } + } + + /** * 填充金币明细数据的类型描述 */ private void fillGoldDetailTypeDescriptions(List goldDetails) { @@ -1181,7 +1232,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { switch (platform) { case 1: return "PC"; case 2: return "手机"; - default: return ""; + default: return "未知"; } } @@ -1612,4 +1663,39 @@ public class ExportExcelServiceImpl implements ExportExcelService { } } } + + /** + * 翻译资金流水列表 + */ + private void translateFundsList(List list, String lang) { + if (list == null || list.isEmpty() || "zh_CN".equalsIgnoreCase(lang) || "zh".equalsIgnoreCase(lang)) { + return; + } + for (FundsDTO item : list) { + // 翻译所属地区名称 + if (item.getMarketName() != null && !item.getMarketName().isEmpty()) { + item.setMarketName(languageTranslationUtil.translate(item.getMarketName(), lang)); + } + // 翻译付款币种 + if (item.getPaymentCurrencyName() != null && !item.getPaymentCurrencyName().isEmpty()) { + item.setPaymentCurrencyName(languageTranslationUtil.translate(item.getPaymentCurrencyName(), lang)); + } + // 翻译到账币种 + if (item.getReceivedCurrencyName() != null && !item.getReceivedCurrencyName().isEmpty()) { + item.setReceivedCurrencyName(languageTranslationUtil.translate(item.getReceivedCurrencyName(), lang)); + } + // 翻译支付方式 + if (item.getPayType() != null && !item.getPayType().isEmpty()) { + item.setPayType(languageTranslationUtil.translate(item.getPayType(), lang)); + } + // 翻译退款状态 + if (item.getStatusName() != null && !item.getStatusName().isEmpty()) { + item.setStatusName(languageTranslationUtil.translate(item.getStatusName(), lang)); + } + // 翻译退款币种 + if (item.getRefundCurrency() != null && !item.getRefundCurrency().isEmpty()) { + item.setRefundCurrency(languageTranslationUtil.translate(item.getRefundCurrency(), lang)); + } + } + } }