feat: complete settings
This commit is contained in:
+8
-5
@@ -13,11 +13,14 @@ import (
|
||||
|
||||
var db *gorm.DB
|
||||
|
||||
//type Model struct {
|
||||
// ID int `gorm:"primary_key" json:"id"`
|
||||
// CreatedOn util.Time `json:"created_on"`
|
||||
// ModifiedOn util.Time `json:"modified_on"`
|
||||
//}
|
||||
type IDModel struct {
|
||||
ID int `gorm:"primary_key" json:"id"`
|
||||
|
||||
CreatedBy string `json:"created_by"`
|
||||
ModifiedBy string `json:"modified_by"`
|
||||
CreatedOn util.Time `json:"created_on"`
|
||||
ModifiedOn util.Time `json:"modified_on"`
|
||||
}
|
||||
|
||||
type UUIDModel struct {
|
||||
ID uuid.UUID `gorm:"primary_key" json:"id"`
|
||||
|
||||
@@ -44,13 +44,13 @@ func GetSendLogs(pageNum int, pageSize int, name string, taskId string, maps int
|
||||
query := db.
|
||||
Table(logt).
|
||||
Select(fmt.Sprintf("%s.*, %s.name as task_name", logt, taskt)).
|
||||
Joins(fmt.Sprintf("JOIN %s ON %s.task_id = %s.id", taskt, logt, taskt))
|
||||
Joins(fmt.Sprintf("LEFT JOIN %s ON %s.task_id = %s.id", taskt, logt, taskt))
|
||||
|
||||
if name != "" {
|
||||
query = query.Where(fmt.Sprintf("%s.name like ?", taskt), fmt.Sprintf("%%%s%%", name))
|
||||
}
|
||||
if taskId != "" {
|
||||
query = query.Where(fmt.Sprintf("%s.id = ?", taskt), taskId)
|
||||
query = query.Where(fmt.Sprintf("%s.task_id = ?", logt), taskId)
|
||||
}
|
||||
query = query.Order("created_on DESC")
|
||||
if pageSize > 0 || pageNum > 0 {
|
||||
@@ -68,13 +68,33 @@ func GetSendLogsTotal(name string, taskId string, maps interface{}) (int, error)
|
||||
taskt := table.TasksTableName
|
||||
query := db.
|
||||
Table(logt).
|
||||
Joins(fmt.Sprintf("JOIN %s ON %s.task_id = %s.id", taskt, logt, taskt))
|
||||
Joins(fmt.Sprintf("LEFT JOIN %s ON %s.task_id = %s.id", taskt, logt, taskt))
|
||||
if name != "" {
|
||||
query = query.Where(fmt.Sprintf("%s.name like ?", taskt), fmt.Sprintf("%%%s%%", name))
|
||||
}
|
||||
if taskId != "" {
|
||||
query = query.Where(fmt.Sprintf("%s.id = ?", taskt), taskId)
|
||||
query = query.Where(fmt.Sprintf("%s.task_id = ?", logt), taskId)
|
||||
}
|
||||
query.Count(&total)
|
||||
return total, nil
|
||||
}
|
||||
|
||||
// GetSendLogsTotal 获取所有日志总数
|
||||
func DeleteOutDateLogs(keepNum int) error {
|
||||
logt := table.LogsTableName
|
||||
sql := fmt.Sprintf(`DELETE FROM %s
|
||||
WHERE id NOT IN (
|
||||
SELECT id FROM (
|
||||
SELECT id
|
||||
FROM %s
|
||||
ORDER BY created_on DESC
|
||||
LIMIT %d
|
||||
) tmp
|
||||
);`, logt, logt, keepNum)
|
||||
|
||||
result := db.Exec(sql)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/jinzhu/gorm"
|
||||
"message-nest/pkg/table"
|
||||
)
|
||||
|
||||
type Settings struct {
|
||||
IDModel
|
||||
|
||||
Section string `json:"section"`
|
||||
Key string `json:"key"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
// AddOneSetting 添加一条设置
|
||||
func AddOneSetting(setting Settings) error {
|
||||
if err := db.Create(&setting).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// EditSetting 编辑设置
|
||||
func EditSetting(id int, data interface{}) error {
|
||||
if err := db.Model(&Settings{}).Where("id = ? ", id).Updates(data).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeleteMsgTaskIns 删除一条设置
|
||||
func DeleteSettingByKey(section string, key string) error {
|
||||
if err := db.Where("`section` = ? and `key` = ? ", section, key).Delete(&Settings{}).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetSettingByKey(section string, key string) (Settings, error) {
|
||||
var setting Settings
|
||||
err := db.Where("`section` = ? and `key` = ? ", section, key).Find(&setting).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return setting, err
|
||||
}
|
||||
return setting, nil
|
||||
}
|
||||
|
||||
func GetSettingBySection(section string) ([]Settings, error) {
|
||||
var settings []Settings
|
||||
err := db.Table(table.SettingsTableName).Where("`section` = ? ", section).Scan(&settings).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return settings, err
|
||||
}
|
||||
return settings, nil
|
||||
}
|
||||
Reference in New Issue
Block a user