feat: add gormv2 and support sqlite
This commit is contained in:
+4
-4
@@ -2,13 +2,13 @@ package models
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/jinzhu/gorm"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Auth struct {
|
||||
ID int `json:"id" gorm:"type:int(11) AUTO_INCREMENT comment 'id';primary_key" json:"id"`
|
||||
Username string `json:"username" gorm:"type:varchar(100) comment '用户名';default:'';"`
|
||||
Password string `json:"password" gorm:"type:varchar(100) comment '密码';default:'';"`
|
||||
ID int `json:"id" gorm:"autoIncrement;type:integer ;primaryKey" json:"id"`
|
||||
Username string `json:"username" gorm:"type:varchar(100);default:'';"`
|
||||
Password string `json:"password" gorm:"type:varchar(100);default:'';"`
|
||||
}
|
||||
|
||||
// CheckAuth 检查用户信息
|
||||
|
||||
+12
-12
@@ -3,21 +3,21 @@ package models
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/jinzhu/gorm"
|
||||
"gorm.io/gorm"
|
||||
"message-nest/pkg/util"
|
||||
)
|
||||
|
||||
type CronMessages struct {
|
||||
UUIDModel
|
||||
|
||||
Name string `json:"name" gorm:"type:varchar(200) comment '关联的消息名称';default:'';"`
|
||||
TaskID string `json:"task_id" gorm:"type:varchar(36) comment '关联的消息ID';default:'';"`
|
||||
Cron string `json:"cron" gorm:"type:varchar(4096) comment '定时表达式';default:'';"`
|
||||
Title string `json:"title" gorm:"type:varchar(1000) comment '消息名称';default:'';"`
|
||||
Content string `json:"content" gorm:"type:varchar(4096) comment '消息内容';default:'';"`
|
||||
//MarkDown string `json:"markdown" gorm:"type:varchar(4096) comment 'markdown内容';default:'';"`
|
||||
Url string `json:"url" gorm:"type:varchar(4096) comment 'url地址';default:'';"`
|
||||
Enable int `json:"enable" gorm:"type:int comment '开启、暂停状态';default:1;"`
|
||||
Name string `json:"name" gorm:"type:varchar(200) ;default:'';"`
|
||||
TaskID string `json:"task_id" gorm:"type:varchar(36) ;default:'';"`
|
||||
Cron string `json:"cron" gorm:"type:varchar(4096) ;default:'';"`
|
||||
Title string `json:"title" gorm:"type:varchar(1000) ;default:'';"`
|
||||
Content string `json:"content" gorm:"type:varchar(4096) ;default:'';"`
|
||||
//MarkDown string `json:"markdown" gorm:"type:varchar(4096) ;default:'';"`
|
||||
Url string `json:"url" gorm:"type:varchar(4096) ;default:'';"`
|
||||
Enable int `json:"enable" gorm:"type:int ;default:1;"`
|
||||
}
|
||||
|
||||
func GenerateMsgUniqueID() string {
|
||||
@@ -77,10 +77,10 @@ func GetCronMessages(pageNum int, pageSize int, name string, maps interface{}) (
|
||||
}
|
||||
|
||||
// GetCronMessagesTotal 获取所有任务总数
|
||||
func GetCronMessagesTotal(name string, maps interface{}) (int, error) {
|
||||
func GetCronMessagesTotal(name string, maps interface{}) (int64, error) {
|
||||
var (
|
||||
err error
|
||||
total int
|
||||
total int64
|
||||
)
|
||||
query := db.Model(&CronMessages{}).Where(maps)
|
||||
if name != "" {
|
||||
@@ -110,7 +110,7 @@ func EditCronMsg(id string, data interface{}) error {
|
||||
|
||||
func GetCronMsgByID(id string) (CronMessages, error) {
|
||||
var msg CronMessages
|
||||
err := db.Where("id = ? ", id).Find(&msg).Error
|
||||
err := db.Where("id = ? ", id).Take(&msg).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return msg, err
|
||||
}
|
||||
|
||||
+33
-91
@@ -2,32 +2,33 @@ package models
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/jinzhu/gorm"
|
||||
_ "github.com/jinzhu/gorm/dialects/mysql"
|
||||
"github.com/glebarez/sqlite"
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/schema"
|
||||
"log"
|
||||
"message-nest/pkg/setting"
|
||||
"message-nest/pkg/util"
|
||||
"time"
|
||||
)
|
||||
|
||||
var db *gorm.DB
|
||||
|
||||
type IDModel struct {
|
||||
ID int `gorm:"type:int(11) AUTO_INCREMENT comment 'id';primary_key" json:"id"`
|
||||
ID uint `gorm:"autoIncrement;type:integer;primaryKey" json:"id"`
|
||||
|
||||
CreatedBy string `json:"created_by" gorm:"type:varchar(100) comment '创建人';default:'';"`
|
||||
ModifiedBy string `json:"modified_by" gorm:"type:varchar(100) comment '修改人';default:'';"`
|
||||
CreatedOn util.Time `json:"created_on" gorm:"type:timestamp comment '创建时间';default:current_timestamp;"`
|
||||
ModifiedOn util.Time `json:"modified_on" gorm:"type:timestamp comment '更新时间';"`
|
||||
CreatedBy string `json:"created_by" gorm:"type:varchar(100) ;default:'';"`
|
||||
ModifiedBy string `json:"modified_by" gorm:"type:varchar(100) ;default:'';"`
|
||||
CreatedAt util.Time `json:"created_on" gorm:"column:created_on;autoCreateTime "`
|
||||
UpdatedAt util.Time `json:"modified_on" gorm:"column:modified_on;autoUpdateTime ;"`
|
||||
}
|
||||
|
||||
type UUIDModel struct {
|
||||
ID string `gorm:"type:varchar(12) comment 'id';primary_key" json:"id"`
|
||||
ID string `gorm:"type:varchar(12) ;primaryKey" json:"id"`
|
||||
|
||||
CreatedBy string `json:"created_by" gorm:"type:varchar(100) comment '创建人';default:'';"`
|
||||
ModifiedBy string `json:"modified_by" gorm:"type:varchar(100) comment '修改人';default:'';"`
|
||||
CreatedOn util.Time `json:"created_on" gorm:"type:timestamp comment '创建时间';default:current_timestamp;"`
|
||||
ModifiedOn util.Time `json:"modified_on" gorm:"type:timestamp comment '更新时间';"`
|
||||
CreatedBy string `json:"created_by" gorm:"type:varchar(100) ;default:'';"`
|
||||
ModifiedBy string `json:"modified_by" gorm:"type:varchar(100) ;default:'';"`
|
||||
CreatedAt util.Time `json:"created_on" gorm:"column:created_on;autoCreateTime "`
|
||||
UpdatedAt util.Time `json:"modified_on" gorm:"column:modified_on;autoUpdateTime ;"`
|
||||
}
|
||||
|
||||
// Setup initializes the database instance
|
||||
@@ -39,92 +40,33 @@ func Setup() *gorm.DB {
|
||||
setting.DatabaseSetting.Host,
|
||||
setting.DatabaseSetting.Port,
|
||||
setting.DatabaseSetting.Name)
|
||||
db, err = gorm.Open(setting.DatabaseSetting.Type, connStr)
|
||||
|
||||
config := &gorm.Config{
|
||||
NamingStrategy: schema.NamingStrategy{
|
||||
TablePrefix: setting.DatabaseSetting.TablePrefix,
|
||||
},
|
||||
}
|
||||
|
||||
switch setting.DatabaseSetting.Type {
|
||||
case "mysql":
|
||||
db, err = gorm.Open(mysql.Open(connStr), config)
|
||||
case "sqlite":
|
||||
db, err = gorm.Open(sqlite.Open("conf/database.db"), config)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("models.Setup err: %v", err)
|
||||
}
|
||||
gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string {
|
||||
return setting.DatabaseSetting.TablePrefix + defaultTableName
|
||||
}
|
||||
|
||||
if setting.DatabaseSetting.SqlDebug == "enable" {
|
||||
db.LogMode(true)
|
||||
db = db.Debug()
|
||||
}
|
||||
db.SingularTable(true)
|
||||
db.Callback().Create().Replace("gorm:update_time_stamp", updateTimeStampForCreateCallback)
|
||||
db.Callback().Update().Replace("gorm:update_time_stamp", updateTimeStampForUpdateCallback)
|
||||
db.Callback().Delete().Replace("gorm:delete", deleteCallback)
|
||||
db.DB().SetMaxIdleConns(10)
|
||||
db.DB().SetMaxOpenConns(100)
|
||||
|
||||
return db
|
||||
}
|
||||
|
||||
// CloseDB closes database connection (unnecessary)
|
||||
func CloseDB() {
|
||||
defer db.Close()
|
||||
}
|
||||
|
||||
// updateTimeStampForCreateCallback will set `CreatedOn`, `ModifiedOn` when creating
|
||||
func updateTimeStampForCreateCallback(scope *gorm.Scope) {
|
||||
if !scope.HasError() {
|
||||
nowTime := time.Now()
|
||||
|
||||
if createTimeField, ok := scope.FieldByName("CreatedOn"); ok {
|
||||
if createTimeField.IsBlank {
|
||||
createTimeField.Set(nowTime)
|
||||
}
|
||||
}
|
||||
|
||||
if modifyTimeField, ok := scope.FieldByName("ModifiedOn"); ok {
|
||||
if modifyTimeField.IsBlank {
|
||||
modifyTimeField.Set(nowTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// updateTimeStampForUpdateCallback will set `ModifiedOn` when updating
|
||||
func updateTimeStampForUpdateCallback(scope *gorm.Scope) {
|
||||
if _, ok := scope.Get("gorm:update_column"); !ok {
|
||||
scope.SetColumn("ModifiedOn", time.Now())
|
||||
}
|
||||
}
|
||||
|
||||
// deleteCallback will set `DeletedOn` where deleting
|
||||
func deleteCallback(scope *gorm.Scope) {
|
||||
if !scope.HasError() {
|
||||
var extraOption string
|
||||
if str, ok := scope.Get("gorm:delete_option"); ok {
|
||||
extraOption = fmt.Sprint(str)
|
||||
}
|
||||
|
||||
deletedOnField, hasDeletedOnField := scope.FieldByName("DeletedOn")
|
||||
|
||||
if !scope.Search.Unscoped && hasDeletedOnField {
|
||||
scope.Raw(fmt.Sprintf(
|
||||
"UPDATE %v SET %v=%v%v%v",
|
||||
scope.QuotedTableName(),
|
||||
scope.Quote(deletedOnField.DBName),
|
||||
scope.AddToVars(time.Now().Unix()),
|
||||
addExtraSpaceIfExist(scope.CombinedConditionSql()),
|
||||
addExtraSpaceIfExist(extraOption),
|
||||
)).Exec()
|
||||
} else {
|
||||
scope.Raw(fmt.Sprintf(
|
||||
"DELETE FROM %v%v%v",
|
||||
scope.QuotedTableName(),
|
||||
addExtraSpaceIfExist(scope.CombinedConditionSql()),
|
||||
addExtraSpaceIfExist(extraOption),
|
||||
)).Exec()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// addExtraSpaceIfExist adds a separator
|
||||
func addExtraSpaceIfExist(str string) string {
|
||||
if str != "" {
|
||||
return " " + str
|
||||
}
|
||||
return ""
|
||||
func GetSchema(table any) string {
|
||||
stmt := &gorm.Statement{DB: db}
|
||||
stmt.Parse(table)
|
||||
return stmt.Schema.Table
|
||||
}
|
||||
|
||||
+8
-8
@@ -3,13 +3,13 @@ package models
|
||||
type SendTasksIns struct {
|
||||
UUIDModel
|
||||
|
||||
TaskID string `json:"task_id" gorm:"type:varchar(12) comment '任务id';default:'';index:task_id"`
|
||||
WayID string `json:"way_id" gorm:"type:varchar(12) comment '渠道id';default:'';index:way_id"`
|
||||
WayType string `json:"way_type" gorm:"type:varchar(100) comment '渠道类型';default:'';index:way_type"`
|
||||
ContentType string `json:"content_type" gorm:"type:varchar(100) comment '实例类型';default:'';index:content_type"`
|
||||
Config string `json:"config" gorm:"type:text comment '实例配置';"`
|
||||
Extra string `json:"extra" gorm:"type:text comment '额外信息';"`
|
||||
Enable int `json:"enable" gorm:"type:int comment '开启、暂停状态';default:1;"`
|
||||
TaskID string `json:"task_id" gorm:"type:varchar(12) ;default:'';index"`
|
||||
WayID string `json:"way_id" gorm:"type:varchar(12) ;default:'';index"`
|
||||
WayType string `json:"way_type" gorm:"type:varchar(100) ;default:'';index"`
|
||||
ContentType string `json:"content_type" gorm:"type:varchar(100) ;default:'';index"`
|
||||
Config string `json:"config" gorm:"type:text ;"`
|
||||
Extra string `json:"extra" gorm:"type:text ;"`
|
||||
Enable int `json:"enable" gorm:"type:int ;default:1;"`
|
||||
}
|
||||
|
||||
// InsEmailConfig 实例里面的邮箱config
|
||||
@@ -39,7 +39,7 @@ func ManyAddTaskIns(taskIns []SendTasksIns) error {
|
||||
tx := db.Begin()
|
||||
for _, ins := range taskIns {
|
||||
// 存在就跳过这条ins记录
|
||||
err := db.Where("id = ?", ins.ID).Find(&SendTasksIns{}).Error
|
||||
err := db.Where("id = ?", ins.ID).Take(&SendTasksIns{}).Error
|
||||
if err == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
+11
-10
@@ -3,14 +3,14 @@ package models
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/jinzhu/gorm"
|
||||
"gorm.io/gorm"
|
||||
"message-nest/pkg/util"
|
||||
)
|
||||
|
||||
type SendTasks struct {
|
||||
UUIDModel
|
||||
|
||||
Name string `json:"name" gorm:"type:varchar(100) comment '任务名称';default:'';"`
|
||||
Name string `json:"name" gorm:"type:varchar(100) ;default:'';"`
|
||||
}
|
||||
|
||||
func GenerateTaskUniqueID() string {
|
||||
@@ -20,7 +20,7 @@ func GenerateTaskUniqueID() string {
|
||||
|
||||
// AddSendTaskWithID 添加实例的时候添加任务
|
||||
func AddSendTaskWithID(name string, id string, createdBy string) error {
|
||||
err := db.Where("id = ?", id).Find(&SendTasks{}).Error
|
||||
err := db.Where("id = ?", id).Take(&SendTasks{}).Error
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -77,10 +77,10 @@ func GetSendTasks(pageNum int, pageSize int, name string, maps interface{}) ([]S
|
||||
}
|
||||
|
||||
// GetSendTasksTotal 获取所有任务总数
|
||||
func GetSendTasksTotal(name string, maps interface{}) (int, error) {
|
||||
func GetSendTasksTotal(name string, maps interface{}) (int64, error) {
|
||||
var (
|
||||
err error
|
||||
total int
|
||||
total int64
|
||||
)
|
||||
query := db.Model(&SendTasks{}).Where(maps)
|
||||
if name != "" {
|
||||
@@ -108,8 +108,9 @@ type TaskIns struct {
|
||||
|
||||
// GetTasksIns 获取所有任务下所有的实例
|
||||
func GetTasksIns(id string) (TaskIns, error) {
|
||||
insTable := db.NewScope(SendTasksIns{}).TableName()
|
||||
waysTable := db.NewScope(SendWays{}).TableName()
|
||||
//insTable := GetSchema(SendTasksIns{})
|
||||
insTable := GetSchema(SendTasksIns{})
|
||||
waysTable := GetSchema(SendWays{})
|
||||
var (
|
||||
task SendTasks
|
||||
taskIns []SendTasksInsRes
|
||||
@@ -136,8 +137,8 @@ func GetTasksIns(id string) (TaskIns, error) {
|
||||
|
||||
// FindTaskByWayId 通过way_id找到关联的任务
|
||||
func FindTaskByWayId(wayId string) []SendTasks {
|
||||
insTable := db.NewScope(SendTasksIns{}).TableName()
|
||||
taskTable := db.NewScope(SendTasks{}).TableName()
|
||||
insTable := GetSchema(SendTasksIns{})
|
||||
taskTable := GetSchema(SendTasks{})
|
||||
var (
|
||||
tasks []SendTasks
|
||||
)
|
||||
@@ -177,7 +178,7 @@ func EditSendTask(id string, data interface{}) error {
|
||||
|
||||
func GetTaskByID(id string) (SendTasks, error) {
|
||||
var task SendTasks
|
||||
err := db.Where("id = ? ", id).Find(&task).Error
|
||||
err := db.Where("id = ? ", id).Take(&task).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return task, err
|
||||
}
|
||||
|
||||
+27
-21
@@ -3,17 +3,18 @@ package models
|
||||
import (
|
||||
"fmt"
|
||||
"message-nest/pkg/util"
|
||||
//"time"
|
||||
)
|
||||
|
||||
type SendTasksLogs struct {
|
||||
ID int `gorm:"primary_key" json:"id" `
|
||||
TaskID string `json:"task_id" gorm:"type:varchar(12) comment '任务id';default:'';index:task_id"`
|
||||
Log string `json:"log" gorm:"type:text comment '日志';"`
|
||||
Status *int `json:"status" gorm:"type:int comment '状态';default:0;"`
|
||||
CallerIp string `json:"caller_ip" gorm:"type:varchar(256) comment '发送者的ip';default:'';"`
|
||||
ID int `gorm:"primaryKey" json:"id" `
|
||||
TaskID string `json:"task_id" gorm:"type:varchar(12) ;default:'';index:task_id"`
|
||||
Log string `json:"log" gorm:"type:text ;"`
|
||||
Status *int `json:"status" gorm:"type:int ;default:0;"`
|
||||
CallerIp string `json:"caller_ip" gorm:"type:varchar(256) ;default:'';"`
|
||||
|
||||
CreatedOn util.Time `json:"created_on" gorm:"type:timestamp comment '创建时间';default:current_timestamp;"`
|
||||
ModifiedOn util.Time `json:"modified_on" gorm:"type:timestamp comment '更新时间';"`
|
||||
CreatedAt util.Time `json:"created_on" gorm:"column:created_on;autoCreateTime "`
|
||||
UpdatedAt util.Time `json:"modified_on" gorm:"column:modified_on;autoUpdateTime ;"`
|
||||
}
|
||||
|
||||
// Add 添加日志记录
|
||||
@@ -39,8 +40,8 @@ type LogsResult struct {
|
||||
// GetSendLogs 获取所有日志记录
|
||||
func GetSendLogs(pageNum int, pageSize int, name string, taskId string, maps map[string]interface{}) ([]LogsResult, error) {
|
||||
var logs []LogsResult
|
||||
logt := db.NewScope(SendTasksLogs{}).TableName()
|
||||
taskt := db.NewScope(SendTasks{}).TableName()
|
||||
logt := GetSchema(SendTasksLogs{})
|
||||
taskt := GetSchema(SendTasks{})
|
||||
|
||||
query := db.
|
||||
Table(logt).
|
||||
@@ -70,10 +71,10 @@ func GetSendLogs(pageNum int, pageSize int, name string, taskId string, maps map
|
||||
}
|
||||
|
||||
// GetSendLogsTotal 获取所有日志总数
|
||||
func GetSendLogsTotal(name string, taskId string, maps map[string]interface{}) (int, error) {
|
||||
var total int
|
||||
logt := db.NewScope(SendTasksLogs{}).TableName()
|
||||
taskt := db.NewScope(SendTasks{}).TableName()
|
||||
func GetSendLogsTotal(name string, taskId string, maps map[string]interface{}) (int64, error) {
|
||||
var total int64
|
||||
logt := GetSchema(SendTasksLogs{})
|
||||
taskt := GetSchema(SendTasks{})
|
||||
query := db.
|
||||
Table(logt).
|
||||
Joins(fmt.Sprintf("LEFT JOIN %s ON %s.task_id = %s.id", taskt, logt, taskt))
|
||||
@@ -98,7 +99,7 @@ func GetSendLogsTotal(name string, taskId string, maps map[string]interface{}) (
|
||||
// GetSendLogsTotal 获取所有日志总数
|
||||
func DeleteOutDateLogs(keepNum int) (int, error) {
|
||||
var affectedRows int
|
||||
logt := db.NewScope(SendTasksLogs{}).TableName()
|
||||
logt := GetSchema(SendTasksLogs{})
|
||||
sql := fmt.Sprintf(`DELETE FROM %s
|
||||
WHERE id NOT IN (
|
||||
SELECT id FROM (
|
||||
@@ -122,8 +123,8 @@ type StatisticData struct {
|
||||
TodayFailedNum int `json:"today_failed_num"`
|
||||
TodayTotalNum int `json:"today_total_num"`
|
||||
|
||||
LatestSendData []LatestSendData `json:"latest_send_data"`
|
||||
WayCateData []WayCateData `json:"way_cate_data"`
|
||||
LatestSendData []LatestSendData `json:"latest_send_data" gorm:"many2many:latest_send_data;"`
|
||||
WayCateData []WayCateData `json:"way_cate_data" gorm:"many2many:way_cate_data;"`
|
||||
}
|
||||
|
||||
type LatestSendData struct {
|
||||
@@ -144,9 +145,9 @@ func GetStatisticData() (StatisticData, error) {
|
||||
var statistic StatisticData
|
||||
var latestData []LatestSendData
|
||||
var wayCateData []WayCateData
|
||||
logt := db.NewScope(SendTasksLogs{}).TableName()
|
||||
inst := db.NewScope(SendTasksIns{}).TableName()
|
||||
wayst := db.NewScope(SendWays{}).TableName()
|
||||
logt := GetSchema(SendTasksLogs{})
|
||||
inst := GetSchema(SendTasksIns{})
|
||||
wayst := GetSchema(SendWays{})
|
||||
currDay := util.GetNowTimeStr()[:10]
|
||||
|
||||
// 今日统计数据
|
||||
@@ -158,10 +159,15 @@ func GetStatisticData() (StatisticData, error) {
|
||||
SUM(CASE WHEN status != 1 or status is null THEN 1 ELSE 0 END) AS today_failed_num`).
|
||||
Where("DATE(created_on) = ?", currDay)
|
||||
|
||||
query.First(&statistic)
|
||||
query.Take(&statistic)
|
||||
|
||||
// 最近30天数据
|
||||
days := 30
|
||||
now := util.GetNowTime()
|
||||
past := now.AddDate(0, 0, -days)
|
||||
pastDate := past.Format("2006-01-02")
|
||||
next := now.AddDate(0, 0, 1)
|
||||
nextDate := next.Format("2006-01-02")
|
||||
queryData := db.
|
||||
Table(logt).
|
||||
Select(`
|
||||
@@ -169,7 +175,7 @@ func GetStatisticData() (StatisticData, error) {
|
||||
SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) AS day_succ_num,
|
||||
SUM(CASE WHEN status != 1 or status is null THEN 1 ELSE 0 END) AS day_failed_num,
|
||||
COUNT(*) AS num`).
|
||||
Where(" created_on >= DATE(?) - INTERVAL ? DAY", currDay, days).
|
||||
Where(fmt.Sprintf(" created_on >= '%s' and created_on <= '%s' ", pastDate, nextDate)).
|
||||
Group("day").
|
||||
Order("day")
|
||||
|
||||
|
||||
+7
-7
@@ -3,16 +3,16 @@ package models
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/jinzhu/gorm"
|
||||
"gorm.io/gorm"
|
||||
"message-nest/pkg/util"
|
||||
)
|
||||
|
||||
type SendWays struct {
|
||||
UUIDModel
|
||||
|
||||
Name string `json:"name" gorm:"type:varchar(100) comment '渠道名称';default:'';"`
|
||||
Type string `json:"type" gorm:"type:varchar(100) comment '渠道类型';default:'';index:type"`
|
||||
Auth string `json:"auth" gorm:"type:varchar(2048) comment '认证信息';default:'';"`
|
||||
Name string `json:"name" gorm:"type:varchar(100) ;default:'';"`
|
||||
Type string `json:"type" gorm:"type:varchar(100) ;default:'';index"`
|
||||
Auth string `json:"auth" gorm:"type:varchar(2048) ;default:'';"`
|
||||
}
|
||||
|
||||
func GenerateWayUniqueID() string {
|
||||
@@ -63,10 +63,10 @@ func GetSendWays(pageNum int, pageSize int, name string, type_ string, maps inte
|
||||
return ways, nil
|
||||
}
|
||||
|
||||
func GetSendWaysTotal(name string, type_ string, maps interface{}) (int, error) {
|
||||
func GetSendWaysTotal(name string, type_ string, maps interface{}) (int64, error) {
|
||||
var (
|
||||
err error
|
||||
total int
|
||||
total int64
|
||||
)
|
||||
query := db.Model(&SendWays{}).Where(maps)
|
||||
if name != "" {
|
||||
@@ -85,7 +85,7 @@ func GetSendWaysTotal(name string, type_ string, maps interface{}) (int, error)
|
||||
|
||||
func GetWayByID(id string) (SendWays, error) {
|
||||
var way SendWays
|
||||
err := db.Where("id = ? ", id).Find(&way).Error
|
||||
err := db.Where("id = ? ", id).Take(&way).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return way, err
|
||||
}
|
||||
|
||||
+6
-6
@@ -2,15 +2,15 @@ package models
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/jinzhu/gorm"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Settings struct {
|
||||
IDModel
|
||||
|
||||
Section string `json:"section" gorm:"type:varchar(100) comment '实例类型';default:'';index:section"`
|
||||
Key string `json:"key" gorm:"type:varchar(100) comment '实例类型';default:'';"`
|
||||
Value string `json:"value" gorm:"type:text comment '实例类型';"`
|
||||
Section string `json:"section" gorm:"type:varchar(100) ;default:'';index"`
|
||||
Key string `json:"key" gorm:"type:varchar(100) ;default:'';"`
|
||||
Value string `json:"value" gorm:"type:text ;"`
|
||||
}
|
||||
|
||||
// AddOneSetting 添加一条设置
|
||||
@@ -22,7 +22,7 @@ func AddOneSetting(setting Settings) error {
|
||||
}
|
||||
|
||||
// EditSetting 编辑设置
|
||||
func EditSetting(id int, data interface{}) error {
|
||||
func EditSetting(id uint, data interface{}) error {
|
||||
if err := db.Model(&Settings{}).Where("id = ? ", id).Updates(data).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -49,7 +49,7 @@ func GetSettingByKey(section string, key string) (Settings, error) {
|
||||
|
||||
func GetSettingBySection(section string) ([]Settings, error) {
|
||||
var settings []Settings
|
||||
err := db.Table(db.NewScope(Settings{}).TableName()).Where("`section` = ? ", section).Scan(&settings).Error
|
||||
err := db.Table(GetSchema(Settings{})).Where("`section` = ? ", section).Scan(&settings).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return settings, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user