|
|
|
@ -5,6 +5,7 @@ import com.example.demo.Util.LanguageTranslationUtil; |
|
|
|
import com.example.demo.config.interfac.Log; |
|
|
|
import com.example.demo.domain.entity.Admin; |
|
|
|
import com.example.demo.service.coin.RefundService; |
|
|
|
import com.example.demo.service.coin.TranslationService; |
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
import jakarta.servlet.http.HttpServletRequest; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
@ -38,6 +39,10 @@ public class RefundController { |
|
|
|
@Autowired |
|
|
|
private RefundService refundService; |
|
|
|
|
|
|
|
// 注入 TranslationService |
|
|
|
@Autowired |
|
|
|
private TranslationService translationService; |
|
|
|
|
|
|
|
// 注入多语言转换工具类 |
|
|
|
@Autowired |
|
|
|
private LanguageTranslationUtil languageTranslationUtil; |
|
|
|
@ -47,6 +52,14 @@ public class RefundController { |
|
|
|
@PostMapping("/selectAll") |
|
|
|
public Result selectAll(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) { |
|
|
|
try { |
|
|
|
// 解析语言代码 |
|
|
|
String languageCode = parseLanguageCode(lang); |
|
|
|
|
|
|
|
// 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 |
|
|
|
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { |
|
|
|
convertRefundTranslatedFieldsToChinese(page.getRefundUser(), languageCode); |
|
|
|
} |
|
|
|
|
|
|
|
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|
|
|
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang); |
|
|
|
return Result.error(errorMsg); |
|
|
|
@ -66,7 +79,15 @@ public class RefundController { |
|
|
|
String errorMsg = languageTranslationUtil.translate("角色为空", lang); |
|
|
|
return Result.error(errorMsg); |
|
|
|
} |
|
|
|
return Result.success(refundService.selectAll(page.getPageNum(), page.getPageSize(), page.getRefundUser())); |
|
|
|
Result result = Result.success(refundService.selectAll(page.getPageNum(), page.getPageSize(), page.getRefundUser())); |
|
|
|
|
|
|
|
// 对返回结果进行多语言转换 |
|
|
|
if (result.getCode() == 200 && result.getData() instanceof PageInfo) { |
|
|
|
PageInfo<RefundUser> pageInfo = (PageInfo<RefundUser>) result.getData(); |
|
|
|
translateRefundUsers(pageInfo, lang); |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
String errorMsg = languageTranslationUtil.translate("请检查筛选数据的格式", lang); |
|
|
|
@ -80,6 +101,14 @@ public class RefundController { |
|
|
|
@PostMapping("/selectBy") |
|
|
|
public Result selectBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) { |
|
|
|
try { |
|
|
|
// 解析语言代码 |
|
|
|
String languageCode = parseLanguageCode(lang); |
|
|
|
|
|
|
|
// 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 |
|
|
|
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { |
|
|
|
convertRefundTranslatedFieldsToChinese(page.getRefundUser(), languageCode); |
|
|
|
} |
|
|
|
|
|
|
|
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|
|
|
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang); |
|
|
|
return Result.error(errorMsg); |
|
|
|
@ -116,6 +145,14 @@ public class RefundController { |
|
|
|
@PostMapping("/statsGold") |
|
|
|
public Result statsGold(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) { |
|
|
|
try { |
|
|
|
// 解析语言代码 |
|
|
|
String languageCode = parseLanguageCode(lang); |
|
|
|
|
|
|
|
// 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 |
|
|
|
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { |
|
|
|
convertRefundTranslatedFieldsToChinese(refundUser, languageCode); |
|
|
|
} |
|
|
|
|
|
|
|
//解token权限 |
|
|
|
if(refundUser.getMarkets()==null||refundUser.getMarkets().isEmpty()) { |
|
|
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); |
|
|
|
@ -136,7 +173,16 @@ public class RefundController { |
|
|
|
@Log("获取退款类型") |
|
|
|
@PostMapping("/refundType") |
|
|
|
public Result getRefundType(@RequestHeader(defaultValue = "zh") String lang) { |
|
|
|
// 解析语言代码 |
|
|
|
String languageCode = parseLanguageCode(lang); |
|
|
|
|
|
|
|
List<String> list = refundService.getRefundType(lang); |
|
|
|
|
|
|
|
// 如果不是中文环境,先将翻译后的退款类型转换为中文简体进行处理 |
|
|
|
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { |
|
|
|
convertTranslatedRefundTypesToChinese(list, languageCode); |
|
|
|
} |
|
|
|
|
|
|
|
// 对退款类型进行多语言转换 |
|
|
|
translateRefundTypes(list, lang); |
|
|
|
return Result.success(list); |
|
|
|
@ -146,6 +192,14 @@ public class RefundController { |
|
|
|
// @Log("筛选商品") |
|
|
|
@PostMapping("/selectGoods") |
|
|
|
public Result getSelectGoods(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) { |
|
|
|
// 解析语言代码 |
|
|
|
String languageCode = parseLanguageCode(lang); |
|
|
|
|
|
|
|
// 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 |
|
|
|
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { |
|
|
|
convertRefundTranslatedFieldsToChinese(refundUser, languageCode); |
|
|
|
} |
|
|
|
|
|
|
|
List<RefundUser> list = refundService.selectGoods(refundUser, lang); |
|
|
|
return Result.success(list); |
|
|
|
} |
|
|
|
@ -155,6 +209,14 @@ public class RefundController { |
|
|
|
@PostMapping("/add") |
|
|
|
public Result add(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) { |
|
|
|
try { |
|
|
|
// 解析语言代码 |
|
|
|
String languageCode = parseLanguageCode(lang); |
|
|
|
|
|
|
|
// 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 |
|
|
|
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { |
|
|
|
convertRefundTranslatedFieldsToChinese(refundUser, languageCode); |
|
|
|
} |
|
|
|
|
|
|
|
return refundService.add(refundUser, lang); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
@ -165,6 +227,14 @@ public class RefundController { |
|
|
|
|
|
|
|
public Result select(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) { |
|
|
|
try { |
|
|
|
// 解析语言代码 |
|
|
|
String languageCode = parseLanguageCode(lang); |
|
|
|
|
|
|
|
// 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 |
|
|
|
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { |
|
|
|
convertRefundTranslatedFieldsToChinese(page.getRefundUser(), languageCode); |
|
|
|
} |
|
|
|
|
|
|
|
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|
|
|
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang); |
|
|
|
return Result.error(errorMsg); |
|
|
|
@ -173,7 +243,15 @@ public class RefundController { |
|
|
|
String errorMsg = languageTranslationUtil.translate("页大小为空!", lang); |
|
|
|
return Result.error(errorMsg); |
|
|
|
} else { |
|
|
|
return Result.success(refundService.selectBy(page.getPageNum(), page.getPageSize(), page.getRefundUser())); |
|
|
|
Result result = Result.success(refundService.selectBy(page.getPageNum(), page.getPageSize(), page.getRefundUser())); |
|
|
|
|
|
|
|
// 对返回结果进行多语言转换 |
|
|
|
if (result.getCode() == 200 && result.getData() instanceof PageInfo) { |
|
|
|
PageInfo<RefundUser> pageInfo = (PageInfo<RefundUser>) result.getData(); |
|
|
|
translateRefundUsers(pageInfo, lang); |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
@ -184,6 +262,66 @@ public class RefundController { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 解析语言代码 |
|
|
|
*/ |
|
|
|
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 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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 将翻译后的退款类型转换为中文简体 |
|
|
|
*/ |
|
|
|
private void convertTranslatedRefundTypesToChinese(List<String> refundTypes, String languageCode) { |
|
|
|
if (refundTypes != null && !refundTypes.isEmpty()) { |
|
|
|
for (int i = 0; i < refundTypes.size(); i++) { |
|
|
|
String chineseType = translationService.findChineseSimplifiedByTranslation( |
|
|
|
refundTypes.get(i), languageCode); |
|
|
|
refundTypes.set(i, chineseType); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 转换退款用户信息的多语言字段 |
|
|
|
*/ |
|
|
|
private void translateRefundUsers(PageInfo<RefundUser> pageInfo, String lang) { |
|
|
|
|