92 lines
2.8 KiB
Go
92 lines
2.8 KiB
Go
package services
|
|
|
|
import (
|
|
"bbs-go/internal/models"
|
|
"bbs-go/internal/pkg/common"
|
|
"bbs-go/internal/repositories"
|
|
"log/slog"
|
|
"net/http"
|
|
|
|
"github.com/mlogclub/simple/common/dates"
|
|
"github.com/mlogclub/simple/sqls"
|
|
"github.com/mlogclub/simple/web/params"
|
|
)
|
|
|
|
var OperateLogService = newOperateLogService()
|
|
|
|
func newOperateLogService() *operateLogService {
|
|
return &operateLogService{}
|
|
}
|
|
|
|
type operateLogService struct {
|
|
}
|
|
|
|
func (s *operateLogService) Get(id int64) *models.OperateLog {
|
|
return repositories.OperateLogRepository.Get(sqls.DB(), id)
|
|
}
|
|
|
|
func (s *operateLogService) Take(where ...interface{}) *models.OperateLog {
|
|
return repositories.OperateLogRepository.Take(sqls.DB(), where...)
|
|
}
|
|
|
|
func (s *operateLogService) Find(cnd *sqls.Cnd) []models.OperateLog {
|
|
return repositories.OperateLogRepository.Find(sqls.DB(), cnd)
|
|
}
|
|
|
|
func (s *operateLogService) FindOne(cnd *sqls.Cnd) *models.OperateLog {
|
|
return repositories.OperateLogRepository.FindOne(sqls.DB(), cnd)
|
|
}
|
|
|
|
func (s *operateLogService) FindPageByParams(params *params.QueryParams) (list []models.OperateLog, paging *sqls.Paging) {
|
|
return repositories.OperateLogRepository.FindPageByParams(sqls.DB(), params)
|
|
}
|
|
|
|
func (s *operateLogService) FindPageByCnd(cnd *sqls.Cnd) (list []models.OperateLog, paging *sqls.Paging) {
|
|
return repositories.OperateLogRepository.FindPageByCnd(sqls.DB(), cnd)
|
|
}
|
|
|
|
func (s *operateLogService) Count(cnd *sqls.Cnd) int64 {
|
|
return repositories.OperateLogRepository.Count(sqls.DB(), cnd)
|
|
}
|
|
|
|
func (s *operateLogService) Create(t *models.OperateLog) error {
|
|
return repositories.OperateLogRepository.Create(sqls.DB(), t)
|
|
}
|
|
|
|
func (s *operateLogService) Update(t *models.OperateLog) error {
|
|
return repositories.OperateLogRepository.Update(sqls.DB(), t)
|
|
}
|
|
|
|
func (s *operateLogService) Updates(id int64, columns map[string]interface{}) error {
|
|
return repositories.OperateLogRepository.Updates(sqls.DB(), id, columns)
|
|
}
|
|
|
|
func (s *operateLogService) UpdateColumn(id int64, name string, value interface{}) error {
|
|
return repositories.OperateLogRepository.UpdateColumn(sqls.DB(), id, name, value)
|
|
}
|
|
|
|
func (s *operateLogService) Delete(id int64) {
|
|
repositories.OperateLogRepository.Delete(sqls.DB(), id)
|
|
}
|
|
|
|
func (s *operateLogService) AddOperateLog(userId int64, opType, dataType string, dataId int64,
|
|
description string, r *http.Request) {
|
|
|
|
operateLog := &models.OperateLog{
|
|
UserId: userId,
|
|
OpType: opType,
|
|
DataType: dataType,
|
|
DataId: dataId,
|
|
Description: description,
|
|
CreateTime: dates.NowTimestamp(),
|
|
}
|
|
if r != nil {
|
|
operateLog.Ip = common.GetRequestIP(r)
|
|
operateLog.UserAgent = common.GetUserAgent(r)
|
|
operateLog.Referer = r.Header.Get("Referer")
|
|
}
|
|
if err := repositories.OperateLogRepository.Create(sqls.DB(), operateLog); err != nil {
|
|
slog.Error(err.Error(), slog.Any("err", err))
|
|
}
|
|
}
|