2024-07-04 18:31:04 +08:00
|
|
|
|
package dao
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"fmt"
|
|
|
|
|
|
"gorm.io/gorm"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
type CID struct {
|
|
|
|
|
|
gorm.Model
|
|
|
|
|
|
Auth_id int `gorm:"column:auth_id"`
|
|
|
|
|
|
Name string `gorm:"column:name"`
|
|
|
|
|
|
Url string `gorm:"column:url"`
|
2024-11-06 15:13:06 +08:00
|
|
|
|
Time int `gorm:"column:time"` // 定时任务,单位秒,大于0表示定时任务
|
2024-07-04 18:31:04 +08:00
|
|
|
|
Script string `gorm:"column:script"`
|
2024-07-05 10:28:05 +08:00
|
|
|
|
Token string `gorm:"column:token"` // 用于外部回调
|
2024-07-04 18:31:04 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type CIDRunLog struct {
|
|
|
|
|
|
gorm.Model
|
2025-03-27 11:19:20 +08:00
|
|
|
|
CID_id int `gorm:"column:cid_id"`
|
|
|
|
|
|
Auth_id int `form:"column:auth_id"`
|
|
|
|
|
|
Script string `gorm:"column:script"`
|
|
|
|
|
|
RunTime float64 `gorm:"column:run_time"`
|
|
|
|
|
|
Log string `gorm:"column:log"`
|
|
|
|
|
|
Error string `gorm:"column:error"`
|
2024-07-04 18:31:04 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// CreateCID 创建持续集成、部署
|
2024-11-06 15:13:06 +08:00
|
|
|
|
func CreateCID(name, url, script, token string, time, auth_id int) uint {
|
|
|
|
|
|
cid := CID{Name: name, Url: url, Script: script, Token: token, Auth_id: auth_id, Time: time}
|
2024-10-08 13:51:10 +08:00
|
|
|
|
result := DB.Create(&cid)
|
2024-07-04 18:31:04 +08:00
|
|
|
|
if result.Error != nil {
|
|
|
|
|
|
return 0
|
|
|
|
|
|
}
|
|
|
|
|
|
return cid.ID
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// DeleteCIDByID 删除持续集成、部署
|
|
|
|
|
|
func DeleteCIDByID(id, auth_id int) bool {
|
2024-10-08 13:51:10 +08:00
|
|
|
|
res := DB.Model(&CID{}).Where("id = ? and auth_id = ?", id, auth_id).Delete(&CID{})
|
2024-07-04 18:31:04 +08:00
|
|
|
|
if res.Error != nil {
|
|
|
|
|
|
return false
|
|
|
|
|
|
}
|
|
|
|
|
|
return true
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// FindCIDByID 查找持续集成、部署
|
|
|
|
|
|
func FindCIDByID(id, auth_id int) CID {
|
|
|
|
|
|
var cid CID
|
2024-10-08 13:51:10 +08:00
|
|
|
|
DB.Where("id = ? and auth_id = ?", id, auth_id).First(&cid)
|
2024-07-04 18:31:04 +08:00
|
|
|
|
return cid
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// FindCIDByAuthID 查找持续集成、部署
|
|
|
|
|
|
func FindCIDByAuthID(auth_id int) []CID {
|
|
|
|
|
|
var cids []CID
|
2024-10-08 13:51:10 +08:00
|
|
|
|
DB.Where("auth_id = ?", auth_id).Find(&cids)
|
2024-07-04 18:31:04 +08:00
|
|
|
|
return cids
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// UpdateCIDByID 更新持续集成、部署
|
2024-11-06 15:13:06 +08:00
|
|
|
|
func UpdateCIDByID(id, auth_id, time int, name, url, script, token string) bool {
|
2024-07-04 18:31:04 +08:00
|
|
|
|
pd := FindCIDByID(id, auth_id)
|
|
|
|
|
|
if pd.ID == 0 {
|
|
|
|
|
|
return false
|
|
|
|
|
|
}
|
2024-07-05 10:28:05 +08:00
|
|
|
|
// 如果token为空,则不更新token
|
|
|
|
|
|
if token == "" {
|
|
|
|
|
|
token = pd.Token
|
|
|
|
|
|
}
|
2024-11-24 14:56:22 +08:00
|
|
|
|
result := DB.Model(&CID{}).Where("id = ? and auth_id = ?", id, auth_id).Updates(CID{Name: name, Url: url, Script: script, Token: token, Time: time})
|
2024-07-04 18:31:04 +08:00
|
|
|
|
if result.Error != nil {
|
|
|
|
|
|
return false
|
|
|
|
|
|
}
|
|
|
|
|
|
return true
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// CreateRunLog,添加执行日志
|
2025-03-27 11:19:20 +08:00
|
|
|
|
func CreateRunLog(cid_id, auth_id int, script, log, err string, runtime float64) uint {
|
|
|
|
|
|
cidRunLog := CIDRunLog{CID_id: cid_id, Auth_id: auth_id, Log: log, Error: err, Script: script, RunTime: runtime}
|
2024-10-08 13:51:10 +08:00
|
|
|
|
result := DB.Create(&cidRunLog)
|
2024-07-05 10:28:05 +08:00
|
|
|
|
if result != nil {
|
2024-07-04 18:31:04 +08:00
|
|
|
|
fmt.Println(err)
|
|
|
|
|
|
return 0
|
|
|
|
|
|
}
|
|
|
|
|
|
return cidRunLog.ID
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-05 10:46:02 +08:00
|
|
|
|
func FindRunLogByAuthID(auth_id int) []CIDRunLog {
|
2024-07-04 18:31:04 +08:00
|
|
|
|
var cidRunLogs []CIDRunLog
|
2024-10-08 13:51:10 +08:00
|
|
|
|
DB.Where(" auth_id = ?", auth_id).Order("created_at desc").Find(&cidRunLogs)
|
2024-07-04 18:31:04 +08:00
|
|
|
|
return cidRunLogs
|
|
|
|
|
|
}
|
2024-07-05 10:46:02 +08:00
|
|
|
|
|
2024-07-06 20:48:38 +08:00
|
|
|
|
func FindRunLogByID(auth_id, cid_id int) []CIDRunLog {
|
|
|
|
|
|
var cidRunLog []CIDRunLog
|
2024-11-24 14:56:22 +08:00
|
|
|
|
DB.Where("cid_id = ? and auth_id = ?", cid_id, auth_id).Order("created_at desc").Limit(30).Find(&cidRunLog)
|
2024-07-05 10:46:02 +08:00
|
|
|
|
return cidRunLog
|
|
|
|
|
|
}
|
2024-07-06 20:45:22 +08:00
|
|
|
|
func FindRunLogByCIDLogID(id, auth_id int) []CIDRunLog {
|
|
|
|
|
|
var cidRunLogs []CIDRunLog
|
2024-11-24 14:56:22 +08:00
|
|
|
|
DB.Where("id = ? and auth_id = ?", id, auth_id).Order("created_at desc").Limit(30).Find(&cidRunLogs)
|
2024-07-06 20:45:22 +08:00
|
|
|
|
return cidRunLogs
|
|
|
|
|
|
}
|
2024-07-05 10:46:02 +08:00
|
|
|
|
|
|
|
|
|
|
func FindCIDByIDAndToken(id int, token string) CID {
|
|
|
|
|
|
var cid CID
|
2024-10-08 13:51:10 +08:00
|
|
|
|
DB.Where("id = ? and token = ?", id, token).First(&cid)
|
2024-07-05 10:46:02 +08:00
|
|
|
|
return cid
|
|
|
|
|
|
}
|
2024-11-06 15:13:06 +08:00
|
|
|
|
|
|
|
|
|
|
func FindCIDByTime() []CID {
|
|
|
|
|
|
var cids []CID
|
2024-11-24 14:56:22 +08:00
|
|
|
|
DB.Where("time > 0").Find(&cids)
|
2024-11-06 15:13:06 +08:00
|
|
|
|
return cids
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// FindCIDByID 查找持续集成、部署
|
|
|
|
|
|
func FindCIDByCID(id uint) CID {
|
|
|
|
|
|
var cid CID
|
2024-11-30 11:19:16 +08:00
|
|
|
|
DB.Where("id = ? ", id).First(&cid)
|
2024-11-06 15:13:06 +08:00
|
|
|
|
return cid
|
|
|
|
|
|
}
|