feat: 多语言缓存管理

This commit is contained in:
TsMask
2025-02-24 16:44:11 +08:00
parent d41375d381
commit 3380b6bfed
3 changed files with 31 additions and 5 deletions

View File

@@ -688,5 +688,6 @@ INSERT INTO `sys_i18n` VALUES (665, '0', 'system', 1699348237468, 'system', 1699
INSERT INTO `sys_i18n` VALUES (666, '0', 'system', 1699348237468, 'system', 1699348237468, 'menu.config.neOverview', '网元概览', 'NE Overview');
INSERT INTO `sys_i18n` VALUES (667, '0', 'system', 1699348237468, 'system', 1699348237468, 'menu.config.neOverviewRemark', '显示所有网元状态配置和license等概览信息', 'Displays overview information such as status, configuration and license of all network elements');
INSERT INTO `sys_i18n` VALUES (668, '0', 'system', 1699348237468, 'system', 1699348237468, 'job.exportSGWCCDR', '定期从漫游数据话单表导出文件至指定目录', 'Export regularly from Roaming Data CDR table');
INSERT INTO `sys_i18n` VALUES (669, '0', 'system', 1699348237468, 'system', 1699348237468, 'cache.name.i18n', '国际化语言管理', 'Internationalized Language Management');
-- Dump completed on 2025-02-14 15:26:56

View File

@@ -16,7 +16,7 @@ const (
CACHE_RATE_LIMIT = "rate_limit"
// CACHE_PWD_ERR_COUNT 登录账户密码错误次数
CACHE_PWD_ERR_COUNT = "pwd_err_count"
// CACHE_I18N 多语言
// CACHE_I18N 国际化语言管理
CACHE_I18N = "i18n"
// CACHE_NE_INFO 网元信息管理
CACHE_NE_INFO = "ne_info"

View File

@@ -1,6 +1,7 @@
package controller
import (
"encoding/json"
"fmt"
"be.ems/src/framework/constants"
@@ -54,6 +55,7 @@ func (s SysCacheController) Names(c *gin.Context) {
model.NewNames(i18n.TKey(language, "cache.name.repeat_submit"), constants.CACHE_REPEAT_SUBMIT),
model.NewNames(i18n.TKey(language, "cache.name.rate_limit"), constants.CACHE_RATE_LIMIT),
model.NewNames(i18n.TKey(language, "cache.name.pwd_err_cnt"), constants.CACHE_PWD_ERR_COUNT),
model.NewNames(i18n.TKey(language, "cache.name.i18n"), constants.CACHE_I18N),
model.NewNames(i18n.TKey(language, "cache.name.ne_info"), constants.CACHE_NE_INFO),
model.NewNames(i18n.TKey(language, "cache.name.ne_data"), constants.CACHE_NE_DATA),
}
@@ -96,11 +98,33 @@ func (s SysCacheController) Value(c *gin.Context) {
return
}
cacheValue, err := redis.Get("", query.CacheName+":"+query.CacheKey)
key := query.CacheName + ":" + query.CacheKey
var cacheValue string
var err error
if constants.CACHE_I18N == query.CacheName {
// i18n 多语言的hash对象
m, err := redis.GetHashBatch("", []string{key})
if err != nil {
c.JSON(200, resp.ErrMsg(err.Error()))
return
}
b, err := json.Marshal(m[key])
if err != nil {
c.JSON(200, resp.ErrMsg(err.Error()))
return
}
cacheValue = string(b)
} else {
// 其他的字符串对象
cacheValue, err = redis.Get("", query.CacheName+":"+query.CacheKey)
if err != nil {
c.JSON(200, resp.ErrMsg(err.Error()))
return
}
}
sysCache := model.NewValue(query.CacheName, query.CacheKey, cacheValue)
c.JSON(200, resp.OkData(sysCache))
}
@@ -116,6 +140,7 @@ func (s SysCacheController) CleanNames(c *gin.Context) {
model.NewNames(i18n.TKey(language, "cache.name.repeat_submit"), constants.CACHE_REPEAT_SUBMIT),
model.NewNames(i18n.TKey(language, "cache.name.rate_limit"), constants.CACHE_RATE_LIMIT),
model.NewNames(i18n.TKey(language, "cache.name.pwd_err_cnt"), constants.CACHE_PWD_ERR_COUNT),
model.NewNames(i18n.TKey(language, "cache.name.i18n"), constants.CACHE_I18N),
model.NewNames(i18n.TKey(language, "cache.name.ne_info"), constants.CACHE_NE_INFO),
model.NewNames(i18n.TKey(language, "cache.name.ne_data"), constants.CACHE_NE_DATA),
}