|
|
@@ -0,0 +1,93 @@
|
|
|
+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
|
|
|
+}
|