Files

59 lines
1.3 KiB
Go
Raw Normal View History

2021-09-28 11:47:19 +08:00
package controller
import (
2022-01-05 11:29:27 +08:00
"SciencesServer/app/api/admin/model"
2022-01-06 22:02:09 +08:00
"SciencesServer/app/basic/controller"
2021-09-28 11:47:19 +08:00
model2 "SciencesServer/app/common/model"
2022-01-06 22:02:09 +08:00
"SciencesServer/app/session"
2021-09-28 11:47:19 +08:00
"SciencesServer/tools/ip"
)
2022-01-06 22:02:09 +08:00
type Log struct{ *session.Admin }
2021-09-28 11:47:19 +08:00
2022-01-06 22:02:09 +08:00
type LogHandle func(session *session.Admin) *Log
2021-09-28 11:47:19 +08:00
type (
// LogForLogin 登录日志
LogForLogin struct {
*model.SysUserLoginLogInfo
IPAddress string `json:"ip_address"`
}
)
// Login 登录日志
2022-01-06 22:02:09 +08:00
func (c *Log) Login(name string, page, pageSize int) (*controller.ReturnPages, error) {
2021-09-28 11:47:19 +08:00
mSysUserLoginLogs := model.NewSysUserLoginLog()
where := make([]*model2.ModelWhere, 0)
if c.TenantID > 0 {
where = append(where, model2.NewWhere("l.tenant_id", c.TenantID))
}
if name != "" {
where = append(where, model2.NewWhereLike("u.name", name))
}
var count int64
out, err := mSysUserLoginLogs.Logs(page, pageSize, &count, where...)
if err != nil {
return nil, err
}
list := make([]*LogForLogin, 0)
for _, v := range out {
ipAddress, _ := ip.Find(v.IP)
list = append(list, &LogForLogin{
SysUserLoginLogInfo: v, IPAddress: string(ipAddress),
})
}
2022-01-06 22:02:09 +08:00
return &controller.ReturnPages{Data: list, Count: count}, nil
2021-09-28 11:47:19 +08:00
}
func NewLog() LogHandle {
2022-01-06 22:02:09 +08:00
return func(session *session.Admin) *Log {
return &Log{Admin: session}
2021-09-28 11:47:19 +08:00
}
}