Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

40 lines
1.3 KiB
Go

package operationlogser
import (
"91porn-server/common/stderr"
"91porn-server/models/v/operationlogmod"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
)
func GetOperationLogList(req GetOperationLogListReq) (*GetOperationLogListResp, stderr.Code) {
data := new(GetOperationLogListResp)
filter := bson.M{}
if req.UserID != nil && *req.UserID > 0 {
filter["userID"] = *req.UserID
}
if req.CreatedUser != nil && len(*req.CreatedUser) > 0 {
filter["createdUser"] = *req.CreatedUser
}
if req.Content != nil && len(*req.Content) > 0 {
filter["afterContent"] = *req.Content
}
if req.Start != nil && !req.Start.IsZero() && req.End != nil && !req.End.IsZero() {
filter["createdAt"] = bson.M{"$gte": req.Start, "$lt": req.End}
}
if req.OperationType != nil && *req.OperationType > 0 {
filter["operationType"] = *req.OperationType
}
count := operationlogmod.Count(filter)
data.Total = count
opts := (&options.FindOptions{}).
SetSort(bson.D{{Key: "createdAt", Value: -1}}).SetLimit(int64(req.PageSize)).SetSkip(int64((req.PageNumber - 1) * req.PageSize))
operationlogList, serr := operationlogmod.FindManyOperationLog(filter, opts)
if serr != nil {
return data, stderr.ErrDbQueryError
}
data.List = operationlogList
return data, stderr.Success
}