Browse Source

12月14日现金管理多语言配置,优化导出多语言版本Excel表

huangqizheng/feature-20260106155423-红包修改
wangguorui 4 weeks ago
parent
commit
f69a7ebc82
  1. 438
      src/main/java/com/example/demo/controller/coin/ExportController.java

438
src/main/java/com/example/demo/controller/coin/ExportController.java

@ -8,6 +8,9 @@ import com.example.demo.domain.DTO.*;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.Export;
import com.example.demo.domain.DTO.CashDTO;
import com.example.demo.domain.vo.bean.*;
import com.example.demo.domain.vo.cash.CashCollection;
import com.example.demo.domain.vo.cash.CashRecordDTO;
import com.example.demo.domain.vo.coin.ConsumeUser;
import com.example.demo.domain.vo.coin.RechargeUser;
import com.example.demo.domain.vo.coin.RefundUser;
@ -77,6 +80,14 @@ public class ExportController {
dto.setToken(token);
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertRechargeTranslatedFieldsToChinese(dto.getRechargeUser(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -101,6 +112,14 @@ public class ExportController {
dto.setToken(token);
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertRefundTranslatedFieldsToChinese(dto.getRefundUser(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -125,6 +144,14 @@ public class ExportController {
dto.setToken(token);
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertConsumeTranslatedFieldsToChinese(dto.getConsumeUser(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -146,6 +173,14 @@ public class ExportController {
long expireTime = 5000;
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertLiveTranslatedFieldsToChinese(dto.getBeanConsumeLive(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -167,6 +202,14 @@ public class ExportController {
long expireTime = 5000;
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertFanTranslatedFieldsToChinese(dto.getBeanConsumeFan(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -188,6 +231,14 @@ public class ExportController {
long expireTime = 5000;
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertArticleTranslatedFieldsToChinese(dto.getBeanConsumeArticle(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -209,6 +260,14 @@ public class ExportController {
long expireTime = 5000;
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertBeanTranslatedFieldsToChinese(dto.getBeanSystemRechargeInfo(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -230,6 +289,14 @@ public class ExportController {
long expireTime = 5000;
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertOnlineTranslatedFieldsToChinese(dto.getBeanOnlineRechargeInfo(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -254,6 +321,14 @@ public class ExportController {
long expireTime = 5000;
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertFinanceTranslatedFieldsToChinese(dto.getCashRecordDTO(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -275,6 +350,14 @@ public class ExportController {
long expireTime = 5000;
dto.setLang(lang); // 设置语言参数
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertCashTranslatedFieldsToChinese(dto.getCashCollection(), languageCode);
}
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -288,4 +371,359 @@ public class ExportController {
redisLockUtil.unlock(lockKey, requestId);
}
}
/**
* 解析语言代码
*/
private String parseLanguageCode(String langHeader) {
if (langHeader == null || langHeader.isEmpty()) {
return "zh";
}
// 处理类似 "en-US" "zh-TW" 的情况
if (langHeader.contains("-")) {
String[] parts = langHeader.split("-");
// 特殊处理中文繁体
if ("zh".equalsIgnoreCase(parts[0]) && "TW".equalsIgnoreCase(parts[1])) {
return "zh_TW";
}
return parts[0].toLowerCase();
}
return langHeader.toLowerCase();
}
/**
* 将充值查询条件中的翻译字段转换为中文简体
*/
private void convertRechargeTranslatedFieldsToChinese(RechargeUser rechargeUser, String languageCode) {
if (rechargeUser != null) {
// 转换市场名称
if (rechargeUser.getMarket() != null && !rechargeUser.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
rechargeUser.getMarket(), languageCode);
rechargeUser.setMarket(chineseMarket);
}
// 转换汇率名称
if (rechargeUser.getRateName() != null && !rechargeUser.getRateName().isEmpty()) {
String chineseRateName = translationService.findChineseSimplifiedByTranslation(
rechargeUser.getRateName(), languageCode);
rechargeUser.setRateName(chineseRateName);
}
// 转换支付方式
if (rechargeUser.getPayModel() != null && !rechargeUser.getPayModel().isEmpty()) {
String chinesePayModel = translationService.findChineseSimplifiedByTranslation(
rechargeUser.getPayModel(), languageCode);
rechargeUser.setPayModel(chinesePayModel);
}
// 转换备注
if (rechargeUser.getRemark() != null && !rechargeUser.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
rechargeUser.getRemark(), languageCode);
rechargeUser.setRemark(chineseRemark);
}
}
}
/**
* 将退款查询条件中的翻译字段转换为中文简体
*/
private void convertRefundTranslatedFieldsToChinese(RefundUser refundUser, String languageCode) {
if (refundUser != null) {
// 转换市场名称
if (refundUser.getMarket() != null && !refundUser.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
refundUser.getMarket(), languageCode);
refundUser.setMarket(chineseMarket);
}
// 转换商品名称
if (refundUser.getGoodsName() != null && !refundUser.getGoodsName().isEmpty()) {
String chineseGoodsName = translationService.findChineseSimplifiedByTranslation(
refundUser.getGoodsName(), languageCode);
refundUser.setGoodsName(chineseGoodsName);
}
// 转换退款类型
if (refundUser.getRefundType() != null && !refundUser.getRefundType().isEmpty()) {
String chineseRefundType = translationService.findChineseSimplifiedByTranslation(
refundUser.getRefundType(), languageCode);
refundUser.setRefundType(chineseRefundType);
}
// 转换备注
if (refundUser.getRemark() != null && !refundUser.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
refundUser.getRemark(), languageCode);
refundUser.setRemark(chineseRemark);
}
}
}
/**
* 将消费查询条件中的翻译字段转换为中文简体
*/
private void convertConsumeTranslatedFieldsToChinese(ConsumeUser consumeUser, String languageCode) {
if (consumeUser != null) {
// 转换商品名称
if (consumeUser.getGoodsName() != null && !consumeUser.getGoodsName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
consumeUser.getGoodsName(), languageCode);
consumeUser.setGoodsName(chineseName);
}
// 转换市场名称
if (consumeUser.getMarket() != null && !consumeUser.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
consumeUser.getMarket(), languageCode);
consumeUser.setMarket(chineseMarket);
}
}
}
/**
* 将直播查询条件中的翻译字段转换为中文简体
*/
private void convertLiveTranslatedFieldsToChinese(BeanConsumeLive beanConsumeLive, String languageCode) {
if (beanConsumeLive != null) {
//转换地区
if (beanConsumeLive.getDept() != null && !beanConsumeLive.getDept().isEmpty()) {
String chineseDept = translationService.findChineseSimplifiedByTranslation(
beanConsumeLive.getDept(), languageCode);
beanConsumeLive.setDept(chineseDept);
}
//转换礼物名称
if (beanConsumeLive.getGift() != null && !beanConsumeLive.getGift().isEmpty()) {
String chineseGift = translationService.findChineseSimplifiedByTranslation(
beanConsumeLive.getGift(), languageCode);
beanConsumeLive.setGift(chineseGift);
}
//转换直播频道
if (beanConsumeLive.getLiveChannel() != null && !beanConsumeLive.getLiveChannel().isEmpty()) {
String chineseChannel = translationService.findChineseSimplifiedByTranslation(
beanConsumeLive.getLiveChannel(), languageCode);
beanConsumeLive.setLiveChannel(chineseChannel);
}
//转换直播名称
if (beanConsumeLive.getLiveName() != null && !beanConsumeLive.getLiveName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
beanConsumeLive.getLiveName(), languageCode);
beanConsumeLive.setLiveName(chineseName);
}
}
}
/**
* 将粉丝查询条件中的翻译字段转换为中文简体
*/
private void convertFanTranslatedFieldsToChinese(BeanConsumeFan beanConsumeFan, String languageCode) {
if (beanConsumeFan != null) {
// 转换地区
if (beanConsumeFan.getDept() != null && !beanConsumeFan.getDept().isEmpty()) {
String chineseDept = translationService.findChineseSimplifiedByTranslation(
beanConsumeFan.getDept(), languageCode);
beanConsumeFan.setDept(chineseDept);
}
// 转换频道
if (beanConsumeFan.getChannel() != null && !beanConsumeFan.getChannel().isEmpty()) {
String chineseChannel = translationService.findChineseSimplifiedByTranslation(
beanConsumeFan.getChannel(), languageCode);
beanConsumeFan.setChannel(chineseChannel);
}
// 转换会员类型
if (beanConsumeFan.getType() != null && !beanConsumeFan.getType().isEmpty()) {
String chineseType = translationService.findChineseSimplifiedByTranslation(
beanConsumeFan.getType(), languageCode);
beanConsumeFan.setType(chineseType);
}
}
}
/**
* 将文章查询条件中的翻译字段转换为中文简体
*/
private void convertArticleTranslatedFieldsToChinese(BeanConsumeArticle beanConsumeArticle, String languageCode) {
if (beanConsumeArticle != null) {
// 转换文章名称
if (beanConsumeArticle.getArticleName() != null && !beanConsumeArticle.getArticleName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
beanConsumeArticle.getArticleName(), languageCode);
beanConsumeArticle.setArticleName(chineseName);
}
// 转换地区
if (beanConsumeArticle.getDept() != null && !beanConsumeArticle.getDept().isEmpty()) {
String chineseDept = translationService.findChineseSimplifiedByTranslation(
beanConsumeArticle.getDept(), languageCode);
beanConsumeArticle.setDept(chineseDept);
}
// 转换类型
if (beanConsumeArticle.getType() != null && !beanConsumeArticle.getType().isEmpty()) {
String chineseType = translationService.findChineseSimplifiedByTranslation(
beanConsumeArticle.getType(), languageCode);
beanConsumeArticle.setType(chineseType);
}
}
}
/**
* 将金豆充值查询条件中的翻译字段转换为中文简体
*/
private void convertBeanTranslatedFieldsToChinese(BeanSystemRechargeInfo beanSystemRechargeInfo, String languageCode) {
if (beanSystemRechargeInfo != null) {
// 转换市场
if (beanSystemRechargeInfo.getMarket() != null && !beanSystemRechargeInfo.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
beanSystemRechargeInfo.getMarket(), languageCode);
beanSystemRechargeInfo.setMarket(chineseMarket);
}
// 转换备注
if (beanSystemRechargeInfo.getRemark() != null && !beanSystemRechargeInfo.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
beanSystemRechargeInfo.getRemark(), languageCode);
beanSystemRechargeInfo.setRemark(chineseRemark);
}
}
}
/**
* 将导出查询条件中的翻译字段转换为中文简体
*/
private void convertOnlineTranslatedFieldsToChinese(BeanOnlineRechargeInfo beanOnlineRechargeInfo, String languageCode) {
if (beanOnlineRechargeInfo != null) {
// 转换市场
if (beanOnlineRechargeInfo.getMarket() != null && !beanOnlineRechargeInfo.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
beanOnlineRechargeInfo.getMarket(), languageCode);
beanOnlineRechargeInfo.setMarket(chineseMarket);
}
// 转换充值平台
if (beanOnlineRechargeInfo.getPlatform() != null && !beanOnlineRechargeInfo.getPlatform().isEmpty()) {
String chinesePlatform = translationService.findChineseSimplifiedByTranslation(
beanOnlineRechargeInfo.getPlatform(), languageCode);
beanOnlineRechargeInfo.setPlatform(chinesePlatform);
}
}
}
/**
* 将负责人导出查询条件中的翻译字段转换为中文简体
*/
private void convertFinanceTranslatedFieldsToChinese(CashRecordDTO cashRecordDTO, String languageCode) {
if (cashRecordDTO != null) {
// 转换商品名称
if (cashRecordDTO.getGoodsName() != null && !cashRecordDTO.getGoodsName().isEmpty()) {
String chineseGoodsName = translationService.findChineseSimplifiedByTranslation(
cashRecordDTO.getGoodsName(), languageCode);
cashRecordDTO.setGoodsName(chineseGoodsName);
}
// 转换备注
if (cashRecordDTO.getRemark() != null && !cashRecordDTO.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
cashRecordDTO.getRemark(), languageCode);
cashRecordDTO.setRemark(chineseRemark);
}
// 转换退款理由
if (cashRecordDTO.getRefundReason() != null && !cashRecordDTO.getRefundReason().isEmpty()) {
String chineseRefundReason = translationService.findChineseSimplifiedByTranslation(
cashRecordDTO.getRefundReason(), languageCode);
cashRecordDTO.setRefundReason(chineseRefundReason);
}
// 转换驳回理由
if (cashRecordDTO.getRejectReason() != null && !cashRecordDTO.getRejectReason().isEmpty()) {
String chineseRejectReason = translationService.findChineseSimplifiedByTranslation(
cashRecordDTO.getRejectReason(), languageCode);
cashRecordDTO.setRejectReason(chineseRejectReason);
}
}
}
/**
* 将现金导出查询条件中的翻译字段转换为中文简体
*/
private void convertCashTranslatedFieldsToChinese(CashCollection cashCollection, String languageCode) {
if (cashCollection != null) {
// 转换地区
if (cashCollection.getMarket() != null && !cashCollection.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
cashCollection.getMarket(), languageCode);
cashCollection.setMarket(chineseMarket);
}
// 转换活动名称
if (cashCollection.getActivity() != null && !cashCollection.getActivity().isEmpty()) {
String chineseActivity = translationService.findChineseSimplifiedByTranslation(
cashCollection.getActivity(), languageCode);
cashCollection.setActivity(chineseActivity);
}
// 转换商品名称
if (cashCollection.getGoodsName() != null && !cashCollection.getGoodsName().isEmpty()) {
String chineseGoodsName = translationService.findChineseSimplifiedByTranslation(
cashCollection.getGoodsName(), languageCode);
cashCollection.setGoodsName(chineseGoodsName);
}
// 转换单位
if (cashCollection.getNumUnit() != null && !cashCollection.getNumUnit().isEmpty()) {
String chineseNumUnit = translationService.findChineseSimplifiedByTranslation(
cashCollection.getNumUnit(), languageCode);
cashCollection.setNumUnit(chineseNumUnit);
}
// 转换支付方式
if (cashCollection.getPayType() != null && !cashCollection.getPayType().isEmpty()) {
String chinesePayType = translationService.findChineseSimplifiedByTranslation(
cashCollection.getPayType(), languageCode);
cashCollection.setPayType(chinesePayType);
}
// 转换到账地区
if (cashCollection.getReceivedMarket() != null && !cashCollection.getReceivedMarket().isEmpty()) {
String chineseReceivedMarket = translationService.findChineseSimplifiedByTranslation(
cashCollection.getReceivedMarket(), languageCode);
cashCollection.setReceivedMarket(chineseReceivedMarket);
}
// 转换币种
if (cashCollection.getPaymentCurrency() != null && !cashCollection.getPaymentCurrency().isEmpty()) {
String chineseCurrency = translationService.findChineseSimplifiedByTranslation(
cashCollection.getPaymentCurrency(), languageCode);
cashCollection.setPaymentCurrency(chineseCurrency);
}
// 转换币种
if (cashCollection.getReceivedCurrency() != null && !cashCollection.getReceivedCurrency().isEmpty()) {
String chineseCurrency = translationService.findChineseSimplifiedByTranslation(
cashCollection.getReceivedCurrency(), languageCode);
cashCollection.setReceivedCurrency(chineseCurrency);
}
// 转换备注
if (cashCollection.getRemark() != null && !cashCollection.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
cashCollection.getRemark(), languageCode);
cashCollection.setRemark(chineseRemark);
}
// 转换拒绝理由
if (cashCollection.getRejectReason() != null && !cashCollection.getRejectReason().isEmpty()) {
String chineseRejectReason = translationService.findChineseSimplifiedByTranslation(
cashCollection.getRejectReason(), languageCode);
cashCollection.setRejectReason(chineseRejectReason);
}
}
}
}
Loading…
Cancel
Save