Cron_Admin/app/services/cron_report_logs_service.go

35 lines
983 B
Go

package services
import (
"cron_admin/app/http/entities/backend"
"cron_admin/app/models/cronreportlogsmodel"
"xorm.io/builder"
)
func CronReportLogsList(request *backend.CronReportLogsListRequest, page int, limit int) (count int64, listInfo []cronreportlogsmodel.CronReportLogs, err error) {
conn := builder.NewCond()
if request.FuncLogId != 0 {
conn = conn.And(builder.Eq{"func_log_id": request.FuncLogId})
}
if request.CmdId != 0 {
conn = conn.And(builder.Eq{"cmd_id": request.CmdId})
}
if request.Status != 0 {
conn = conn.And(builder.Eq{"status": request.Status})
}
// 使用FIND_IN_SET 函数
if request.UserId != 0 {
conn = conn.And(builder.Expr("FIND_IN_SET(?, user_id)", request.UserId))
}
session := cronreportlogsmodel.GetInstance().GetDb().Where(conn)
if page != 0 && limit != 0 {
session = session.OrderBy("create_time desc").Limit(limit, (page-1)*limit)
}
count, err = session.FindAndCount(&listInfo)
if err != nil {
return
}
return
}