149 lines
4.4 KiB
Go
149 lines
4.4 KiB
Go
package mysql
|
|
|
|
import (
|
|
"errors"
|
|
"planA/initialization/golabl"
|
|
"planA/tool"
|
|
mysqlType "planA/type/mysql"
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// CreateTaskRecords 向task_records表插入单条数据
|
|
// @param TaskRecords 要插入的task_records数据
|
|
// @return error 错误信息
|
|
func CreateTaskRecords(TaskRecords *mysqlType.TaskRecords) error {
|
|
err := golabl.MysqlDb.Create(TaskRecords).Error
|
|
return err
|
|
}
|
|
|
|
// GetTaskRecordsList 分页查询任务-用户关联表数据
|
|
// @param params 分页查询参数
|
|
// @return []*TaskRecords 查询结果
|
|
// @return int64 总条数
|
|
// @return error 错误信息
|
|
func GetTaskRecordsList(params *mysqlType.GetTaskRecordsByUserIdParams) ([]*mysqlType.TaskRecords, int64, error) {
|
|
var TaskRecordss []*mysqlType.TaskRecords
|
|
var total int64
|
|
//获取页
|
|
pageSize, offset := tool.GetPage(params.Page.PageNum, params.Page.PageSize)
|
|
// 构建查询条件
|
|
query := golabl.MysqlDb.Model(&mysqlType.TaskRecords{})
|
|
if params.UserID != "" {
|
|
query = query.Where("user_id = ?", params.UserID)
|
|
}
|
|
if params.ShopName != "" {
|
|
query = query.Where("shop_name = ?", params.ShopName)
|
|
}
|
|
if params.TaskID != "" {
|
|
query = query.Where("task_id = ?", params.TaskID)
|
|
}
|
|
if params.TaskType != 0 {
|
|
query = query.Where("task_type = ?", params.TaskType)
|
|
}
|
|
// 查询总条数
|
|
if err := query.Count(&total).Error; err != nil {
|
|
return nil, 0, err
|
|
}
|
|
if total == 0 {
|
|
return TaskRecordss, total, nil
|
|
}
|
|
// 分页查询数据
|
|
err := query.Order("id DESC").
|
|
Offset(offset).
|
|
Limit(pageSize).
|
|
Find(&TaskRecordss).Error
|
|
if err != nil {
|
|
return nil, 0, err
|
|
}
|
|
return TaskRecordss, total, err
|
|
}
|
|
|
|
// GetTaskRecordsByTaskId 根据TaskId查询task_records表数据
|
|
// @param taskId 任务Id
|
|
// @return *TaskRecords 查询结果
|
|
// @return error 错误信息
|
|
func GetTaskRecordsByTaskId(taskId string) (mysqlType.TaskRecords, error) {
|
|
var TaskRecords mysqlType.TaskRecords
|
|
|
|
err := golabl.MysqlDb.Where("task_id = ?", taskId).First(&TaskRecords).Error
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return TaskRecords, nil
|
|
}
|
|
if err != nil {
|
|
return TaskRecords, err
|
|
}
|
|
|
|
return TaskRecords, nil
|
|
}
|
|
|
|
// UpdateTaskRecords 根据任务ID更新数据
|
|
func UpdateTaskRecords(record *mysqlType.TaskRecords) error {
|
|
return golabl.MysqlDb.Model(&mysqlType.TaskRecords{}).Where("task_id = ?", record.TaskID).Updates(record).Error
|
|
}
|
|
|
|
// DeleteOldTaskRecords 删除大于N天的数据
|
|
// @return error 错误信息
|
|
func DeleteOldTaskRecords() error {
|
|
days := golabl.Config.Server.DataDay
|
|
threeDaysAgo := time.Now().AddDate(0, 0, -days)
|
|
return golabl.MysqlDb.Where("create_at < ?", threeDaysAgo).Delete(&mysqlType.TaskRecords{}).Error
|
|
}
|
|
|
|
// DeleteTaskRecordsByTaskId 根据任务ID删除数据
|
|
// @param taskId 任务ID
|
|
// @return error 错误信息
|
|
func DeleteTaskRecordsByTaskId(taskId string) error {
|
|
return golabl.MysqlDb.Where("task_id = ?", taskId).Delete(&mysqlType.TaskRecords{}).Error
|
|
}
|
|
|
|
// GetTaskRecords24Hour 获取24小时内的数据
|
|
func GetTaskRecords24Hour() ([]*mysqlType.TaskRecords, error) {
|
|
var tasks []*mysqlType.TaskRecords
|
|
now := time.Now()
|
|
twentyFourHoursAgo := now.Add(-24 * time.Hour)
|
|
tenMinutesAgo := now.Add(-10 * time.Minute)
|
|
|
|
err := golabl.MysqlDb.Where("create_at >= ? AND create_at <= ?",
|
|
twentyFourHoursAgo, tenMinutesAgo).
|
|
Order("create_at DESC").
|
|
Find(&tasks).Error
|
|
|
|
return tasks, err
|
|
}
|
|
|
|
// GetTaskRecordsOldList 获取task_records表中N天前的记录
|
|
func GetTaskRecordsOldList() ([]*mysqlType.TaskRecords, error) {
|
|
var tasks []*mysqlType.TaskRecords
|
|
days := golabl.Config.Server.DataDay
|
|
threeDaysAgo := time.Now().AddDate(0, 0, -days)
|
|
|
|
err := golabl.MysqlDb.Where("create_at < ?",
|
|
threeDaysAgo).
|
|
Order("create_at DESC").
|
|
Find(&tasks).Error
|
|
|
|
return tasks, err
|
|
}
|
|
|
|
// GetTaskByShopIdAndTaskType 根据 shopId和 taskType获取任务记录
|
|
// @param taskId 任务ID
|
|
// @param taskType 任务类型
|
|
// @return []mysqlType.TaskRecords 任务列表
|
|
// @return error 错误信息
|
|
func GetTaskByShopIdAndTaskType(taskId string, taskType int64) ([]*mysqlType.TaskRecords, error) {
|
|
var task []*mysqlType.TaskRecords
|
|
err := golabl.MysqlDb.Model(&mysqlType.TaskRecords{}).Where("shop_id = ? AND task_type = ?", taskId, taskType).Find(&task).Error
|
|
return task, err
|
|
}
|
|
|
|
// GetAllTask 查询所有的任务
|
|
// @return []*mysqlType.TaskRecords 所有任务
|
|
// @return error 错误信息
|
|
func GetAllTask() ([]*mysqlType.TaskRecords, error) {
|
|
var task []*mysqlType.TaskRecords
|
|
err := golabl.MysqlDb.Model(&mysqlType.TaskRecords{}).Find(&task).Error
|
|
return task, err
|
|
}
|