|
|
@ -50,9 +50,18 @@ public class AdminController { |
|
|
public Result login(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang) { |
|
|
public Result login(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang) { |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
|
|
|
// 解析语言代码 |
|
|
|
|
|
String languageCode = parseLanguageCode(lang); |
|
|
|
|
|
|
|
|
|
|
|
// 如果不是中文环境,将输入的翻译字段转换为中文简体 |
|
|
|
|
|
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { |
|
|
|
|
|
convertLoginFieldsToChinese(admin, languageCode); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
admin = adminService.login(admin); |
|
|
admin = adminService.login(admin); |
|
|
String token = JWTUtil.createJWT(admin); |
|
|
String token = JWTUtil.createJWT(admin); |
|
|
// System.out.println(token); |
|
|
|
|
|
|
|
|
// 对返回的管理员信息进行多语言转换 |
|
|
|
|
|
translateAdminInfoForLogin(admin, lang); |
|
|
admin.setPassword(null); |
|
|
admin.setPassword(null); |
|
|
|
|
|
|
|
|
return Result.success(token, admin); |
|
|
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) { |
|
|
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) { |
|
|
private void convertTranslatedFieldsToChinese(Admin admin, String languageCode) { |
|
|
|