diff --git a/src/main/java/com/ai/da/common/config/exception/BusinessException.java b/src/main/java/com/ai/da/common/config/exception/BusinessException.java index c2b2488a..35774162 100644 --- a/src/main/java/com/ai/da/common/config/exception/BusinessException.java +++ b/src/main/java/com/ai/da/common/config/exception/BusinessException.java @@ -2,6 +2,7 @@ package com.ai.da.common.config.exception; import com.ai.da.common.context.UserContext; import com.ai.da.common.response.ResultEnum; +import com.ai.da.model.enums.Language; import com.ai.da.model.vo.AuthPrincipalVo; import lombok.Data; @@ -49,7 +50,7 @@ public class BusinessException extends RuntimeException { if (Objects.isNull(userInfo)) { return new Locale("en"); } - return new Locale(userInfo.getLanguage()); + return new Locale(Language.valueOf(userInfo.getLanguage()).getValue()); } private static String getMessageFromResource(String msg, Locale userLocale) { diff --git a/src/main/java/com/ai/da/controller/AccountController.java b/src/main/java/com/ai/da/controller/AccountController.java index 3be6f691..07563ffe 100644 --- a/src/main/java/com/ai/da/controller/AccountController.java +++ b/src/main/java/com/ai/da/controller/AccountController.java @@ -70,8 +70,14 @@ public class AccountController { @ApiOperation(value = "获取当前用户语言") @PostMapping("/getUserLanguage") - public Response getUserLanguage() { + public Response getUserLanguage() { return Response.success(accountService.getUserLanguage()); } + @ApiOperation(value = "获取当前用户语言") + @PostMapping("/changeUserLanguage") + public Response changeUserLanguage(String language) { + return Response.success(accountService.changeUserLanguage(language)); + } + } diff --git a/src/main/java/com/ai/da/service/AccountService.java b/src/main/java/com/ai/da/service/AccountService.java index e522617f..693ce085 100644 --- a/src/main/java/com/ai/da/service/AccountService.java +++ b/src/main/java/com/ai/da/service/AccountService.java @@ -91,5 +91,7 @@ public interface AccountService extends IService { */ Boolean editUser(AccountEditDTO accountEditDTO); - String getUserLanguage(); + Language getUserLanguage(); + + String changeUserLanguage(String language); } diff --git a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java index 1478ca14..27ef3440 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -404,9 +404,18 @@ public class AccountServiceImpl extends ServiceImpl impl } @Override - public String getUserLanguage() { + public Language getUserLanguage() { AuthPrincipalVo userInfo = UserContext.getUserHolder(); -// Language language = Language.valueOf(userInfo.getLanguage()); - return userInfo.getLanguage(); + return Language.valueOf(userInfo.getLanguage()); + } + + @Override + public String changeUserLanguage(String language) { + AuthPrincipalVo userInfo = UserContext.getUserHolder(); + Account account = accountMapper.selectById(userInfo.getId()); + account.setLanguage(language); + accountMapper.updateById(account); + String accountToken = createAccountToken(account); + return accountToken; } }