73 lines
1.6 KiB
Go
73 lines
1.6 KiB
Go
|
|
package sysstatuscode
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
"go-admin/app/admin/models/sysmodel"
|
||
|
|
"go-admin/app/admin/service/common"
|
||
|
|
"go-admin/app/admin/service/sysdb"
|
||
|
|
"go-admin/pkg/utility"
|
||
|
|
|
||
|
|
"github.com/gin-gonic/gin"
|
||
|
|
"gorm.io/gorm"
|
||
|
|
)
|
||
|
|
|
||
|
|
var (
|
||
|
|
statusCodeMap = make(map[int]sysmodel.StatusCode)
|
||
|
|
)
|
||
|
|
|
||
|
|
// InitStatusCodeLanguage 初始化状态码语言包
|
||
|
|
func InitStatusCodeLanguage(orm *gorm.DB) {
|
||
|
|
statusCodeList := sysdb.GetAllStatusCode(orm)
|
||
|
|
for _, code := range statusCodeList {
|
||
|
|
statusCodeMap[code.Code] = code
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// GetStatusCodeLanguage 获取状态码多语言
|
||
|
|
func GetStatusCodeLanguage(code int, language string) string {
|
||
|
|
c, ok := statusCodeMap[code]
|
||
|
|
if !ok {
|
||
|
|
return utility.IntToString(code)
|
||
|
|
}
|
||
|
|
switch language {
|
||
|
|
case "en":
|
||
|
|
return c.En
|
||
|
|
case "zh-CN":
|
||
|
|
return c.ZhCN
|
||
|
|
case "zh-HK":
|
||
|
|
return c.ZhHK
|
||
|
|
default:
|
||
|
|
return c.Explain
|
||
|
|
}
|
||
|
|
|
||
|
|
//if strings.EqualFold("en", language) {
|
||
|
|
// return c.En
|
||
|
|
//} else if strings.EqualFold("zh-CN", language) {
|
||
|
|
// return c.ZhCN
|
||
|
|
//} else if strings.EqualFold("zh-HK", language) {
|
||
|
|
// return c.ZhHK
|
||
|
|
//} else {
|
||
|
|
// //默认返回
|
||
|
|
// return c.Explain
|
||
|
|
//}
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetStatusCodeDescription(c *gin.Context, code int) string {
|
||
|
|
lang := common.GetLanguage(c)
|
||
|
|
|
||
|
|
return GetStatusCodeLanguage(code, lang)
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetStatusCodeDiscreptionArgs(c *gin.Context, code int, langArg interface{}) string {
|
||
|
|
lang := common.GetLanguage(c)
|
||
|
|
description := GetStatusCodeLanguage(code, lang)
|
||
|
|
|
||
|
|
if _, ok := langArg.(int); ok {
|
||
|
|
description = fmt.Sprintf(description, langArg)
|
||
|
|
} else if _, ok := langArg.(int64); ok {
|
||
|
|
description = fmt.Sprintf(description, langArg)
|
||
|
|
}
|
||
|
|
|
||
|
|
return description
|
||
|
|
}
|