From 02dd37ffafbcb7819c584b20d8116236f8a70990 Mon Sep 17 00:00:00 2001 From: ziin Date: Fri, 3 Apr 2026 16:43:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=AA=E4=BA=BA=E9=94=AE?= =?UTF-8?q?=E7=9B=98=E5=A4=9A=E8=AF=AD=E8=A8=80=E5=85=9C=E5=BA=95=E7=AD=96?= =?UTF-8?q?=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../keyborad/service/impl/KeyboardCharacterServiceImpl.java | 3 +++ src/main/resources/mapper/KeyboardUserCharacterMapper.xml | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/yolo/keyborad/service/impl/KeyboardCharacterServiceImpl.java b/src/main/java/com/yolo/keyborad/service/impl/KeyboardCharacterServiceImpl.java index 2cfa703..6fe8b66 100644 --- a/src/main/java/com/yolo/keyborad/service/impl/KeyboardCharacterServiceImpl.java +++ b/src/main/java/com/yolo/keyborad/service/impl/KeyboardCharacterServiceImpl.java @@ -159,6 +159,9 @@ public class KeyboardCharacterServiceImpl extends ServiceImpl selectListByUserId(String acceptLanguage) { long loginId = StpUtil.getLoginIdAsLong(); String locale = RequestLocaleUtils.resolveLanguage(acceptLanguage); + if (!StringUtils.hasText(locale)) { + locale = DEFAULT_FALLBACK_LOCALE; + } return keyboardUserCharacterMapper.selectByUserId(loginId, locale); } diff --git a/src/main/resources/mapper/KeyboardUserCharacterMapper.xml b/src/main/resources/mapper/KeyboardUserCharacterMapper.xml index dd273dc..69eb72d 100644 --- a/src/main/resources/mapper/KeyboardUserCharacterMapper.xml +++ b/src/main/resources/mapper/KeyboardUserCharacterMapper.xml @@ -9,7 +9,7 @@ SELECT kuc.id, kuc.character_id, - kci.character_name, + COALESCE(kci.character_name, kci_en.character_name) AS character_name, kuc.emoji FROM keyboard_user_character kuc JOIN keyboard_user_sort kus @@ -17,6 +17,9 @@ LEFT JOIN keyboard_character_i18n kci ON kuc.character_id = kci.character_id AND kci."locale" = #{locale} + LEFT JOIN keyboard_character_i18n kci_en + ON kuc.character_id = kci_en.character_id + AND kci_en."locale" = 'en' WHERE kuc.user_id = #{loginId} AND kuc.deleted = FALSE ORDER BY array_position(kus.user_characteu_id_sort, kuc.id) NULLS LAST;