add action,login log
CI / changes (push) Successful in 4s
CI / docker-bff (push) Failing after 2s
CI / docker-product (push) Failing after 2s
CI / docker-admin (push) Failing after 1s
CI / docker-user (push) Failing after 1s

This commit is contained in:
2026-08-20 17:35:04 +08:00
parent f360c268be
commit f49d155373
16 changed files with 637 additions and 27 deletions
+53 -6
View File
@@ -1,9 +1,12 @@
package utils
import (
"context"
"lone-services/pkg/logRedis"
lonelog "lone-services/rpc/lonelog/pb"
jsoniter "github.com/json-iterator/go"
"github.com/zeromicro/go-zero/core/logx"
)
const (
@@ -14,6 +17,7 @@ const (
LogActionTypeDown = 5 //下载
LogActionTypeStatus = 6 //状态
LogActionTypePassword = 7 //修改密码
LogActionTypeSort = 8 //排序
//增加、删除、修改时需要改 services.log中的返回值
@@ -44,6 +48,20 @@ const (
LogActionModuleFactory = "工厂管理"
)
type ActionLog struct {
Content string `json:"content"`
AdminId int64 `json:"admin_id"`
AdminName string `json:"admin_name"`
Type int32 `json:"type"`
ModuleName string `json:"module_name"`
Ip string `json:"ip"`
BrowserInfo string `json:"browser_info"`
BrowserName string `json:"browser_name"`
BrowserVersion string `json:"browser_version"`
Reason string `json:"reason"`
CreateTime string `json:"create_time"`
}
type ActionAdd struct {
NewContent interface{} `json:"new_content"`
OldContent interface{} `json:"old_content"`
@@ -52,15 +70,29 @@ type ActionAdd struct {
ModuleName string `json:"module_name"`
}
const LoginReasonOK = "OK"
type LoginLog struct {
AdminId int64 `json:"admin_id"`
Ip string `json:"ip"`
Name string `json:"name"`
BrowserInfo string `json:"browser_info"`
BrowserName string `json:"browser_name"`
BrowserVersion string `json:"browser_version"`
Status int32 `json:"status"`
CreateTime string `json:"create_time"`
Reason string `json:"reason"`
}
func GetActionStruct(adminInfo UserInfo, info ActionAdd) *lonelog.ActionLog {
const LoginReasonOK = "OK"
const LogActionQueueKey = "log:queue:action"
const LogLoginQueueKey = "log:queue:login"
func SetActionLog(adminInfo UserInfo, info ActionAdd) {
content := map[string]interface{}{
"old_content": info.OldContent,
"new_content": info.NewContent,
}
jsonData, _ := jsoniter.Marshal(content)
return &lonelog.ActionLog{
log := ActionLog{
Content: string(jsonData),
AdminId: adminInfo.ID,
AdminName: adminInfo.Name,
@@ -74,18 +106,25 @@ func GetActionStruct(adminInfo UserInfo, info ActionAdd) *lonelog.ActionLog {
CreateTime: Now().GoString(),
}
logJson, err := jsoniter.Marshal(log)
if err != nil {
logx.Errorf("marshal ActionLog failed: %v", err)
return
}
logRedis.LogRedisClient.LPush(context.Background(), LogActionQueueKey, string(logJson)).Result()
}
func GetLogStruct(adminInfo UserInfo, status bool, reason string) *lonelog.LoginLog {
func SetLoginLog(adminInfo UserInfo, status bool, reason string) {
st := 2
if status {
st = 1
}
return &lonelog.LoginLog{
log := lonelog.LoginLog{
AdminId: adminInfo.ID,
Ip: adminInfo.ClientIP,
Name: adminInfo.Name,
Ip: adminInfo.ClientIP,
BrowserInfo: adminInfo.UserAgent,
BrowserName: adminInfo.BrowserName,
BrowserVersion: adminInfo.BrowserVer,
@@ -93,4 +132,12 @@ func GetLogStruct(adminInfo UserInfo, status bool, reason string) *lonelog.Login
CreateTime: Now().GoString(),
Reason: reason,
}
logJson, err := jsoniter.Marshal(log)
if err != nil {
logx.Errorf("marshal ActionLog failed: %v", err)
return
}
logRedis.LogRedisClient.LPush(context.Background(), LogLoginQueueKey, string(logJson)).Result()
}