fix: deps install
This commit is contained in:
@@ -31,9 +31,6 @@ func (c *DependencyController) List(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
vos := vo.ToDependencyVOListFromModels(deps)
|
||||
for i := range vos {
|
||||
vos[i].Log = "" // 列表不返回日志
|
||||
}
|
||||
utils.Success(ctx, vos)
|
||||
}
|
||||
|
||||
@@ -115,14 +112,14 @@ func (c *DependencyController) Install(ctx *gin.Context) {
|
||||
Remark: req.Remark,
|
||||
}
|
||||
|
||||
if err := c.service.Install(dep); err != nil {
|
||||
err := c.service.Install(dep)
|
||||
// 无论成功失败,都同步记录日志
|
||||
c.service.Create(dep)
|
||||
|
||||
if err != nil {
|
||||
utils.ServerError(ctx, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
// 安装成功后保存到数据库
|
||||
c.service.Create(dep)
|
||||
|
||||
utils.SuccessMsg(ctx, "安装成功")
|
||||
}
|
||||
|
||||
@@ -194,9 +191,9 @@ func (c *DependencyController) Uninstall(ctx *gin.Context) {
|
||||
// 获取依赖信息
|
||||
deps, _ := c.service.List("", "")
|
||||
var dep *models.Dependency
|
||||
for _, d := range deps {
|
||||
if d.ID == id {
|
||||
dep = &d
|
||||
for i := range deps {
|
||||
if deps[i].ID == id {
|
||||
dep = &deps[i]
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -228,9 +225,9 @@ func (c *DependencyController) Reinstall(ctx *gin.Context) {
|
||||
// 获取依赖信息
|
||||
deps, _ := c.service.List("", "")
|
||||
var dep *models.Dependency
|
||||
for _, d := range deps {
|
||||
if d.ID == id {
|
||||
dep = &d
|
||||
for i := range deps {
|
||||
if deps[i].ID == id {
|
||||
dep = &deps[i]
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -240,11 +237,14 @@ func (c *DependencyController) Reinstall(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
if err := c.service.Install(dep); err != nil {
|
||||
err := c.service.Install(dep)
|
||||
// 无论成功失败,都同步记录日志
|
||||
c.service.Create(dep)
|
||||
|
||||
if err != nil {
|
||||
utils.ServerError(ctx, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
utils.SuccessMsg(ctx, "重新安装成功")
|
||||
}
|
||||
|
||||
@@ -264,10 +264,14 @@ func (c *DependencyController) ReinstallAll(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
var failed []string
|
||||
for _, d := range deps {
|
||||
if err := c.service.Install(&d); err != nil {
|
||||
for i := range deps {
|
||||
d := &deps[i]
|
||||
err := c.service.Install(d)
|
||||
if err != nil {
|
||||
failed = append(failed, d.Name)
|
||||
}
|
||||
// 无论成功失败,都同步记录日志到数据库
|
||||
c.service.Create(d)
|
||||
}
|
||||
|
||||
if len(failed) > 0 {
|
||||
|
||||
@@ -31,12 +31,16 @@ func (s *DependencyService) List(language, langVersion string) ([]models.Depende
|
||||
|
||||
// Create 创建依赖记录
|
||||
func (s *DependencyService) Create(dep *models.Dependency) error {
|
||||
// 检查是否已存在(名称、语言、版本 必须完全匹配)
|
||||
// 检查是否已存在(名称、版本、语言及版本必须完全匹配)
|
||||
var existing models.Dependency
|
||||
err := database.DB.Where("name = ? AND language = ? AND lang_version = ?", dep.Name, dep.Language, dep.LangVersion).First(&existing).Error
|
||||
err := database.DB.Where("name = ? AND version = ? AND language = ? AND lang_version = ?", dep.Name, dep.Version, dep.Language, dep.LangVersion).First(&existing).Error
|
||||
if err == nil {
|
||||
return errors.New("依赖已存在")
|
||||
// 如果已存在,更新 ID 并执行更新
|
||||
dep.ID = existing.ID
|
||||
return database.DB.Model(&existing).Updates(dep).Error
|
||||
}
|
||||
|
||||
// 不存在则新建
|
||||
if dep.ID == "" {
|
||||
dep.ID = utils.GenerateID()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user