mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 15:00:27 +08:00
日志API增加多语言代号参数
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
dbutils "github.com/TeaOSLab/EdgeAPI/internal/db/utils"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/errors"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/langs"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/iwind/TeaGo/Tea"
|
||||
"github.com/iwind/TeaGo/dbs"
|
||||
@@ -36,7 +38,7 @@ func init() {
|
||||
}
|
||||
|
||||
// CreateLog 创建管理员日志
|
||||
func (this *LogDAO) CreateLog(tx *dbs.Tx, adminType string, adminId int64, level string, description string, action string, ip string) error {
|
||||
func (this *LogDAO) CreateLog(tx *dbs.Tx, adminType string, adminId int64, level string, description string, action string, ip string, langMessageCode langs.MessageCode, langMessageArgs []any) error {
|
||||
var op = NewLogOperator()
|
||||
op.Level = level
|
||||
op.Description = utils.LimitString(description, 1000)
|
||||
@@ -53,6 +55,16 @@ func (this *LogDAO) CreateLog(tx *dbs.Tx, adminType string, adminId int64, level
|
||||
op.ProviderId = adminId
|
||||
}
|
||||
|
||||
// i18n
|
||||
op.LangMessageCode = langMessageCode
|
||||
if len(langMessageArgs) > 0 {
|
||||
langMessageArgsJSON, err := json.Marshal(langMessageArgs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
op.LangMesageArgs = langMessageArgsJSON
|
||||
}
|
||||
|
||||
op.Day = timeutil.Format("Ymd")
|
||||
op.Type = LogTypeAdmin
|
||||
err := this.Save(tx, op)
|
||||
|
||||
@@ -1,34 +1,60 @@
|
||||
package models
|
||||
|
||||
// 操作日志
|
||||
import "github.com/iwind/TeaGo/dbs"
|
||||
|
||||
const (
|
||||
LogFieldId dbs.FieldName = "id" // ID
|
||||
LogFieldLevel dbs.FieldName = "level" // 级别
|
||||
LogFieldDescription dbs.FieldName = "description" // 描述
|
||||
LogFieldCreatedAt dbs.FieldName = "createdAt" // 创建时间
|
||||
LogFieldAction dbs.FieldName = "action" // 动作
|
||||
LogFieldUserId dbs.FieldName = "userId" // 用户ID
|
||||
LogFieldAdminId dbs.FieldName = "adminId" // 管理员ID
|
||||
LogFieldProviderId dbs.FieldName = "providerId" // 供应商ID
|
||||
LogFieldIp dbs.FieldName = "ip" // IP地址
|
||||
LogFieldType dbs.FieldName = "type" // 类型:admin, user
|
||||
LogFieldDay dbs.FieldName = "day" // 日期
|
||||
LogFieldBillId dbs.FieldName = "billId" // 账单ID
|
||||
LogFieldLangMessageCode dbs.FieldName = "langMessageCode" // 多语言消息代号
|
||||
LogFieldLangMesageArgs dbs.FieldName = "langMesageArgs" // 多语言参数
|
||||
LogFieldParams dbs.FieldName = "params" // 关联对象参数
|
||||
)
|
||||
|
||||
// Log 操作日志
|
||||
type Log struct {
|
||||
Id uint32 `field:"id"` // ID
|
||||
Level string `field:"level"` // 级别
|
||||
Description string `field:"description"` // 描述
|
||||
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||
Action string `field:"action"` // 动作
|
||||
UserId uint32 `field:"userId"` // 用户ID
|
||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||
ProviderId uint32 `field:"providerId"` // 供应商ID
|
||||
Ip string `field:"ip"` // IP地址
|
||||
Type string `field:"type"` // 类型:admin, user
|
||||
Day string `field:"day"` // 日期
|
||||
BillId uint32 `field:"billId"` // 账单ID
|
||||
Id uint32 `field:"id"` // ID
|
||||
Level string `field:"level"` // 级别
|
||||
Description string `field:"description"` // 描述
|
||||
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||
Action string `field:"action"` // 动作
|
||||
UserId uint32 `field:"userId"` // 用户ID
|
||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||
ProviderId uint32 `field:"providerId"` // 供应商ID
|
||||
Ip string `field:"ip"` // IP地址
|
||||
Type string `field:"type"` // 类型:admin, user
|
||||
Day string `field:"day"` // 日期
|
||||
BillId uint32 `field:"billId"` // 账单ID
|
||||
LangMessageCode string `field:"langMessageCode"` // 多语言消息代号
|
||||
LangMesageArgs dbs.JSON `field:"langMesageArgs"` // 多语言参数
|
||||
Params dbs.JSON `field:"params"` // 关联对象参数
|
||||
}
|
||||
|
||||
type LogOperator struct {
|
||||
Id interface{} // ID
|
||||
Level interface{} // 级别
|
||||
Description interface{} // 描述
|
||||
CreatedAt interface{} // 创建时间
|
||||
Action interface{} // 动作
|
||||
UserId interface{} // 用户ID
|
||||
AdminId interface{} // 管理员ID
|
||||
ProviderId interface{} // 供应商ID
|
||||
Ip interface{} // IP地址
|
||||
Type interface{} // 类型:admin, user
|
||||
Day interface{} // 日期
|
||||
BillId interface{} // 账单ID
|
||||
Id any // ID
|
||||
Level any // 级别
|
||||
Description any // 描述
|
||||
CreatedAt any // 创建时间
|
||||
Action any // 动作
|
||||
UserId any // 用户ID
|
||||
AdminId any // 管理员ID
|
||||
ProviderId any // 供应商ID
|
||||
Ip any // IP地址
|
||||
Type any // 类型:admin, user
|
||||
Day any // 日期
|
||||
BillId any // 账单ID
|
||||
LangMessageCode any // 多语言消息代号
|
||||
LangMesageArgs any // 多语言参数
|
||||
Params any // 关联对象参数
|
||||
}
|
||||
|
||||
func NewLogOperator() *LogOperator {
|
||||
|
||||
@@ -2,8 +2,10 @@ package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/langs"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
)
|
||||
|
||||
@@ -22,7 +24,16 @@ func (this *LogService) CreateLog(ctx context.Context, req *pb.CreateLogRequest)
|
||||
|
||||
var tx = this.NullTx()
|
||||
|
||||
err = models.SharedLogDAO.CreateLog(tx, userType, userId, req.Level, req.Description, req.Action, req.Ip)
|
||||
// i18n
|
||||
var langMessageArgs = []any{}
|
||||
if len(req.LangMessagesArgsJSON) > 0 {
|
||||
err = json.Unmarshal(req.LangMessagesArgsJSON, &langMessageArgs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
err = models.SharedLogDAO.CreateLog(tx, userType, userId, req.Level, req.Description, req.Action, req.Ip, langs.MessageCode(req.LangMessageCode), langMessageArgs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user