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
							 | 
						||
| 
								 | 
							
								}
							 |