Files
web_hgdjb_server/web/service/srv_acc/acc.go
T
2026-11-07 10:47:32 +08:00

61 lines
1.4 KiB
Go

package srv_acc
import (
"context"
"videoweb/pub/common/srvdef"
"videoweb/pub/models/mwacc"
"videoweb/pub/models/oplog"
"go.mongodb.org/mongo-driver/bson"
)
func GetOpLogs(ctx context.Context, logSearch *OpLogSearch) (
int64, OpLogInfoList, *srvdef.SrvErr) {
//log.Info("GetOpLogs Test 1")
filter, findOption := constructFilterAndOpts(logSearch)
total, serr := oplog.CountOpLogs(ctx, filter)
if serr != nil {
return 0, nil, serr
}
list := make(OpLogInfoList, 0)
if total == 0 {
return 0, list, nil
}
//log.Info("GetOpLogs Test 2", log.Any("filter", filter), log.Any("findOption", findOption))
opLogs, serr := oplog.FindManyOpLogs(ctx, filter, findOption)
if serr != nil {
return 0, nil, serr
}
//log.Info("GetOpLogs Test 3")
actIds := make([]int64, 0)
for _, v := range opLogs {
actIds = append(actIds, v.ActId)
}
accFilter := bson.M{mwacc.FN.MwAcc.Id: bson.M{"$in": actIds}}
accs, serr := mwacc.FindManyAccByFilter(ctx, accFilter)
if serr != nil {
return 0, nil, serr
}
//log.Info("GetOpLogs Test 4")
for _, opLog := range opLogs {
olInfo := &OpLogInfo{
Path: opLog.Path,
ActId: opLog.ActId,
Action: opLog.Action,
Param: opLog.RawData,
CreatedAt: opLog.CreatedAt,
}
for _, acc := range accs {
if acc.Id == olInfo.ActId {
olInfo.ActName = acc.UserName
break
}
}
list = append(list, olInfo)
}
//log.Info("GetOpLogs Test 5")
return total, list, nil
}