From d71674393fde977f07a0182472b2c1765180b86d Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Tue, 31 Oct 2023 15:28:37 +0800 Subject: [PATCH] =?UTF-8?q?TASK:=20=E8=AF=AD=E8=A8=80;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/exception/BusinessException.java | 3 ++- .../com/ai/da/controller/AccountController.java | 8 +++++++- .../java/com/ai/da/service/AccountService.java | 4 +++- .../ai/da/service/impl/AccountServiceImpl.java | 15 ++++++++++++--- 4 files changed, 24 insertions(+), 6 deletions(-) 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; } }