diff --git a/src/main/java/com/example/demo/controller/coin/ExportController.java b/src/main/java/com/example/demo/controller/coin/ExportController.java index 8d55f38..1c8e7cf 100644 --- a/src/main/java/com/example/demo/controller/coin/ExportController.java +++ b/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); + } + } + } }