mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 23:20:26 +08:00
日志API增加多语言代号参数
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
dbutils "github.com/TeaOSLab/EdgeAPI/internal/db/utils"
|
dbutils "github.com/TeaOSLab/EdgeAPI/internal/db/utils"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/errors"
|
"github.com/TeaOSLab/EdgeAPI/internal/errors"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/langs"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"github.com/iwind/TeaGo/Tea"
|
"github.com/iwind/TeaGo/Tea"
|
||||||
"github.com/iwind/TeaGo/dbs"
|
"github.com/iwind/TeaGo/dbs"
|
||||||
@@ -36,7 +38,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CreateLog 创建管理员日志
|
// 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()
|
var op = NewLogOperator()
|
||||||
op.Level = level
|
op.Level = level
|
||||||
op.Description = utils.LimitString(description, 1000)
|
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
|
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.Day = timeutil.Format("Ymd")
|
||||||
op.Type = LogTypeAdmin
|
op.Type = LogTypeAdmin
|
||||||
err := this.Save(tx, op)
|
err := this.Save(tx, op)
|
||||||
|
|||||||
@@ -1,34 +1,60 @@
|
|||||||
package models
|
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 {
|
type Log struct {
|
||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
Level string `field:"level"` // 级别
|
Level string `field:"level"` // 级别
|
||||||
Description string `field:"description"` // 描述
|
Description string `field:"description"` // 描述
|
||||||
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
Action string `field:"action"` // 动作
|
Action string `field:"action"` // 动作
|
||||||
UserId uint32 `field:"userId"` // 用户ID
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
ProviderId uint32 `field:"providerId"` // 供应商ID
|
ProviderId uint32 `field:"providerId"` // 供应商ID
|
||||||
Ip string `field:"ip"` // IP地址
|
Ip string `field:"ip"` // IP地址
|
||||||
Type string `field:"type"` // 类型:admin, user
|
Type string `field:"type"` // 类型:admin, user
|
||||||
Day string `field:"day"` // 日期
|
Day string `field:"day"` // 日期
|
||||||
BillId uint32 `field:"billId"` // 账单ID
|
BillId uint32 `field:"billId"` // 账单ID
|
||||||
|
LangMessageCode string `field:"langMessageCode"` // 多语言消息代号
|
||||||
|
LangMesageArgs dbs.JSON `field:"langMesageArgs"` // 多语言参数
|
||||||
|
Params dbs.JSON `field:"params"` // 关联对象参数
|
||||||
}
|
}
|
||||||
|
|
||||||
type LogOperator struct {
|
type LogOperator struct {
|
||||||
Id interface{} // ID
|
Id any // ID
|
||||||
Level interface{} // 级别
|
Level any // 级别
|
||||||
Description interface{} // 描述
|
Description any // 描述
|
||||||
CreatedAt interface{} // 创建时间
|
CreatedAt any // 创建时间
|
||||||
Action interface{} // 动作
|
Action any // 动作
|
||||||
UserId interface{} // 用户ID
|
UserId any // 用户ID
|
||||||
AdminId interface{} // 管理员ID
|
AdminId any // 管理员ID
|
||||||
ProviderId interface{} // 供应商ID
|
ProviderId any // 供应商ID
|
||||||
Ip interface{} // IP地址
|
Ip any // IP地址
|
||||||
Type interface{} // 类型:admin, user
|
Type any // 类型:admin, user
|
||||||
Day interface{} // 日期
|
Day any // 日期
|
||||||
BillId interface{} // 账单ID
|
BillId any // 账单ID
|
||||||
|
LangMessageCode any // 多语言消息代号
|
||||||
|
LangMesageArgs any // 多语言参数
|
||||||
|
Params any // 关联对象参数
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLogOperator() *LogOperator {
|
func NewLogOperator() *LogOperator {
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package services
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/langs"
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
"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()
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user