From dc91786fc121d9564adb5685823a2041b413fcd1 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Thu, 15 Jan 2026 15:06:19 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=9C=8815=E6=97=A5=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=99=BB=E5=BD=95=E4=BF=A1=E6=81=AF=E7=9A=84=E5=A4=9A?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/coin/AdminController.java | 65 +++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/controller/coin/AdminController.java b/src/main/java/com/example/demo/controller/coin/AdminController.java index 1a9f9a0..c357d68 100644 --- a/src/main/java/com/example/demo/controller/coin/AdminController.java +++ b/src/main/java/com/example/demo/controller/coin/AdminController.java @@ -50,9 +50,18 @@ public class AdminController { public Result login(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang) { try { + // 解析语言代码 + String languageCode = parseLanguageCode(lang); + + // 如果不是中文环境,将输入的翻译字段转换为中文简体 + if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { + convertLoginFieldsToChinese(admin, languageCode); + } + admin = adminService.login(admin); String token = JWTUtil.createJWT(admin); -// System.out.println(token); + // 对返回的管理员信息进行多语言转换 + translateAdminInfoForLogin(admin, lang); admin.setPassword(null); return Result.success(token, admin); @@ -133,6 +142,37 @@ public class AdminController { } /** + * 为登录接口翻译管理员信息 + */ + private void translateAdminInfoForLogin(Admin admin, String lang) { + if (admin != null) { + // 翻译市场权限信息(如果markets是逗号分隔的多个市场) + if (admin.getMarkets() != null && !admin.getMarkets().isEmpty()) { + String[] markets = admin.getMarkets().split(","); + StringBuilder translatedMarkets = new StringBuilder(); + for (int i = 0; i < markets.length; i++) { + if (i > 0) { + translatedMarkets.append(","); + } + String translatedMarket = languageTranslationUtil.translate(markets[i].trim(), lang); + translatedMarkets.append(translatedMarket); + } + admin.setMarkets(translatedMarkets.toString()); + } + // 翻译职位信息 + if (admin.getPostiton() != null && !admin.getPostiton().isEmpty()) { + String translatedPosition = languageTranslationUtil.translate(admin.getPostiton(), lang); + admin.setPostiton(translatedPosition); + } + // 翻译备注 + if (admin.getRemark() != null && !admin.getRemark().isEmpty()) { + String translatedRemark = languageTranslationUtil.translate(admin.getRemark(), lang); + admin.setRemark(translatedRemark); + } + } + } + + /** * 转换管理员信息的多语言字段 */ private void translateAdminInfo(Admin admin, String lang) { @@ -182,6 +222,29 @@ public class AdminController { } /** + * 将登录时的翻译字段转换为中文简体 + */ + private void convertLoginFieldsToChinese(Admin admin, String languageCode) { + if (admin != null) { + // 登录时通常不需要转换账号字段,因为账号是固定标识 + + // 如果需要对职位信息进行反查(如果登录时涉及到职位查询) + if (admin.getPostiton() != null && !admin.getPostiton().isEmpty()) { + String chinesePosition = translationService.findChineseSimplifiedByTranslation( + admin.getPostiton(), languageCode); + admin.setPostiton(chinesePosition); + } + + // 如果需要对备注信息进行反查 + if (admin.getRemark() != null && !admin.getRemark().isEmpty()) { + String chineseRemark = translationService.findChineseSimplifiedByTranslation( + admin.getRemark(), languageCode); + admin.setRemark(chineseRemark); + } + } + } + + /** * 将翻译后的字段转换为中文简体 */ private void convertTranslatedFieldsToChinese(Admin admin, String languageCode) {