| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package levelMonitor
- import (
- "errors"
- "go.uber.org/zap"
- "gorm.io/gorm"
- "log-server/global"
- "log-server/model/common/request"
- "log-server/model/levelMonitor"
- levelRequest "log-server/model/levelMonitor/request"
- "time"
- )
- type ImageRecordService struct {
- }
- //创建图片记录
- func (s *ImageRecordService) CreateImageRecord (record levelMonitor.ImageRecord) (err error) {
- //获取今日日期
- date := time.Now().Format("2006-01-02")
- var entity levelMonitor.ImageRecord
- //创建日期赋值
- record.CreateDate = date
- record.Status = 2
- //查找数据库是否存在此账号此游戏今日记录
- err = global.GVA_DB.Model(&levelMonitor.ImageRecord{}).Where("task_id = ? and account = ? and create_date = ?", record.TaskId, record.Account, date).First(&entity).Error
- if !errors.Is(err , gorm.ErrRecordNotFound) {
- return errors.New("此记录已存在,请勿重复添加")
- }
- return global.GVA_DB.Model(&levelMonitor.ImageRecord{}).Omit("create_time", "update_time").Create(&record).Error
- }
- //删除三日前的图片记录
- func (s *ImageRecordService) DeleteExpireImageRecord() () {
- markTime := time.Now().Add(-time.Hour * 48).Format("2006-01-02")
- err := global.GVA_DB.Model(&levelMonitor.ImageRecord{}).Delete("create_date < ?", markTime).Error
- if err != nil {
- global.GVA_LOG.Info("删除图片信息失败:" + err.Error() + time.Now().Format("2006-01-02 15:04:05"))
- }
- return
- }
- //获取图片记录列表
- func (s *ImageRecordService) GetImageRecordList(record levelRequest.ImageRecordRequest, info request.PageInfo, order string, desc bool) (recordList []levelMonitor.ImageRecord, total int64, err error) {
- limit := info.PageSize
- offset := info.PageSize * (info.Page - 1)
- db := global.GVA_DB.Model(&levelMonitor.ImageRecord{})
- startDate := time.Now().Format("2006-01-02")
- endDate := time.Now().Format("2006-01-02")
- if len(record.Date) == 2 {
- startDate = record.Date[0]
- endDate = record.Date[1]
- }
- //筛选日期
- db = db.Where("create_date >= ? and create_date <= ?", startDate, endDate)
- if record.TaskId != 0 {
- db = db.Where("task_id = ?", record.TaskId)
- }
- err = db.Count(&total).Error
- if err != nil {
- return recordList, total, err
- } else {
- db = db.Limit(limit).Offset(offset)
- if order != "" {
- var OrderStr string
- // 设置有效排序key 防止sql注入
- // 感谢 Tom4t0 提交漏洞信息
- orderMap := make(map[string]bool, 4)
- orderMap["task_id"] = true
- orderMap["create_date"] = true
- orderMap["create_time"] = true
- orderMap["update_time"] = true
- if orderMap[order] {
- if desc {
- OrderStr = order + " desc"
- } else {
- OrderStr = order
- }
- } else { // didn't matched any order key in `orderMap`
- global.GVA_LOG.Error("获取失败!", zap.Error(err))
- return recordList, total, err
- }
- err = db.Order(OrderStr).Find(&recordList).Error
- } else {
- err = db.Order("id desc").Find(&recordList).Error
- }
- }
- //遍历更改日期格式
- for i, _ := range recordList {
- recordList[i].CreateDate = recordList[i].CreateDate[:10]
- }
- return recordList, total, err
- }
|